Private
Public Access
1
0
Files
rowsandall/rowers/admin.py

195 lines
7.0 KiB
Python

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from .models import (
Rower, Workout, GraphImage, FavoriteChart, SiteAnnouncement,
Team, TeamInvite, TeamRequest,
WorkoutComment, C2WorldClassAgePerformance, PlannedSession,
GeoCourse, GeoPolygon, GeoPoint, VirtualRace, VirtualRaceResult,
PaidPlan, IndoorVirtualRaceResult, ShareKey,
CourseStandard, StandardCollection, InstantPlan,
)
# Register your models here so you can use them in the Admin module
# Rower details directly under the User
class RowerInline(admin.StackedInline):
model = Rower
can_delete = False
verbose_name_plural = 'rower'
filter_horizontal = ('team', 'friends')
fieldsets = (
('Billing Details',
{'fields': ('street_address', 'city', 'postal_code', 'country', 'paymentprocessor', 'customer_id')}),
('Rower Plan',
{'fields': ('paidplan', 'rowerplan', 'paymenttype', 'planexpires', 'teamplanexpires', 'protrialexpires', 'plantrialexpires', 'coachtrialexpires', 'eurocredits', 'clubsize', 'offercoaching')}),
('Rower Settings',
{'fields':
('surveydone', 'surveydonedate', 'gdproptin', 'gdproptindate', 'weightcategory', 'sex', 'adaptiveclass', 'birthdate', 'getemailnotifications',
'getimportantemails', 'emailbounced', 'defaultlandingpage',
'defaulttimezone', 'showfavoritechartnotes')}),
('Rower Zones',
{'fields':
('ftp', 'otwslack', 'pw_ut2', 'pw_ut1', 'pw_at', 'pw_tr', 'pw_an', 'max',
'rest', 'ut2', 'ut1', 'at', 'tr', 'an', 'hrftp',)}),
('Import/Export Keys',
{'fields': ('c2token', 'tokenexpirydate',
'c2refreshtoken',
'sporttrackstoken', 'sporttrackstokenexpirydate',
'sporttracksrefreshtoken',
'tptoken', 'tptokenexpirydate', 'tprefreshtoken',
'polartoken', 'polartokenexpirydate',
'polarrefreshtoken', 'polaruserid',
'stravatoken', 'stravatokenexpirydate', 'stravarefreshtoken',
'stravaexportas',
'garmintoken', 'garminrefreshtoken',
'nktoken','nkrefreshtoken','nktokenexpirydate',
'rojabo_token','rojabo_refreshtoken','rojabo_tokenexpirydate')}),
('Import/Export Settings',
{'fields': ('c2_auto_export', 'c2_auto_import',
'rp3_auto_import','nk_auto_import','trainingpeaks_auto_export',
'polar_auto_import','strava_auto_export','strava_auto_import')}),
('Team',
{'fields': ('friends', 'privacy', 'team')}),
)
# class UserAdmin(UserAdmin):
class UserAdmin(admin.ModelAdmin):
inlines = (RowerInline,)
list_display = ('username', 'email', 'first_name',
'last_name', 'rowerplan', 'clubsize')
fieldsets = (
('Personal info',
{'fields':
('first_name', 'last_name', 'email', 'date_joined', 'last_login',)}),
('Permissions',
{'fields':
('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions',)}),)
search_fields = ["username", "first_name", "last_name", "email"]
def rowerplan(self, obj): # pragma: no cover
return obj.rower.rowerplan
def clubsize(self, obj): # pragma: no cover
return obj.rower.clubsize
class WorkoutAdmin(admin.ModelAdmin):
list_display = ('date', 'user', 'name', 'workouttype', 'boattype')
class FavoriteChartAdmin(admin.ModelAdmin):
list_display = ('user', 'xparam', 'yparam1', 'yparam2',
'plottype', 'workouttype', 'reststrokes')
class C2WorldClassAgePerformanceAdmin(admin.ModelAdmin):
list_display = ('sex', 'weightcategory', 'age',
'distance', 'power', 'name', 'season')
class SiteAnnouncementAdmin(admin.ModelAdmin):
list_display = ('announcement', 'created',
'modified', 'expires')
class TeamAdmin(admin.ModelAdmin):
list_display = ('name', 'manager')
class TeamInviteAdmin(admin.ModelAdmin):
list_display = ('issuedate', 'team', 'user', 'code')
class TeamRequestAdmin(admin.ModelAdmin):
list_display = ('issuedate', 'team', 'user', 'code')
class WorkoutCommentAdmin(admin.ModelAdmin):
list_display = ('created', 'user', 'workout')
class PlannedSessionAdmin(admin.ModelAdmin):
list_display = ('name', 'startdate', 'enddate',
'manager', 'sessionvalue', 'sessionunit')
class GraphImageAdmin(admin.ModelAdmin):
list_display = ('creationdatetime', 'workout', 'filename')
class GeoPolygonInline(admin.StackedInline):
model = GeoPolygon
class ShareKeyAdmin(admin.ModelAdmin):
list_display = ('location', 'creation_date', 'expiration_date')
class GeoCourseAdmin(admin.ModelAdmin):
list_display = ('manager', 'name')
inlines = (GeoPolygonInline,)
search_fields = ['name']
class VirtualRaceAdmin(admin.ModelAdmin):
list_display = ('manager', 'name', 'startdate', 'country')
search_fields = ['name', 'country']
class VirtualRaceResultAdmin(admin.ModelAdmin):
list_display = ('race', 'userid', 'username',
'boattype', 'age', 'weightcategory')
search_fields = ['race__name', 'username']
class IndoorVirtualRaceResultAdmin(admin.ModelAdmin):
list_display = ('race', 'userid', 'username',
'boatclass', 'age', 'weightcategory')
search_fields = ['race__name', 'username']
class PaidPlanAdmin(admin.ModelAdmin):
list_display = ('name', 'shortname', 'price', 'paymenttype',
'paymentprocessor', 'external_id')
class StandardCollectionAdmin(admin.ModelAdmin):
list_display = ('name', 'manager')
class CourseStandardAdmin(admin.ModelAdmin):
list_display = ('name', 'standardcollection')
class InstantPlanAdmin(admin.ModelAdmin):
list_display = ('name','duration','price')
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
admin.site.register(Workout, WorkoutAdmin)
admin.site.register(GraphImage, GraphImageAdmin)
admin.site.register(Team, TeamAdmin)
admin.site.register(FavoriteChart, FavoriteChartAdmin)
admin.site.register(SiteAnnouncement, SiteAnnouncementAdmin)
admin.site.register(TeamInvite, TeamInviteAdmin)
admin.site.register(TeamRequest, TeamRequestAdmin)
admin.site.register(WorkoutComment, WorkoutCommentAdmin)
admin.site.register(C2WorldClassAgePerformance,
C2WorldClassAgePerformanceAdmin)
admin.site.register(PlannedSession, PlannedSessionAdmin)
admin.site.register(GeoCourse, GeoCourseAdmin)
admin.site.register(VirtualRace, VirtualRaceAdmin)
admin.site.register(VirtualRaceResult, VirtualRaceResultAdmin)
admin.site.register(IndoorVirtualRaceResult, IndoorVirtualRaceResultAdmin)
admin.site.register(PaidPlan, PaidPlanAdmin)
admin.site.register(ShareKey, ShareKeyAdmin)
admin.site.register(CourseStandard, CourseStandardAdmin)
admin.site.register(StandardCollection, StandardCollectionAdmin)
admin.site.register(InstantPlan, InstantPlanAdmin)