Example #1
0
def list(request, folder_id=None):
    """Returns a list of folders and images under them in JSON compatible format.
    Optional folder id can be passed to get folders and images under a specific folder.
    """

    if not permission_policy.user_has_any_permission(
            request.user, ['add', 'change', 'delete']):
        response = {'message': "User does not have permission"}
        return JsonResponse(response, status=403)

    if folder_id:
        folders = ImageFolder.objects.filter(id=folder_id)
        folders_list = get_folders_list(folders)
    else:
        root_folder = dict()
        root_folder['id'] = '-1'
        root_folder['title'] = 'root'

        # Get all folders under root
        folders = ImageFolder.objects.filter(folder__isnull=True)
        root_folder['sub_folders'] = get_folders_list(folders)

        # Get all images under root
        images = Image.objects.filter(folder__isnull=True)
        root_folder['images'] = list()
        for image in images:
            root_folder['images'].append(get_image_dict(image))

        folders_list = [root_folder]

    return JsonResponse(folders_list, safe=False)
Example #2
0
def search(request):
    response = dict()

    if not permission_policy.user_has_any_permission(request.user, ['add', 'change', 'delete']):
        response = {
            'message': "User does not have permission"
        }
        return JsonResponse(response, status=403)

    # Get images (filtered by user permission)
    images = permission_policy.instances_user_has_any_permission_for(
        request.user, ['change', 'delete']
    ).order_by('-created_at')

    # Search
    query_string = None
    if 'query_string' in request.GET:
        query_string = request.GET.get('query_string')
        images = images.search(query_string)
    else:
        response['message'] = "No query string passed"
        return JsonResponse(response, status=400)

    # Filter by folder
    current_folder = None
    folder_id = request.GET.get('folder_id')
    if folder_id:
        try:
            current_folder = ImageFolder.objects.get(id=folder_id)
            images = images.filter(folder=current_folder)
        except ObjectDoesNotExist:
            response['message'] = "Invalid Folder ID"
            return JsonResponse(response, status=400)

    image_list = list()
    for image in images:
        image_list.append(get_image_dict(image))

    return JsonResponse(image_list, safe=False)
Example #3
0
 def is_shown(self, request):
     return permission_policy.user_has_any_permission(
         request.user, ['add', 'change', 'delete'])
Example #4
0
 def is_shown(self, request):
     return permission_policy.user_has_any_permission(
         request.user, ['add', 'change', 'delete']
     )
Example #5
0
 def is_shown(self, request):
     return permission_policy.user_has_any_permission(request.user, ["add", "change", "delete"])