Add collection field to multiple image uploader

pull/2243/merge
Matt Westcott 2016-02-15 20:10:18 +00:00
rodzic dbdf0c3275
commit 57b4c03690
2 zmienionych plików z 29 dodań i 4 usunięć

Wyświetl plik

@ -22,6 +22,18 @@
<input id="fileupload" type="file" name="files[]" data-url="{% url 'wagtailimages:add_multiple' %}" multiple>
</div>
{% csrf_token %}
{% if collections %}
<div class="field">
<label for="id_addimage_collection">{% trans "Add to collection:" %}</label>
<div class="field-content">
<select id="id_addimage_collection" name="collection">
{% for collection in collections %}
<option value="{{ collection.id }}">{{ collection.name }}</option>
{% endfor %}
</select>
</div>
</div>
{% endif %}
</form>
</div>

Wyświetl plik

@ -43,6 +43,13 @@ def add(request):
Image = get_image_model()
ImageForm = get_image_form(Image)
collections = permission_policy.collections_user_has_permission_for(request.user, 'add')
if len(collections) > 1:
collections_to_choose = collections
else:
# no need to show a collections chooser
collections_to_choose = None
if request.method == 'POST':
if not request.is_ajax():
return HttpResponseBadRequest("Cannot POST to this view without AJAX")
@ -53,9 +60,10 @@ def add(request):
# Build a form for validation
form = ImageForm({
'title': request.FILES['files[]'].name,
'collection': request.POST.get('collection'),
}, {
'file': request.FILES['files[]'],
})
}, user=request.user)
if form.is_valid():
# Save it
@ -70,7 +78,9 @@ def add(request):
'image_id': int(image.id),
'form': render_to_string('wagtailimages/multiple/edit_form.html', {
'image': image,
'form': get_image_edit_form(Image)(instance=image, prefix='image-%d' % image.id),
'form': get_image_edit_form(Image)(
instance=image, prefix='image-%d' % image.id, user=request.user
),
}, request=request),
})
else:
@ -82,7 +92,7 @@ def add(request):
'error_message': '\n'.join(['\n'.join([force_text(i) for i in v]) for k, v in form.errors.items()]),
})
else:
form = ImageForm()
form = ImageForm(user=request.user)
return render(request, 'wagtailimages/multiple/add.html', {
'max_filesize': form.fields['file'].max_upload_size,
@ -90,6 +100,7 @@ def add(request):
'allowed_extensions': ALLOWED_EXTENSIONS,
'error_max_file_size': form.fields['file'].error_messages['file_too_large_unknown_size'],
'error_accepted_file_types': form.fields['file'].error_messages['invalid_image'],
'collections': collections_to_choose,
})
@ -106,7 +117,9 @@ def edit(request, image_id, callback=None):
if not permission_policy.user_has_permission_for_instance(request.user, 'change', image):
raise PermissionDenied
form = ImageForm(request.POST, request.FILES, instance=image, prefix='image-' + image_id)
form = ImageForm(
request.POST, request.FILES, instance=image, prefix='image-' + image_id, user=request.user
)
if form.is_valid():
form.save()