annotate app/main/admin/_action/area_update.lua @ 1056:2609272f17ea
Added tag v3.0.1 for changeset 9817055e792b
 | author | 
 jbe | 
 | date | 
 Tue Jul 15 22:04:54 2014 +0200 (2014-07-15) | 
 | parents | 
 701a5cf6b067  | 
 | children | 
 9aab637c19ef  | 
 
 | rev | 
   line source | 
| 
bsw@193
 | 
     1 local area = Area:by_id(param.get_id()) or Area:new()
 | 
| 
bsw/jbe@5
 | 
     2 
 | 
| 
bsw@263
 | 
     3 param.update(area, "unit_id", "name", "description", "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
 | 
| 
poelzi@126
 | 
    23 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 
 | 
| 
poelzi@126
 | 
    33 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
 | 
| 
poelzi@126
 | 
    36   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
 |