liquid_feedback_frontend

annotate app/main/suggestion/_action/add.lua @ 280:808269b7f41c

More repositioning and optical enhancements
author bsw
date Thu Feb 16 14:08:55 2012 +0100 (2012-02-16)
parents 23c98752e697
children b77e6a17ca77
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@0 6
bsw/jbe@6 7 local name = param.get("name")
bsw/jbe@6 8 local name = util.trim(name)
bsw/jbe@6 9
bsw/jbe@6 10 if #name < 3 then
bsw/jbe@6 11 slot.put_into("error", _"This title is really too short!")
bsw/jbe@6 12 return false
bsw/jbe@6 13 end
bsw/jbe@6 14
bsw@279 15 local formatting_engine = param.get("formatting_engine")
bsw@279 16
bsw@279 17 local formatting_engine_valid = false
bsw@279 18 for fe, dummy in pairs(config.formatting_engine_executeables) do
bsw@279 19 if formatting_engine == fe then
bsw@279 20 formatting_engine_valid = true
bsw@279 21 end
bsw@279 22 end
bsw@279 23 if not formatting_engine_valid then
bsw@279 24 error("invalid formatting engine!")
bsw@279 25 end
bsw@279 26
bsw@279 27 if param.get("preview") then
bsw@279 28 return
bsw@279 29 end
bsw@279 30
bsw/jbe@0 31 local suggestion = Suggestion:new()
bsw/jbe@0 32
bsw/jbe@0 33 suggestion.author_id = app.session.member.id
bsw/jbe@6 34 suggestion.name = name
bsw@279 35 suggestion.formatting_engine = formatting_engine
bsw@279 36 param.update(suggestion, "content", "initiative_id")
bsw/jbe@0 37 suggestion:save()
bsw/jbe@0 38
bsw/jbe@5 39 -- TODO important m1 selectors returning result _SET_!
bsw/jbe@5 40 local issue = suggestion.initiative:get_reference_selector("issue"):for_share():single_object_mode():exec()
bsw/jbe@5 41
bsw/jbe@5 42 if issue.closed then
bsw/jbe@5 43 slot.put_into("error", _"This issue is already closed.")
bsw/jbe@5 44 return false
bsw@41 45 elseif issue.half_frozen then
bsw@41 46 slot.put_into("error", _"This issue is already frozen.")
bsw/jbe@5 47 return false
bsw/jbe@5 48 end
bsw/jbe@5 49
bsw/jbe@0 50 local opinion = Opinion:new()
bsw/jbe@0 51
bsw/jbe@0 52 opinion.suggestion_id = suggestion.id
bsw/jbe@0 53 opinion.member_id = app.session.member.id
bsw/jbe@0 54 opinion.degree = param.get("degree", atom.integer)
bsw/jbe@0 55 opinion.fulfilled = false
bsw/jbe@0 56
bsw/jbe@0 57 opinion:save()
bsw/jbe@0 58
bsw/jbe@0 59 slot.put_into("notice", _"Your suggestion has been added")

Impressum / About Us