diff --git a/rowers/models.py b/rowers/models.py
index c2cd5004..14aec8d2 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -934,7 +934,6 @@ def a_week_from_now():
# models related to training planning - draft
# Do we need a separate class TestTarget?
class TrainingTarget(models.Model):
- rower = models.ForeignKey(Rower,related_name='targetathlete',null=True)
rowers = models.ManyToManyField(Rower, related_name='targetathletes',
verbose_name='Athletes')
manager = models.ForeignKey(Rower,related_name='targetmanager',null=True)
@@ -976,10 +975,12 @@ class TrainingTargetForm(ModelForm):
try:
teams = Team.objects.filter(manager=self.instance.manager.user)
-
- self.fields['rowers'].queryset = Rower.objects.filter(
- team__in=teams
- ).distinct().order_by("user__last_name","user__first_name")
+ if not teams:
+ self.fields.pop('rowers')
+ else:
+ self.fields['rowers'].queryset = Rower.objects.filter(
+ team__in=teams
+ ).distinct().order_by("user__last_name","user__first_name")
except AttributeError:
self.fields.pop('rowers')
@@ -1007,8 +1008,6 @@ class TrainingPlan(models.Model):
('deactivated','inactive'),
)
- # rower field is obsolete. Use rowers
- rower = models.ForeignKey(Rower,related_name='planathlete',null=True)
rowers = models.ManyToManyField(Rower,related_name='planathletes',
verbose_name='Athletes')
manager = models.ForeignKey(Rower,related_name='planmanager',null=True)
@@ -1043,31 +1042,29 @@ class TrainingPlan(models.Model):
self.startdate = enddate
self.enddate = startdate
+ if not self.enddate <= self.startdate:
+ super(TrainingPlan,self).save(*args, **kwargs)
+
if self.status:
otherplans = TrainingPlan.objects.filter(
status=True).exclude(
pk=self.pk).order_by(
"-startdate")
+
for otherplan in otherplans:
if otherplan.startdate <= self.enddate and otherplan.startdate >= self.startdate:
for rower in self.rowers.all():
if rower in otherplan.rowers.all():
- print otherplan
self.status = False
+ self.save()
if otherplan.enddate >= self.startdate and otherplan.enddate <= self.enddate:
for rower in self.rowers.all():
if rower in otherplan.rowers.all():
- print otherplan
self.status = False
+ self.save()
- if not self.enddate <= self.startdate:
- super(TrainingPlan,self).save(*args, **kwargs)
- if self.rower is not None:
- self.rowers.add(self.rower)
- self.rower = None
- self.save()
macrocycles = TrainingMacroCycle.objects.filter(plan = self)
@@ -1106,9 +1103,12 @@ class TrainingPlanForm(ModelForm):
try:
teams = Team.objects.filter(manager=self.instance.manager.user)
- self.fields['rowers'].queryset = Rower.objects.filter(
- team__in=teams
- ).distinct().order_by("user__last_name","user__first_name")
+ if not teams:
+ self.fields.pop('rowers')
+ else:
+ self.fields['rowers'].queryset = Rower.objects.filter(
+ team__in=teams
+ ).distinct().order_by("user__last_name","user__first_name")
except AttributeError:
self.fields.pop('rowers')
diff --git a/rowers/templates/trainingplan_create.html b/rowers/templates/trainingplan_create.html
index 76c4d07e..6f4ddebb 100644
--- a/rowers/templates/trainingplan_create.html
+++ b/rowers/templates/trainingplan_create.html
@@ -28,7 +28,7 @@
| {{ target.date }} |
{{ target.name }} |
- {{ target.notes }} |
+ {{ target.notes|linebreaks }} |
Edit
| Delete
|
diff --git a/rowers/views.py b/rowers/views.py
index a299c996..2211ba50 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -16177,7 +16177,6 @@ def rower_create_trainingplan(request,userid=0):
p = TrainingPlan(
name=name,
- rower=therower,
target=target,
manager=themanager,
startdate=startdate,
@@ -16186,22 +16185,14 @@ def rower_create_trainingplan(request,userid=0):
p.save()
-
+ p.rowers.add(therower)
- targets2 = TrainingTarget.objects.filter(rower=therower).order_by("date")
- for target in targets2:
- if target.rower is not None:
- target.rowers.add(target.rower)
- target.rower = None
- target.save()
targets = TrainingTarget.objects.filter(rowers=therower).order_by("date")
targetform = TrainingTargetForm()
- plans = TrainingPlan.objects.filter(rower=therower).order_by("-startdate")
- plans2 = TrainingPlan.objects.filter(rowers=therower).order_by("-startdate")
+ plans = TrainingPlan.objects.filter(rowers=therower).order_by("-startdate")
- plans = plans | plans2
form = TrainingPlanForm(targets=targets,initial={'status':False})
@@ -16578,10 +16569,6 @@ def rower_trainingplan_view(request,
try:
plan = TrainingPlan.objects.get(id=id)
- if plan.rower is not None:
- plan.rowers.add(plan.rower)
- plan.rower = None
- plan.save()
except TrainingPlan.DoesNotExist:
raise Http404("Training Plan Does Not Exist")
@@ -16724,8 +16711,11 @@ def rower_trainingplan_view(request,
]
if not thismicroid and not thismacroid and not thismesoid:
- thismicro = get_todays_micro(plan,thedate=startdate)
- thismicroid = thismicro.pk
+ try:
+ thismicro = get_todays_micro(plan,thedate=startdate)
+ thismicroid = thismicro.pk
+ except AttributeError:
+ thismicroid = None
return render(request,'trainingplan.html',
@@ -16873,12 +16863,9 @@ class TrainingMesoCycleUpdate(UpdateView):
def get_object(self, *args, **kwargs):
obj = super(TrainingMesoCycleUpdate, self).get_object(*args, **kwargs)
- r = obj.plan.plan.rower
if obj.plan.plan.manager is not None and self.request.user.rower != obj.plan.plan.manager:
raise PermissionDenied('You are not allowed to edit this training plan cycle')
- if r is not None and not checkaccessuser(self.request.user,r):
- raise PermissionDenied('You are not allowed to edit this training plan cycle')
else:
obj.type = 'userdefined'
obj.save()
@@ -16954,12 +16941,10 @@ class TrainingMicroCycleUpdate(UpdateView):
def get_object(self, *args, **kwargs):
obj = super(TrainingMicroCycleUpdate, self).get_object(*args, **kwargs)
- r = obj.plan.plan.plan.rower
if obj.plan.plan.plan.manager is not None and self.request.user.rower != obj.plan.plan.plan.manager:
raise PermissionDenied('You are not allowed to edit this training plan cycle')
- if r is not None and not checkaccessuser(self.request.user,r):
- raise PermissionDenied('You are not allowed to edit this training plan cycle')
+
else:
obj.type = 'userdefined'
obj.save()
@@ -17071,10 +17056,6 @@ class TrainingTargetUpdate(UpdateView):
def get_object(self, *args, **kwargs):
obj = super(TrainingTargetUpdate, self).get_object(*args, **kwargs)
- if obj.rower is not None:
- obj.rowers.add(obj.rower)
- obj.rower = None
- obj.save()
if obj.manager is not None and self.request.user.rower != obj.manager:
raise PermissionDenied('You are not allowed to edit this training plan cycle')