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")
|