| rev | 
   line source | 
| 
bsw@193
 | 
     1 local area = Area:by_id(param.get_id()) or Area:new()
 | 
| 
bsw/jbe@5
 | 
     2 
 | 
| 
bsw/jbe@1309
 | 
     3 param.update(area, "unit_id", "name", "description", "external_reference", "quorum_standard", "quorum_issues", "quorum_time", "quorum_exponent", "quorum_factor", "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
 |