| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import django_tables2 as tables
- from django.utils.translation import gettext_lazy as _
- from netbox.tables import BaseTable, columns
- from .template_code import PLUGIN_IS_INSTALLED, PLUGIN_NAME_TEMPLATE
- __all__ = (
- 'CatalogPluginTable',
- 'PluginVersionTable',
- )
- class PluginVersionTable(BaseTable):
- version = tables.Column(
- verbose_name=_('Version')
- )
- last_updated = columns.DateTimeColumn(
- accessor=tables.A('date'),
- timespec='minutes',
- verbose_name=_('Last Updated')
- )
- min_version = tables.Column(
- accessor=tables.A('netbox_min_version'),
- verbose_name=_('Minimum NetBox Version')
- )
- max_version = tables.Column(
- accessor=tables.A('netbox_max_version'),
- verbose_name=_('Maximum NetBox Version')
- )
- class Meta(BaseTable.Meta):
- empty_text = _('No plugin data found')
- fields = (
- 'version', 'last_updated', 'min_version', 'max_version',
- )
- default_columns = (
- 'version', 'last_updated', 'min_version', 'max_version',
- )
- orderable = False
- class CatalogPluginTable(BaseTable):
- title_long = columns.TemplateColumn(
- template_code=PLUGIN_NAME_TEMPLATE,
- verbose_name=_('Name')
- )
- author = tables.Column(
- accessor=tables.A('author__name'),
- verbose_name=_('Author')
- )
- is_local = columns.BooleanColumn(
- false_mark=None,
- verbose_name=_('Local')
- )
- is_installed = columns.TemplateColumn(
- accessor=tables.A('is_loaded'),
- verbose_name=_('Active'),
- template_code=PLUGIN_IS_INSTALLED
- )
- is_certified = columns.BooleanColumn(
- false_mark=None,
- verbose_name=_('Certified')
- )
- created_at = columns.DateTimeColumn(
- verbose_name=_('Published')
- )
- updated_at = columns.DateTimeColumn(
- verbose_name=_('Updated')
- )
- installed_version = tables.Column(
- verbose_name=_('Installed Version')
- )
- latest_version = tables.Column(
- accessor=tables.A('release_latest__version'),
- verbose_name=_('Latest Version')
- )
- class Meta(BaseTable.Meta):
- empty_text = _('No plugin data found')
- fields = (
- 'title_long', 'author', 'is_local', 'is_installed', 'is_certified', 'created_at', 'updated_at',
- 'installed_version', 'latest_version',
- )
- default_columns = (
- 'title_long', 'author', 'is_local', 'is_installed', 'is_certified', 'installed_version', 'latest_version',
- )
- # List installed plugins first, then certified plugins, then
- # everything else (with each tranche ordered alphabetically)
- order_by = ('-is_installed', '-is_certified', 'title_long')
|