diff --git a/manuels/templates/manuels/add_item.html b/manuels/templates/manuels/add_item.html
index c757e2b..b39fb4f 100644
--- a/manuels/templates/manuels/add_item.html
+++ b/manuels/templates/manuels/add_item.html
@@ -12,15 +12,15 @@
Retour à la liste des {{ item_plural }}
{% if message_template %}
-
- {% include message_template %}
-
+ {% include message_template %}
{% endif %}
diff --git a/manuels/templates/manuels/confirm_delete.html b/manuels/templates/manuels/confirm_delete.html
new file mode 100644
index 0000000..cc07478
--- /dev/null
+++ b/manuels/templates/manuels/confirm_delete.html
@@ -0,0 +1,10 @@
+
+
Danger
+
+ Êtes-vous certain·e de vouloir supprimer cet élément ?
+ Cette action est définitive : vous ne pourrez plus le récupérer ensuite.
+
+
+ {{ object }}
+
+
\ No newline at end of file
diff --git a/manuels/templates/manuels/list_books_supplies.html b/manuels/templates/manuels/list_books_supplies.html
index 18f9c47..18080d4 100644
--- a/manuels/templates/manuels/list_books_supplies.html
+++ b/manuels/templates/manuels/list_books_supplies.html
@@ -48,9 +48,14 @@
{% for book in books %}
-
+
|
{{ book.level }} |
{{ book.field }} |
@@ -92,9 +97,14 @@
{% for supply in supplies %}
-
+
|
{{ supply.level }} |
{{ supply.fields }} |
diff --git a/manuels/templates/manuels/supplies_message.html b/manuels/templates/manuels/supplies_message.html
index c67f3e3..b602d5b 100644
--- a/manuels/templates/manuels/supplies_message.html
+++ b/manuels/templates/manuels/supplies_message.html
@@ -1,17 +1,21 @@
- Information
-
- En complément des fournitures communes à tous les élèves, à savoir :
-
-
- - cahier de textes ou agenda
- - trousse complète (y compris gomme, taille-crayons, blanc correcteur, bâtons de colle, règle 30 cm., surligneurs
- 4 couleurs…)
-
- - 1 paire de ciseaux
- - clé(s) USB
- - 1 agrafeuse
- - crayons de couleurs (minimum 12)
- - système de reliure (baguettes sans perçage, transparents, papier épais, …) pour les éventuels dossiers de
- fin d’année
-
-
\ No newline at end of file
+
+
Information
+
+ En complément des fournitures communes à tous les élèves, à savoir :
+
+
+ - cahier de textes ou agenda
+ - trousse complète (y compris gomme, taille-crayons, blanc correcteur, bâtons de colle, règle 30 cm.,
+ surligneurs
+ 4 couleurs…)
+
+ - 1 paire de ciseaux
+ - clé(s) USB
+ - 1 agrafeuse
+ - crayons de couleurs (minimum 12)
+ - système de reliure (baguettes sans perçage, transparents, papier épais, …) pour les éventuels dossiers
+ de
+ fin d’année
+
+
+
\ No newline at end of file
diff --git a/manuels/urls.py b/manuels/urls.py
index 0b91b38..1cbc72b 100644
--- a/manuels/urls.py
+++ b/manuels/urls.py
@@ -1,13 +1,15 @@
from django.urls import path
-from manuels.views import AddBookView, ListBooksView, clear_teacher_view, AddSuppliesView, EditBookView,\
- EditSuppliesView
+from manuels.views import AddBookView, ListBooksView, clear_teacher_view, AddSuppliesView, EditBookView, \
+ EditSuppliesView, DeleteBookView, DeleteSuppliesView
urlpatterns = [
path('teacher//add_book', AddBookView.as_view(), name='add_book'),
path('teacher//add_supplies', AddSuppliesView.as_view(), name='add_supplies'),
path('teacher/', ListBooksView.as_view(), name='list_books'),
path('teacher//book/', EditBookView.as_view(), name='edit_book'),
+ path('teacher//book//delete', DeleteBookView.as_view(), name='delete_book'),
path('teacher//supplies/', EditSuppliesView.as_view(), name='edit_supplies'),
+ path('teacher//supplies//delete', DeleteSuppliesView.as_view(), name='delete_supplies'),
path('clear', clear_teacher_view, name='clear_teacher'),
]
diff --git a/manuels/views.py b/manuels/views.py
index e7332d4..dce0ba3 100644
--- a/manuels/views.py
+++ b/manuels/views.py
@@ -2,7 +2,7 @@ from django.contrib import messages
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.shortcuts import get_object_or_404, redirect
from django.urls import reverse
-from django.views.generic import CreateView, ListView, UpdateView
+from django.views.generic import CreateView, ListView, UpdateView, DeleteView
from manuels.forms import AddBookForm, AddSuppliesForm, EditBookForm, EditSuppliesForm
from manuels.models import Teacher, Book, SuppliesRequirement
@@ -68,6 +68,7 @@ class ItemView(BaseTeacherView):
message_template = None
template_name = 'manuels/add_item.html'
verb = None
+ button_class = 'primary'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
@@ -75,6 +76,7 @@ class ItemView(BaseTeacherView):
context['item_plural'] = self.item_text_plural
context['message_template'] = self.message_template
context['verb'] = self.verb
+ context['button_class'] = self.button_class
return context
def get_initial(self):
@@ -119,11 +121,11 @@ class SuppliesView:
success_target = 'add_supplies'
item_text = 'des fournitures'
item_text_plural = 'fournitures'
- message_template = 'manuels/supplies_message.html'
class AddSuppliesView(SuppliesView, AddItemView):
form_class = AddSuppliesForm
+ message_template = 'manuels/supplies_message.html'
class EditItemView(ItemView, UpdateView):
@@ -150,6 +152,30 @@ class EditSuppliesView(SuppliesView, EditItemView):
form_class = EditSuppliesForm
+class DeleteItemView(ItemView, DeleteView):
+ teacher_field = 'teacher_pk'
+ item_text = None
+ item_text_plural = None
+ message_template = 'manuels/confirm_delete.html'
+ verb = 'Supprimer'
+ button_class = 'danger'
+
+ def get_queryset(self):
+ return self.model.objects.filter(teacher=self.teacher)
+
+ def get_success_url(self):
+ messages.success(self.request, f'"{self.object}" a été supprimé.')
+ return reverse('list_books', args=[str(self.teacher.pk)])
+
+
+class DeleteBookView(BookView, DeleteItemView):
+ pass
+
+
+class DeleteSuppliesView(SuppliesView, DeleteItemView):
+ pass
+
+
def clear_teacher_view(request):
if request.session['teacher_pk']:
del request.session['teacher_pk']