rev |
line source |
bsw@603
|
1 ui.title(_"Policies")
|
bsw/jbe@52
|
2
|
bsw/jbe@52
|
3 util.help("policy.list", _"Policies")
|
bsw/jbe@52
|
4 local policies = Policy:new_selector()
|
bsw/jbe@52
|
5 :add_where("active")
|
bsw/jbe@52
|
6 :add_order_by("index")
|
bsw/jbe@52
|
7 :exec()
|
bsw/jbe@52
|
8
|
bsw/jbe@52
|
9 ui.list{
|
bsw/jbe@52
|
10 records = policies,
|
bsw/jbe@52
|
11 columns = {
|
bsw/jbe@52
|
12 {
|
bsw/jbe@52
|
13 label_attr = { width = "500" },
|
bsw/jbe@52
|
14 label = _"Policy",
|
bsw/jbe@52
|
15 content = function(policy)
|
bsw@867
|
16 ui.link{
|
bsw@867
|
17 module = "policy", view = "show", id = policy.id,
|
bsw/jbe@52
|
18 attr = { style = "font-weight: bold" },
|
bsw/jbe@52
|
19 content = function()
|
bsw/jbe@52
|
20 slot.put(encode.html(policy.name))
|
bsw/jbe@52
|
21 if not policy.active then
|
bsw/jbe@52
|
22 slot.put(" (", _"disabled", ")")
|
bsw/jbe@52
|
23 end
|
bsw/jbe@52
|
24 end
|
bsw/jbe@52
|
25 }
|
bsw/jbe@52
|
26 ui.tag{
|
bsw/jbe@52
|
27 tag = "div",
|
bsw/jbe@52
|
28 content = policy.description
|
bsw/jbe@52
|
29 }
|
bsw/jbe@52
|
30 end
|
bsw/jbe@52
|
31 },
|
bsw/jbe@52
|
32 {
|
bsw/jbe@52
|
33 label_attr = { width = "200" },
|
bsw/jbe@52
|
34 label = _"Phases",
|
bsw/jbe@52
|
35 content = function(policy)
|
bsw@900
|
36 if policy.polling then
|
bsw@900
|
37 ui.field.text{ label = _"New" .. ":", value = _"without" }
|
bsw@900
|
38 else
|
bsw@900
|
39 ui.field.text{ label = _"New" .. ":", value = "≤ " .. policy.admission_time }
|
bsw@900
|
40 end
|
bsw@902
|
41 ui.field.text{ label = _"Discussion" .. ":", value = policy.discussion_time or _"variable" }
|
bsw@902
|
42 ui.field.text{ label = _"Frozen" .. ":", value = policy.verification_time or _"variable" }
|
bsw@902
|
43 ui.field.text{ label = _"Voting" .. ":", value = policy.voting_time or _"variable" }
|
bsw/jbe@52
|
44 end
|
bsw/jbe@52
|
45 },
|
bsw/jbe@52
|
46 {
|
bsw/jbe@52
|
47 label_attr = { width = "200" },
|
bsw/jbe@52
|
48 label = _"Quorum",
|
bsw/jbe@52
|
49 content = function(policy)
|
bsw@900
|
50 if policy.polling then
|
bsw@900
|
51 ui.field.text{ label = _"Issue quorum" .. ":", value = _"without" }
|
bsw@900
|
52 else
|
bsw@900
|
53 ui.field.text{
|
bsw@900
|
54 label = _"Issue quorum" .. ":",
|
bsw@900
|
55 value = "≥ " .. tostring(policy.issue_quorum_num) .. "/" .. tostring(policy.issue_quorum_den)
|
bsw@900
|
56 }
|
bsw@900
|
57 end
|
bsw/jbe@52
|
58 ui.field.text{
|
bsw/jbe@52
|
59 label = _"Initiative quorum" .. ":",
|
bsw/jbe@52
|
60 value = "≥ " .. tostring(policy.initiative_quorum_num) .. "/" .. tostring(policy.initiative_quorum_den)
|
bsw/jbe@52
|
61 }
|
bsw/jbe@52
|
62 ui.field.text{
|
bsw@867
|
63 label = _"Direct majority" .. ":",
|
bsw@355
|
64 value = (policy.direct_majority_strict and ">" or "≥" ) .. " " .. tostring(policy.direct_majority_num) .. "/" .. tostring(policy.direct_majority_den)
|
bsw/jbe@52
|
65 }
|
bsw@867
|
66 ui.field.text{
|
bsw@867
|
67 label = _"Indirect majority" .. ":",
|
bsw@867
|
68 value = (policy.indirect_majority_strict and ">" or "≥" ) .. " " .. tostring(policy.indirect_majority_num) .. "/" .. tostring(policy.indirect_majority_den)
|
bsw@867
|
69 }
|
bsw/jbe@52
|
70 end
|
bsw/jbe@52
|
71 },
|
bsw/jbe@52
|
72 }
|
bsw/jbe@52
|
73 } |