app/soc/logic/models/base.py
changeset 2221 1177ab97c2f0
parent 2203 e2c6e6722d69
child 2230 f3d59025d254
equal deleted inserted replaced
2220:6007ed887fee 2221:1177ab97c2f0
   441       # the entity has been updated call _onUpdate
   441       # the entity has been updated call _onUpdate
   442       self._onUpdate(entity)
   442       self._onUpdate(entity)
   443 
   443 
   444     return entity
   444     return entity
   445 
   445 
   446   def updateOrCreateFromFields(self, properties):
   446   def updateOrCreateFromFields(self, properties, silent=False):
   447     """Creates a new entity with the supplied properties.
   447     """Creates a new entity with the supplied properties.
   448 
   448 
   449     Args:
   449     Args:
   450       properties: dict with entity properties and their values
   450       properties: dict with entity properties and their values
       
   451       silent: if True, do not run the _onCreate hook
   451     """
   452     """
   452 
   453 
   453     for property_name in properties:
   454     for property_name in properties:
   454       self._createField(properties, property_name)
   455       self._createField(properties, property_name)
   455 
   456 
   458       entity.put()
   459       entity.put()
   459     else:
   460     else:
   460       key_name = self.getKeyNameFromFields(properties)
   461       key_name = self.getKeyNameFromFields(properties)
   461       entity = self._model.get_or_insert(key_name, **properties)
   462       entity = self._model.get_or_insert(key_name, **properties)
   462 
   463 
   463     self._onCreate(entity)
   464     if not silent:
       
   465       self._onCreate(entity)
       
   466 
   464     return entity
   467     return entity
   465 
   468 
   466   def isDeletable(self, entity):
   469   def isDeletable(self, entity):
   467     """Returns whether the specified entity can be deleted.
   470     """Returns whether the specified entity can be deleted.
   468 
   471