objectpermission.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. {% extends 'generic/object.html' %}
  2. {% load i18n %}
  3. {% load helpers %}
  4. {% load render_table from django_tables2 %}
  5. {% block title %}{% trans "Permission" %} {{ object.name }}{% endblock %}
  6. {% block subtitle %}{% endblock %}
  7. {% block content %}
  8. <div class="row mb-3">
  9. <div class="col-md-6">
  10. <div class="card">
  11. <h2 class="card-header">{% trans "Permission" %}</h2>
  12. <table class="table table-hover attr-table">
  13. <tr>
  14. <th scope="row">{% trans "Name" %}</th>
  15. <td>{{ object.name }}</td>
  16. </tr>
  17. <tr>
  18. <th scope="row">{% trans "Description" %}</th>
  19. <td>{{ object.description|placeholder }}</td>
  20. </tr>
  21. <tr>
  22. <th scope="row">{% trans "Enabled" %}</th>
  23. <td>{% checkmark object.enabled %}</td>
  24. </tr>
  25. </table>
  26. </div>
  27. <div class="card">
  28. <h2 class="card-header">{% trans "Actions" %}</h2>
  29. <table class="table table-hover attr-table">
  30. <tr>
  31. <th scope="row">{% trans "View" %}</th>
  32. <td>{% checkmark object.can_view %}</td>
  33. </tr>
  34. <tr>
  35. <th scope="row">{% trans "Add" %}</th>
  36. <td>{% checkmark object.can_add %}</td>
  37. </tr>
  38. <tr>
  39. <th scope="row">{% trans "Change" %}</th>
  40. <td>{% checkmark object.can_change %}</td>
  41. </tr>
  42. <tr>
  43. <th scope="row">{% trans "Delete" %}</th>
  44. <td>{% checkmark object.can_delete %}</td>
  45. </tr>
  46. {% for action in object.actions %}
  47. {% if action not in 'view,add,change,delete' %}
  48. <tr>
  49. <th scope="row">{{ action }}</th>
  50. <td>{% checkmark True %}</td>
  51. </tr>
  52. {% endif %}
  53. {% endfor %}
  54. </table>
  55. </div>
  56. <div class="card">
  57. <h2 class="card-header">{% trans "Constraints" %}</h2>
  58. <div class="card-body">
  59. {% if object.constraints %}
  60. <pre>{{ object.constraints|json }}</pre>
  61. {% else %}
  62. <span class="text-muted">None</span>
  63. {% endif %}
  64. </div>
  65. </div>
  66. </div>
  67. <div class="col-md-6">
  68. <div class="card">
  69. <h2 class="card-header">{% trans "Object Types" %}</h2>
  70. <ul class="list-group list-group-flush">
  71. {% for user in object.object_types.all %}
  72. <li class="list-group-item">{{ user }}</li>
  73. {% endfor %}
  74. </ul>
  75. </div>
  76. <div class="card">
  77. <h2 class="card-header">{% trans "Assigned Users" %}</h2>
  78. <div class="list-group list-group-flush">
  79. {% for user in object.users.all %}
  80. <a href="{% url 'users:user' pk=user.pk %}" class="list-group-item list-group-item-action">{{ user }}</a>
  81. {% empty %}
  82. <div class="list-group-item text-muted">{% trans "None" %}</div>
  83. {% endfor %}
  84. </div>
  85. </div>
  86. <div class="card">
  87. <h2 class="card-header">{% trans "Assigned Groups" %}</h2>
  88. <div class="list-group list-group-flush">
  89. {% for group in object.groups.all %}
  90. <a href="{% url 'users:group' pk=group.pk %}" class="list-group-item list-group-item-action">{{ group }}</a>
  91. {% empty %}
  92. <div class="list-group-item text-muted">{% trans "None" %}</div>
  93. {% endfor %}
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. {% endblock %}