class Decidim::Meetings::Admin::MeetingAgendaForm
This class holds a Form to update meeting agenda items
def agenda_duration
def agenda_duration @agenda_duration ||= agenda_items.sum(&:duration) end
def agenda_duration_too_long
def agenda_duration_too_long if agenda_duration > meeting.meeting_duration difference = agenda_duration - meeting.meeting_duration errors.add(:base, :too_many_minutes, count: difference) end end
def agenda_items_duration_too_long
def agenda_items_duration_too_long agenda_items.each do |agenda_item| children_duration = agenda_item.agenda_item_children.sum(&:duration) if children_duration > agenda_item.duration difference = children_duration - agenda_item.duration errors.add(:base, :too_many_minutes_child, parent_title: translated_attribute(agenda_item.title), count: difference) end end end
def map_model(model)
def map_model(model) self.agenda_items = model.agenda_items.first_class.map do |agenda_item| MeetingAgendaItemsForm.from_model(agenda_item) end end
def meeting
def meeting @meeting ||= context[:meeting] end