| rev | 
   line source | 
| 
bsw/jbe@5
 | 
     1 local tmp = db:query({ "SELECT text_entries_left FROM member_contingent_left WHERE member_id = ?", app.session.member.id }, "opt_object")
 | 
| 
bsw/jbe@5
 | 
     2 if tmp and tmp.text_entries_left and tmp.text_entries_left < 1 then
 | 
| 
bsw/jbe@5
 | 
     3   slot.put_into("error", _"Sorry, you have reached your personal flood limit. Please be slower...")
 | 
| 
bsw/jbe@5
 | 
     4   return false
 | 
| 
bsw/jbe@5
 | 
     5 end
 | 
| 
bsw/jbe@5
 | 
     6 
 | 
| 
bsw/jbe@0
 | 
     7 local initiative = Initiative:by_id(param.get("initiative_id", atom.integer))
 | 
| 
bsw/jbe@0
 | 
     8 
 | 
| 
bsw/jbe@5
 | 
     9 -- TODO important m1 selectors returning result _SET_!
 | 
| 
bsw/jbe@5
 | 
    10 local issue = initiative:get_reference_selector("issue"):for_share():single_object_mode():exec()
 | 
| 
bsw/jbe@5
 | 
    11 
 | 
| 
bsw/jbe@5
 | 
    12 if issue.closed then
 | 
| 
bsw/jbe@5
 | 
    13   slot.put_into("error", _"This issue is already closed.")
 | 
| 
bsw/jbe@5
 | 
    14   return false
 | 
| 
bsw/jbe@5
 | 
    15 elseif issue.half_frozen then 
 | 
| 
bsw/jbe@5
 | 
    16   slot.put_into("error", _"This issue is already frozen.")
 | 
| 
bsw/jbe@5
 | 
    17   return false
 | 
| 
bsw/jbe@5
 | 
    18 end
 | 
| 
bsw/jbe@5
 | 
    19 
 | 
| 
bsw@10
 | 
    20 local initiator = Initiator:by_pk(initiative.id, app.session.member.id)
 | 
| 
bsw@10
 | 
    21 if not initiator or not initiator.accepted then
 | 
| 
bsw@10
 | 
    22   error("access denied")
 | 
| 
bsw@10
 | 
    23 end
 | 
| 
bsw@10
 | 
    24 
 | 
| 
bsw@10
 | 
    25 local draft = Draft:new()
 | 
| 
bsw@10
 | 
    26 draft.author_id = app.session.member.id
 | 
| 
bsw@10
 | 
    27 draft.initiative_id = initiative.id
 | 
| 
bsw@10
 | 
    28 local formatting_engine = param.get("formatting_engine")
 | 
| 
bsw@10
 | 
    29 local formatting_engine_valid = false
 | 
| 
bsw@10
 | 
    30 for fe, dummy in pairs(config.formatting_engine_executeables) do
 | 
| 
bsw@10
 | 
    31   if formatting_engine == fe then
 | 
| 
bsw@10
 | 
    32     formatting_engine_valid = true
 | 
| 
bsw/jbe@4
 | 
    33   end
 | 
| 
bsw@10
 | 
    34 end
 | 
| 
bsw@10
 | 
    35 if not formatting_engine_valid then
 | 
| 
bsw@10
 | 
    36   error("invalid formatting engine!")
 | 
| 
bsw@10
 | 
    37 end
 | 
| 
bsw@10
 | 
    38 draft.formatting_engine = formatting_engine
 | 
| 
bsw@10
 | 
    39 draft.content = param.get("content")
 | 
| 
bsw@10
 | 
    40 draft:save()
 | 
| 
bsw/jbe@0
 | 
    41 
 | 
| 
bsw@10
 | 
    42 slot.put_into("notice", _"New draft has been added to initiative")
 | 
| 
bsw/jbe@0
 | 
    43 
 |