liquid_feedback_frontend
view app/main/draft/_action/add.lua @ 997:c10ba6fbe73a
German translation updated
| author | bsw | 
|---|---|
| date | Sat Apr 20 20:47:57 2013 +0200 (2013-04-20) | 
| parents | 1997cf1da04b | 
| children | 701a5cf6b067 | 
 line source
     1 local initiative = Initiative:by_id(param.get("initiative_id", atom.integer))
     3 -- TODO important m1 selectors returning result _SET_!
     4 local issue = initiative:get_reference_selector("issue"):for_share():single_object_mode():exec()
     6 if issue.closed then
     7   slot.put_into("error", _"This issue is already closed.")
     8   return false
     9 elseif issue.half_frozen then 
    10   slot.put_into("error", _"This issue is already frozen.")
    11   return false
    12 elseif issue.phase_finished then
    13   slot.put_into("error", _"Current phase is already closed.")
    14   return false
    15 end
    17 local initiator = Initiator:by_pk(initiative.id, app.session.member.id)
    18 if not initiator or not initiator.accepted then
    19   error("access denied")
    20 end
    22 local tmp = db:query({ "SELECT text_entries_left FROM member_contingent_left WHERE member_id = ? AND polling = ?", app.session.member.id, initiative.polling }, "opt_object")
    23 if not tmp or tmp.text_entries_left < 1 then
    24   slot.put_into("error", _"Sorry, you have reached your personal flood limit. Please be slower...")
    25   return false
    26 end
    28 local formatting_engine = param.get("formatting_engine")
    30 local formatting_engine_valid = false
    31 for fe, dummy in pairs(config.formatting_engine_executeables) do
    32   if formatting_engine == fe then
    33     formatting_engine_valid = true
    34   end
    35 end
    36 if not formatting_engine_valid then
    37   error("invalid formatting engine!")
    38 end
    40 if param.get("preview") then
    41   return false
    42 end
    44 local draft = Draft:new()
    45 draft.author_id = app.session.member.id
    46 draft.initiative_id = initiative.id
    47 draft.formatting_engine = formatting_engine
    48 draft.content = param.get("content")
    49 draft:save()
    51 local supporter = Supporter:by_pk(initiative.id, app.session.member.id)
    53 if supporter then
    54   supporter.draft_id = draft.id
    55   supporter:save()
    56 end
    58 draft:render_content()
    60 slot.put_into("notice", _"New draft has been added to initiative")
