Coverage for clusterpackagetype / views.py: 94%

52 statements  

« 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 

5 

6 

7from .models import Model 

8from .forms import Form, FormDisabled 

9from . import app_label 

10 

11from django.views.generic import ListView as GenericListView 

12from django.views.generic.edit import UpdateView as GenericUpdateView 

13from django.views.generic.edit import CreateView as GenericCreateView 

14from django.views.generic.edit import DeleteView as GenericDeleteView 

15from django.contrib.messages.views import SuccessMessageMixin 

16 

17from django.utils.translation import gettext as _ 

18 

19try: 

20 from django.urls import reverse_lazy 

21except Exception: # pragma: no cover 

22 from django.urls import reverse_lazy # pragma: no cover 

23 

24 

25class ListView(LoginRequiredMixin, GenericListView): 

26 template_name = "%s/list.html" % app_label 

27 model = Model 

28 paginate_by = 20 

29 paginate_orphans = paginate_by / 4 

30 ordering = "name" 

31 

32 def get_queryset(self): 

33 return Model.objects.all().order_by("name") 

34 

35 

36class DetailView(LoginRequiredMixin, GenericUpdateView): 

37 template_name = "%s/detail.html" % app_label 

38 model = Model 

39 form_class = FormDisabled 

40 

41 

42class UpdateView(SuccessMessageMixin, LoginRequiredMixin, GenericUpdateView): 

43 success_message = "%(name)s " + _("was updated successfully") 

44 

45 template_name = "%s/edit.html" % app_label 

46 model = Model 

47 

48 def form_valid(self, form): 

49 self.object = form.save() 

50 messages.success(self.request, self.success_message % self.object.__dict__) 

51 

52 return HttpResponseRedirect(self.get_success_url()) 

53 

54 form_class = Form 

55 success_url = reverse_lazy("%s:index" % app_label) 

56 

57 

58class CreateView(SuccessMessageMixin, LoginRequiredMixin, GenericCreateView): 

59 success_message = "%(name)s " + _("was created successfully") 

60 

61 template_name = "%s/edit.html" % app_label 

62 fields = "__all__" 

63 model = Model 

64 success_url = reverse_lazy("%s:index" % app_label) 

65 

66 def form_valid(self, form): 

67 self.object = form.save() 

68 messages.success(self.request, self.success_message % self.object.__dict__) 

69 

70 return HttpResponseRedirect(self.get_success_url()) 

71 

72 

73class DeleteView(SafeDeleteMixin, LoginRequiredMixin, GenericDeleteView): 

74 success_message = "%(name)s " + _("was deleted successfully") 

75 template_name = "delete.html" 

76 model = Model 

77 success_url = reverse_lazy("%s:index" % app_label)