app/soc/logic/models/base.py
changeset 1694 d388ff2fbe90
parent 1672 9b6cc71dd70c
child 1696 7b120f7f9a7a
equal deleted inserted replaced
1693:c5691230da01 1694:d388ff2fbe90
   279       limit: the amount of entities to fetch at most
   279       limit: the amount of entities to fetch at most
   280       offset: the position to start at
   280       offset: the position to start at
   281       order: a list with the sort order
   281       order: a list with the sort order
   282     """
   282     """
   283 
   283 
       
   284     if unique:
       
   285       limit = 1
       
   286 
       
   287     query = self.getQueryForFields(filter=filter, order=order)
       
   288 
       
   289     result = query.fetch(limit, offset)
       
   290 
       
   291     if unique:
       
   292       return result[0] if result else None
       
   293 
       
   294     return result
       
   295 
       
   296   def getQueryForFields(self, filter=None, order=None):
       
   297     """Returns a query with the specified properties.
       
   298 
       
   299     Args:
       
   300       filter: a dict for the properties that the entities should have
       
   301       order: a list with the sort order
       
   302 
       
   303     Returns:
       
   304       - Query object instantiated with the given properties
       
   305     """
       
   306 
   284     if not filter:
   307     if not filter:
   285       filter = {}
   308       filter = {}
   286     if unique:
   309 
   287       limit = 1
       
   288     if not order:
   310     if not order:
   289       order = []
   311       order = []
   290 
   312 
   291     orderset = set([i.strip('-') for i in order])
   313     orderset = set([i.strip('-') for i in order])
   292     if len(orderset) != len(order):
   314     if len(orderset) != len(order):
   302         query.filter(key, value)
   324         query.filter(key, value)
   303 
   325 
   304     for key in order:
   326     for key in order:
   305       query.order(key)
   327       query.order(key)
   306 
   328 
   307     result = query.fetch(limit, offset)
   329     return query
   308 
       
   309     if unique:
       
   310       return result[0] if result else None
       
   311 
       
   312     return result
       
   313 
   330 
   314   def updateEntityProperties(self, entity, entity_properties, silent=False):
   331   def updateEntityProperties(self, entity, entity_properties, silent=False):
   315     """Update existing entity using supplied properties.
   332     """Update existing entity using supplied properties.
   316 
   333 
   317     Args:
   334     Args: