|
1 | 1 | import mimetypes |
2 | 2 |
|
3 | 3 | from django import forms |
| 4 | +from django.contrib.admin.templatetags.admin_urls import admin_urlname |
4 | 5 | from django.contrib.admin.utils import unquote |
5 | 6 | from django.contrib.staticfiles.storage import staticfiles_storage |
6 | 7 | from django.http import Http404, HttpResponse, HttpResponseRedirect |
|
19 | 20 | from .. import settings |
20 | 21 | from ..models import BaseImage, File |
21 | 22 | from ..settings import DEFERRED_THUMBNAIL_SIZES |
| 23 | +from ..utils.loader import load_model |
22 | 24 | from .permissions import PrimitivePermissionAwareModelAdmin |
23 | 25 | from .tools import AdminContext, admin_url_params_encoded, popup_status |
24 | 26 |
|
25 | 27 |
|
| 28 | +Image = load_model(settings.FILER_IMAGE_MODEL) |
| 29 | + |
| 30 | + |
26 | 31 | class FileAdminChangeFrom(forms.ModelForm): |
27 | 32 | class Meta: |
28 | 33 | model = File |
@@ -123,12 +128,18 @@ def response_change(self, request, obj): |
123 | 128 |
|
124 | 129 | def render_change_form(self, request, context, add=False, change=False, |
125 | 130 | form_url='', obj=None): |
126 | | - info = self.model._meta.app_label, self.model._meta.model_name |
127 | | - extra_context = {'show_delete': True, |
128 | | - 'history_url': 'admin:%s_%s_history' % info, |
129 | | - 'is_popup': popup_status(request), |
130 | | - 'filer_admin_context': AdminContext(request)} |
131 | | - context.update(extra_context) |
| 131 | + context.update({ |
| 132 | + 'show_delete': True, |
| 133 | + 'history_url': admin_urlname(self.opts, 'history'), |
| 134 | + 'expand_image_url': None, |
| 135 | + 'is_popup': popup_status(request), |
| 136 | + 'filer_admin_context': AdminContext(request), |
| 137 | + }) |
| 138 | + if obj and obj.mime_maintype == 'image' and obj.file.exists(): |
| 139 | + if 'svg' in obj.mime_type: |
| 140 | + context['expand_image_url'] = reverse(admin_urlname(Image._meta, 'expand'), args=(obj.pk,)) |
| 141 | + else: |
| 142 | + context['expand_image_url'] = obj.file.url |
132 | 143 | return super().render_change_form( |
133 | 144 | request=request, context=context, add=add, change=change, |
134 | 145 | form_url=form_url, obj=obj) |
|
0 commit comments