Skip to content

Commit 7f4646b

Browse files
authored
Merge branch 'django-cms:master' into master
2 parents 0a534de + 011d804 commit 7f4646b

File tree

13 files changed

+74
-20
lines changed

13 files changed

+74
-20
lines changed

.github/workflows/test.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ jobs:
88
strategy:
99
fail-fast: false
1010
matrix:
11-
python-version: ['3.8', '3.9', '3.10', '3.11' ]
11+
python-version: ['3.8', '3.9', '3.10', '3.11']
1212
requirements-file: [
1313
django-3.2.txt,
1414
django-4.0.txt,
1515
django-4.1.txt,
1616
django-4.2.txt,
1717
django-5.0.txt,
1818
]
19+
custom-image-model: [false, true]
1920
exclude:
2021
- requirements-file: django-5.0.txt
2122
python-version: 3.8
@@ -41,8 +42,10 @@ jobs:
4142
python -m pip install --upgrade pip
4243
pip install -r tests/requirements/${{ matrix.requirements-file }}
4344
python setup.py install
45+
- name: Enable the custom image model
46+
run: echo "CUSTOM_IMAGE=custom_image.Image" >> $GITHUB_ENV
47+
if: ${{ matrix.custom-image-model }}
4448
- name: Run coverage
4549
run: coverage run setup.py test
46-
4750
- name: Upload Coverage to Codecov
4851
uses: codecov/codecov-action@v1

filer/admin/fileadmin.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import mimetypes
22

33
from django import forms
4+
from django.contrib.admin.templatetags.admin_urls import admin_urlname
45
from django.contrib.admin.utils import unquote
56
from django.contrib.staticfiles.storage import staticfiles_storage
67
from django.http import Http404, HttpResponse, HttpResponseRedirect
@@ -19,10 +20,14 @@
1920
from .. import settings
2021
from ..models import BaseImage, File
2122
from ..settings import DEFERRED_THUMBNAIL_SIZES
23+
from ..utils.loader import load_model
2224
from .permissions import PrimitivePermissionAwareModelAdmin
2325
from .tools import AdminContext, admin_url_params_encoded, popup_status
2426

2527

28+
Image = load_model(settings.FILER_IMAGE_MODEL)
29+
30+
2631
class FileAdminChangeFrom(forms.ModelForm):
2732
class Meta:
2833
model = File
@@ -123,12 +128,18 @@ def response_change(self, request, obj):
123128

124129
def render_change_form(self, request, context, add=False, change=False,
125130
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
132143
return super().render_change_form(
133144
request=request, context=context, add=add, change=change,
134145
form_url=form_url, obj=obj)

filer/admin/imageadmin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def get_urls(self):
9191
return super().get_urls() + [
9292
path("expand/<int:file_id>",
9393
self.admin_site.admin_view(self.expand_view),
94-
name=f"filer_{self.model._meta.model_name}_expand_view")
94+
name=f"{self.opts.app_label}_{self.opts.model_name}_expand")
9595
]
9696

9797
def expand_view(self, request, file_id):

filer/management/commands/filer_check.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from PIL import UnidentifiedImageError
88

99
from filer import settings as filer_settings
10+
from filer.utils.loader import load_model
1011

1112

1213
class Command(BaseCommand):
@@ -130,10 +131,9 @@ def image_dimensions(self, options):
130131
import easy_thumbnails
131132
from easy_thumbnails.VIL import Image as VILImage
132133

133-
from filer.models.imagemodels import Image
134134
from filer.utils.compatibility import PILImage
135135

136-
no_dimensions = Image.objects.filter(
136+
no_dimensions = load_model(filer_settings.FILER_IMAGE_MODEL).objects.filter(
137137
Q(_width=0) | Q(_width__isnull=True)
138138
)
139139
self.stdout.write(f"trying to set dimensions on {no_dimensions.count()} files")

filer/private/sass/components/_base.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@ body {
9696
}
9797
}
9898

99+
.filer-widget {
100+
width: 100%;
101+
}
102+
99103
.field-file,
100104
.field-sha1 {
101105
word-wrap: break-word;

filer/static/filer/css/admin_filer.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

filer/static/filer/css/maps/admin_filer.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

filer/static/filer/js/addons/widget.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ if (django.jQuery) {
99
}
1010

1111
djQuery(function ($) {
12-
var filer_clear = function () {
12+
var filer_clear = function (ev) {
1313
var clearer = $(this);
1414
var container = clearer.closest('.filerFile');
1515
var input = container.find(':input');
@@ -20,6 +20,7 @@ djQuery(function ($) {
2020
var dropzoneMessage = container.siblings('.dz-message');
2121
var hiddenClass = 'hidden';
2222

23+
ev.preventDefault();
2324
clearer.addClass(hiddenClass);
2425
input.val('');
2526
thumbnail.addClass(hiddenClass);

filer/templates/admin/filer/tools/detail_info.html

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@
1010
<span class="icon fa fa-download filer-icon filer-icon-download"></span>&nbsp;
1111
<span>{% translate "Download" %}</span>
1212
</a>
13-
{% if original.mime_maintype == 'image' %}
14-
<a href="{% if 'svg' in original.mime_type %}{% url 'admin:filer_image_expand_view' original.pk %}{% else %}{{ original.file.url }}{% endif %}"
15-
target="_blank" rel="noopener noreferrer" class="button">
13+
{% if expand_image_url %}
14+
<a href="{{ expand_image_url }}" target="_blank" rel="noopener noreferrer" class="button">
1615
<span>{% translate "Expand" %}</span>&nbsp;
1716
<span class="icon filer-icon filer-icon-expand fa fa-expand"></span>
1817
</a>

filer/templates/admin/filer/widgets/admin_file.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{% load i18n filer_admin_tags static %}
22

33
{% spaceless %}
4+
<div class="filer-widget">
45
<div class="clearfix"></div>
56

67
<div class="dz-preview dz-file-preview hidden js-filer-dropzone-template">
@@ -67,4 +68,5 @@
6768
</script>
6869
</span>
6970
</div>
71+
</div>
7072
{% endspaceless %}

0 commit comments

Comments
 (0)