Coverage for patchtime/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 

2from sm.views import SafeDeleteMixin, GenericCSVExportView, GenericBulkDeleteView 

3from sm.mixins import MultiTenantMixin, BulkActionMixin 

4 

5from .models import Model 

6from .forms import Form, FormDisabled 

7from . import app_label 

8 

9from django.views.generic import ListView as GenericListView 

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

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

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

13from django.contrib.messages.views import SuccessMessageMixin 

14 

15from django.utils.translation import gettext as _ 

16 

17from django.urls import reverse_lazy 

18 

19 

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

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

22 model = Model 

23 paginate_by = 20 

24 paginate_orphans = paginate_by / 4 

25 ordering = "name" 

26 

27 

28class DetailView(LoginRequiredMixin, MultiTenantMixin, GenericUpdateView): 

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

30 model = Model 

31 form_class = FormDisabled 

32 

33 

34class UpdateView( 

35 SuccessMessageMixin, LoginRequiredMixin, MultiTenantMixin, GenericUpdateView 

36): 

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

38 model = Model 

39 

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

41 

42 form_class = Form 

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

44 

45 

46class CreateView( 

47 SuccessMessageMixin, LoginRequiredMixin, MultiTenantMixin, GenericCreateView 

48): 

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

50 

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

52 form_class = Form 

53 model = Model 

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

55 

56 

57class DeleteView( 

58 SafeDeleteMixin, LoginRequiredMixin, MultiTenantMixin, GenericDeleteView 

59): 

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

61 template_name = "delete.html" 

62 model = Model 

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

64 

65 

66class BulkDeleteView(GenericBulkDeleteView): 

67 model = Model 

68 

69 

70class CSVExportView(GenericCSVExportView): 

71 model = Model 

72 filename = "patchtime.csv" 

73 export_fields = [ 

74 ("name", "name"), 

75 ]