/ cabot / cabotapp / admin.py
admin.py
 1  from django.contrib import admin
 2  from polymorphic.admin import (PolymorphicChildModelAdmin,
 3                                 PolymorphicParentModelAdmin)
 4  
 5  from .alert import AlertPlugin, AlertPluginUserData
 6  from .models import (AlertAcknowledgement, Instance, JenkinsConfig, Service,
 7                       ServiceStatusSnapshot, Shift, StatusCheck,
 8                       StatusCheckResult, UserProfile)
 9  
10  
11  class StatusCheckAdmin(PolymorphicParentModelAdmin):
12      base_model = StatusCheck
13      child_models = StatusCheck.__subclasses__()
14  
15  
16  class ChildStatusCheckAdmin(PolymorphicChildModelAdmin):
17      base_model = StatusCheck
18  
19  
20  for child_status_check in StatusCheck.__subclasses__():
21      admin.site.register(child_status_check, ChildStatusCheckAdmin)
22  
23  admin.site.register(UserProfile)
24  admin.site.register(Shift)
25  admin.site.register(Service)
26  admin.site.register(ServiceStatusSnapshot)
27  admin.site.register(StatusCheck, StatusCheckAdmin)
28  admin.site.register(StatusCheckResult)
29  admin.site.register(Instance)
30  admin.site.register(AlertPlugin)
31  admin.site.register(AlertPluginUserData)
32  admin.site.register(AlertAcknowledgement)
33  admin.site.register(JenkinsConfig)