Coverage for patchtime / views.py: 94%
50 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
1from django.contrib.auth.mixins import LoginRequiredMixin
2from django.contrib import messages
3from django.http import HttpResponseRedirect
4from sm.views import SafeDeleteMixin
6from .models import Model
7from .forms import Form, FormDisabled
8from . import app_label
10from django.views.generic import ListView as GenericListView
11from django.views.generic.edit import UpdateView as GenericUpdateView
12from django.views.generic.edit import CreateView as GenericCreateView
13from django.views.generic.edit import DeleteView as GenericDeleteView
14from django.contrib.messages.views import SuccessMessageMixin
16from django.utils.translation import gettext as _
18try:
19 from django.urls import reverse_lazy
20except Exception: # pragma: no cover
21 from django.urls import reverse_lazy # pragma: no cover
24class ListView(LoginRequiredMixin, GenericListView):
25 template_name = "%s/list.html" % app_label
26 model = Model
27 paginate_by = 20
28 paginate_orphans = paginate_by / 4
29 ordering = "name"
32class DetailView(LoginRequiredMixin, GenericUpdateView):
33 template_name = "%s/detail.html" % app_label
34 model = Model
35 form_class = FormDisabled
38class UpdateView(SuccessMessageMixin, LoginRequiredMixin, GenericUpdateView):
39 success_message = "%(name)s " + _("was updated successfully")
40 model = Model
42 template_name = "%s/edit.html" % app_label
44 def form_valid(self, form):
45 self.object = form.save()
46 messages.success(self.request, self.success_message % self.object.__dict__)
48 return HttpResponseRedirect(self.get_success_url())
50 form_class = Form
51 success_url = reverse_lazy("%s:index" % app_label)
54class CreateView(SuccessMessageMixin, LoginRequiredMixin, GenericCreateView):
55 success_message = "%(name)s " + _("was created successfully")
57 template_name = "%s/edit.html" % app_label
58 fields = "__all__"
59 model = Model
60 success_url = reverse_lazy("%s:index" % app_label)
62 def form_valid(self, form):
63 self.object = form.save()
64 messages.success(self.request, self.success_message % self.object.__dict__)
66 return HttpResponseRedirect(self.get_success_url())
69class DeleteView(SafeDeleteMixin, LoginRequiredMixin, GenericDeleteView):
70 success_message = "%(name)s " + _("was deleted successfully")
71 template_name = "delete.html"
72 model = Model
73 success_url = reverse_lazy("%s:index" % app_label)