# HG changeset patch
# User bsw
# Date 1340191869 -7200
# Node ID c676054cb0bc1b61de46d8b94cba4607fd386505
# Parent 878081c5118912488d959823a00e8332cb9cad7e
Some improvements to admin member section
diff -r 878081c51189 -r c676054cb0bc app/main/admin/_action/member_update.lua
--- a/app/main/admin/_action/member_update.lua Wed Jun 20 13:30:47 2012 +0200
+++ b/app/main/admin/_action/member_update.lua Wed Jun 20 13:31:09 2012 +0200
@@ -2,11 +2,7 @@
local member = Member:by_id(id) or Member:new()
-param.update(member, "identification", "notify_email", "admin")
-
-if param.get("invite_member", atom.boolean) then
- member:send_invitation()
-end
+param.update(member, "identification", "notify_email", "admin", "locked")
local err = member:try_save()
@@ -43,6 +39,10 @@
end
end
+if not member.activated and param.get("invite_member", atom.boolean) then
+ member:send_invitation()
+end
+
if id then
slot.put_into("notice", _"Member successfully updated")
else
diff -r 878081c51189 -r c676054cb0bc app/main/admin/member_edit.lua
--- a/app/main/admin/member_edit.lua Wed Jun 20 13:30:47 2012 +0200
+++ b/app/main/admin/member_edit.lua Wed Jun 20 13:31:09 2012 +0200
@@ -3,9 +3,9 @@
local member = Member:by_id(id)
if member then
- slot.put_into("title", encode.html(_("Member: '#{login}' (#{name})", { login = member.login, name = member.name })))
+ ui.title(_("Member: '#{identification}' (#{name})", { identification = member.identification, name = member.name }))
else
- slot.put_into("title", encode.html(_"Register new member"))
+ ui.title(_"Register new member")
end
local units_selector = Unit:new_selector()
@@ -35,6 +35,9 @@
content = function()
ui.field.text{ label = _"Identification", name = "identification" }
ui.field.text{ label = _"Notification email", name = "notify_email" }
+ if member and member.login then
+ ui.field.text{ label = _"Login name", name = "login" }
+ end
ui.field.boolean{ label = _"Admin?", name = "admin" }
slot.put("
")
@@ -48,7 +51,15 @@
end
slot.put("
")
- ui.field.boolean{ label = _"Send invite?", name = "invite_member" }
+ if not member or not member.activated then
+ ui.field.boolean{ label = _"Send invite?", name = "invite_member" }
+ end
+
+ if member then
+ ui.field.boolean{ label = _"Lock member?", name = "locked" }
+ end
+
+ slot.put("
")
ui.submit{ text = _"Save" }
end
}
diff -r 878081c51189 -r c676054cb0bc app/main/admin/member_list.lua
--- a/app/main/admin/member_list.lua Wed Jun 20 13:30:47 2012 +0200
+++ b/app/main/admin/member_list.lua Wed Jun 20 13:31:09 2012 +0200
@@ -1,40 +1,63 @@
local show_locked = param.get("show_locked", atom.boolean)
-local members_selector = Member:build_selector{
- active = not show_locked,
- order = "login"
+local locked = show_locked or false
+local search = param.get("search")
+if search then
+ locked = nil
+end
+
+local members_selector = Member:build_selector{
+ admin_search = search,
+ locked = locked,
+ order = "identification"
}
-slot.put_into("title", _"Member list")
+ui.title(_"Member list")
-slot.select("actions", function()
- ui.link{
- attr = { class = { "admin_only" } },
- text = _"Register new member",
- module = "admin",
- view = "member_edit"
- }
- if show_locked then
- ui.link{
- attr = { class = { "admin_only" } },
- text = _"Show active members",
- module = "admin",
- view = "member_list"
- }
- else
- ui.link{
- attr = { class = { "admin_only" } },
- text = _"Show locked members",
- module = "admin",
- view = "member_list",
- params = { show_locked = true }
- }
- end
+slot.select("head", function()
+ ui.container{ attr = { class = "content" }, content = function()
+ ui.container{ attr = { class = "actions" }, content = function()
+ ui.link{
+ attr = { class = { "admin_only" } },
+ text = _"Register new member",
+ module = "admin",
+ view = "member_edit"
+ }
+ slot.put(" · ")
+ if show_locked then
+ ui.link{
+ attr = { class = { "admin_only" } },
+ text = _"Show active members",
+ module = "admin",
+ view = "member_list"
+ }
+ else
+ ui.link{
+ attr = { class = { "admin_only" } },
+ text = _"Show locked members",
+ module = "admin",
+ view = "member_list",
+ params = { show_locked = true }
+ }
+ end
+ end }
+ end }
end)
+ui.form{
+ module = "admin", view = "member_list",
+ content = function()
+
+ ui.field.text{ label = _"Search for members", name = "search" }
+
+ ui.submit{ value = _"Start search" }
+
+ end
+}
+
ui.paginate{
selector = members_selector,
per_page = 30,
@@ -48,27 +71,29 @@
name = "id"
},
{
- label = _"Login",
- name = "login"
+ label = _"Identification",
+ name = "identification"
},
{
- label = _"Name",
+ label = _"Screen name",
+ name = "name"
+ },
+ {
+ label = _"Admin?",
content = function(record)
- util.put_highlighted_string(record.name)
+ if record.admin then
+ ui.field.text{ value = "admin" }
+ end
end
},
{
- label = _"Ident number",
- name = "ident_number"
- },
- {
- label = _"Admin?",
- name = "admin"
- },
- {
content = function(record)
- if not record.active then
+ if record.locked then
ui.field.text{ value = "locked" }
+ elseif not record.activated then
+ ui.field.text{ value = "not activated" }
+ elseif not record.active then
+ ui.field.text{ value = "inactive" }
end
end
},
diff -r 878081c51189 -r c676054cb0bc model/member.lua
--- a/model/member.lua Wed Jun 20 13:30:47 2012 +0200
+++ b/model/member.lua Wed Jun 20 13:31:09 2012 +0200
@@ -241,6 +241,9 @@
if args.active ~= nil then
selector:add_where{ "member.active = ?", args.active }
end
+ if args.locked ~= nil then
+ selector:add_where{ "member.locked = ?", args.locked }
+ end
if args.is_contact_of_member_id then
selector:join("contact", "__model_member__contact", "member.id = __model_member__contact.other_member_id")
selector:add_where{ "__model_member__contact.member_id = ?", args.is_contact_of_member_id }
@@ -248,11 +251,15 @@
if args.voting_right_for_unit_id then
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 })
end
+ if args.admin_search then
+ local search_string = "%" .. args.admin_search .. "%"
+ selector:add_where{ "member.identification ILIKE ? OR member.name ILIKE ?", search_string, search_string }
+ end
if args.order then
if args.order == "id" then
selector:add_order_by("id")
- elseif args.order == "login" then
- selector:add_order_by("login")
+ elseif args.order == "identification" then
+ selector:add_order_by("identification")
elseif args.order == "name" then
selector:add_order_by("name")
else