annotate app/main/admin/_action/area_update.lua @ 549:42d070777353
Optimized fetching of calculated state_time_left attribute of issue
 | author | 
 bsw | 
 | date | 
 Tue May 29 20:52:20 2012 +0200 (2012-05-29) | 
 | parents | 
 f42d16567c5d  | 
 | children | 
 bc6934411019  | 
 
 | 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/jbe@5
 | 
     5 area:save()
 | 
| 
bsw/jbe@5
 | 
     6 
 | 
| 
poelzi@119
 | 
     7 param.update_relationship{
 | 
| 
poelzi@119
 | 
     8   param_name        = "allowed_policies",
 | 
| 
poelzi@119
 | 
     9   id                = area.id,
 | 
| 
poelzi@119
 | 
    10   connecting_model  = AllowedPolicy,
 | 
| 
poelzi@119
 | 
    11   own_reference     = "area_id",
 | 
| 
poelzi@119
 | 
    12   foreign_reference = "policy_id"
 | 
| 
poelzi@119
 | 
    13 }
 | 
| 
poelzi@119
 | 
    14 
 | 
| 
poelzi@126
 | 
    15 -- we have to update the default flag because update_relationship can't handle it
 | 
| 
poelzi@126
 | 
    16 old_default = AllowedPolicy:new_selector()
 | 
| 
poelzi@126
 | 
    17 :add_where{ "allowed_policy.area_id = ? AND allowed_policy.default_policy = 't'", area.id }
 | 
| 
poelzi@126
 | 
    18 :optional_object_mode()
 | 
| 
poelzi@126
 | 
    19 :exec()
 | 
| 
poelzi@126
 | 
    20 
 | 
| 
poelzi@126
 | 
    21 if old_default then
 | 
| 
poelzi@126
 | 
    22   old_default.default_policy = false;
 | 
| 
poelzi@126
 | 
    23   old_default:save()
 | 
| 
poelzi@126
 | 
    24 end
 | 
| 
poelzi@126
 | 
    25 
 | 
| 
poelzi@126
 | 
    26 default_policy_id = param.get("default_policy", atom.integer)
 | 
| 
poelzi@126
 | 
    27 
 | 
| 
poelzi@126
 | 
    28 if default_policy_id and default_policy_id ~= -1 then
 | 
| 
poelzi@126
 | 
    29   pol = AllowedPolicy:new_selector()
 | 
| 
poelzi@126
 | 
    30   :add_where{ "allowed_policy.area_id = ? AND allowed_policy.policy_id = ?", area.id, default_policy_id }
 | 
| 
poelzi@126
 | 
    31   :optional_object_mode()
 | 
| 
poelzi@126
 | 
    32   :exec()
 | 
| 
poelzi@126
 | 
    33   if pol then
 | 
| 
poelzi@126
 | 
    34     pol.default_policy = true;
 | 
| 
poelzi@126
 | 
    35     pol:save()
 | 
| 
poelzi@126
 | 
    36   end
 | 
| 
poelzi@126
 | 
    37 end
 | 
| 
poelzi@126
 | 
    38 
 | 
| 
bsw/jbe@5
 | 
    39 slot.put_into("notice", _"Area successfully updated")
 |