app/soc/logic/models/base.py
changeset 2968 7ba28890eb75
parent 2897 c0e78185444c
child 2980 cbfd8e12527a
equal deleted inserted replaced
2967:676c0ca67e21 2968:7ba28890eb75
    85     if skip_properties:
    85     if skip_properties:
    86       self._skip_properties = skip_properties
    86       self._skip_properties = skip_properties
    87     else:
    87     else:
    88       self._skip_properties = []
    88       self._skip_properties = []
    89 
    89 
       
    90   def skipField(self, name):
       
    91     """Returns whether a field with the specified name should be saved.
       
    92     """
       
    93 
       
    94     if name in self._skip_properties:
       
    95       return True
       
    96 
       
    97     if self._id_based:
       
    98       return False
       
    99 
       
   100     if name in self.getKeyFieldNames():
       
   101       return True
       
   102 
       
   103     return False
       
   104 
    90   def getModel(self):
   105   def getModel(self):
    91     """Returns the model this logic class uses.
   106     """Returns the model this logic class uses.
    92     """
   107     """
    93 
   108 
    94     return self._model
   109     return self._model
   451 
   466 
   452     properties = self._model.properties()
   467     properties = self._model.properties()
   453 
   468 
   454     for name, prop in properties.iteritems():
   469     for name, prop in properties.iteritems():
   455       # if the property is not updateable or is not updated, skip it
   470       # if the property is not updateable or is not updated, skip it
   456       if name in self._skip_properties or (name not in entity_properties):
   471       if self.skipField(name) or (name not in entity_properties):
   457         continue
   472         continue
   458 
   473 
   459       if self._updateField(entity, entity_properties, name):
   474       if self._updateField(entity, entity_properties, name):
   460         value = entity_properties[name]
   475         value = entity_properties[name]
   461         prop.__set__(entity, value)
   476         prop.__set__(entity, value)