liquid_feedback_frontend

annotate 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
rev   line source
bsw/jbe@0 1 local issue
bsw/jbe@0 2 local area
bsw/jbe@0 3
bsw/jbe@0 4 db:query("BEGIN")
bsw/jbe@0 5
bsw/jbe@0 6 local issue_id = param.get("issue_id", atom.integer)
bsw/jbe@0 7 if issue_id then
bsw/jbe@0 8 issue = Issue:new_selector():add_where{"id=?",issue_id}:single_object_mode():exec()
bsw/jbe@0 9 area = issue.area
bsw/jbe@0 10
bsw/jbe@0 11 else
bsw/jbe@0 12 local area_id = param.get("area_id", atom.integer)
bsw/jbe@0 13 area = Area:new_selector():add_where{"id=?",area_id}:single_object_mode():exec()
bsw/jbe@0 14 end
bsw/jbe@0 15
bsw/jbe@0 16 local initiative = Initiative:new()
bsw/jbe@0 17
bsw/jbe@0 18 if not issue then
bsw/jbe@0 19 issue = Issue:new()
bsw/jbe@0 20 issue.area_id = area.id
bsw/jbe@0 21 issue.policy_id = param.get("policy_id", atom.integer)
bsw/jbe@0 22 issue:save()
bsw/jbe@0 23 end
bsw/jbe@0 24
bsw/jbe@0 25 initiative.issue_id = issue.id
bsw@3 26
bsw@3 27 param.update(initiative, "name", "discussion_url")
bsw/jbe@0 28 initiative:save()
bsw/jbe@0 29
bsw/jbe@0 30 local draft = Draft:new()
bsw/jbe@0 31 draft.initiative_id = initiative.id
bsw/jbe@4 32 local formatting_engine = param.get("formatting_engine")
bsw/jbe@4 33 local formatting_engine_valid = false
bsw/jbe@4 34 for fe, dummy in pairs(config.formatting_engine_executeables) do
bsw/jbe@4 35 if formatting_engine == fe then
bsw/jbe@4 36 formatting_engine_valid = true
bsw/jbe@4 37 end
bsw/jbe@4 38 end
bsw/jbe@4 39 if not formatting_engine_valid then
bsw/jbe@4 40 error("invalid formatting engine!")
bsw/jbe@4 41 end
bsw/jbe@4 42 draft.formatting_engine = formatting_engine
bsw/jbe@0 43 draft.content = param.get("draft")
bsw/jbe@0 44 draft.author_id = app.session.member.id
bsw/jbe@0 45 draft:save()
bsw/jbe@0 46
bsw/jbe@0 47 local initiator = Initiator:new()
bsw/jbe@0 48 initiator.initiative_id = initiative.id
bsw/jbe@0 49 initiator.member_id = app.session.member.id
bsw/jbe@0 50 initiator:save()
bsw/jbe@0 51
bsw/jbe@0 52 local supporter = Supporter:new()
bsw/jbe@0 53 supporter.initiative_id = initiative.id
bsw/jbe@0 54 supporter.member_id = app.session.member.id
bsw/jbe@0 55 supporter.draft_id = draft.id
bsw/jbe@0 56 supporter:save()
bsw/jbe@0 57
bsw/jbe@0 58 db:query("COMMIT")
bsw/jbe@0 59
bsw/jbe@0 60 slot.put_into("notice", _"Initiative successfully created")
bsw/jbe@0 61
bsw/jbe@0 62 request.redirect{
bsw/jbe@0 63 module = "initiative",
bsw/jbe@0 64 view = "show",
bsw/jbe@0 65 id = initiative.id
bsw/jbe@0 66 }

Impressum / About Us