| rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 local truster_id = app.session.member.id
 | 
| 
bsw/jbe@0
 | 
     2 
 | 
| 
bsw/jbe@0
 | 
     3 local trustee_id = param.get("trustee_id", atom.integer)
 | 
| 
bsw/jbe@0
 | 
     4 
 | 
| 
bsw@248
 | 
     5 local unit_id = param.get("unit_id", atom.integer)
 | 
| 
bsw@248
 | 
     6 
 | 
| 
bsw/jbe@0
 | 
     7 local area_id = param.get("area_id", atom.integer)
 | 
| 
bsw/jbe@0
 | 
     8 
 | 
| 
bsw/jbe@0
 | 
     9 local issue_id = param.get("issue_id", atom.integer)
 | 
| 
bsw/jbe@0
 | 
    10 
 | 
| 
bsw/jbe@0
 | 
    11 if issue_id then 
 | 
| 
bsw/jbe@0
 | 
    12   area_id = nil
 | 
| 
bsw/jbe@0
 | 
    13 end
 | 
| 
bsw/jbe@0
 | 
    14 
 | 
| 
bsw@248
 | 
    15 local delegation = Delegation:by_pk(truster_id, unit_id, area_id, issue_id)
 | 
| 
bsw/jbe@0
 | 
    16 
 | 
| 
bsw/jbe@4
 | 
    17 if param.get("delete") or trustee_id == -1 then
 | 
| 
bsw/jbe@0
 | 
    18 
 | 
| 
bsw/jbe@0
 | 
    19   if delegation then
 | 
| 
bsw/jbe@5
 | 
    20 
 | 
| 
bsw/jbe@0
 | 
    21     delegation:destroy()
 | 
| 
bsw/jbe@5
 | 
    22 
 | 
| 
bsw/jbe@0
 | 
    23     if issue_id then
 | 
| 
bsw/jbe@0
 | 
    24       slot.put_into("notice", _"Your delegation for this issue has been deleted.")
 | 
| 
bsw/jbe@0
 | 
    25     elseif area_id then
 | 
| 
bsw/jbe@0
 | 
    26       slot.put_into("notice", _"Your delegation for this area has been deleted.")
 | 
| 
bsw/jbe@0
 | 
    27     else
 | 
| 
bsw@248
 | 
    28       slot.put_into("notice", _"Your delegation for this unit has been deleted.")
 | 
| 
bsw/jbe@0
 | 
    29     end
 | 
| 
bsw/jbe@0
 | 
    30 
 | 
| 
bsw/jbe@0
 | 
    31   end
 | 
| 
bsw/jbe@5
 | 
    32 
 | 
| 
bsw/jbe@0
 | 
    33 else
 | 
| 
bsw/jbe@0
 | 
    34 
 | 
| 
bsw/jbe@0
 | 
    35   if not delegation then
 | 
| 
bsw/jbe@0
 | 
    36     delegation = Delegation:new()
 | 
| 
bsw/jbe@0
 | 
    37     delegation.truster_id = truster_id
 | 
| 
bsw@248
 | 
    38     delegation.unit_id    = unit_id
 | 
| 
bsw/jbe@0
 | 
    39     delegation.area_id    = area_id
 | 
| 
bsw/jbe@0
 | 
    40     delegation.issue_id   = issue_id
 | 
| 
bsw/jbe@5
 | 
    41     if issue_id then
 | 
| 
bsw/jbe@5
 | 
    42       delegation.scope = "issue"
 | 
| 
bsw/jbe@5
 | 
    43     elseif area_id then
 | 
| 
bsw/jbe@5
 | 
    44       delegation.scope = "area"
 | 
| 
bsw@248
 | 
    45     elseif unit_id then
 | 
| 
bsw@248
 | 
    46       delegation.scope = "unit"
 | 
| 
bsw/jbe@5
 | 
    47     end
 | 
| 
bsw/jbe@0
 | 
    48   end
 | 
| 
bsw@180
 | 
    49   if trustee_id == 0 then
 | 
| 
bsw@180
 | 
    50     delegation.trustee_id = nil
 | 
| 
bsw@180
 | 
    51   else
 | 
| 
bsw@180
 | 
    52     delegation.trustee_id = trustee_id
 | 
| 
bsw@180
 | 
    53   end
 | 
| 
bsw/jbe@0
 | 
    54 
 | 
| 
bsw/jbe@0
 | 
    55   delegation:save()
 | 
| 
bsw/jbe@0
 | 
    56 
 | 
| 
bsw/jbe@0
 | 
    57   if issue_id then
 | 
| 
bsw/jbe@0
 | 
    58     slot.put_into("notice", _"Your delegation for this issue has been updated.")
 | 
| 
bsw/jbe@0
 | 
    59   elseif area_id then
 | 
| 
bsw/jbe@0
 | 
    60     slot.put_into("notice", _"Your delegation for this area has been updated.")
 | 
| 
bsw/jbe@0
 | 
    61   else
 | 
| 
bsw@248
 | 
    62     slot.put_into("notice", _"Your delegation for this unit has been updated.")
 | 
| 
bsw/jbe@0
 | 
    63   end
 | 
| 
bsw/jbe@0
 | 
    64 
 | 
| 
bsw/jbe@0
 | 
    65 end
 | 
| 
bsw/jbe@0
 | 
    66 
 |