diff --git a/rowers/models.py b/rowers/models.py index f9d89468..17c34286 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -955,6 +955,9 @@ class PlannedSession(models.Model): enddate = models.DateField(default=a_week_from_now, verbose_name='On or Before') + preferreddate = models.DateField(default=a_week_from_now, + verbose_name='Preferred Date') + sessiontype = models.CharField(default='session', choices=sessiontypechoices, max_length=150, @@ -1035,6 +1038,14 @@ class PlannedSession(models.Model): self.sessionvalue = course_length(self.course) elif self.sessiontype != 'coursetest': self.course = None + + if self.enddate < self.startdate: + self.enddate = self.startdate + + if self.preferreddate > self.enddate: + self.preferreddate = self.enddate + if self.preferreddate < self.startdate: + self.preferreddate = self.startdate super(PlannedSession,self).save(*args, **kwargs) @@ -1048,6 +1059,7 @@ class PlannedSessionForm(ModelForm): model = PlannedSession fields = ['startdate', 'enddate', + 'preferreddate', 'name', 'sessiontype', 'sessionmode', @@ -1067,6 +1079,7 @@ class PlannedSessionForm(ModelForm): 'comment': forms.Textarea, 'startdate': AdminDateWidget(), 'enddate': AdminDateWidget(), + 'preferreddate': AdminDateWidget(), } def __init__(self,*args,**kwargs): @@ -1079,6 +1092,7 @@ class PlannedSessionFormSmall(ModelForm): model = PlannedSession fields = ['startdate', 'enddate', + 'preferreddate', 'name', 'sessiontype', 'sessionmode', @@ -1086,7 +1100,6 @@ class PlannedSessionFormSmall(ModelForm): 'sessionvalue', 'sessionunit', 'manager', - 'comment', ] dateTimeOptions = { @@ -1097,8 +1110,8 @@ class PlannedSessionFormSmall(ModelForm): widgets = { 'startdate': DateInput(attrs={'size':10}), 'enddate': DateInput(attrs={'size':10}), + 'preferreddate': DateInput(attrs={'size':10}), 'name': forms.TextInput(attrs={'size':10}), - 'comment': forms.TextInput(attrs={'size':10}), 'sessionvalue': forms.TextInput(attrs={'style':'width:5em', 'type':'number'}), 'manager': forms.HiddenInput(), diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 29018c24..50579448 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -368,13 +368,13 @@ def get_sessions_manager(m,teamid=0,startdate=date.today(), manager=m, startdate__lte=enddate, enddate__gte=startdate, - ).order_by("startdate","enddate") + ).order_by("startdate","preferreddate","enddate") else: sps = PlannedSession.objects.filter( manager=m, startdate__lte=enddate, enddate__gte=startdate, - ).order_by("startdate","enddate") + ).order_by("startdate","preferreddate","enddate") return sps @@ -385,7 +385,7 @@ def get_sessions(r,startdate=date.today(), rower__in=[r], startdate__lte=enddate, enddate__gte=startdate, - ).order_by("startdate","enddate") + ).order_by("startdate","preferreddate","enddate") return sps diff --git a/rowers/templates/plannedsessionview.html b/rowers/templates/plannedsessionview.html index ae2b9a75..b704261a 100644 --- a/rowers/templates/plannedsessionview.html +++ b/rowers/templates/plannedsessionview.html @@ -92,9 +92,12 @@ {{ workout.date|date:"Y-m-d" }} +
{{ workout.name }} + {{ workout.notes }} +
{{ workout.distance }}m {{ workout.duration |durationprint:"%H:%M:%S.%f" }} diff --git a/rowers/views.py b/rowers/views.py index 0d94704c..be9e75eb 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -11968,7 +11968,8 @@ def plannedsession_multiclone_view( manager=request.user, rower__in=[r], startdate__lte=enddate, - enddate__gte=startdate).order_by("startdate","enddate") + enddate__gte=startdate).order_by( + "startdate","preferreddate","enddate") query = request.GET.get('q') if query: @@ -12113,7 +12114,7 @@ def plannedsession_multicreate_view(request,timeperiod='thisweek', rower__in=[r], startdate__lte=enddate, enddate__gte=startdate, - ).order_by("startdate","enddate") + ).order_by("startdate","preferreddate","enddate") else: qset = [] else: @@ -12125,7 +12126,7 @@ def plannedsession_multicreate_view(request,timeperiod='thisweek', manager = request.user, startdate__lte=enddate, enddate__gte=startdate, - ).order_by("startdate","enddate") + ).order_by("startdate","preferreddate","enddate")