Skip to content

Commit c8af44a

Browse files
fsbraunmarksweb
andauthored
fix: File expand url incorrect and worked not with custom image models (#1471)
* Fix #1377 * Fix issue #1470 * Update tests * Update `tox.ini` * Update tox.ini Co-authored-by: Mark Walker <[email protected]> --------- Co-authored-by: Mark Walker <[email protected]>
1 parent db416e6 commit c8af44a

File tree

6 files changed

+24
-23
lines changed

6 files changed

+24
-23
lines changed

.github/workflows/test.yml

+2-9
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,13 @@ jobs:
88
strategy:
99
fail-fast: false
1010
matrix:
11-
python-version: ['3.8', '3.9', '3.10', '3.11']
11+
python-version: ['3.10', '3.11', '3.12']
1212
requirements-file: [
13-
django-3.2.txt,
14-
django-4.0.txt,
15-
django-4.1.txt,
1613
django-4.2.txt,
1714
django-5.0.txt,
15+
django-main.txt,
1816
]
1917
custom-image-model: [false, true]
20-
exclude:
21-
- requirements-file: django-5.0.txt
22-
python-version: 3.8
23-
- requirements-file: django-5.0.txt
24-
python-version: 3.9
2518
os: [
2619
ubuntu-20.04,
2720
]

filer/models/filemodels.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -344,19 +344,24 @@ def has_generic_permission(self, request, permission_type):
344344
else:
345345
return False
346346

347-
def get_admin_change_url(self):
347+
def get_admin_url(self, action):
348348
return reverse(
349-
'admin:{}_{}_change'.format(
349+
'admin:{}_{}_{}'.format(
350350
self._meta.app_label,
351351
self._meta.model_name,
352+
action
352353
),
353354
args=(self.pk,)
354355
)
355356

357+
def get_admin_change_url(self):
358+
return self.get_admin_url("change")
359+
360+
def get_admin_expand_view_url(self):
361+
return self.get_admin_url("expand")
362+
356363
def get_admin_delete_url(self):
357-
return reverse(
358-
f'admin:{self._meta.app_label}_{self._meta.model_name}_delete',
359-
args=(self.pk,))
364+
return self.get_admin_url("delete")
360365

361366
@property
362367
def url(self):

filer/templates/admin/filer/folder/directory_table_list.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139
</td>
140140
<td class="column-action">
141141
{% if file.canonical_url %}
142-
<a href="{% if 'svg' in file.mime_type %}{% url 'admin:filer_image_expand_view' file.pk %}{% else %}{{ file.canonical_url }}{% endif %}"
142+
<a href="{% if 'svg' in file.mime_type %}{{ file.get_admin_expand_view_url }}{% else %}{{ file.canonical_url }}{% endif %}"
143143
data-url="{{ file.canonical_url }}"
144144
data-msg="{% trans 'URL copied to clipboard' %}"
145145
rel="noopener noreferrer"

tests/requirements/django-main.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-r base.txt
2+
3+
git+https://github.com/django/django@main#egg=Django
4+
django_polymorphic>=3.1

tests/test_admin.py

+1
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ def test_image_expand_view(self):
375375

376376
response = self.client.get(url)
377377

378+
self.assertEqual(url, self.file_object.get_admin_expand_view_url())
378379
self.assertContains(
379380
response,
380381
f"""<img id="img" src="{original_url}" onclick="this.classList.toggle('zoom')"/>"""

tox.ini

+6-8
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,24 @@ envlist =
44
isort
55
docs
66
frontend
7-
py{38,39,310}-dj32-{swap,noswap}
8-
py{38,39,310,311}-{dj40,dj41,dj42}-{swap,noswap}
9-
py{310,311}-{dj50}-{swap,noswap}
7+
py{310,311,312}-{dj42,dj50,djmain}-{swap,noswap}
108

119
[gh-actions]
1210
python =
13-
3.8: py38
14-
3.9: py39
1511
3.10: py310
1612
3.11: py311
13+
3.12: py312
1714

1815
skip_missing_interpreters=True
1916

2017
[testenv]
18+
allowlist_externals =
19+
{env:COMMAND:coverage}
20+
{envpython}
2121
deps =
22-
dj32: -r tests/requirements/django-3.2.txt
23-
dj40: -r tests/requirements/django-4.0.txt
24-
dj41: -r tests/requirements/django-4.1.txt
2522
dj42: -r tests/requirements/django-4.2.txt
2623
dj50: -r tests/requirements/django-5.0.txt
24+
djmain: -r tests/requirements/django-main.txt
2725
commands =
2826
{envpython} --version
2927
{env:COMMAND:coverage} erase

0 commit comments

Comments
 (0)