annotate app/main/admin/_action/area_update.lua @ 1291:32d5195a7152
Going to version 3.2.0
 | author | 
 bsw | 
 | date | 
 Mon Apr 18 10:49:57 2016 +0200 (2016-04-18) | 
 | parents | 
 fede09736f2b  | 
 | 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
 |