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
« 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
7from apis_core.generic.helpers import first_member_match, module_paths
8from apis_core.generic.views import GenericModelMixin
10from .tables import HistoryGenericTable
13class HistoryView(GenericModelMixin, SingleTableMixin, DetailView):
14 template_name = "history/history.html"
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)
21 def get_table_data(self):
22 return self.get_object().get_history_data()
25class HistoryReset(GenericModelMixin, BaseDetailView, FormView):
26 form_class = Form
27 template_name = "history/reset.html"
29 def form_valid(self, form):
30 self.get_object().instance.save()
31 return super().form_valid(form)
33 def get_success_url(self):
34 return self.get_object().instance.get_history_url()