Coverage for apis_core/history/views.py: 71%

24 statements  

« prev     ^ index     » next       coverage.py v7.5.3, created at 2025-09-03 06:15 +0000

1from django.forms import Form 

2from django.views.generic.detail import BaseDetailView, DetailView 

3from django.views.generic.edit import FormView 

4from django_tables2 import SingleTableMixin 

5from django_tables2.tables import table_factory 

6 

7from apis_core.generic.helpers import first_member_match, module_paths 

8from apis_core.generic.views import GenericModelMixin 

9 

10from .tables import HistoryGenericTable 

11 

12 

13class HistoryView(GenericModelMixin, SingleTableMixin, DetailView): 

14 template_name = "history/history.html" 

15 

16 def get_table_class(self): 

17 table_modules = module_paths(self.model, path="tables", suffix="HistoryTable") 

18 table_class = first_member_match(table_modules, HistoryGenericTable) 

19 return table_factory(self.model, table_class) 

20 

21 def get_table_data(self): 

22 return self.get_object().get_history_data() 

23 

24 

25class HistoryReset(GenericModelMixin, BaseDetailView, FormView): 

26 form_class = Form 

27 template_name = "history/reset.html" 

28 

29 def form_valid(self, form): 

30 self.get_object().instance.save() 

31 return super().form_valid(form) 

32 

33 def get_success_url(self): 

34 return self.get_object().instance.get_history_url()