Example #1
0
 def resolve_all_person_tags(self, info, **kwargs):
     user = info.context.user
     if kwargs.get('multi_filter'):
         if not kwargs.get('library_id'):
             raise GraphQLError('library_id not supplied!')
         filters = kwargs.get('multi_filter').split(' ')
         photos_list = filter_photos_queryset(
             filters, Photo.objects.filter(library__users__user=user),
             kwargs.get('library_id'))
         # Sort Person tags but keep "Unknown..." ones at the end
         return Tag.objects.filter(
             library__users__user=user,
             library__id=kwargs.get('library_id'),
             type='F',
             photo_tags__photo__in=photos_list).annotate(unknown_tag=Case(
                 When(name__startswith='Unknown', then=Value(1)),
                 default=Value(2),
                 output_field=IntegerField(),
             )).order_by("-unknown_tag", Lower('name')).distinct()
     # Sort Person tags but keep "Unknown..." ones at the end
     return Tag.objects.filter(
         library__users__user=user,
         library__id=kwargs.get('library_id'),
         type='F',
         photo_tags__deleted=False).annotate(unknown_tag=Case(
             When(name__startswith='Unknown', then=Value(1)),
             default=Value(2),
             output_field=IntegerField(),
         )).order_by("-unknown_tag", Lower('name')).distinct()
Example #2
0
 def multi_filter_filter(self, queryset, name, value):
     if 'library_id:' not in value:
         raise GraphQLError('library_id not supplied!')
     filters = value.split(' ')
     filters = self.sanitize(filters)
     # filters = map(self.customize, filters)
     photos_list = filter_photos_queryset(filters, queryset)
     return photos_list
Example #3
0
 def resolve_all_generic_tags(self, info, **kwargs):
     user = info.context.user
     if kwargs.get('multi_filter'):
         if not kwargs.get('library_id'):
             raise GraphQLError('library_id not supplied!')
         filters = kwargs.get('multi_filter').split(' ')
         photos_list = filter_photos_queryset(
             filters, Photo.objects.filter(library__users__user=user),
             kwargs.get('library_id'))
         return Tag.objects.filter(library__users__user=user, library__id=kwargs.get('library_id'), type='G', photo_tags__photo__in=photos_list).distinct()
     return Tag.objects.filter(library__users__user=user, library__id=kwargs.get('library_id'), type='G')
Example #4
0
 def resolve_all_style_tags(self, info, **kwargs):
     user = info.context.user
     if kwargs.get('multi_filter'):
         filters = kwargs.get('multi_filter').split(' ')
         photos_list = filter_photos_queryset(
             filters, Photo.objects.filter(library__users__user=user),
             kwargs.get('library_id'))
         return Tag.objects.filter(
             library__users__user=user,
             library__id=kwargs.get('library_id'),
             type='S',
             photo_tags__photo__in=photos_list).distinct()
     return Tag.objects.filter(library__users__user=user,
                               library__id=kwargs.get('library_id'),
                               type='S')
Example #5
0
 def multi_filter_filter(self, queryset, name, value):
     filters = value.split(' ')
     filters = self.sanitize(filters)
     # filters = map(self.customize, filters)
     photos_list = filter_photos_queryset(filters, queryset)
     return photos_list