liquid_feedback_frontend
diff model/area.lua @ 212:3e4ad069847a
Some more work at 2nd generation frontend code
author | bsw |
---|---|
date | Thu Mar 03 18:39:00 2011 +0100 (2011-03-03) |
parents | 4993b71b383f |
children | 73dbc9e2bfd4 |
line diff
1.1 --- a/model/area.lua Wed Mar 02 20:06:26 2011 +0100 1.2 +++ b/model/area.lua Thu Mar 03 18:39:00 2011 +0100 1.3 @@ -50,6 +50,38 @@ 1.4 ref = 'allowed_policies' 1.5 } 1.6 1.7 +Area:add_reference{ 1.8 + mode = '11', 1.9 + to = "Membership", 1.10 + this_key = 'id', 1.11 + that_key = 'area_id', 1.12 + ref = 'membership_for_member', 1.13 + back_ref = 'area', 1.14 + selector_generator = function(list, options) 1.15 + local member_id = assert(options.member_id) 1.16 + 1.17 + -- build list of issue ids 1.18 + local ids = { sep = ", " } 1.19 + for i, object in ipairs(list) do 1.20 + local id = object.id 1.21 + if id ~= nil then 1.22 + ids[#ids+1] = {"?", id} 1.23 + end 1.24 + end 1.25 + 1.26 + if #ids == 0 then 1.27 + return Membership:new_selector():empty_list_mode() 1.28 + end 1.29 + 1.30 + local selector = Membership:new_selector() 1.31 + selector:add_where{ 'membership.area_id IN ($)', ids } 1.32 + selector:add_where{ 'membership.member_id = ?', member_id } 1.33 + 1.34 + return selector 1.35 + end 1.36 +} 1.37 + 1.38 + 1.39 function Area.object_get:default_policy() 1.40 return Policy:new_selector() 1.41 :join("allowed_policy", nil, "allowed_policy.policy_id = policy.id")