liquid_feedback_frontend

annotate app/main/issue/show.lua @ 1436:7ab60da388fe

Show absolute initiative quorum
author bsw
date Tue Oct 16 14:36:07 2018 +0200 (2018-10-16)
parents 32cc544d5a5b
children a3a7120a67be
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/jbe@1309 4 return execute.view { module = "index", view = "404" }
bsw@1045 5 end
bsw@1045 6
bsw/jbe@1309 7 app.current_issue = issue
bsw/jbe@1309 8
bsw/jbe@1309 9 issue.area:load_delegation_info_once_for_member_id(app.session.member_id)
bsw/jbe@1309 10
bsw/jbe@1309 11 execute.view{ module = "issue", view = "_head", params = { issue = issue } }
bsw/jbe@1309 12
bsw@1045 13 local initiatives = issue.initiatives
bsw@1045 14
bsw@548 15 if app.session.member_id then
bsw@1045 16 issue:load_everything_for_member_id ( app.session.member_id )
bsw@1045 17 initiatives:load_everything_for_member_id ( app.session.member_id )
bsw@548 18 end
bsw/jbe@0 19
jorges@106 20 if not app.html_title.title then
bsw@1045 21 app.html_title.title = _("Issue ##{id}", { id = issue.id })
jorges@106 22 end
jorges@103 23
bsw/jbe@1309 24 ui.grid{ content = function()
bsw/jbe@1309 25
bsw/jbe@1309 26 ui.cell_main{ content = function()
bsw/jbe@0 27
bsw/jbe@1309 28 ui.container { attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function()
bsw/jbe@1309 29 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
bsw/jbe@1309 30 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Competing initiatives" }
bsw/jbe@1309 31 end }
bsw/jbe@1309 32 execute.view {
bsw/jbe@1309 33 module = "initiative", view = "_list",
bsw/jbe@1309 34 params = {
bsw/jbe@1309 35 issue = issue,
bsw/jbe@1309 36 initiatives = initiatives
bsw/jbe@1309 37 }
bsw/jbe@1309 38 }
bsw/jbe@1309 39 end }
bsw@719 40
bsw/jbe@1309 41 ui.container { attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function()
bsw/jbe@1309 42
bsw/jbe@1309 43 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
bsw/jbe@1309 44 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Details" }
bsw/jbe@1309 45 end }
bsw@1045 46
bsw/jbe@1309 47 ui.container{ attr = { class = "mdl-card__content" }, content = function()
bsw/jbe@1309 48 local policy = issue.policy
bsw/jbe@1309 49 ui.form{
bsw/jbe@1309 50 record = issue,
bsw/jbe@1309 51 readonly = true,
bsw/jbe@1309 52 attr = { class = "sectionRow form" },
bsw/jbe@1309 53 content = function()
bsw/jbe@1309 54 if issue.snapshot then
bsw/jbe@1309 55 ui.field.timestamp{ label = _"Last counting:", value = issue.snapshot }
bsw/jbe@1309 56 end
bsw/jbe@1309 57 ui.field.text{ label = _"Population", name = "population" }
bsw/jbe@1309 58 ui.field.timestamp{ label = _"Created at", name = "created" }
bsw/jbe@1309 59 if policy.polling then
bsw/jbe@1309 60 ui.field.text{ label = _"Admission time", value = _"Implicitly admitted" }
bsw/jbe@1309 61 else
bsw/jbe@1309 62 ui.field.text{ label = _"Minimum admission time", value = format.interval_text(issue.min_admission_time_text) }
bsw/jbe@1309 63 ui.field.text{ label = _"Maximum admission time", value = format.interval_text(issue.max_admission_time_text) }
bsw/jbe@1309 64 ui.field.text{ label = _"Issue quorum", value = issue.issue_quorum }
bsw/jbe@1309 65 end
bsw/jbe@1309 66 if issue.accepted then
bsw/jbe@1309 67 ui.field.timestamp{ label = _"Accepted at", name = "accepted" }
bsw/jbe@1309 68 end
bsw/jbe@1309 69 ui.field.text{ label = _"Discussion time", value = format.interval_text(issue.discussion_time_text) }
bsw/jbe@1309 70 if issue.half_frozen then
bsw/jbe@1309 71 ui.field.timestamp{ label = _"Half frozen at", name = "half_frozen" }
bsw/jbe@1309 72 end
bsw/jbe@1309 73 ui.field.text{ label = _"Verification time", value = format.interval_text(issue.verification_time_text) }
bsw@1436 74 local quorums = {}
bsw@1436 75 if policy.initiative_quorum_num / policy.initiative_quorum_den then
bsw@1436 76 table.insert(quorums, format.percentage(policy.initiative_quorum_num / policy.initiative_quorum_den))
bsw@1436 77 end
bsw@1436 78 if policy.initiative_quorum then
bsw@1436 79 table.insert(quorums, policy.initiative_quorum)
bsw@1436 80 end
bsw/jbe@1309 81 ui.field.text{
bsw/jbe@1309 82 label = _"Initiative quorum",
bsw@1436 83 value = table.concat(quorums, " / ")
bsw/jbe@1309 84 }
bsw/jbe@1309 85 if issue.fully_frozen then
bsw/jbe@1309 86 ui.field.timestamp{ label = _"Fully frozen at", name = "fully_frozen" }
bsw/jbe@1309 87 end
bsw/jbe@1309 88 ui.field.text{ label = _"Voting time", value = format.interval_text(issue.voting_time_text) }
bsw/jbe@1309 89 if issue.closed then
bsw/jbe@1309 90 ui.field.timestamp{ label = _"Closed", name = "closed" }
bsw/jbe@1309 91 end
bsw/jbe@1309 92 end
bsw/jbe@1309 93 }
bsw@719 94
bsw/jbe@1309 95 if issue.initiatives[1].rank == 1 then
bsw/jbe@1309 96 execute.view{ module = "initiative", view = "_sidebar_state", params = {
bsw/jbe@1309 97 initiative = issue.initiatives[1]
bsw/jbe@1309 98 } }
bsw/jbe@1309 99 end
bsw/jbe@1309 100
bsw/jbe@1309 101 end }
bsw/jbe@1309 102
bsw/jbe@1309 103 end }
bsw/jbe@1309 104
bsw/jbe@1309 105 end }
bsw/jbe@1309 106
bsw/jbe@1309 107 ui.cell_sidebar{ content = function()
bsw/jbe@1309 108 if config.logo then
bsw/jbe@1309 109 config.logo()
bsw/jbe@1309 110 end
bsw@1045 111 execute.view {
bsw/jbe@1309 112 module = "issue", view = "_sidebar",
bsw/jbe@1309 113 params = {
bsw@1045 114 issue = issue,
bsw/jbe@1309 115 member = app.session.member
bsw@1045 116 }
bsw@1045 117 }
bsw/jbe@19 118
bsw/jbe@1309 119 execute.view {
bsw/jbe@1309 120 module = "issue", view = "_sidebar_whatcanido",
bsw/jbe@1309 121 params = {
bsw/jbe@1309 122 issue = issue,
bsw/jbe@1309 123 member = app.session.member
bsw/jbe@1309 124 }
bsw/jbe@1309 125 }
bsw/jbe@1309 126
bsw/jbe@1309 127 if not config.voting_only or issue.state ~= "voting" then
bsw/jbe@1309 128 execute.view {
bsw/jbe@1309 129 module = "issue", view = "_sidebar_members", params = {
bsw/jbe@1309 130 issue = issue
bsw@1045 131 }
bsw@1045 132 }
bsw@1045 133 end
bsw/jbe@1309 134 end }
bsw/jbe@19 135
bsw/jbe@1309 136 end }

Impressum / About Us