admin.py

Paul Carensac, 03/24/2016 03:30 pm

Download (3.87 KB)

 
1
from django import forms
2
from django.contrib import admin
3
from pyrosapp.models import *
4

    
5
# Many To Many interface adapter
6

    
7
class UserAndSPInline(admin.TabularInline):
8
    model = ScientificProgram.users.through
9

    
10
class SequenceAndSHInline(admin.TabularInline):
11
    model = ScheduleHistory.sequences.through
12

    
13
class ScheduleHistoryAdmin(admin.ModelAdmin):
14
    inlines = [
15
        SequenceAndSHInline,
16
    ]
17
    exclude = ('sequences',)
18

    
19

    
20
# One To Many interface adapters
21

    
22
class SequenceInline(admin.TabularInline):
23
    model = Sequence
24
    fields = ("name",)
25
    show_change_link = True
26

    
27
class RequestInline(admin.TabularInline):
28
    model = Request
29
    fields = ("name",)
30
    show_change_link = True
31

    
32
class AlbumInline(admin.TabularInline):
33
    model = Album
34
    fields = ("name",)
35
    show_change_link = True
36

    
37
class PlanInline(admin.TabularInline):
38
    model = Plan
39
    fields = ("name",)
40
    show_change_link = True
41

    
42
class ImageInline(admin.TabularInline):
43
    model = Image
44
    fields = ("name",)
45
    show_change_link = True
46

    
47
class DetectorInline(admin.TabularInline):
48
    model = Detector
49
    fields = ("name",)
50
    show_change_link = True
51

    
52
class UserInline(admin.TabularInline):
53
    model = User
54
    fields = ("name",)
55
    show_change_link = True
56

    
57
class FilterInline(admin.TabularInline):
58
    model = Filter
59
    fields = ("name",)
60
    show_change_link = True
61

    
62
class AlertInline(admin.TabularInline):
63
    model = Alert
64
    fields = ("request.name",)
65
    show_change_link = True
66

    
67

    
68

    
69
class RequestAdmin(admin.ModelAdmin):
70
    inlines = [
71
        SequenceInline,
72
    ]
73

    
74
class ScheduleAdmin(admin.ModelAdmin):
75
    inlines = [
76
        SequenceInline,
77
    ]
78

    
79
class SequenceAdmin(admin.ModelAdmin):
80
    inlines = [
81
        AlbumInline,
82
        SequenceAndSHInline, # for M2M interface
83
    ]
84

    
85
class UserAdmin(admin.ModelAdmin):
86
    inlines = [
87
        RequestInline,
88
        UserAndSPInline, # for M2M interface
89
    ]
90

    
91
class StrategyObsAdmin(admin.ModelAdmin):
92
    inlines = [
93
        AlertInline,
94
    ]
95

    
96
class ScientificProgramAdmin(admin.ModelAdmin):
97
    inlines = [
98
        RequestInline,
99
        UserAndSPInline, # for M2M interface
100
    ]
101
    exclude = ('users',) # for M2M interface
102

    
103
class CountryAdmin(admin.ModelAdmin):
104
    inlines = [
105
        UserInline,
106
    ]
107

    
108
class UserLevelAdmin(admin.ModelAdmin):
109
    inlines = [
110
        UserInline,
111
    ]
112

    
113
class FilterAdmin(admin.ModelAdmin):
114
    inlines = [
115
        PlanInline,
116
    ]
117

    
118
class NrtAnalysisAdmin(admin.ModelAdmin):
119
    inlines = [
120
        ImageInline,
121
    ]
122

    
123
class DetectorAdmin(admin.ModelAdmin):
124
    inlines = [
125
        FilterInline,
126
        AlbumInline,
127
    ]
128

    
129
class TelescopeAdmin(admin.ModelAdmin):
130
    inlines = [
131
        DetectorInline,
132
    ]
133

    
134
class PlanAdmin(admin.ModelAdmin):
135
    inlines = [
136
        ImageInline,
137
    ]
138

    
139
class AlbumAdmin(admin.ModelAdmin):
140
    inlines = [
141
        PlanInline,
142
    ]
143

    
144
class SequenceTypeAdmin(admin.ModelAdmin):
145
    inlines = [
146
        SequenceInline,
147
    ]
148

    
149

    
150
# Link the models to the admin interface
151

    
152
admin.site.register(Album, AlbumAdmin)
153
admin.site.register(Alert)
154
admin.site.register(Country, CountryAdmin)
155
admin.site.register(Detector, DetectorAdmin)
156
admin.site.register(Device)
157
admin.site.register(Filter, FilterAdmin)
158
admin.site.register(Image)
159
admin.site.register(NrtAnalysis, NrtAnalysisAdmin)
160
admin.site.register(Plan, PlanAdmin)
161
admin.site.register(Request, RequestAdmin)
162
admin.site.register(Schedule, ScheduleAdmin)
163
admin.site.register(ScheduleHistory, ScheduleHistoryAdmin)
164
admin.site.register(ScientificProgram, ScientificProgramAdmin)
165
admin.site.register(Sequence, SequenceAdmin)
166
admin.site.register(SequenceType, SequenceTypeAdmin)
167
admin.site.register(SiteWatch)
168
admin.site.register(SiteWatchHistory)
169
admin.site.register(StrategyObs, StrategyObsAdmin)
170
admin.site.register(Telescope, TelescopeAdmin)
171
admin.site.register(User, UserAdmin)
172
admin.site.register(UserLevel, UserLevelAdmin)
173
admin.site.register(WeatherWatch)
174
admin.site.register(WeatherWatchHistory)