liquid_feedback_frontend

annotate app/main/admin/_action/area_update.lua @ 1209:fede09736f2b

Added support for external references
author bsw
date Sat Jul 18 16:20:30 2015 +0200 (2015-07-18)
parents 9aab637c19ef
children 32cc544d5a5b
rev   line source
bsw@193 1 local area = Area:by_id(param.get_id()) or Area:new()
bsw/jbe@5 2
bsw@1209 3 param.update(area, "unit_id", "name", "description", "external_reference", "active")
bsw/jbe@5 4
bsw@1045 5 if #area.name < 1 then
bsw@1045 6 slot.select("error", function()
bsw@1045 7 ui.tag{ content = _"Please choose an area name" }
bsw@1045 8 end)
bsw@1045 9 return false
bsw@1045 10 end
bsw@1045 11
bsw/jbe@5 12 area:save()
bsw/jbe@5 13
poelzi@119 14 param.update_relationship{
poelzi@119 15 param_name = "allowed_policies",
poelzi@119 16 id = area.id,
poelzi@119 17 connecting_model = AllowedPolicy,
poelzi@119 18 own_reference = "area_id",
poelzi@119 19 foreign_reference = "policy_id"
poelzi@119 20 }
poelzi@119 21
poelzi@126 22 -- we have to update the default flag because update_relationship can't handle it
bsw@1182 23 local old_default = AllowedPolicy:new_selector()
poelzi@126 24 :add_where{ "allowed_policy.area_id = ? AND allowed_policy.default_policy = 't'", area.id }
poelzi@126 25 :optional_object_mode()
poelzi@126 26 :exec()
poelzi@126 27
poelzi@126 28 if old_default then
poelzi@126 29 old_default.default_policy = false;
poelzi@126 30 old_default:save()
poelzi@126 31 end
poelzi@126 32
bsw@1182 33 local default_policy_id = param.get("default_policy", atom.integer)
poelzi@126 34
poelzi@126 35 if default_policy_id and default_policy_id ~= -1 then
bsw@1182 36 local pol = AllowedPolicy:new_selector()
poelzi@126 37 :add_where{ "allowed_policy.area_id = ? AND allowed_policy.policy_id = ?", area.id, default_policy_id }
poelzi@126 38 :optional_object_mode()
poelzi@126 39 :exec()
poelzi@126 40 if pol then
poelzi@126 41 pol.default_policy = true;
poelzi@126 42 pol:save()
poelzi@126 43 end
poelzi@126 44 end

Impressum / About Us