liquid_feedback_frontend
changeset 194:c0292c3a70d8
Added policy editor to admin area
author | bsw |
---|---|
date | Mon Nov 08 15:05:15 2010 +0100 (2010-11-08) |
parents | 46351752814f |
children | d8ce1feb6f37 |
files | app/main/admin/_action/policy_update.lua app/main/admin/policy_list.lua app/main/admin/policy_show.lua |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/app/main/admin/_action/policy_update.lua Mon Nov 08 15:05:15 2010 +0100 1.3 @@ -0,0 +1,14 @@ 1.4 +local policy = Policy:by_id(param.get_id()) or Policy:new() 1.5 + 1.6 +param.update( 1.7 + policy, 1.8 + "index", "name", "description", "active", 1.9 + "admission_time", "discussion_time", "verification_time", "voting_time", 1.10 + "issue_quorum_num", "issue_quorum_den", 1.11 + "initiative_quorum_num", "initiative_quorum_den", 1.12 + "majority_num", "majority_den", "majority_strict" 1.13 +) 1.14 + 1.15 +policy:save() 1.16 + 1.17 +slot.put_into("notice", _"Policy successfully updated")
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/app/main/admin/policy_list.lua Mon Nov 08 15:05:15 2010 +0100 2.3 @@ -0,0 +1,57 @@ 2.4 +local show_not_in_use = param.get("show_not_in_use", atom.boolean) or false 2.5 + 2.6 +local policies = Policy:build_selector{ active = not show_not_in_use }:exec() 2.7 + 2.8 + 2.9 +slot.put_into("title", _"Policy list") 2.10 + 2.11 + 2.12 +slot.select("actions", function() 2.13 + 2.14 + if show_not_in_use then 2.15 + ui.link{ 2.16 + attr = { class = { "admin_only" } }, 2.17 + text = _"Show policies in use", 2.18 + module = "admin", 2.19 + view = "policy_list" 2.20 + } 2.21 + 2.22 + else 2.23 + ui.link{ 2.24 + attr = { class = { "admin_only" } }, 2.25 + text = _"Create new policy", 2.26 + module = "admin", 2.27 + view = "policy_show" 2.28 + } 2.29 + ui.link{ 2.30 + attr = { class = { "admin_only" } }, 2.31 + text = _"Show policies not in use", 2.32 + module = "admin", 2.33 + view = "policy_list", 2.34 + params = { show_not_in_use = true } 2.35 + } 2.36 + 2.37 + end 2.38 + 2.39 +end) 2.40 + 2.41 + 2.42 +ui.list{ 2.43 + records = policies, 2.44 + columns = { 2.45 + 2.46 + { label = _"Policy", name = "name" }, 2.47 + 2.48 + { content = function(record) 2.49 + ui.link{ 2.50 + attr = { class = { "action admin_only" } }, 2.51 + text = _"Edit", 2.52 + module = "admin", 2.53 + view = "policy_show", 2.54 + id = record.id 2.55 + } 2.56 + end 2.57 + } 2.58 + 2.59 + } 2.60 +} 2.61 \ No newline at end of file
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/app/main/admin/policy_show.lua Mon Nov 08 15:05:15 2010 +0100 3.3 @@ -0,0 +1,59 @@ 3.4 +local policy = Policy:by_id(param.get_id()) or Policy:new() 3.5 + 3.6 + 3.7 +slot.put_into("title", _"Create / edit policy") 3.8 + 3.9 + 3.10 +slot.select("actions", function() 3.11 + ui.link{ 3.12 + attr = { class = { "admin_only" } }, 3.13 + text = _"Cancel", 3.14 + module = "admin", 3.15 + view = "policy_list" 3.16 + } 3.17 +end) 3.18 + 3.19 + 3.20 +ui.form{ 3.21 + attr = { class = "vertical" }, 3.22 + record = policy, 3.23 + module = "admin", 3.24 + action = "policy_update", 3.25 + routing = { 3.26 + default = { 3.27 + mode = "redirect", 3.28 + module = "admin", 3.29 + view = "policy_list" 3.30 + } 3.31 + }, 3.32 + id = policy.id, 3.33 + content = function() 3.34 + 3.35 + ui.field.text{ label = _"Index", name = "index" } 3.36 + 3.37 + ui.field.text{ label = _"Name", name = "name" } 3.38 + ui.field.text{ label = _"Description", name = "description", multiline = true } 3.39 + ui.field.text{ label = _"Hint", readonly = true, 3.40 + value = _"Interval format:" .. " 3 mons 2 weeks 1 day 10:30:15" } 3.41 + 3.42 + ui.field.text{ label = _"Admission time", name = "admission_time" } 3.43 + ui.field.text{ label = _"Discussion time", name = "discussion_time" } 3.44 + ui.field.text{ label = _"Verification time", name = "verification_time" } 3.45 + ui.field.text{ label = _"Voting time", name = "voting_time" } 3.46 + 3.47 + ui.field.text{ label = _"Issue quorum numerator", name = "issue_quorum_num" } 3.48 + ui.field.text{ label = _"Issue quorum denumerator", name = "issue_quorum_den" } 3.49 + 3.50 + ui.field.text{ label = _"Initiative quorum numerator", name = "initiative_quorum_num" } 3.51 + ui.field.text{ label = _"Initiative quorum denumerator", name = "initiative_quorum_den" } 3.52 + 3.53 + ui.field.text{ label = _"Majority numerator", name = "majority_num" } 3.54 + ui.field.text{ label = _"Majority denumerator", name = "majority_den" } 3.55 + 3.56 + ui.field.boolean{ label = _"Strict majority", name = "majority_strict" } 3.57 + 3.58 + ui.field.boolean{ label = _"Active?", name = "active" } 3.59 + 3.60 + ui.submit{ text = _"Save" } 3.61 + end 3.62 +}