liquid_feedback_frontend

view app/main/initiative/_action/create.lua @ 4:80c215dbf076

Version alpha5

Many optical changes and improved usability

Support for different wiki-formatting-engines

Help system
author bsw/jbe
date Thu Dec 10 12:00:00 2009 +0100 (2009-12-10)
parents 768faea1096d
children afd9f769c7ae
line source
1 local issue
2 local area
4 db:query("BEGIN")
6 local issue_id = param.get("issue_id", atom.integer)
7 if issue_id then
8 issue = Issue:new_selector():add_where{"id=?",issue_id}:single_object_mode():exec()
9 area = issue.area
11 else
12 local area_id = param.get("area_id", atom.integer)
13 area = Area:new_selector():add_where{"id=?",area_id}:single_object_mode():exec()
14 end
16 local initiative = Initiative:new()
18 if not issue then
19 issue = Issue:new()
20 issue.area_id = area.id
21 issue.policy_id = param.get("policy_id", atom.integer)
22 issue:save()
23 end
25 initiative.issue_id = issue.id
27 param.update(initiative, "name", "discussion_url")
28 initiative:save()
30 local draft = Draft:new()
31 draft.initiative_id = initiative.id
32 local formatting_engine = param.get("formatting_engine")
33 local formatting_engine_valid = false
34 for fe, dummy in pairs(config.formatting_engine_executeables) do
35 if formatting_engine == fe then
36 formatting_engine_valid = true
37 end
38 end
39 if not formatting_engine_valid then
40 error("invalid formatting engine!")
41 end
42 draft.formatting_engine = formatting_engine
43 draft.content = param.get("draft")
44 draft.author_id = app.session.member.id
45 draft:save()
47 local initiator = Initiator:new()
48 initiator.initiative_id = initiative.id
49 initiator.member_id = app.session.member.id
50 initiator:save()
52 local supporter = Supporter:new()
53 supporter.initiative_id = initiative.id
54 supporter.member_id = app.session.member.id
55 supporter.draft_id = draft.id
56 supporter:save()
58 db:query("COMMIT")
60 slot.put_into("notice", _"Initiative successfully created")
62 request.redirect{
63 module = "initiative",
64 view = "show",
65 id = initiative.id
66 }

Impressum / About Us