def foo(): referenced_objects.rewarm_cache() revisions_diff.rewarm_latest_content() instance = referenced_objects.get(self.resource_type, self.resource_id) if instance: return revisions_diff.prepare(instance, self.content)
def lazy_loader(): """Lazy load diff for revisions.""" referenced_objects.rewarm_cache() revisions_diff.rewarm_latest_content() instance = referenced_objects.get(self.resource_type, self.resource_id) if instance: return revisions_diff.prepare(instance, self.content)
def not_empty_revisions(exp, object_class, target_class, query): """Filter revisions containing object state changes.""" if object_class is not all_models.Revision: raise BadQueryException("'not_empty_revisions' operator works with " "Revision only") resource_type = exp["resource_type"] resource_id = exp["resource_id"] resource_cls = getattr(all_models, resource_type, None) if resource_cls is None: raise BadQueryException( "'{}' resource type does not exist".format(resource_type)) query = all_models.Revision.query.filter( all_models.Revision.resource_type == resource_type, all_models.Revision.resource_id == resource_id, ).order_by(all_models.Revision.created_at, ) current_instance = resource_cls.query.get(resource_id) prev_diff = None revision_with_changes = [] for revision in query: diff = revdiff_builder.prepare(current_instance, revision.content) if diff != prev_diff: revision_with_changes.append(revision.id) prev_diff = diff if not revision_with_changes: return sqlalchemy.sql.false() return all_models.Revision.id.in_(revision_with_changes)
def lazy_loader(): """Lazy load diff for revisions.""" referenced_objects.rewarm_cache() revisions_diff.rewarm_latest_content() instance = referenced_objects.get(self.resource_type, self.resource_id) if instance: return revisions_diff.prepare(instance, self.content) # return empty diff object has already been removed return {}
def prepare(self, data): data = super(FullInstanceContentFased, self).prepare(data) content = builder.prepare( referenced_objects.get(data["instance"]["type"], data["instance"]["id"]), data["full_instance_content"]) # pop out unused object_people field out of mapping_list_fields if 'mapping_list_fields' in content: content['mapping_list_fields'].pop('object_people', None) return content
def prepare(self, data): data = super(FullInstanceContentFased, self).prepare(data) content = builder.prepare( referenced_objects.get(data["instance"]["type"], data["instance"]["id"]), data["full_instance_content"]) # pop out unused object_people field out of mapping_list_fields if 'mapping_list_fields' in content: content['mapping_list_fields'].pop('object_people', None) content['mapping_list_fields'].pop('task_group_objects', None) return content
def prepare(self, data): data = super(FullInstanceContentFased, self).prepare(data) return builder.prepare( referenced_objects.get(data["instance"]["type"], data["instance"]["id"]), data["full_instance_content"])
def prepare(self, data): data = super(FullInstanceContentFased, self).prepare(data) return builder.prepare( referenced_objects.get(data["instance"]["type"], data["instance"]["id"]), data["full_instance_content"])