# HG changeset patch # User bsw # Date 1325210383 -3600 # Node ID 6725c13b6ce012218b5ccaa1d86018deb74cdd6e # Parent 910bbf6bc6b1888494a5bfeb67aaf70ef7c5d8f4 Add initial unit support diff -r 910bbf6bc6b1 -r 6725c13b6ce0 app/main/_filter/20_session.lua --- a/app/main/_filter/20_session.lua Tue Dec 27 03:34:35 2011 +0100 +++ b/app/main/_filter/20_session.lua Fri Dec 30 02:59:43 2011 +0100 @@ -13,4 +13,6 @@ locale.set{lang = app.session.lang or config.default_lang or "en"} +request.set_perm_param("units", param.get("units")) + execute.inner() diff -r 910bbf6bc6b1 -r 6725c13b6ce0 app/main/_filter_view/30_navigation.lua --- a/app/main/_filter_view/30_navigation.lua Tue Dec 27 03:34:35 2011 +0100 +++ b/app/main/_filter_view/30_navigation.lua Fri Dec 30 02:59:43 2011 +0100 @@ -12,6 +12,34 @@ end if app.session.member or config.public_access then + + local units = Unit:get_flattened_tree() + + ui.form{ + module = "index", action = "set_current_units", + routing = { default = { mode = "redirect", module = "area", view = "list" } }, + content = function() + ui.tag{ + tag = "select", + attr = { name = "unit_ids", onchange = "this.form.submit();" }, + content = function () + for i, unit in ipairs(units) do + local selected + -- TODO support multiple units + if unit.id == param.get("units", atom.integer) then + selected = "selected" + end + ui.tag{ + tag = "option", + attr = { value = unit.id, selected = selected }, + content = unit.name + } + end + end + } + end + } + ui.link{ image = { static = "icons/16/package.png" }, text = _"Areas", diff -r 910bbf6bc6b1 -r 6725c13b6ce0 app/main/area/list.lua --- a/app/main/area/list.lua Tue Dec 27 03:34:35 2011 +0100 +++ b/app/main/area/list.lua Fri Dec 30 02:59:43 2011 +0100 @@ -1,4 +1,6 @@ -local areas_selector = Area:build_selector{ active = true } +-- TODO support multiple units +local unit_id = param.get("units", atom.integer) +local areas_selector = Area:build_selector{ active = true, unit_id = unit_id } if app.session.member_id then diff -r 910bbf6bc6b1 -r 6725c13b6ce0 app/main/index/_action/set_current_units.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/main/index/_action/set_current_units.lua Fri Dec 30 02:59:43 2011 +0100 @@ -0,0 +1,6 @@ +-- TODO support multiple units +local current_unit_id = param.get("unit_ids", atom.integer) + +request.set_perm_param("units", current_unit_id) + + diff -r 910bbf6bc6b1 -r 6725c13b6ce0 app/main/issue/_show_head.lua --- a/app/main/issue/_show_head.lua Tue Dec 27 03:34:35 2011 +0100 +++ b/app/main/issue/_show_head.lua Fri Dec 30 02:59:43 2011 +0100 @@ -194,12 +194,6 @@ } end - execute.view{ - module = "issue", - view = "_show_vote_later_box", - params = { issue = issue } - } - end if config.issue_discussion_url_func then diff -r 910bbf6bc6b1 -r 6725c13b6ce0 app/main/member/_profile.lua --- a/app/main/member/_profile.lua Tue Dec 27 03:34:35 2011 +0100 +++ b/app/main/member/_profile.lua Fri Dec 30 02:59:43 2011 +0100 @@ -111,7 +111,7 @@ } end - ui.field.text{ label = _"Last login (updated daily)", value = format.date(member.last_login_public) or _"not yet" } + ui.field.text{ label = _"Last activity (updated daily)", value = format.date(member.last_activity) or _"not yet" } end } diff -r 910bbf6bc6b1 -r 6725c13b6ce0 model/area.lua --- a/model/area.lua Tue Dec 27 03:34:35 2011 +0100 +++ b/model/area.lua Fri Dec 30 02:59:43 2011 +0100 @@ -63,5 +63,8 @@ if args.active ~= nil then selector:add_where{ "active = ?", args.active } end + if args.unit_id ~= nil then + selector:add_where{ "unit_id = ?", args.unit_id } + end return selector end diff -r 910bbf6bc6b1 -r 6725c13b6ce0 model/unit.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/model/unit.lua Fri Dec 30 02:59:43 2011 +0100 @@ -0,0 +1,17 @@ +Unit = mondelefant.new_class() +Unit.table = 'unit' + +Unit:add_reference{ + mode = '1m', + to = "Area", + this_key = 'id', + that_key = 'unit_id', + ref = 'areas', + back_ref = 'unit' +} + +function Unit:get_flattened_tree() + -- TODO implement + + return Unit:new_selector():exec() +end