diff --git a/apps/dashboard/banners/apps.py b/apps/dashboard/banners/apps.py index 509d5bd..c711937 100644 --- a/apps/dashboard/banners/apps.py +++ b/apps/dashboard/banners/apps.py @@ -15,6 +15,7 @@ def ready(self): self.banners_create = get_class('dashboard.banners.views', 'BannerCreateView') self.slide_create = get_class('dashboard.banners.views', 'SlideCreateView') self.slide_update = get_class('dashboard.banners.views', 'SlideUpdateView') + self.slide_delete = get_class('dashboard.banners.views', 'SlideDeleteView') def get_urls(self): urls = [ @@ -22,5 +23,6 @@ def get_urls(self): path(r'create/', self.banners_create.as_view(), name='banners-create'), path(r'/slide/', self.slide_create.as_view(), name='slide-create'), path(r'/slide//update', self.slide_update.as_view(), name='slide-update'), + path('/slide//delete/', self.slide_delete.as_view(), name='slide-delete'), ] return urls diff --git a/apps/dashboard/banners/templates/banners/dashboard/banner-listing.html b/apps/dashboard/banners/templates/banners/dashboard/banner-listing.html index 0e1c4af..3c528be 100644 --- a/apps/dashboard/banners/templates/banners/dashboard/banner-listing.html +++ b/apps/dashboard/banners/templates/banners/dashboard/banner-listing.html @@ -5,10 +5,10 @@ {% load render_table from django_tables2 %} {% block breadcrumbs %} {% endblock %} {% block dashboard_content %} @@ -18,4 +18,4 @@

All Banners

{% render_table table %}
-{% endblock dashboard_content %} \ No newline at end of file +{% endblock dashboard_content %} diff --git a/apps/dashboard/banners/templates/banners/dashboard/partials/actions.html b/apps/dashboard/banners/templates/banners/dashboard/partials/actions.html index 7968d82..96ccb5d 100644 --- a/apps/dashboard/banners/templates/banners/dashboard/partials/actions.html +++ b/apps/dashboard/banners/templates/banners/dashboard/partials/actions.html @@ -6,12 +6,10 @@ {% trans "Actions" %} - diff --git a/apps/dashboard/banners/templates/banners/dashboard/slide-form.html b/apps/dashboard/banners/templates/banners/dashboard/slide-form.html index 2dab41b..512c753 100644 --- a/apps/dashboard/banners/templates/banners/dashboard/slide-form.html +++ b/apps/dashboard/banners/templates/banners/dashboard/slide-form.html @@ -11,13 +11,13 @@ {% block breadcrumbs %} {% endblock %} @@ -34,19 +34,78 @@

{{ title }}

Existing Slides

+
- {% for slide_image in banner.images.all %} - Edit - {% with image=slide_image.image %} - {% oscar_thumbnail image "100x100" upscale=True as thumb %} -
- -
- {{ slide_image.content|safe }} +
+ {% for slide_image in banner.images.all %} +
+
+
+ {% with image=slide_image.image %} + {% oscar_thumbnail image "600x338" upscale=True as thumb %} + Slide image + {% endwith %} +
+ +
+ {% csrf_token %} + +
+
+
+
+
+ {{ slide_image.content|safe }} +
+
+
+ {% empty %} +
+

No slides available.

+
+ {% endfor %}
- {% endwith %} - - {% endfor %}
{% endblock dashboard_content %} diff --git a/apps/dashboard/banners/templates/banners/dashboard/slide_confirm_delete.html b/apps/dashboard/banners/templates/banners/dashboard/slide_confirm_delete.html new file mode 100644 index 0000000..b7d4303 --- /dev/null +++ b/apps/dashboard/banners/templates/banners/dashboard/slide_confirm_delete.html @@ -0,0 +1,21 @@ +{% extends 'oscar/dashboard/layout.html' %} +{% load i18n %} + +{% block title %}{{ title }} | {{ block.super }}{% endblock %} + +{% block dashboard_content %} +
+

{{ title }}

+
+
+
+ {% csrf_token %} +

{% trans "Are you sure you want to delete this slide?" %}

+
+ + {% trans "Cancel" %} +
+
+
+{% endblock %} + diff --git a/apps/dashboard/banners/views.py b/apps/dashboard/banners/views.py index 67cf9aa..63da0ad 100644 --- a/apps/dashboard/banners/views.py +++ b/apps/dashboard/banners/views.py @@ -4,6 +4,7 @@ from django.views import generic from django_tables2 import SingleTableView from oscar.core.loading import get_class, get_model +from django.urls import reverse_lazy from apps.dashboard.banners.forms import BannerForm, SlideForm @@ -63,6 +64,7 @@ def get_initial(self): initial['banner'] = self.kwargs.get('banner_id', None) return initial + class SlideUpdateView(generic.edit.UpdateView): template_name = 'banners/dashboard/slide-form.html' model = BannerImage @@ -73,3 +75,19 @@ def get_context_data(self, **kwargs): ctx['title'] = _("Add a new slide") ctx['banner'] = Banner.objects.get(pk=self.kwargs.get('banner_id', None)) return ctx + + +class SlideDeleteView(generic.edit.DeleteView): + model = BannerImage + template_name = 'banners/dashboard/slide_confirm_delete.html' + + def get_success_url(self): + messages.success(self.request, _("Slide deleted successfully")) + banner_id = self.kwargs.get('banner_id') + return reverse_lazy('dashboard:dashboard_banners:slide-create', kwargs={'banner_id': banner_id}) + + def get_context_data(self, **kwargs): + ctx = super().get_context_data(**kwargs) + ctx['banner'] = Banner.objects.get(pk=self.kwargs.get('banner_id', None)) + ctx['title'] = _("Delete slide") + return ctx