some overlap checking on training plans
This commit is contained in:
@@ -979,11 +979,48 @@ class TrainingTargetForm(ModelForm):
|
|||||||
class TrainingPlan(models.Model):
|
class TrainingPlan(models.Model):
|
||||||
rower = models.ForeignKey(Rower)
|
rower = models.ForeignKey(Rower)
|
||||||
name = models.CharField(max_length=150,blank=True)
|
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)
|
startdate = models.DateField(default=timezone.now)
|
||||||
enddate = models.DateField(
|
enddate = models.DateField(
|
||||||
default=half_year_from_now)
|
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 TrainingPlanForm(ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TrainingPlan
|
model = TrainingPlan
|
||||||
|
|||||||
Reference in New Issue
Block a user