mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-21 09:51:09 -05:00
yay
This commit is contained in:
@@ -32,12 +32,12 @@ class RollerCoasterStatsInline(admin.StackedInline):
|
||||
|
||||
@admin.register(Ride)
|
||||
class RideAdmin(SimpleHistoryAdmin):
|
||||
list_display = ('name', 'park', 'category', 'get_status', 'manufacturer', 'opening_date', 'get_avg_rating')
|
||||
list_display = ('id', 'name', 'park', 'category', 'get_status', 'manufacturer', 'opening_date', 'get_avg_rating')
|
||||
list_filter = ('status', 'category', 'manufacturer', 'park')
|
||||
search_fields = ('name', 'park__name', 'manufacturer__name', 'description')
|
||||
prepopulated_fields = {'slug': ('name',)}
|
||||
inlines = [RollerCoasterStatsInline]
|
||||
readonly_fields = ('created_at', 'updated_at')
|
||||
readonly_fields = ('id', 'created_at', 'updated_at')
|
||||
history_list_display = ['status', 'manufacturer']
|
||||
actions = ['mark_as_operating', 'mark_as_closed', 'mark_as_under_maintenance', 'mark_as_removed']
|
||||
|
||||
@@ -80,18 +80,19 @@ class RideAdmin(SimpleHistoryAdmin):
|
||||
)
|
||||
}),
|
||||
('Metadata', {
|
||||
'fields': ('created_at', 'updated_at'),
|
||||
'fields': ('id', 'created_at', 'updated_at'),
|
||||
'classes': ('collapse',)
|
||||
}),
|
||||
)
|
||||
|
||||
def get_status(self, obj):
|
||||
status_colors = {
|
||||
'operating': 'green',
|
||||
'closed': 'red',
|
||||
'under_maintenance': 'orange',
|
||||
'under_construction': 'blue',
|
||||
'removed': 'grey'
|
||||
'OPERATING': 'green',
|
||||
'CLOSED_TEMP': 'orange',
|
||||
'CLOSED_PERM': 'red',
|
||||
'UNDER_CONSTRUCTION': 'blue',
|
||||
'DEMOLISHED': 'grey',
|
||||
'RELOCATED': 'purple'
|
||||
}
|
||||
return format_html(
|
||||
'<span style="color: {};">{}</span>',
|
||||
@@ -101,43 +102,44 @@ class RideAdmin(SimpleHistoryAdmin):
|
||||
get_status.short_description = 'Status'
|
||||
|
||||
def get_avg_rating(self, obj):
|
||||
avg = obj.reviews.filter(status='approved').aggregate(avg_rating=Avg('rating'))['avg_rating']
|
||||
avg = obj.reviews.filter(is_published=True).aggregate(avg_rating=Avg('rating'))['avg_rating']
|
||||
if avg:
|
||||
rating_str = '{:.1f}'.format(float(avg))
|
||||
return format_html(
|
||||
'<span style="color: {};">★ {:.1f}</span>',
|
||||
'gold',
|
||||
avg
|
||||
'<span style="color: gold;">★ {}</span>',
|
||||
rating_str
|
||||
)
|
||||
return '-'
|
||||
get_avg_rating.short_description = 'Rating'
|
||||
|
||||
def mark_as_operating(self, request, queryset):
|
||||
queryset.update(status='operating')
|
||||
queryset.update(status='OPERATING')
|
||||
mark_as_operating.short_description = "Mark selected rides as operating"
|
||||
|
||||
def mark_as_closed(self, request, queryset):
|
||||
queryset.update(status='closed')
|
||||
mark_as_closed.short_description = "Mark selected rides as closed"
|
||||
queryset.update(status='CLOSED_TEMP')
|
||||
mark_as_closed.short_description = "Mark selected rides as temporarily closed"
|
||||
|
||||
def mark_as_under_maintenance(self, request, queryset):
|
||||
queryset.update(status='under_maintenance')
|
||||
queryset.update(status='CLOSED_TEMP')
|
||||
mark_as_under_maintenance.short_description = "Mark selected rides as under maintenance"
|
||||
|
||||
def mark_as_removed(self, request, queryset):
|
||||
queryset.update(status='removed')
|
||||
mark_as_removed.short_description = "Mark selected rides as removed"
|
||||
queryset.update(status='DEMOLISHED')
|
||||
mark_as_removed.short_description = "Mark selected rides as demolished"
|
||||
|
||||
@admin.register(RollerCoasterStats)
|
||||
class RollerCoasterStatsAdmin(SimpleHistoryAdmin):
|
||||
list_display = ('ride', 'height_ft', 'length_ft', 'speed_mph', 'inversions', 'get_capacity')
|
||||
list_filter = ('launch_type', 'track_type', 'train_style')
|
||||
search_fields = ('ride__name', 'track_type')
|
||||
readonly_fields = ('ride',)
|
||||
readonly_fields = ('id', 'ride')
|
||||
history_list_display = ['height_ft', 'length_ft', 'speed_mph', 'inversions']
|
||||
|
||||
fieldsets = (
|
||||
('Basic Stats', {
|
||||
'fields': (
|
||||
'id',
|
||||
'ride',
|
||||
('height_ft', 'length_ft'),
|
||||
('speed_mph', 'inversions'),
|
||||
@@ -163,7 +165,7 @@ class RollerCoasterStatsAdmin(SimpleHistoryAdmin):
|
||||
capacity = obj.trains_count * obj.cars_per_train * obj.seats_per_car
|
||||
return format_html(
|
||||
'{} seats total',
|
||||
capacity
|
||||
str(capacity)
|
||||
)
|
||||
return '-'
|
||||
get_capacity.short_description = 'Total Capacity'
|
||||
|
||||
Reference in New Issue
Block a user