liquid_feedback_frontend

annotate app/main/issue/show.lua @ 1247:d08e4cadd33c

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

Impressum / About Us