liquid_feedback_frontend
changeset 581:c676054cb0bc
Some improvements to admin member section
author | bsw |
---|---|
date | Wed Jun 20 13:31:09 2012 +0200 (2012-06-20) |
parents | 878081c51189 |
children | 09a91ebcbb8c |
files | app/main/admin/_action/member_update.lua app/main/admin/member_edit.lua app/main/admin/member_list.lua model/member.lua |
line diff
1.1 --- a/app/main/admin/_action/member_update.lua Wed Jun 20 13:30:47 2012 +0200 1.2 +++ b/app/main/admin/_action/member_update.lua Wed Jun 20 13:31:09 2012 +0200 1.3 @@ -2,11 +2,7 @@ 1.4 1.5 local member = Member:by_id(id) or Member:new() 1.6 1.7 -param.update(member, "identification", "notify_email", "admin") 1.8 - 1.9 -if param.get("invite_member", atom.boolean) then 1.10 - member:send_invitation() 1.11 -end 1.12 +param.update(member, "identification", "notify_email", "admin", "locked") 1.13 1.14 local err = member:try_save() 1.15 1.16 @@ -43,6 +39,10 @@ 1.17 end 1.18 end 1.19 1.20 +if not member.activated and param.get("invite_member", atom.boolean) then 1.21 + member:send_invitation() 1.22 +end 1.23 + 1.24 if id then 1.25 slot.put_into("notice", _"Member successfully updated") 1.26 else
2.1 --- a/app/main/admin/member_edit.lua Wed Jun 20 13:30:47 2012 +0200 2.2 +++ b/app/main/admin/member_edit.lua Wed Jun 20 13:31:09 2012 +0200 2.3 @@ -3,9 +3,9 @@ 2.4 local member = Member:by_id(id) 2.5 2.6 if member then 2.7 - slot.put_into("title", encode.html(_("Member: '#{login}' (#{name})", { login = member.login, name = member.name }))) 2.8 + ui.title(_("Member: '#{identification}' (#{name})", { identification = member.identification, name = member.name })) 2.9 else 2.10 - slot.put_into("title", encode.html(_"Register new member")) 2.11 + ui.title(_"Register new member") 2.12 end 2.13 2.14 local units_selector = Unit:new_selector() 2.15 @@ -35,6 +35,9 @@ 2.16 content = function() 2.17 ui.field.text{ label = _"Identification", name = "identification" } 2.18 ui.field.text{ label = _"Notification email", name = "notify_email" } 2.19 + if member and member.login then 2.20 + ui.field.text{ label = _"Login name", name = "login" } 2.21 + end 2.22 ui.field.boolean{ label = _"Admin?", name = "admin" } 2.23 2.24 slot.put("<br />") 2.25 @@ -48,7 +51,15 @@ 2.26 end 2.27 slot.put("<br /><br />") 2.28 2.29 - ui.field.boolean{ label = _"Send invite?", name = "invite_member" } 2.30 + if not member or not member.activated then 2.31 + ui.field.boolean{ label = _"Send invite?", name = "invite_member" } 2.32 + end 2.33 + 2.34 + if member then 2.35 + ui.field.boolean{ label = _"Lock member?", name = "locked" } 2.36 + end 2.37 + 2.38 + slot.put("<br />") 2.39 ui.submit{ text = _"Save" } 2.40 end 2.41 }
3.1 --- a/app/main/admin/member_list.lua Wed Jun 20 13:30:47 2012 +0200 3.2 +++ b/app/main/admin/member_list.lua Wed Jun 20 13:31:09 2012 +0200 3.3 @@ -1,40 +1,63 @@ 3.4 local show_locked = param.get("show_locked", atom.boolean) 3.5 3.6 -local members_selector = Member:build_selector{ 3.7 - active = not show_locked, 3.8 - order = "login" 3.9 +local locked = show_locked or false 3.10 +local search = param.get("search") 3.11 +if search then 3.12 + locked = nil 3.13 +end 3.14 + 3.15 +local members_selector = Member:build_selector{ 3.16 + admin_search = search, 3.17 + locked = locked, 3.18 + order = "identification" 3.19 } 3.20 3.21 3.22 -slot.put_into("title", _"Member list") 3.23 +ui.title(_"Member list") 3.24 3.25 3.26 -slot.select("actions", function() 3.27 - ui.link{ 3.28 - attr = { class = { "admin_only" } }, 3.29 - text = _"Register new member", 3.30 - module = "admin", 3.31 - view = "member_edit" 3.32 - } 3.33 - if show_locked then 3.34 - ui.link{ 3.35 - attr = { class = { "admin_only" } }, 3.36 - text = _"Show active members", 3.37 - module = "admin", 3.38 - view = "member_list" 3.39 - } 3.40 - else 3.41 - ui.link{ 3.42 - attr = { class = { "admin_only" } }, 3.43 - text = _"Show locked members", 3.44 - module = "admin", 3.45 - view = "member_list", 3.46 - params = { show_locked = true } 3.47 - } 3.48 - end 3.49 +slot.select("head", function() 3.50 + ui.container{ attr = { class = "content" }, content = function() 3.51 + ui.container{ attr = { class = "actions" }, content = function() 3.52 + ui.link{ 3.53 + attr = { class = { "admin_only" } }, 3.54 + text = _"Register new member", 3.55 + module = "admin", 3.56 + view = "member_edit" 3.57 + } 3.58 + slot.put(" · ") 3.59 + if show_locked then 3.60 + ui.link{ 3.61 + attr = { class = { "admin_only" } }, 3.62 + text = _"Show active members", 3.63 + module = "admin", 3.64 + view = "member_list" 3.65 + } 3.66 + else 3.67 + ui.link{ 3.68 + attr = { class = { "admin_only" } }, 3.69 + text = _"Show locked members", 3.70 + module = "admin", 3.71 + view = "member_list", 3.72 + params = { show_locked = true } 3.73 + } 3.74 + end 3.75 + end } 3.76 + end } 3.77 end) 3.78 3.79 3.80 +ui.form{ 3.81 + module = "admin", view = "member_list", 3.82 + content = function() 3.83 + 3.84 + ui.field.text{ label = _"Search for members", name = "search" } 3.85 + 3.86 + ui.submit{ value = _"Start search" } 3.87 + 3.88 + end 3.89 +} 3.90 + 3.91 ui.paginate{ 3.92 selector = members_selector, 3.93 per_page = 30, 3.94 @@ -48,27 +71,29 @@ 3.95 name = "id" 3.96 }, 3.97 { 3.98 - label = _"Login", 3.99 - name = "login" 3.100 + label = _"Identification", 3.101 + name = "identification" 3.102 }, 3.103 { 3.104 - label = _"Name", 3.105 + label = _"Screen name", 3.106 + name = "name" 3.107 + }, 3.108 + { 3.109 + label = _"Admin?", 3.110 content = function(record) 3.111 - util.put_highlighted_string(record.name) 3.112 + if record.admin then 3.113 + ui.field.text{ value = "admin" } 3.114 + end 3.115 end 3.116 }, 3.117 { 3.118 - label = _"Ident number", 3.119 - name = "ident_number" 3.120 - }, 3.121 - { 3.122 - label = _"Admin?", 3.123 - name = "admin" 3.124 - }, 3.125 - { 3.126 content = function(record) 3.127 - if not record.active then 3.128 + if record.locked then 3.129 ui.field.text{ value = "locked" } 3.130 + elseif not record.activated then 3.131 + ui.field.text{ value = "not activated" } 3.132 + elseif not record.active then 3.133 + ui.field.text{ value = "inactive" } 3.134 end 3.135 end 3.136 },
4.1 --- a/model/member.lua Wed Jun 20 13:30:47 2012 +0200 4.2 +++ b/model/member.lua Wed Jun 20 13:31:09 2012 +0200 4.3 @@ -241,6 +241,9 @@ 4.4 if args.active ~= nil then 4.5 selector:add_where{ "member.active = ?", args.active } 4.6 end 4.7 + if args.locked ~= nil then 4.8 + selector:add_where{ "member.locked = ?", args.locked } 4.9 + end 4.10 if args.is_contact_of_member_id then 4.11 selector:join("contact", "__model_member__contact", "member.id = __model_member__contact.other_member_id") 4.12 selector:add_where{ "__model_member__contact.member_id = ?", args.is_contact_of_member_id } 4.13 @@ -248,11 +251,15 @@ 4.14 if args.voting_right_for_unit_id then 4.15 selector:join("privilege", "__model_member__privilege", { "member.id = __model_member__privilege.member_id AND __model_member__privilege.voting_right AND __model_member__privilege.unit_id = ?", args.voting_right_for_unit_id }) 4.16 end 4.17 + if args.admin_search then 4.18 + local search_string = "%" .. args.admin_search .. "%" 4.19 + selector:add_where{ "member.identification ILIKE ? OR member.name ILIKE ?", search_string, search_string } 4.20 + end 4.21 if args.order then 4.22 if args.order == "id" then 4.23 selector:add_order_by("id") 4.24 - elseif args.order == "login" then 4.25 - selector:add_order_by("login") 4.26 + elseif args.order == "identification" then 4.27 + selector:add_order_by("identification") 4.28 elseif args.order == "name" then 4.29 selector:add_order_by("name") 4.30 else