Private
Public Access
1
0

some overlap checking on training plans

This commit is contained in:
Sander Roosendaal
2018-09-06 16:36:27 +02:00
parent 1567b24900
commit 4c8e81d0e7

View File

@@ -979,11 +979,48 @@ class TrainingTargetForm(ModelForm):
class TrainingPlan(models.Model):
rower = models.ForeignKey(Rower)
name = models.CharField(max_length=150,blank=True)
target = models.ForeignKey(TrainingTarget,blank=True)
target = models.ForeignKey(TrainingTarget,blank=True,null=True)
startdate = models.DateField(default=timezone.now)
enddate = models.DateField(
default=half_year_from_now)
def __unicode__(self):
name = self.name
startdate = self.startdate
enddate = self.enddate
firstname = self.rower.user.first_name
lastname = self.rower.user.last_name
stri = u'Training Plan for {first_name} {last_name} {s} - {e}: {n}'.format(
s = startdate.strftime('%Y-%m-%d'),
e = enddate.strftime('%Y-%m-%d'),
firstname = firstname,
lastname = lastname,
name=name
)
return stri
def save(self, *args, **kwargs):
if self.enddate < self.startdate:
startdate = self.startdate
enddate = self.enddate
self.startdate = enddate
self.enddate = startdate
otherplans = TrainingPlan.objects.filter(rower=self.rower)
for otherplan in otherplans:
if otherplan.startdate <= self.enddate and otherplan.startdate >= self.startdate:
self.enddate = otherplan.startdate-datetime.timedelta(days=1)
if otherplan.enddate >= self.startdate and otherplan.enddate <= self.enddate:
self.startdate = otherplan.enddate+datetime.timedelta(days=1)
print self.startdate,self.enddate
if not self.enddate <= self.startdate:
super(TrainingPlan,self).save(*args, **kwargs)
class TrainingPlanForm(ModelForm):
class Meta:
model = TrainingPlan