liquid_feedback_frontend
diff app/main/draft/_action/add.lua @ 1208:24f4c23f76ff
Moved code from draft add action to Draft model
author | bsw |
---|---|
date | Sat Jul 18 15:58:39 2015 +0200 (2015-07-18) |
parents | 701a5cf6b067 |
children | 32cc544d5a5b |
line diff
1.1 --- a/app/main/draft/_action/add.lua Sun Jul 12 20:54:10 2015 +0200 1.2 +++ b/app/main/draft/_action/add.lua Sat Jul 18 15:58:39 2015 +0200 1.3 @@ -1,66 +1,8 @@ 1.4 -local initiative = Initiative:by_id(param.get("initiative_id", atom.integer)) 1.5 - 1.6 --- TODO important m1 selectors returning result _SET_! 1.7 -local issue = initiative:get_reference_selector("issue"):for_share():single_object_mode():exec() 1.8 - 1.9 -if issue.closed then 1.10 - slot.put_into("error", _"This issue is already closed.") 1.11 - return false 1.12 -elseif issue.half_frozen then 1.13 - slot.put_into("error", _"This issue is already frozen.") 1.14 - return false 1.15 -elseif issue.phase_finished then 1.16 - slot.put_into("error", _"Current phase is already closed.") 1.17 - return false 1.18 -end 1.19 - 1.20 -local initiator = Initiator:by_pk(initiative.id, app.session.member.id) 1.21 -if not initiator or not initiator.accepted then 1.22 - error("access denied") 1.23 -end 1.24 - 1.25 -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") 1.26 -if not tmp or tmp.text_entries_left < 1 then 1.27 - slot.put_into("error", _"Sorry, you have reached your personal flood limit. Please be slower...") 1.28 - return false 1.29 -end 1.30 - 1.31 -local formatting_engine 1.32 -if config.enforce_formatting_engine then 1.33 - formatting_engine = config.enforce_formatting_engine 1.34 -else 1.35 - formatting_engine = param.get("formatting_engine") 1.36 - 1.37 - local formatting_engine_valid = false 1.38 - for i, fe in pairs(config.formatting_engines) do 1.39 - if formatting_engine == fe.id then 1.40 - formatting_engine_valid = true 1.41 - end 1.42 - end 1.43 - if not formatting_engine_valid then 1.44 - error("invalid formatting engine!") 1.45 - end 1.46 -end 1.47 - 1.48 -if param.get("preview") or param.get("edit") then 1.49 - return false 1.50 -end 1.51 - 1.52 -local draft = Draft:new() 1.53 -draft.author_id = app.session.member.id 1.54 -draft.initiative_id = initiative.id 1.55 -draft.formatting_engine = formatting_engine 1.56 -draft.content = param.get("content") 1.57 -draft:save() 1.58 - 1.59 -local supporter = Supporter:by_pk(initiative.id, app.session.member.id) 1.60 - 1.61 -if supporter then 1.62 - supporter.draft_id = draft.id 1.63 - supporter:save() 1.64 -end 1.65 - 1.66 -draft:render_content() 1.67 - 1.68 -slot.put_into("notice", _"The initiative text has been updated") 1.69 - 1.70 +return Draft:update_content( 1.71 + app.session.member.id, 1.72 + param.get("initiative_id", atom.integer), 1.73 + param.get("formatting_engine"), 1.74 + param.get("content"), 1.75 + nil, 1.76 + param.get("preview") or param.get("edit") 1.77 +)