def test_inactive_metaschema_not_returned(self): self.schema = MetaSchema.find_one( Q('name', 'eq', 'Open-Ended Registration') & Q('schema_version', 'eq', 1)) self.url = '/{}metaschemas/{}/'.format(API_BASE, self.schema._id) res = self.app.get(self.url, auth=self.user.auth, expect_errors=True) assert_equal(res.status_code, 404)
def setUp(self): super(TestMetaSchemaDetail, self).setUp() self.user = AuthUserFactory() ensure_schemas() self.schema = MetaSchema.find_one( Q('name', 'eq', 'Prereg Challenge') & Q('schema_version', 'eq', LATEST_SCHEMA_VERSION)) self.url = '/{}metaschemas/{}/'.format(API_BASE, self.schema._id)
def get_default_odm_query(self): base_query = (Q('is_deleted', 'ne', True) & Q('is_registration', 'eq', True)) user = self.request.user permission_query = Q('is_public', 'eq', True) if not user.is_anonymous(): permission_query = (permission_query | Q('contributors', 'eq', user._id)) query = base_query & permission_query return query
def get_queryset(self): query = self.get_query_from_request() blacklisted = self.is_blacklisted(query) nodes = Node.find(query) # If attempting to filter on a blacklisted field, exclude retractions. if blacklisted: non_retracted_list = [node._id for node in nodes if not node.is_retracted] non_retracted_nodes = Node.find(Q('_id', 'in', non_retracted_list)) return non_retracted_nodes return nodes
def get_queryset(self): node = self.get_node() req_query = self.get_query_from_request() query = ( Q('_id', 'in', [e._id for e in node.nodes if e.primary]) & req_query ) nodes = Node.find(query) auth = get_user_auth(self.request) return sorted([each for each in nodes if each.can_view(auth)], key=lambda n: n.date_modified, reverse=True)
def get_queryset(self): node = self.get_node() req_query = self.get_query_from_request() node_pks = node.node_relations.filter( is_node_link=False).select_related('child').values_list( 'child__pk', flat=True) query = (Q('pk', 'in', node_pks) & req_query) nodes = Node.find(query).order_by('-date_modified') auth = get_user_auth(self.request) pks = [each.pk for each in nodes if each.can_view(auth)] return Node.objects.filter(pk__in=pks).order_by('-date_modified')
def get_requested_resources(self, request, request_data): """ Retrieves resources in request body """ model_cls = request.parser_context['view'].model_class requested_ids = [data['id'] for data in request_data] resource_object_list = model_cls.find(Q('_id', 'in', requested_ids)) for resource in resource_object_list: if getattr(resource, 'is_deleted', None): raise Gone if len(resource_object_list) != len(request_data): raise ValidationError( {'non_field_errors': 'Could not find all objects to delete.'}) return resource_object_list