liquid_feedback_frontend

annotate app/main/admin/_action/area_update.lua @ 158:39d49cf933d8

fix another not correctly shown case
author Daniel Poelzleithner <poelzi@poelzi.org>
date Fri Oct 08 20:36:56 2010 +0200 (2010-10-08)
parents 36aedac3e4bf
children 46351752814f
rev   line source
bsw/jbe@5 1 if not app.session.member.admin then
bsw/jbe@5 2 error()
bsw/jbe@5 3 end
bsw/jbe@5 4
bsw/jbe@5 5 local id = param.get_id()
bsw/jbe@5 6
bsw/jbe@5 7 local area
bsw/jbe@5 8 if id then
bsw/jbe@5 9 area = Area:new_selector():add_where{ "id = ?", id }:single_object_mode():exec()
bsw/jbe@5 10 else
bsw/jbe@5 11 area = Area:new()
bsw/jbe@5 12 end
bsw/jbe@5 13
bsw/jbe@5 14
bsw/jbe@5 15 param.update(area, "name", "description", "active")
bsw/jbe@5 16
bsw/jbe@5 17 area:save()
bsw/jbe@5 18
poelzi@119 19 param.update_relationship{
poelzi@119 20 param_name = "allowed_policies",
poelzi@119 21 id = area.id,
poelzi@119 22 connecting_model = AllowedPolicy,
poelzi@119 23 own_reference = "area_id",
poelzi@119 24 foreign_reference = "policy_id"
poelzi@119 25 }
poelzi@119 26
poelzi@126 27 -- we have to update the default flag because update_relationship can't handle it
poelzi@126 28 old_default = AllowedPolicy:new_selector()
poelzi@126 29 :add_where{ "allowed_policy.area_id = ? AND allowed_policy.default_policy = 't'", area.id }
poelzi@126 30 :optional_object_mode()
poelzi@126 31 :exec()
poelzi@126 32
poelzi@126 33 if old_default then
poelzi@126 34 old_default.default_policy = false;
poelzi@126 35 old_default:save()
poelzi@126 36 end
poelzi@126 37
poelzi@126 38 default_policy_id = param.get("default_policy", atom.integer)
poelzi@126 39
poelzi@126 40 if default_policy_id and default_policy_id ~= -1 then
poelzi@126 41 pol = AllowedPolicy:new_selector()
poelzi@126 42 :add_where{ "allowed_policy.area_id = ? AND allowed_policy.policy_id = ?", area.id, default_policy_id }
poelzi@126 43 :optional_object_mode()
poelzi@126 44 :exec()
poelzi@126 45 if pol then
poelzi@126 46 pol.default_policy = true;
poelzi@126 47 pol:save()
poelzi@126 48 end
poelzi@126 49 end
poelzi@126 50
bsw/jbe@5 51 slot.put_into("notice", _"Area successfully updated")

Impressum / About Us