From 4ae13cdb33f2152eb88201d8a3c3e629407ae192 Mon Sep 17 00:00:00 2001 From: Erik Stein Date: Mon, 26 Apr 2021 14:23:11 +0200 Subject: [PATCH] Django 2.0 compatibility. --- CHANGES | 3 +++ shared/media_archive/mixins.py | 46 +++++++++++++++++++--------------- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/CHANGES b/CHANGES index 6041c78..00e05f6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +0.1.8 2021-04-26 +- Django 2.0 compatibility + 0.1.7 2021-04-26 - Use window.jQuery instead of django.jQuery - Fix in field choices setup diff --git a/shared/media_archive/mixins.py b/shared/media_archive/mixins.py index 2d93262..70982bf 100644 --- a/shared/media_archive/mixins.py +++ b/shared/media_archive/mixins.py @@ -1,3 +1,4 @@ +import django from django.http import JsonResponse from django.core.exceptions import PermissionDenied @@ -23,29 +24,34 @@ class DropUploadAdminMixin: def upload(self, request): # We must initialize a fake-ChangeList to be able to get the currently # selected categories. - # Code copied from django.contrib.admin.options.ModelAdmin.changelist_view - if not self.has_change_permission(request, None): - raise PermissionDenied - list_display = self.get_list_display(request) - list_display_links = self.get_list_display_links(request, list_display) - list_filter = self.get_list_filter(request) - search_fields = self.get_search_fields(request) - list_select_related = self.get_list_select_related(request) + if django.VERSION >= (2, 0, 0): + changelist = self.get_changelist_instance(request) - # Check actions to see if any are available on this changelist - actions = self.get_actions(request) - if actions: - # Add the action checkboxes if there are any actions available. - list_display = ['action_checkbox'] + list(list_display) + else: + # Code copied from django.contrib.admin.options.ModelAdmin.changelist_view + if not self.has_change_permission(request, None): + raise PermissionDenied - ChangeList = self.get_changelist(request) - changelist = ChangeList( - request, self.model, list_display, - list_display_links, list_filter, self.date_hierarchy, - search_fields, list_select_related, self.list_per_page, - self.list_max_show_all, self.list_editable, self, - ) + list_display = self.get_list_display(request) + list_display_links = self.get_list_display_links(request, list_display) + list_filter = self.get_list_filter(request) + search_fields = self.get_search_fields(request) + list_select_related = self.get_list_select_related(request) + + # Check actions to see if any are available on this changelist + actions = self.get_actions(request) + if actions: + # Add the action checkboxes if there are any actions available. + list_display = ['action_checkbox'] + list(list_display) + + ChangeList = self.get_changelist(request) + changelist = ChangeList( + request, self.model, list_display, + list_display_links, list_filter, self.date_hierarchy, + search_fields, list_select_related, self.list_per_page, + self.list_max_show_all, self.list_editable, self, + ) # Put uploaded file in selected categories if changelist.result_list: