views.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. from django.db.models import Count
  2. from extras.models import ObjectChange
  3. from extras.tables import ObjectChangeTable
  4. from netbox.views import generic
  5. from utilities.views import register_model_view
  6. from . import filtersets, forms, tables
  7. from .models import NetBoxGroup, NetBoxUser, ObjectPermission, Token
  8. #
  9. # Tokens
  10. #
  11. class TokenListView(generic.ObjectListView):
  12. queryset = Token.objects.all()
  13. filterset = filtersets.TokenFilterSet
  14. filterset_form = forms.TokenFilterForm
  15. table = tables.TokenTable
  16. @register_model_view(Token)
  17. class TokenView(generic.ObjectView):
  18. queryset = Token.objects.all()
  19. @register_model_view(Token, 'edit')
  20. class TokenEditView(generic.ObjectEditView):
  21. queryset = Token.objects.all()
  22. form = forms.TokenForm
  23. @register_model_view(Token, 'delete')
  24. class TokenDeleteView(generic.ObjectDeleteView):
  25. queryset = Token.objects.all()
  26. class TokenBulkImportView(generic.BulkImportView):
  27. queryset = Token.objects.all()
  28. model_form = forms.TokenImportForm
  29. class TokenBulkEditView(generic.BulkEditView):
  30. queryset = Token.objects.all()
  31. table = tables.TokenTable
  32. form = forms.TokenBulkEditForm
  33. class TokenBulkDeleteView(generic.BulkDeleteView):
  34. queryset = Token.objects.all()
  35. table = tables.TokenTable
  36. #
  37. # Users
  38. #
  39. class UserListView(generic.ObjectListView):
  40. queryset = NetBoxUser.objects.all()
  41. filterset = filtersets.UserFilterSet
  42. filterset_form = forms.UserFilterForm
  43. table = tables.UserTable
  44. @register_model_view(NetBoxUser)
  45. class UserView(generic.ObjectView):
  46. queryset = NetBoxUser.objects.all()
  47. template_name = 'users/user.html'
  48. def get_extra_context(self, request, instance):
  49. changelog = ObjectChange.objects.restrict(request.user, 'view').filter(user=instance)[:20]
  50. changelog_table = ObjectChangeTable(changelog)
  51. return {
  52. 'changelog_table': changelog_table,
  53. }
  54. @register_model_view(NetBoxUser, 'edit')
  55. class UserEditView(generic.ObjectEditView):
  56. queryset = NetBoxUser.objects.all()
  57. form = forms.UserForm
  58. @register_model_view(NetBoxUser, 'delete')
  59. class UserDeleteView(generic.ObjectDeleteView):
  60. queryset = NetBoxUser.objects.all()
  61. class UserBulkEditView(generic.BulkEditView):
  62. queryset = NetBoxUser.objects.all()
  63. filterset = filtersets.UserFilterSet
  64. table = tables.UserTable
  65. form = forms.UserBulkEditForm
  66. class UserBulkImportView(generic.BulkImportView):
  67. queryset = NetBoxUser.objects.all()
  68. model_form = forms.UserImportForm
  69. class UserBulkDeleteView(generic.BulkDeleteView):
  70. queryset = NetBoxUser.objects.all()
  71. filterset = filtersets.UserFilterSet
  72. table = tables.UserTable
  73. #
  74. # Groups
  75. #
  76. class GroupListView(generic.ObjectListView):
  77. queryset = NetBoxGroup.objects.annotate(users_count=Count('user'))
  78. filterset = filtersets.GroupFilterSet
  79. filterset_form = forms.GroupFilterForm
  80. table = tables.GroupTable
  81. @register_model_view(NetBoxGroup)
  82. class GroupView(generic.ObjectView):
  83. queryset = NetBoxGroup.objects.all()
  84. template_name = 'users/group.html'
  85. @register_model_view(NetBoxGroup, 'edit')
  86. class GroupEditView(generic.ObjectEditView):
  87. queryset = NetBoxGroup.objects.all()
  88. form = forms.GroupForm
  89. @register_model_view(NetBoxGroup, 'delete')
  90. class GroupDeleteView(generic.ObjectDeleteView):
  91. queryset = NetBoxGroup.objects.all()
  92. class GroupBulkImportView(generic.BulkImportView):
  93. queryset = NetBoxGroup.objects.all()
  94. model_form = forms.GroupImportForm
  95. class GroupBulkDeleteView(generic.BulkDeleteView):
  96. queryset = NetBoxGroup.objects.annotate(users_count=Count('user'))
  97. filterset = filtersets.GroupFilterSet
  98. table = tables.GroupTable
  99. #
  100. # ObjectPermissions
  101. #
  102. class ObjectPermissionListView(generic.ObjectListView):
  103. queryset = ObjectPermission.objects.all()
  104. filterset = filtersets.ObjectPermissionFilterSet
  105. filterset_form = forms.ObjectPermissionFilterForm
  106. table = tables.ObjectPermissionTable
  107. @register_model_view(ObjectPermission)
  108. class ObjectPermissionView(generic.ObjectView):
  109. queryset = ObjectPermission.objects.all()
  110. template_name = 'users/objectpermission.html'
  111. @register_model_view(ObjectPermission, 'edit')
  112. class ObjectPermissionEditView(generic.ObjectEditView):
  113. queryset = ObjectPermission.objects.all()
  114. form = forms.ObjectPermissionForm
  115. @register_model_view(ObjectPermission, 'delete')
  116. class ObjectPermissionDeleteView(generic.ObjectDeleteView):
  117. queryset = ObjectPermission.objects.all()
  118. class ObjectPermissionBulkEditView(generic.BulkEditView):
  119. queryset = ObjectPermission.objects.all()
  120. filterset = filtersets.ObjectPermissionFilterSet
  121. table = tables.ObjectPermissionTable
  122. form = forms.ObjectPermissionBulkEditForm
  123. class ObjectPermissionBulkDeleteView(generic.BulkDeleteView):
  124. queryset = ObjectPermission.objects.all()
  125. filterset = filtersets.ObjectPermissionFilterSet
  126. table = tables.ObjectPermissionTable