liquid_feedback_frontend
view model/area.lua @ 288:ad5d7a4eb13d
Fixed 0 more initiatives bug
| author | bsw | 
|---|---|
| date | Sat Feb 25 12:42:42 2012 +0100 (2012-02-25) | 
| parents | 808269b7f41c | 
| children | 63d6549cc00b | 
 line source
     1 Area = mondelefant.new_class()
     2 Area.table = 'area'
     4 Area:add_reference{
     5   mode          = 'm1',
     6   to            = "Unit",
     7   this_key      = 'unit_id',
     8   that_key      = 'id',
     9   ref           = 'unit',
    10 }
    12 Area:add_reference{
    13   mode          = '1m',
    14   to            = "Issue",
    15   this_key      = 'id',
    16   that_key      = 'area_id',
    17   ref           = 'issues',
    18   back_ref      = 'area'
    19 }
    21 Area:add_reference{
    22   mode          = '1m',
    23   to            = "Membership",
    24   this_key      = 'id',
    25   that_key      = 'area_id',
    26   ref           = 'memberships',
    27   back_ref      = 'area'
    28 }
    30 Area:add_reference{
    31   mode          = '1m',
    32   to            = "Delegation",
    33   this_key      = 'id',
    34   that_key      = 'area_id',
    35   ref           = 'delegations',
    36   back_ref      = 'area'
    37 }
    39 Area:add_reference{
    40   mode                  = 'mm',
    41   to                    = "Member",
    42   this_key              = 'id',
    43   that_key              = 'id',
    44   connected_by_table    = 'membership',
    45   connected_by_this_key = 'area_id',
    46   connected_by_that_key = 'member_id',
    47   ref                   = 'members'
    48 }
    50 Area:add_reference{
    51   mode                  = 'mm',
    52   to                    = "Policy",
    53   this_key              = 'id',
    54   that_key              = 'id',
    55   connected_by_table    = 'allowed_policy',
    56   connected_by_this_key = 'area_id',
    57   connected_by_that_key = 'policy_id',
    58   ref                   = 'allowed_policies'
    59 }
    61 function Area.object_get:default_policy()
    62   return Policy:new_selector()
    63     :join("allowed_policy", nil, "allowed_policy.policy_id = policy.id")
    64     :add_where{ "allowed_policy.area_id = ? AND allowed_policy.default_policy", self.id }
    65     :optional_object_mode()
    66     :exec()
    67 end
    69 function Area:build_selector(args)
    70   local selector = Area:new_selector()
    71   if args.active ~= nil then
    72     selector:add_where{ "area.active = ?", args.active }
    73   end
    74   if args.unit_id ~= nil then
    75     selector:add_where{ "area.unit_id = ?", args.unit_id }
    76   end
    77   return selector
    78 end
    80 function Area.object_get:name_with_unit_name()
    81   if not config.single_unit_id then
    82     return self.unit.name .. ", " .. self.name
    83   else
    84     return self.name
    85   end
    86 end
