Coverage for apis_core/history/tables.py: 97%
29 statements
« prev ^ index » next coverage.py v7.5.3, created at 2025-06-25 10:00 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2025-06-25 10:00 +0000
1import django_tables2 as tables
3from apis_core.generic.tables import ActionColumn, CustomTemplateColumn, ViewColumn
6class DescriptionColumnHistory(CustomTemplateColumn):
7 """
8 A column showing a model description
9 """
11 template_name = "history/columns/description.html"
12 orderable = False
15class OriginalIDColumn(CustomTemplateColumn):
16 """
17 A column showing the original id of a model instance
18 """
20 template_name = "history/columns/original_id.html"
21 orderable = False
22 verbose_name = "Original ID"
25class ResetColumn(ActionColumn):
26 """
27 A column showing a reset button
28 """
30 template_name = "history/columns/reset.html"
31 permission = "change"
34class APISHistoryTableBaseTable(tables.Table):
35 history_id = tables.Column(verbose_name="ID")
36 original_id = OriginalIDColumn()
37 desc = DescriptionColumnHistory()
38 view = ViewColumn()
40 class Meta:
41 fields = ["history_id", "desc", "most_recent", "view"]
44class HistoryGenericTable(tables.Table):
45 model = tables.Column(empty_values=())
46 fields_changed = tables.Column(empty_values=())
47 instance = tables.Column(linkify=lambda record: record.get_absolute_url())
48 fields_changed = tables.TemplateColumn(
49 template_name="history/columns/fields_changed.html"
50 )
51 reset = ResetColumn()
53 class Meta:
54 fields = [
55 "model",
56 "instance",
57 "fields_changed",
58 "history_type",
59 "history_date",
60 "history_user",
61 ]
63 def render_model(self, record):
64 return record.instance.__class__.__name__