app/soc/logic/models/base.py
changeset 1222 bea3987b2040
parent 1218 569a3fe9cb88
child 1307 091a21cf3627
equal deleted inserted replaced
1221:0130e63704ac 1222:bea3987b2040
   221 
   221 
   222     return key_fields
   222     return key_fields
   223 
   223 
   224   def getFromKeyName(self, key_name):
   224   def getFromKeyName(self, key_name):
   225     """"Returns entity for key_name or None if not found.
   225     """"Returns entity for key_name or None if not found.
   226 -
   226 
   227 -    Args:
   227     Args:
   228 -      key_name: key name of entity
   228       key_name: key name of entity
   229     """
   229     """
   230 
   230 
   231     return self._model.get_by_key_name(key_name)
   231     return self._model.get_by_key_name(key_name)
   232 
   232 
   233   def getFromKeyFields(self, fields):
   233   def getFromKeyFields(self, fields):
   234     """Returns the entity for the specified key names, or None if not found.
   234     """Returns the entity for the specified key names, or None if not found.
   235 
   235 
   236     Args:
   236     Args:
   237       **kwargs: the fields of the entity that uniquely identifies it
   237       fields: a dict containing the fields of the entity that 
   238     """
   238         uniquely identifies it
   239 
   239     """
   240     if all(fields.values()):
   240 
   241       key_name = self.getKeyNameFromFields(fields)
   241     key_fields = self.getKeyFieldsFromFields(fields)
       
   242 
       
   243     if all(key_fields.values()):
       
   244       key_name = self.getKeyNameFromFields(key_fields)
   242       entity = self.getFromKeyName(key_name)
   245       entity = self.getFromKeyName(key_name)
   243     else:
   246     else:
   244       entity = None
   247       entity = None
   245 
   248 
   246     return entity
   249     return entity
   247 
   250 
   248   def getFromKeyFieldsOr404(self, fields):
   251   def getFromKeyFieldsOr404(self, fields):
   249     """Like getFromKeyFields but expects to find an entity.
   252     """Like getFromKeyFields but expects to find an entity.
   250 
   253 
   251     Raises:
   254     Raises:
   252       out_of_band.Error if no User entity is found
   255       out_of_band.Error if no entity is found
   253     """
   256     """
   254 
   257 
   255     entity = self.getFromKeyFields(fields)
   258     key_fields = self.getKeyFieldsFromFields(fields)
       
   259 
       
   260     entity = self.getFromKeyFields(key_fields)
   256 
   261 
   257     if entity:
   262     if entity:
   258       return entity
   263       return entity
   259 
   264 
   260     format_text = ugettext('"%(key)s" is "%(value)s"')
   265     format_text = ugettext('"%(key)s" is "%(value)s"')
   261 
   266 
   262     msg_pairs = [format_text % {'key': key, 'value': value}
   267     msg_pairs = [format_text % {'key': key, 'value': value}
   263       for key, value in fields.iteritems()]
   268       for key, value in key_fields.iteritems()]
   264 
   269 
   265     joined_pairs = ' and '.join(msg_pairs)
   270     joined_pairs = ' and '.join(msg_pairs)
   266 
   271 
   267     msg = ugettext(
   272     msg = ugettext(
   268       'There is no "%(name)s" where %(pairs)s.') % {
   273       'There is no "%(name)s" where %(pairs)s.') % {