blob: 7e5d8208862f36c321923b83192ada46622281d0 [file] [log] [blame]
#
# Pre-app approval/unapproval/flagging/unflagging of an agenda item
Pending.update(env.user, @agenda) do |pending|
agenda = Agenda.parse @agenda, :full
@initials ||= pending['initials']
approved = pending['approved']
unapproved = pending['unapproved']
flagged = pending['flagged']
unflagged = pending['unflagged']
case @request
when 'approve'
unapproved.delete @attach
approved << @attach unless approved.include? @attach or
agenda.find {|item| item[:attach] == @attach and
item['approved'].include? @initials}
when 'unapprove'
approved.delete @attach
unapproved << @attach unless unapproved.include? @attach or
not agenda.find {|item| item[:attach] == @attach and
item['approved'].include? @initials}
when 'flag'
unflagged.delete @attach
flagged << @attach unless flagged.include? @attach or
agenda.find {|item| item[:attach] == @attach and
Array(item['flagged_by']).include? @initials}
when 'unflag'
flagged.delete @attach
unflagged << @attach unless unflagged.include? @attach or
not agenda.find {|item| item[:attach] == @attach and
Array(item['flagged_by']).include? @initials}
end
end