Beispiel #1
0
 def get_audit_object_pool_query(self, child_ids=None):
     if isinstance(self.row_converter.obj, models.Audit):
         audit_id = self.row_converter.obj.id
     elif hasattr(self.row_converter.obj, "audit_id"):
         audit_id = (getattr(self.row_converter.obj, "audit_id")
                     or getattr(self.row_converter.obj, "audit").id)
     elif self.row_converter.is_new and self.related_audit:
         audit_id = self.related_audit.id
     else:
         sub = models.Relationship.get_related_query(
             self.row_converter.obj,
             models.Audit(),
         ).subquery("audit")
         audit_id = sqlalchemy.case(
             [
                 (
                     sub.c.destination_type == models.Audit.__name__,
                     sub.c.destination_id,
                 ),
             ],
             else_=sub.c.source_id,
         )
     query = models.Snapshot.query.filter(
         models.Snapshot.parent_id == audit_id,
         models.Snapshot.parent_type == models.Audit.__name__,
         models.Snapshot.child_type == self.mapping_object.__name__,
     )
     if child_ids:
         query = query.filter(models.Snapshot.child_id.in_(child_ids))
     return query
Beispiel #2
0
 def audit_object_pool_query(self):
     if self.row_converter.is_new and self.related_audit:
         return models.Snapshot.query.filter(
             models.Snapshot.parent_id == self.related_audit.id,
             models.Snapshot.parent_type == models.Audit.__name__,
             models.Snapshot.child_type == self.mapping_object.__name__,
         )
     else:
         sub = models.Relationship.get_related_query(
             self.row_converter.obj,
             models.Audit(),
         ).subquery("audit")
         case_statement = sqlalchemy.case(
             [
                 (
                     sub.c.destination_type == models.Audit.__name__,
                     sub.c.destination_id,
                 ),
             ],
             else_=sub.c.source_id,
         )
         return models.Snapshot.query.filter(
             models.Snapshot.parent_id == case_statement,
             models.Snapshot.parent_type == models.Audit.__name__,
             models.Snapshot.child_type == self.mapping_object.__name__,
         )