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 +)

Impressum / About Us