| rev | line source | 
| bsw/jbe@52 | 1 local policy = Policy:by_id(param.get_id()) | 
| bsw/jbe@52 | 2 | 
| bsw/jbe@52 | 3 slot.put_into("title", encode.html(_("Policy '#{name}'", { name = policy.name }))) | 
| bsw/jbe@52 | 4 | 
| bsw/jbe@52 | 5 ui.form{ | 
| bsw/jbe@52 | 6   attr = { class = "vertical" }, | 
| bsw/jbe@52 | 7   record = policy, | 
| bsw/jbe@52 | 8   content = function() | 
| bsw@900 | 9     if policy.polling then | 
| bsw@900 | 10       ui.field.text{ label = _"New" .. ":", value = _"without" } | 
| bsw@900 | 11     else | 
| bsw@1234 | 12       ui.field.text{ label = _"New" .. ":", value = "≤ min " .. policy.min_admission_time } | 
| bsw@1234 | 13       ui.field.text{ label = _"New" .. ":", value = "≤ max " .. policy.max_admission_time } | 
| bsw@900 | 14     end | 
| bsw@902 | 15     ui.field.text{ label = _"Discussion" .. ":", value = policy.discussion_time or _"variable" } | 
| bsw@902 | 16     ui.field.text{ label = _"Frozen" .. ":", value = policy.verification_time or _"variable" } | 
| bsw@902 | 17     ui.field.text{ label = _"Voting" .. ":", value = policy.voting_time or _"variable" } | 
| bsw@902 | 18 | 
| bsw@900 | 19     if policy.polling then | 
| bsw@900 | 20       ui.field.text{ label = _"Issue quorum" .. ":", value = _"without" } | 
| bsw@900 | 21     else | 
| bsw@900 | 22       ui.field.text{ | 
| bsw@900 | 23         label = _"Issue quorum", | 
| bsw@900 | 24         value = "≥ " .. tostring(policy.issue_quorum_num) .. "/" .. tostring(policy.issue_quorum_den) | 
| bsw@900 | 25       } | 
| bsw@900 | 26     end | 
| bsw/jbe@52 | 27     ui.field.text{ | 
| bsw/jbe@52 | 28       label = _"Initiative quorum", | 
| bsw/jbe@52 | 29       value = "≥ " .. tostring(policy.initiative_quorum_num) .. "/" .. tostring(policy.initiative_quorum_den) | 
| bsw/jbe@52 | 30     } | 
| bsw/jbe@52 | 31     ui.field.text{ | 
| bsw@286 | 32       label = _"Direct majority", | 
| bsw@286 | 33       value = | 
| bsw@286 | 34         (policy.direct_majority_strict and ">" or "≥" ) .. " " | 
| bsw@286 | 35         .. tostring(policy.direct_majority_num) .. "/" | 
| bsw@286 | 36         .. tostring(policy.direct_majority_den) | 
| bsw@286 | 37         .. (policy.direct_majority_positive > 1 and ", " .. _("at least #{count} approvals", { count = policy.direct_majority_positive }) or "") | 
| bsw@286 | 38         .. (policy.direct_majority_non_negative > 1 and ", " .. _("at least #{count} approvals or abstentions", { count = policy.direct_majority_non_negative }) or "") | 
| bsw/jbe@52 | 39     } | 
| bsw/jbe@52 | 40 | 
| bsw@286 | 41     ui.field.text{ | 
| bsw@286 | 42       label = _"Indirect majority", | 
| bsw@286 | 43       value = | 
| bsw@286 | 44         (policy.indirect_majority_strict and ">" or "≥" ) .. " " | 
| bsw@286 | 45         .. tostring(policy.indirect_majority_num) .. "/" | 
| bsw@286 | 46         .. tostring(policy.indirect_majority_den) | 
| bsw@286 | 47         .. (policy.indirect_majority_positive > 1 and ", " .. _("at least #{count} approvals", { count = policy.indirect_majority_positive }) or "") | 
| bsw@286 | 48         .. (policy.indirect_majority_non_negative > 1 and ", " .. _("at least #{count} approvals or abstentions", { count = policy.indirect_majority_non_negative }) or "") | 
| bsw@286 | 49     } | 
| bsw@286 | 50 | 
| bsw@286 | 51     local texts = {} | 
| bsw@286 | 52     if policy.no_reverse_beat_path then | 
| bsw@286 | 53       texts[#texts+1] = _"no reverse beat path to status quo (including ties)" | 
| bsw@286 | 54     end | 
| bsw@286 | 55     if policy.no_multistage_majority then | 
| bsw@286 | 56       texts[#texts+1] = _"prohibit potentially instable results caused by multistage majorities" | 
| bsw@286 | 57     end | 
| bsw@286 | 58     ui.field.text{ | 
| bsw@286 | 59       label = _"Options", | 
| bsw@286 | 60       value = table.concat(texts, ", ") | 
| bsw@286 | 61     } | 
| bsw@900 | 62     if policy.description and #policy.description > 0 then | 
| bsw@900 | 63       ui.container{ | 
| bsw@900 | 64         attr = { class = "suggestion_content wiki" }, | 
| bsw@900 | 65         content = function() | 
| bsw@900 | 66           ui.tag{ | 
| bsw@900 | 67             tag = "p", | 
| bsw@900 | 68             content = policy.description | 
| bsw@900 | 69           } | 
| bsw@900 | 70         end | 
| bsw@900 | 71       } | 
| bsw@900 | 72     end | 
| bsw/jbe@52 | 73 | 
| bsw/jbe@52 | 74   end | 
| bsw/jbe@52 | 75 } |