liquid_feedback_frontend

view app/main/suggestion/_action/add.lua @ 279:23c98752e697

Added wiki support for suggestions and member statements
author bsw
date Thu Feb 16 14:08:43 2012 +0100 (2012-02-16)
parents 53a45356c107
children b77e6a17ca77
line source
1 local tmp = db:query({ "SELECT text_entries_left FROM member_contingent_left WHERE member_id = ?", app.session.member.id }, "opt_object")
2 if tmp and tmp.text_entries_left and tmp.text_entries_left < 1 then
3 slot.put_into("error", _"Sorry, you have reached your personal flood limit. Please be slower...")
4 return false
5 end
7 local name = param.get("name")
8 local name = util.trim(name)
10 if #name < 3 then
11 slot.put_into("error", _"This title is really too short!")
12 return false
13 end
15 local formatting_engine = param.get("formatting_engine")
17 local formatting_engine_valid = false
18 for fe, dummy in pairs(config.formatting_engine_executeables) do
19 if formatting_engine == fe then
20 formatting_engine_valid = true
21 end
22 end
23 if not formatting_engine_valid then
24 error("invalid formatting engine!")
25 end
27 if param.get("preview") then
28 return
29 end
31 local suggestion = Suggestion:new()
33 suggestion.author_id = app.session.member.id
34 suggestion.name = name
35 suggestion.formatting_engine = formatting_engine
36 param.update(suggestion, "content", "initiative_id")
37 suggestion:save()
39 -- TODO important m1 selectors returning result _SET_!
40 local issue = suggestion.initiative:get_reference_selector("issue"):for_share():single_object_mode():exec()
42 if issue.closed then
43 slot.put_into("error", _"This issue is already closed.")
44 return false
45 elseif issue.half_frozen then
46 slot.put_into("error", _"This issue is already frozen.")
47 return false
48 end
50 local opinion = Opinion:new()
52 opinion.suggestion_id = suggestion.id
53 opinion.member_id = app.session.member.id
54 opinion.degree = param.get("degree", atom.integer)
55 opinion.fulfilled = false
57 opinion:save()
59 slot.put_into("notice", _"Your suggestion has been added")

Impressum / About Us