def add(request, add_to_folder=False): ImageFolder = get_folder_model() ImageFolderForm = get_folder_form(ImageFolder) parent_folder = False if add_to_folder: parent_folder = get_object_or_404(ImageFolder, id=add_to_folder) if request.method == 'POST': # Build a form for validation form = ImageFolderForm(request.POST) error = True if form.is_valid(): error = False folder = ImageFolder( title=form.cleaned_data['title'].strip() ) if parent_folder: folder.folder = parent_folder try: # Check if the folder is present in the DB or physically present in the OS folder.validate_folder() except ValidationError as e: error = True form._errors['title'] = e.message if not error: # Save folder folder.save() # Success! Send back to index or image specific folder response = redirect('wagtailimages:index') response['Location'] += '?folder={0}'.format(folder.id) return response else: # Validation error return render(request, 'wagtailimages/folder/add.html', { 'error_message': 'Error adding folder', 'help_text': '', 'parent_folder': parent_folder, 'form': form, }) else: form = ImageFolderForm() return render(request, 'wagtailimages/folder/add.html', { 'help_text': '', 'parent_folder': parent_folder, 'form': form, })
def add(request, add_to_folder=False): ImageFolder = get_folder_model() ImageFolderForm = get_folder_form(ImageFolder) parent_folder = False if add_to_folder: parent_folder = get_object_or_404(ImageFolder, id=add_to_folder) if request.method == 'POST': # Build a form for validation form = ImageFolderForm(request.POST) error = True if form.is_valid(): error = False folder = ImageFolder(title=form.cleaned_data['title'].strip()) if parent_folder: folder.folder = parent_folder try: # Check if the folder is present in the DB or physically present in the OS folder.validate_folder() except ValidationError as e: error = True form._errors['title'] = e.message if not error: # Save folder folder.save() # Success! Send back to index or image specific folder response = redirect('wagtailimages:index') response['Location'] += '?folder={0}'.format(folder.id) return response else: # Validation error return render( request, 'wagtailimages/folder/add.html', { 'error_message': 'Error adding folder', 'help_text': '', 'parent_folder': parent_folder, 'form': form, }) else: form = ImageFolderForm() return render(request, 'wagtailimages/folder/add.html', { 'help_text': '', 'parent_folder': parent_folder, 'form': form, })
def edit(request, folder_id): ImageFolder = get_folder_model() ImageFolderForm = get_folder_form(ImageFolder) folder = get_object_or_404(ImageFolder, id=folder_id) if request.method == 'POST': # Build a form for validation form = ImageFolderForm(request.POST) if form.is_valid(): folder.title = form.cleaned_data['title'] try: # Check if the folder is present in the DB or physically present in the OS folder.validate_folder() except ValidationError as e: form._errors['title'] = e.message # Validation error return render( request, 'wagtailimages/folder/edit.html', { 'error_message': 'Error adding folder', 'help_text': '', 'form': form, }) folder.save() # Success! Send back to index or image specific folder response = redirect('wagtailimages:index') response['Location'] += '?folder={0}'.format(folder.id) return response else: # Validation error return render( request, 'wagtailimages/folder/edit.html', { 'error_message': 'Error adding folder', 'help_text': '', 'form': form, }) else: form = ImageFolderForm(instance=folder) return render(request, 'wagtailimages/folder/edit.html', { 'help_text': '', 'folder': folder, 'form': form, })
def edit(request, folder_id): ImageFolder = get_folder_model() ImageFolderForm = get_folder_form(ImageFolder) folder = get_object_or_404(ImageFolder, id=folder_id) if request.method == 'POST': # Build a form for validation form = ImageFolderForm(request.POST) if form.is_valid(): folder.title = form.cleaned_data['title'] try: # Check if the folder is present in the DB or physically present in the OS folder.validate_folder() except ValidationError as e: form._errors['title'] = e.message # Validation error return render(request, 'wagtailimages/folder/edit.html', { 'error_message': 'Error adding folder', 'help_text': '', 'form': form, }) folder.save() # Success! Send back to index or image specific folder response = redirect('wagtailimages:index') response['Location'] += '?folder={0}'.format(folder.id) return response else: # Validation error return render(request, 'wagtailimages/folder/edit.html', { 'error_message': 'Error adding folder', 'help_text': '', 'form': form, }) else: form = ImageFolderForm(instance=folder) return render(request, 'wagtailimages/folder/edit.html', { 'help_text': '', 'folder': folder, 'form': form, })
def edit(request, folder_id): ImageFolder = get_folder_model() ImageFolderForm = get_folder_form(ImageFolder) folder = get_object_or_404(ImageFolder, id=folder_id) if request.method == 'POST': # Build a form for validation form = ImageFolderForm(request.POST) if form.is_valid(): #TODO - Check for clashing filenames # Save folder folder.title = form.cleaned_data['title'] folder.save() # Success! Send back to index or image specific folder response = redirect('wagtailimages:index') response['Location'] += '?folder={0}'.format(folder.id) return response else: # Validation error return render( request, 'wagtailimages/folder/edit.html', { 'error_message': 'Error adding folder', 'help_text': '', 'form': form, }) else: form = ImageFolderForm(instance=folder) return render(request, 'wagtailimages/folder/edit.html', { 'help_text': '', 'folder': folder, 'form': form, })
def add(request, add_to_folder=False): ImageFolder = get_folder_model() ImageFolderForm = get_folder_form(ImageFolder) parent_folder = False if add_to_folder: parent_folder = get_object_or_404(ImageFolder, id=add_to_folder) if request.method == 'POST': # Build a form for validation form = ImageFolderForm(request.POST) if form.is_valid(): #TODO - Check for clashing filenames error = False if parent_folder: if ImageFolder.objects.filter( folder=parent_folder, title=form.cleaned_data['title'].strip()).count() > 0: error = True form._errors['title'] = "Folder already exists" else: if ImageFolder.objects.filter( folder__isnull=True, title=form.cleaned_data['title'].strip()).count() > 0: error = True form._errors['title'] = "Folder already exists" if not error: # Save folder folder = ImageFolder(title=form.cleaned_data['title'].strip()) if parent_folder: folder.folder = parent_folder folder.save() # Success! Send back to index or image specific folder response = redirect('wagtailimages:index') response['Location'] += '?folder={0}'.format(folder.id) return response else: return render( request, 'wagtailimages/folder/add.html', { 'error_message': 'Error adding folder', 'help_text': '', 'parent_folder': parent_folder, 'form': form, }) else: # Validation error return render( request, 'wagtailimages/folder/add.html', { 'error_message': 'Error adding folder', 'help_text': '', 'parent_folder': parent_folder, 'form': form, }) else: form = ImageFolderForm() return render(request, 'wagtailimages/folder/add.html', { 'help_text': '', 'parent_folder': parent_folder, 'form': form, })
def chooser(request): Image = get_image_model() ImageFolder = get_folder_model() if permission_policy.user_has_permission(request.user, 'add'): ImageForm = get_image_form(Image) uploadform = ImageForm(user=request.user) ImageFolderForm = get_folder_form(ImageFolder) else: uploadform = None # Get images (filtered by user permission) images = permission_policy.instances_user_has_any_permission_for( request.user, ['change', 'delete'] ).order_by('-created_at') # Check if folders_only folders_only = request.GET.get('folders_only') if folders_only: folders_only = True else: folders_only = False # Filter by folder folders = ImageFolder.objects.filter(folder__isnull = True) current_folder = None folder_id = request.GET.get('folder') if folder_id: try: current_folder = ImageFolder.objects.get(id=folder_id) images = Image.objects.filter(folder=current_folder) except (ValueError, ImageFolder.DoesNotExist): pass q = None if ( 'q' in request.GET or 'p' in request.GET or 'tag' in request.GET or 'collection_id' in request.GET or 'folder' in request.GET ): # this request is triggered from search, pagination or 'popular tags'; # we will just render the results.html fragment collection_id = request.GET.get('collection_id') if collection_id: images = images.filter(collection=collection_id) searchform = SearchForm(request.GET) if searchform.is_valid(): q = searchform.cleaned_data['q'] images = images.search(q) is_searching = True else: is_searching = False tag_name = request.GET.get('tag') if tag_name: images = images.filter(tags__name=tag_name) # Pagination paginator, images = paginate(request, images, per_page=12) if not folders_only: return render(request, "wagtailimages/chooser/results.html", { 'images': images, 'folders' : folders, 'current_folder' : current_folder, 'is_searching': is_searching, 'query_string': q, 'will_select_format': request.GET.get('select_format') }) else: return render(request, "wagtailimages/chooser/folders.html", { 'images': images, 'folders': folders, 'current_folder': current_folder, 'is_searching': is_searching, 'query_string': q, 'will_select_format': request.GET.get('select_format') }) else: searchform = SearchForm() collections = Collection.objects.all() if len(collections) < 2: collections = None paginator, images = paginate(request, images, per_page=12) return render_modal_workflow(request, 'wagtailimages/chooser/chooser.html', 'wagtailimages/chooser/chooser.js', { 'images': images, 'folders' : folders, 'current_folder' : current_folder, 'uploadform': uploadform, 'searchform': searchform, 'is_searching': False, 'query_string': q, 'will_select_format': request.GET.get('select_format'), 'popular_tags': popular_tags_for_model(Image), 'collections': collections, })
from django.shortcuts import render, redirect, get_object_or_404 from django.core.exceptions import ValidationError from wagtail.wagtailadmin.utils import PermissionPolicyChecker from wagtail.wagtailimages.permissions import permission_policy from wagtail.wagtailimages.models import get_folder_model from wagtail.wagtailimages.forms import get_folder_form from wagtail.wagtailimages.utils import create_db_entries from wagtail.wagtailimages import get_image_model permission_checker = PermissionPolicyChecker(permission_policy) ImageFolder = get_folder_model() ImageFolderForm = get_folder_form(ImageFolder) Image = get_image_model() @permission_checker.require('add') def add(request, add_to_folder=False): parent_folder = False if add_to_folder: parent_folder = get_object_or_404(ImageFolder, id=add_to_folder) if request.method == 'POST': # Build a form for validation form = ImageFolderForm(request.POST) error = True if form.is_valid(): error = False