diff --git a/rowers/admin.py b/rowers/admin.py index 1004a06b..4f50d1ee 100644 --- a/rowers/admin.py +++ b/rowers/admin.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import User from .models import ( Rower, Workout,GraphImage,FavoriteChart,SiteAnnouncement, Team,TeamInvite,TeamRequest, - WorkoutComment,C2WorldClassAgePerformance, + WorkoutComment,C2WorldClassAgePerformance,PlannedSession, ) # Register your models here so you can use them in the Admin module @@ -43,11 +43,17 @@ class TeamRequestAdmin(admin.ModelAdmin): 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') admin.site.unregister(User) admin.site.register(User,UserAdmin) admin.site.register(Workout,WorkoutAdmin) -admin.site.register(GraphImage) +admin.site.register(GraphImage,GraphImageAdmin) admin.site.register(Team,TeamAdmin) admin.site.register(FavoriteChart,FavoriteChartAdmin) admin.site.register(SiteAnnouncement,SiteAnnouncementAdmin) @@ -56,3 +62,5 @@ admin.site.register(TeamRequest,TeamRequestAdmin) admin.site.register(WorkoutComment,WorkoutCommentAdmin) admin.site.register(C2WorldClassAgePerformance, C2WorldClassAgePerformanceAdmin) +admin.site.register(PlannedSession,PlannedSessionAdmin) + diff --git a/rowers/models.py b/rowers/models.py index 8fa1f441..ea2e4d66 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -1387,4 +1387,85 @@ class WorkoutCommentForm(ModelForm): widgets = { 'comment': forms.Textarea, } + +# model for Planned Session (Workout, Challenge, Test) +class PlannedSession(models.Model): + + sessiontypechoices = ( + ('session','Training Session'), + ('challenge','Challenge'), + ('test','Mandatory Test'), + ) + + sessionmodechoices = ( + ('distance','Distance'), + ('time','Time') + ) + + criteriumchoices = ( + ('none','None'), + ('minimum','At Least'), + ('exact','Exactly'), + ) + + verificationchoices = ( + ('none','None'), + ('automatic','Automatic'), + ('manual','Manual') + ) + + sessionunitchoices = ( + ('min','minutes'), + ('km','km'), + ('m','meters') + ) + + manager = models.ForeignKey(User) + name = models.CharField(max_length=150,blank=True) + comment = models.TextField(max_length=300,blank=True) + startdate = models.DateField(default=timezone.now, + verbose_name='Start Date') + enddate = models.DateField(default=timezone.now, + verbose_name='End Date') + sessiontype = models.CharField(default='session', + choices=sessiontypechoices, + max_length=150) + sessionvalue = models.IntegerField(default=60,verbose_name'Value') + sessionunit = models.CharField( + default='min',choices=sessionunitchoices, + max_length=150, + verbose_name='Unit') + criterium = models.CharField( + default='none', + choices=criteriumchoices, + max_length=150) + verification = models.CharField( + default='none', + max_length=150, + choices=verificationchoices + ) + + team = models.ManyToManyField(Team,blank=True) + rower = models.ManyToManyField(Rower,blank=True) + + sessionmode = models.CharField(default='distance', + choices=sessionmodechoices, + max_length=150) + + hasranking = models.BooleanField(default=False) + +class PlannedSessionForm(ModelForm): + class Meta: + model = PlannedSession + fields = ['name','comment','startdate','enddate','sessionvalue', + 'sessionunit'] + widgets = { + 'comment': forms.Textarea, + 'startdate': SelectDateWidget( + years=range( + timezone.now().year-1,timezone.now().year+1)), + 'enddate': SelectDateWidget( + years=range( + timezone.now().year-1,timezone.now().year+1)), + }