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
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 }
