admin.py 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. __package__ = 'archivebox.api'
  2. from signal_webhooks.admin import WebhookAdmin
  3. from signal_webhooks.utils import get_webhook_model
  4. from archivebox.base_models.admin import ABIDModelAdmin
  5. from api.models import APIToken
  6. class APITokenAdmin(ABIDModelAdmin):
  7. list_display = ('created_at', 'abid', 'created_by', 'token_redacted', 'expires')
  8. sort_fields = ('abid', 'created_at', 'created_by', 'expires')
  9. readonly_fields = ('created_at', 'modified_at', 'abid_info')
  10. search_fields = ('id', 'abid', 'created_by__username', 'token')
  11. fields = ('created_by', 'token', 'expires', *readonly_fields)
  12. list_filter = ('created_by',)
  13. ordering = ['-created_at']
  14. list_per_page = 100
  15. class CustomWebhookAdmin(WebhookAdmin, ABIDModelAdmin):
  16. list_display = ('created_at', 'created_by', 'abid', *WebhookAdmin.list_display)
  17. sort_fields = ('created_at', 'created_by', 'abid', 'referenced_model', 'endpoint', 'last_success', 'last_error')
  18. readonly_fields = ('created_at', 'modified_at', 'abid_info', *WebhookAdmin.readonly_fields)
  19. def register_admin(admin_site):
  20. admin_site.register(APIToken, APITokenAdmin)
  21. admin_site.register(get_webhook_model(), CustomWebhookAdmin)