Coverage for cluster/views.py: 100%

46 statements  

« prev     ^ index     » next       coverage.py v7.17.0, created at 2026-10-24 19:06 +0000

1from django.contrib.auth.mixins import LoginRequiredMixin 

2 

3from sm.views import SafeDeleteMixin, GenericCSVExportView, GenericBulkDeleteView 

4from sm.mixins import MultiTenantMixin, BulkActionMixin 

5 

6from .models import Model 

7from .forms import Form, FormDisabled 

8from . import app_label 

9 

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 

15 

16from django.utils.translation import gettext as _ 

17 

18from django.urls import reverse_lazy 

19 

20 

21class ListView(LoginRequiredMixin, MultiTenantMixin, BulkActionMixin, GenericListView): 

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

23 model = Model 

24 paginate_by = 20 

25 paginate_orphans = paginate_by / 4 

26 ordering = "name" 

27 

28 

29class DetailView(LoginRequiredMixin, MultiTenantMixin, GenericUpdateView): 

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

31 model = Model 

32 form_class = FormDisabled 

33 

34 

35class UpdateView( 

36 SuccessMessageMixin, 

37 LoginRequiredMixin, 

38 MultiTenantMixin, 

39 GenericUpdateView, 

40): 

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

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

43 model = Model 

44 form_class = Form 

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

46 

47 

48class CreateView( 

49 SuccessMessageMixin, 

50 LoginRequiredMixin, 

51 MultiTenantMixin, 

52 GenericCreateView, 

53): 

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

55 

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

57 form_class = Form 

58 model = Model 

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

60 

61 

62class DeleteView( 

63 SafeDeleteMixin, 

64 LoginRequiredMixin, 

65 MultiTenantMixin, 

66 GenericDeleteView, 

67): 

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

69 template_name = "delete.html" 

70 model = Model 

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

72 

73 

74class BulkDeleteView(GenericBulkDeleteView): 

75 model = Model 

76 

77 

78class CSVExportView(GenericCSVExportView): 

79 model = Model 

80 filename = "cluster.csv" 

81 export_fields = [ 

82 ("name", "name"), 

83 ("clustersoftware", "clustersoftware__name"), 

84 ]