class MnModel::Note

Public Instance Methods

all_entries_with_data(options={}) click to toggle source
# File lib/mn_model/note.rb, line 43
def all_entries_with_data(options={})
  #entries_with_date = get_entries_with_data_by_sql(entries)
  entries_with_date = get_entries_with_data_by_cal(items_with_field_name)
end
create_entry_with_data(attributes={}) click to toggle source
# File lib/mn_model/note.rb, line 11
def create_entry_with_data(attributes={})
  entry_with_data = {"data" => Hash.new}

  #transaction do
  #end
  entry = Entry.create note_id: id
  entry_with_data.merge! entry.serializable_hash

  fields.each do |f|
    #if attributes[f.name].present?
    unless attributes[f.name].nil?
      item = entry.items.create field_id: f.id, content: attributes[f.name]
      entry_with_data["data"].merge!(f.name => item.content)
    end
  end

  return entry_with_data
end
find_entry_with_data(options={}) click to toggle source
# File lib/mn_model/note.rb, line 30
def find_entry_with_data(options={})
  entry = Entry.find options["entry_id"]
  entry_with_data = {"data" => Hash.new}.merge! entry.serializable_hash

  fields.each do |f|
    item = Item.where(entry_id: entry.id, field_id: f.id).first
    #entry_with_data["data"].merge!(f.name => item.try(:content))
    entry_with_data["data"].merge!(f.name => item.content) if item
  end

  return entry_with_data
end
items_with_field_name() click to toggle source
# File lib/mn_model/note.rb, line 49
def items_with_field_name
  items.select("items.*, fields.name as field_name")
end

Private Instance Methods

get_entries_with_data_by_cal(items) click to toggle source
# File lib/mn_model/note.rb, line 68
def get_entries_with_data_by_cal(items)
  entries_with_date = items.group_by{|e| e.entry_id.to_s}.map{|k, v| {"entry_id" => k, "data" => v.inject({}){|h, e| h.merge(e.field_name => e.content)}}}
end
get_entries_with_data_by_sql(selected_entries) click to toggle source
# File lib/mn_model/note.rb, line 54
def get_entries_with_data_by_sql(selected_entries)
  entries_with_date = selected_entries.collect do |entry|
    entry_with_data = {"data" => Hash.new}.merge! entry.serializable_hash

    fields.each do |f|
      item = Item.where(entry_id: entry.id, field_id: f.id).first
      #entry_with_data["data"].merge!(f.name => item.try(:content))
      entry_with_data["data"].merge!(f.name => item.content) if item
    end

    entry_with_data
  end
end