Coverage for servermodel / views.py: 95%
63 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"
31 def get_queryset(self):
32 from vendor.models import Model as VendorModel
34 qs = VendorModel.objects.filter(is_hardware=True)
35 if "srvmanager-show_empty" in self.request.COOKIES:
36 if self.request.COOKIES["srvmanager-show_empty"] == "false":
37 return qs.exclude(servermodel=None).order_by("name")
38 return qs.order_by("name")
41class DetailView(LoginRequiredMixin, GenericUpdateView):
42 template_name = "%s/detail.html" % app_label
43 model = Model
44 form_class = FormDisabled
47class UpdateView(SuccessMessageMixin, LoginRequiredMixin, GenericUpdateView):
48 success_message = "%(name)s " + _("was updated successfully")
50 template_name = "%s/edit.html" % app_label
51 model = Model
53 def form_valid(self, form):
54 self.object = form.save()
55 messages.success(self.request, self.success_message % self.object.__dict__)
57 return HttpResponseRedirect(self.get_success_url())
59 form_class = Form
60 success_url = reverse_lazy("%s:index" % app_label)
63class CreateView(SuccessMessageMixin, LoginRequiredMixin, GenericCreateView):
64 success_message = "%(name)s " + _("was created successfully")
66 template_name = "%s/edit.html" % app_label
67 form_class = Form
68 model = Model
69 success_url = reverse_lazy("%s:index" % app_label)
71 def get_initial(self):
72 from vendor.models import Model as VendorModel
74 initial = super().get_initial()
75 if "vendor" in self.kwargs:
76 initial["vendor"] = VendorModel.objects.filter(
77 pk=self.kwargs["vendor"]
78 ).first()
79 return initial
81 def form_valid(self, form):
82 self.object = form.save()
83 messages.success(self.request, self.success_message % self.object.__dict__)
85 return HttpResponseRedirect(self.get_success_url())
88class DeleteView(SafeDeleteMixin, LoginRequiredMixin, GenericDeleteView):
89 success_message = "%(name)s " + _("was deleted successfully")
90 template_name = "delete.html"
91 model = Model
92 success_url = reverse_lazy("%s:index" % app_label)