app/soc/logic/models/priority_group.py
changeset 2208 1bf4e904d5f5
child 2365 a66e1dd8ced7
equal deleted inserted replaced
2207:f283f7b99427 2208:1bf4e904d5f5
       
     1 #!/usr/bin/python2.5
       
     2 #
       
     3 # Copyright 2009 the Melange authors.
       
     4 #
       
     5 # Licensed under the Apache License, Version 2.0 (the "License");
       
     6 # you may not use this file except in compliance with the License.
       
     7 # You may obtain a copy of the License at
       
     8 #
       
     9 #   http://www.apache.org/licenses/LICENSE-2.0
       
    10 #
       
    11 # Unless required by applicable law or agreed to in writing, software
       
    12 # distributed under the License is distributed on an "AS IS" BASIS,
       
    13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       
    14 # See the License for the specific language governing permissions and
       
    15 # limitations under the License.
       
    16 
       
    17 """Priority Group (Model) query functions.
       
    18 """
       
    19 
       
    20 __authors__ = [
       
    21   '"Sverre Rabbelier" <sverre@rabbelier.nl>',
       
    22   ]
       
    23 
       
    24 
       
    25 from soc.logic.models import base
       
    26 
       
    27 import soc.models.priority_group
       
    28 
       
    29 
       
    30 class Logic(base.Logic):
       
    31   """Logic methods for the Priority Group model.
       
    32   """
       
    33 
       
    34   def __init__(self, model=soc.models.priority_group.PriorityGroup,
       
    35                base_model=None, scope_logic=None):
       
    36     """Defines the name, key_name and model for this entity.
       
    37     """
       
    38 
       
    39     self.EMAIL = 'emails'
       
    40     self.CONVERT = 'convert'
       
    41 
       
    42     self.groups = {
       
    43         self.EMAIL: 'Send out emails',
       
    44         self.CONVERT: 'Convert one entity to another type',
       
    45         }
       
    46 
       
    47     super(Logic, self).__init__(model=model, base_model=base_model,
       
    48                                 scope_logic=scope_logic)
       
    49 
       
    50   def getKeyValuesFromEntity(self, entity):
       
    51     """See base.Logic.getKeyValuesFromEntity.
       
    52     """
       
    53 
       
    54     return [entity.link_id]
       
    55 
       
    56   def getKeyValuesFromFields(self, fields):
       
    57     """See base.Logic.getKeyValuesFromFields.
       
    58     """
       
    59 
       
    60     return [fields['link_id']]
       
    61 
       
    62   def getKeyFieldNames(self):
       
    63     """See base.Logic.getKeyFieldNames.
       
    64     """
       
    65 
       
    66     return ['link_id']
       
    67 
       
    68   def getGroup(self, key_name):
       
    69     """Return the specified Priority Group entity.
       
    70     """
       
    71 
       
    72     if key_name not in self.groups:
       
    73       raise base.InvalidArgumentError("Unknown priority group %s." % key_name)
       
    74 
       
    75     group = self.getFromKeyName(key_name)
       
    76 
       
    77     if not group:
       
    78       fields = {
       
    79           'link_id': key_name,
       
    80           'name': self.groups[key_name],
       
    81           'priority': 0,
       
    82           }
       
    83 
       
    84       group = self.updateOrCreateFromKeyName(fields, key_name)
       
    85 
       
    86     return group
       
    87 
       
    88 
       
    89 logic = Logic()