-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata_models.py
More file actions
108 lines (86 loc) · 2.94 KB
/
Copy pathdata_models.py
File metadata and controls
108 lines (86 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
from data_models import models
from django.contrib import admin
from admin_ui.admin.actions.doi import fetch_dois
from .inlines.change import InAdminReviewInline, InProgressInline, InReviewInline
from .inlines.doi import (
CampaignDoiInline,
CollectionPeriodDoiInline,
DoiCampaignInline,
DoiCollectionPeriodInline,
DoiInstrumentInline,
DoiPlatformInline,
InstrumentDoiInline,
PlatformDoiInline,
)
from .permissions import EnforcedPermissionsMixin
LIMITED_INFO_LIST_FIELDS = ("short_name", "long_name")
CHANGABLE_INLINES = (InProgressInline, InReviewInline, InAdminReviewInline)
@admin.register(models.Alias)
@admin.register(models.Image)
@admin.register(models.GcmdProject)
@admin.register(models.GcmdInstrument)
@admin.register(models.GcmdPlatform)
@admin.register(models.GcmdPhenomenon)
@admin.register(models.WebsiteType)
@admin.register(models.Website)
class BasicAdmin(admin.ModelAdmin, EnforcedPermissionsMixin): ... # noqa: E701
@admin.register(models.CollectionPeriod)
class CollectionPeriodAdmin(BasicAdmin):
inlines = [CollectionPeriodDoiInline]
@admin.register(models.DOI)
class DoiAdmin(BasicAdmin):
inlines = [
DoiCampaignInline,
DoiInstrumentInline,
DoiPlatformInline,
DoiCollectionPeriodInline,
]
@admin.register(models.PlatformType)
@admin.register(models.MeasurementStyle)
@admin.register(models.MeasurementType)
@admin.register(models.HomeBase)
@admin.register(models.FocusArea)
@admin.register(models.Season)
@admin.register(models.Repository)
@admin.register(models.MeasurementRegion)
@admin.register(models.GeographicalRegion)
@admin.register(models.GeophysicalConcept)
class LimitedInfoAdmin(BasicAdmin):
list_display = LIMITED_INFO_LIST_FIELDS
@admin.register(models.Campaign)
class CampaignAdmin(BasicAdmin):
actions = [fetch_dois]
list_display = ("short_name", "long_name", "funding_agency")
list_filter = (
"ongoing",
"nasa_led",
"nasa_missions",
"focus_areas",
"seasons",
"repositories",
"platform_types",
"partner_orgs",
"geophysical_concepts",
)
inlines = (CampaignDoiInline,) + CHANGABLE_INLINES
@admin.register(models.Deployment)
@admin.register(models.PartnerOrg)
class LimitedInfoChangable(BasicAdmin):
inlines = CHANGABLE_INLINES
list_display = LIMITED_INFO_LIST_FIELDS
@admin.register(models.Instrument)
class InstrumentAdmin(BasicAdmin):
actions = [fetch_dois]
inlines = CHANGABLE_INLINES + (InstrumentDoiInline,)
list_display = LIMITED_INFO_LIST_FIELDS
@admin.register(models.Platform)
class PlatformAdmin(BasicAdmin):
actions = [fetch_dois]
inlines = CHANGABLE_INLINES + (PlatformDoiInline,)
list_display = LIMITED_INFO_LIST_FIELDS
list_filter = ("platform_type",)
@admin.register(models.IOP)
@admin.register(models.SignificantEvent)
class ShortNameChangable(BasicAdmin):
inlines = CHANGABLE_INLINES
list_display = ("short_name",)