Coverage for core/tables/data.py: 100%
30 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1import django_tables2 as tables
2from django.utils.translation import gettext_lazy as _
4from core.models import *
5from netbox.tables import NetBoxTable, PrimaryModelTable, columns
7from .columns import BackendTypeColumn
8from .template_code import DATA_SOURCE_SYNC_BUTTON
10__all__ = (
11 'DataFileTable',
12 'DataSourceTable',
13)
16class DataSourceTable(PrimaryModelTable):
17 name = tables.Column(
18 verbose_name=_('Name'),
19 linkify=True,
20 )
21 type = BackendTypeColumn(
22 verbose_name=_('Type'),
23 )
24 status = columns.ChoiceFieldColumn(
25 verbose_name=_('Status'),
26 )
27 enabled = columns.BooleanColumn(
28 verbose_name=_('Enabled'),
29 )
30 sync_interval = columns.ChoiceFieldColumn(
31 verbose_name=_('Sync interval'),
32 )
33 last_synced = tables.DateTimeColumn(
34 verbose_name=_('Last Synced'),
35 )
36 file_count = tables.Column(
37 verbose_name=_('Files'),
38 )
39 tags = columns.TagColumn(
40 url_name='core:datasource_list',
41 )
42 actions = columns.ActionsColumn(
43 extra_buttons=DATA_SOURCE_SYNC_BUTTON,
44 )
46 class Meta(PrimaryModelTable.Meta):
47 model = DataSource
48 fields = (
49 'pk', 'id', 'name', 'type', 'status', 'enabled', 'source_url', 'description', 'sync_interval', 'comments',
50 'parameters', 'last_synced', 'created', 'last_updated', 'file_count',
51 )
52 default_columns = ('pk', 'name', 'type', 'status', 'enabled', 'description', 'sync_interval', 'file_count')
55class DataFileTable(NetBoxTable):
56 source = tables.Column(
57 verbose_name=_('Source'),
58 linkify=True
59 )
60 path = tables.Column(
61 verbose_name=_('Path'),
62 linkify=True
63 )
64 last_updated = columns.DateTimeColumn(
65 verbose_name=_('Last updated'),
66 )
67 actions = columns.ActionsColumn(
68 actions=('delete',)
69 )
71 class Meta(NetBoxTable.Meta):
72 model = DataFile
73 fields = (
74 'pk', 'id', 'source', 'path', 'last_updated', 'size', 'hash',
75 )
76 default_columns = ('pk', 'source', 'path', 'size', 'last_updated')