liquid_feedback_frontend
view app/main/issue/show.lua @ 1208:24f4c23f76ff
Moved code from draft add action to Draft model
| author | bsw | 
|---|---|
| date | Sat Jul 18 15:58:39 2015 +0200 (2015-07-18) | 
| parents | 701a5cf6b067 | 
| children | 8288027edb54 | 
 line source
     1 local issue = Issue:by_id ( param.get_id () )
     3 if not issue then
     4   execute.view { module = "index", view = "404" }
     5   request.set_status("404 Not Found")
     6   return
     7 end
     9 local initiatives = issue.initiatives
    11 if app.session.member_id then
    12   issue:load_everything_for_member_id ( app.session.member_id )
    13   initiatives:load_everything_for_member_id ( app.session.member_id )
    14 end
    16 if not app.html_title.title then
    17   app.html_title.title = _("Issue ##{id}", { id = issue.id })
    18 end
    20 execute.view {
    21   module = "issue", view = "_head", 
    22   params = { issue = issue, member = app.session.member }
    23 }
    25 execute.view{ module = "issue", view = "_sidebar_state", params = {
    26   issue = issue
    27 } }
    29 execute.view { 
    30   module = "issue", view = "_sidebar_whatcanido", params = {
    31     issue = issue
    32   }
    33 }
    35 execute.view { 
    36   module = "issue", view = "_sidebar_members", params = {
    37     issue = issue
    38   }
    39 }
    41 ui.section( function ()
    43   execute.view{ 
    44     module = "issue", view = "_head2", params = {
    45       issue = issue
    46     }
    47   }
    49   if issue.initiatives[1].rank == 1 then
    50     execute.view{ module = "initiative", view = "_sidebar_state", params = {
    51       initiative = issue.initiatives[1]
    52     } }
    53   end
    55   ui.sectionRow( function ()
    56     execute.view {
    57       module = "initiative", view = "_list",
    58       params = { 
    59         issue = issue,
    60         initiatives = initiatives
    61       }
    62     }
    63   end )
    65 end )
    67 ui.section(function()
    68   ui.sectionHead( function()
    69     ui.heading { level = 1, content = _"Details" }
    70   end )
    71   local policy = issue.policy
    72   ui.form{
    73     record = issue,
    74     readonly = true,
    75     attr = { class = "sectionRow form" },
    76     content = function()
    77       if issue.snapshot then
    78         ui.field.timestamp{ label = _"Last counting:", value = issue.snapshot }
    79       end
    80       ui.field.text{       label = _"Population",            name = "population" }
    81       ui.field.timestamp{  label = _"Created at",            name = "created" }
    82       if policy.polling then
    83         ui.field.text{       label = _"Admission time",        value = _"Implicitly admitted" }
    84       else
    85         ui.field.text{       label = _"Admission time",        value = format.interval_text(issue.admission_time_text) }
    86         ui.field.text{
    87           label = _"Issue quorum",
    88           value = format.percentage(policy.issue_quorum_num / policy.issue_quorum_den)
    89         }
    90         if issue.population then
    91           ui.field.text{
    92             label = _"Currently required",
    93             value = math.ceil(issue.population * policy.issue_quorum_num / policy.issue_quorum_den)
    94           }
    95         end
    96       end
    97       if issue.accepted then
    98         ui.field.timestamp{  label = _"Accepted at",           name = "accepted" }
    99       end
   100       ui.field.text{       label = _"Discussion time",       value = format.interval_text(issue.discussion_time_text) }
   101       if issue.half_frozen then
   102         ui.field.timestamp{  label = _"Half frozen at",        name = "half_frozen" }
   103       end
   104       ui.field.text{       label = _"Verification time",     value = format.interval_text(issue.verification_time_text) }
   105       ui.field.text{
   106         label   = _"Initiative quorum",
   107         value = format.percentage(policy.initiative_quorum_num / policy.initiative_quorum_den)
   108       }
   109       if issue.population then
   110         ui.field.text{
   111           label   = _"Currently required",
   112           value = math.ceil(issue.population * (issue.policy.initiative_quorum_num / issue.policy.initiative_quorum_den)),
   113         }
   114       end
   115       if issue.fully_frozen then
   116         ui.field.timestamp{  label = _"Fully frozen at",       name = "fully_frozen" }
   117       end
   118       ui.field.text{       label = _"Voting time",           value = format.interval_text(issue.voting_time_text) }
   119       if issue.closed then
   120         ui.field.timestamp{  label = _"Closed",                name = "closed" }
   121       end
   122     end
   123   }
   125 end )
