from typing import Iterable
from django.utils.translation import gettext_lazy as _
from shuup.admin.base import AdminModule, MenuEntry
from shuup.admin.menu import CAMPAIGNS_MENU_CATEGORY
from shuup.admin.urls import admin_url
from shuup.admin.utils.object_selector import get_object_selector_permission_name
from shuup.admin.utils.urls import derive_model_url, get_edit_and_list_urls
from shuup.discounts.models import Discount
[docs]
class DiscountModule(AdminModule):
name = _("Discounts")
[docs]
def get_urls(self):
return get_edit_and_list_urls(
url_prefix="^discounts",
view_template="shuup.discounts.admin.views.Discount%sView",
name_template="discounts.%s",
)
[docs]
def get_model_url(self, object, kind, shop=None):
return derive_model_url(Discount, "shuup_admin:discounts", object, kind)
[docs]
def get_permissions_help_texts(self) -> Iterable[str]:
return {
get_object_selector_permission_name(Discount): _("Allow the user to select discounts in admin."),
}
[docs]
class DiscountArchiveModule(AdminModule):
name = _("Archived Product Discounts")
breadcrumbs_menu_entry = MenuEntry(name, url="shuup_admin:discounts.archive")
[docs]
def get_urls(self):
return [
admin_url(
"^archived_discounts",
"shuup.discounts.admin.views.ArchivedDiscountListView",
name="discounts.archive",
),
admin_url(
r"^discounts/(?P<pk>\d+)/delete/$",
"shuup.discounts.admin.views.DiscountDeleteView",
name="discounts.delete",
),
]