from django.contrib import admin
from action_triggers import models as action_triggers_models
[docs]
class WebhookInline(admin.StackedInline):
    """Support for inlining `Webhook` objects."""
    model = action_triggers_models.Webhook
    extra = 0 
[docs]
class MessageBrokerQueueInline(admin.StackedInline):
    """Support for inlining `MessageBrokerQueue` objects."""
    model = action_triggers_models.MessageBrokerQueue
    extra = 0 
[docs]
class ConfigSignalInline(admin.TabularInline):
    """Support for inlining `ConfigSignal` objects."""
    model = action_triggers_models.ConfigSignal
    extra = 0 
[docs]
@admin.register(action_triggers_models.Config)
class ConfigAdmin(admin.ModelAdmin):
    """Admin interface for the `Config` model."""
    list_display = ("id", "created_on", "created_by", "active")
    list_filter = ("active", "created_on", "content_types")
    search_fields = ("id", "created_by__username")
    readonly_fields = ("created_on",)
    ordering = ("-created_on",)
    date_hierarchy = "created_on"
    autocomplete_fields = ("created_by",)
    inlines = (ConfigSignalInline, WebhookInline, MessageBrokerQueueInline) 
[docs]
@admin.register(action_triggers_models.Webhook)
class WebhookAdmin(admin.ModelAdmin):
    """Admin interface for the `Webhook` model."""
    list_display = ("id", "config", "url", "http_method", "timeout_secs")
    list_filter = ("http_method",)
    search_fields = ("config__id",)
    autocomplete_fields = ("config",) 
[docs]
@admin.register(action_triggers_models.MessageBrokerQueue)
class MessageBrokerQueueAdmin(admin.ModelAdmin):
    """Admin interface for the `MessageBrokerQueue` model."""
    list_display = (
        "id",
        "name",
        "config",
        "timeout_secs",
    )
    search_fields = ("config__id",)
    autocomplete_fields = ("config",) 
[docs]
@admin.register(action_triggers_models.ConfigSignal)
class ConfigSignalAdmin(admin.ModelAdmin):
    """Admin interface for the `ConfigSignal` model."""
    list_display = ("id", "config", "signal")
    list_filter = ("signal",)
    search_fields = ("config__id",)
    autocomplete_fields = ("config",)