195 lines
7.0 KiB
Python
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)
|