tables.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import django_tables2 as tables
  2. from django_tables2.utils import Accessor
  3. from utilities.tables import BaseTable, ToggleColumn
  4. from .models import SecretRole, Secret
  5. SECRETROLE_EDIT_LINK = """
  6. {% if perms.secrets.change_secretrole %}
  7. <a href="{% url 'secrets:secretrole_edit' slug=record.slug %}">Edit</a>
  8. {% endif %}
  9. """
  10. #
  11. # Secret roles
  12. #
  13. class SecretRoleTable(BaseTable):
  14. pk = ToggleColumn()
  15. name = tables.LinkColumn(verbose_name='Name')
  16. secret_count = tables.Column(verbose_name='Secrets')
  17. slug = tables.Column(verbose_name='Slug')
  18. edit = tables.TemplateColumn(template_code=SECRETROLE_EDIT_LINK, verbose_name='')
  19. class Meta(BaseTable.Meta):
  20. model = SecretRole
  21. fields = ('pk', 'name', 'secret_count', 'slug', 'edit')
  22. #
  23. # Secrets
  24. #
  25. class SecretTable(BaseTable):
  26. pk = ToggleColumn()
  27. device = tables.LinkColumn('secrets:secret', args=[Accessor('pk')], verbose_name='Device')
  28. role = tables.Column(verbose_name='Role')
  29. name = tables.Column(verbose_name='Name')
  30. last_updated = tables.DateTimeColumn(verbose_name='Last updated')
  31. class Meta(BaseTable.Meta):
  32. model = Secret
  33. fields = ('pk', 'device', 'role', 'name', 'last_updated')