from django.contrib import admin from django.contrib.admin.sites import NotRegistered def patch_invoice_admin(): """ Load the invoice admin stack in a safe order and remove the invalid date_hierarchy setting injected by the communications plugin. """ try: from oscar.core.loading import get_model import oscar_invoices.admin # noqa: F401 from ocyan.plugin.oscar_communications.oscar_invoices_extension.admin import ( InvoiceAdmin, ) except ImportError: return Invoice = get_model("oscar_invoices", "Invoice") InvoiceAdmin.date_hierarchy = None try: admin.site.unregister(Invoice) except NotRegistered: pass admin.site.register(Invoice, InvoiceAdmin)