kopia lustrzana https://github.com/wagtail/wagtail
Add collection field to multiple image uploader
rodzic
dbdf0c3275
commit
57b4c03690
|
@ -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>
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
Ładowanie…
Reference in New Issue