def chooser_select_format(request, image_id): image = get_object_or_404(get_image_model(), id=image_id) if request.method == 'POST': form = ImageInsertionForm(request.POST, initial={'alt_text': image.default_alt_text}, prefix='image-chooser-insertion') if form.is_valid(): format = get_image_format(form.cleaned_data['format']) preview_image = image.get_rendition(format.filter_spec) image_data = { 'id': image.id, 'title': image.title, 'format': format.name, 'alt': form.cleaned_data['alt_text'], 'class': format.classnames, 'edit_link': reverse('wagtailimages:edit', args=(image.id, )), 'preview': { 'url': preview_image.url, 'width': preview_image.width, 'height': preview_image.height, }, 'html': format.image_to_editor_html(image, form.cleaned_data['alt_text']), } return render_modal_workflow(request, None, None, None, json_data={ 'step': 'image_chosen', 'result': image_data }) else: initial = {'alt_text': image.default_alt_text} initial.update(request.GET.dict()) # If you edit an existing image, and there is no alt text, ensure that # "image is decorative" is ticked when you open the form initial['image_is_decorative'] = initial['alt_text'] == '' form = ImageInsertionForm(initial=initial, prefix='image-chooser-insertion') return render_modal_workflow(request, 'wagtailimages/chooser/select_format.html', None, { 'image': image, 'form': form }, json_data={'step': 'select_format'})
def chooser_select_format(request, image_id): image = get_object_or_404(get_image_model(), id=image_id) if request.method == 'POST': form = ImageInsertionForm(request.POST, initial={'alt_text': image.default_alt_text}) if form.is_valid(): format = get_image_format(form.cleaned_data['format']) preview_image = image.get_rendition(format.filter_spec) image_json = json.dumps({ 'id': image.id, 'title': image.title, 'format': format.name, 'alt': form.cleaned_data['alt_text'], 'class': format.classnames, 'edit_link': reverse('wagtailimages:edit', args=(image.id, )), 'preview': { 'url': preview_image.url, 'width': preview_image.width, 'height': preview_image.height, }, 'html': format.image_to_editor_html(image, form.cleaned_data['alt_text']), }) return render_modal_workflow( request, None, 'wagtailimages/chooser/image_chosen.js', {'image_json': image_json}) else: initial = {'alt_text': image.default_alt_text} initial.update(request.GET.dict()) form = ImageInsertionForm(initial=initial) return render_modal_workflow(request, 'wagtailimages/chooser/select_format.html', 'wagtailimages/chooser/select_format.js', { 'image': image, 'form': form })
class ImageSelectFormatView(SelectFormatResponseMixin, ImageChosenResponseMixin, View): model = None def get(self, request, image_id): image = get_object_or_404(self.model, id=image_id) initial = {"alt_text": image.default_alt_text} initial.update(request.GET.dict()) # If you edit an existing image, and there is no alt text, ensure that # "image is decorative" is ticked when you open the form initial["image_is_decorative"] = initial["alt_text"] == "" form = ImageInsertionForm(initial=initial, prefix="image-chooser-insertion") return self.render_select_format_response(image, form) def get_chosen_response_data(self, image): format = get_image_format(self.form.cleaned_data["format"]) alt_text = self.form.cleaned_data["alt_text"] response_data = super().get_chosen_response_data( image, preview_image_filter=format.filter_spec ) response_data.update( { "format": format.name, "alt": alt_text, "class": format.classnames, "html": format.image_to_editor_html(image, alt_text), } ) return response_data def post(self, request, image_id): image = get_object_or_404(get_image_model(), id=image_id) self.form = ImageInsertionForm( request.POST, initial={"alt_text": image.default_alt_text}, prefix="image-chooser-insertion", ) if self.form.is_valid(): return self.get_chosen_response(image) else: return self.render_select_format_response(image, self.form)
def image_select_format(request, image_id): image = get_object_or_404(get_image_model(), id=image_id) if request.method == "POST": form = ImageInsertionForm( request.POST, initial={"alt_text": image.default_alt_text}, prefix="image-chooser-insertion", ) if form.is_valid(): format = get_image_format(form.cleaned_data["format"]) preview_image = image.get_rendition(format.filter_spec) image_data = { "id": image.id, "title": image.title, "format": format.name, "alt": form.cleaned_data["alt_text"], "class": format.classnames, "edit_link": reverse("wagtailimages:edit", args=(image.id, )), "preview": { "url": preview_image.url, "width": preview_image.width, "height": preview_image.height, }, "html": format.image_to_editor_html(image, form.cleaned_data["alt_text"]), } return render_modal_workflow( request, None, None, None, json_data={ "step": "image_chosen", "result": image_data }, ) else: initial = {"alt_text": image.default_alt_text} initial.update(request.GET.dict()) form = ImageInsertionForm(initial=initial, prefix="image-chooser-insertion") return render_modal_workflow( request, "non_admin_draftail/image/select_format.html", None, { "image": image, "form": form }, json_data={"step": "select_format"}, )