minor improvements
This commit is contained in:
@@ -10,6 +10,7 @@ from django.dispatch import receiver
|
||||
from django.forms.widgets import SplitDateTimeWidget
|
||||
from django.forms.extras.widgets import SelectDateWidget
|
||||
from django.forms.formsets import BaseFormSet
|
||||
from django.contrib.admin.widgets import AdminDateWidget
|
||||
from datetimewidget.widgets import DateTimeWidget
|
||||
from django.core.validators import validate_email
|
||||
import os
|
||||
@@ -671,6 +672,8 @@ class GeoPoint(models.Model):
|
||||
def half_year_from_now():
|
||||
return timezone.now()+timezone.timedelta(days=182)
|
||||
|
||||
def a_week_from_now():
|
||||
return timezone.now()+timezone.timedelta(days=7)
|
||||
|
||||
# models related to training planning - draft
|
||||
# Do we need a separate class TestTarget?
|
||||
@@ -819,13 +822,13 @@ class PlannedSession(models.Model):
|
||||
|
||||
name = models.CharField(max_length=150,blank=True)
|
||||
|
||||
comment = models.TextField(max_length=300,blank=True,
|
||||
comment = models.TextField(max_length=500,blank=True,
|
||||
)
|
||||
|
||||
startdate = models.DateField(default=timezone.now,
|
||||
verbose_name='Start Date')
|
||||
|
||||
enddate = models.DateField(default=timezone.now,
|
||||
enddate = models.DateField(default=a_week_from_now,
|
||||
verbose_name='End Date')
|
||||
|
||||
sessiontype = models.CharField(default='session',
|
||||
@@ -899,7 +902,7 @@ class PlannedSessionForm(ModelForm):
|
||||
widgets = {
|
||||
'comment': forms.Textarea,
|
||||
'startdate': DateInput(),
|
||||
'enddate': DateInput(),
|
||||
'enddate': AdminDateWidget(),
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -66,21 +66,21 @@
|
||||
<div class="grid_2">
|
||||
<input name='daterange' class="button green" type="submit" value="Submit"> </form>
|
||||
</div>
|
||||
{% if user.is_authenticated and user|is_manager %}
|
||||
<div class="grid_2 omega dropdown">
|
||||
<button class="grid_2 alpha button green small dropbtn">
|
||||
Change Rower
|
||||
</button>
|
||||
<div class="dropdown-content">
|
||||
{% for member in user|team_members %}
|
||||
<a class="button green small" href="/rowers/u/{{ member.id }}/list-workouts/{{ startdate|date:"Y-m-d" }}/{{ enddate|date:"Y-m-d" }}">{{ member.first_name }} {{ member.last_name }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% if user.is_authenticated and user|is_manager %}
|
||||
<div class="grid_2 omega dropdown">
|
||||
<button class="grid_2 alpha button green small dropbtn">
|
||||
Change Rower
|
||||
</button>
|
||||
<div class="dropdown-content">
|
||||
{% for member in user|team_members %}
|
||||
<a class="button green small" href="/rowers/u/{{ member.id }}/list-workouts/{{ startdate|date:"Y-m-d" }}/{{ enddate|date:"Y-m-d" }}">{{ member.first_name }} {{ member.last_name }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
|
||||
{% endif %}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
{% block title %}New Planned Session{% endblock %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div class="grid_12 alpha">
|
||||
{% include "planningbuttons.html" %}
|
||||
@@ -38,6 +39,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if user.is_authenticated and user|is_manager %}
|
||||
<div class="grid_2 dropdown">
|
||||
<button class="grid_2 alpha button green small dropbtn">
|
||||
Change Rower
|
||||
</button>
|
||||
<div class="dropdown-content">
|
||||
{% for member in user|team_rowers %}
|
||||
<a class="button green small" href="/rowers/sessions/{{ timeperiod }}/rower/{{ member.id }}">{{ member.user.first_name }} {{ member.user.last_name }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="grid_12 alpha">
|
||||
<div class="grid_6 alpha">
|
||||
<form enctype="multipart/form-data" action="{{ formloc }}" method="post">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<h1>Plan for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
|
||||
</div>
|
||||
<div id="timeperiod" class="grid_2 dropdown">
|
||||
<button class="grid_2 alpha button gray small dropbtn">Time Period</button>
|
||||
<button class="grid_2 alpha button gray small dropbtn">Select Time Period ({{ timeperiod|verbosetimeperiod }})</button>
|
||||
<div class="dropdown-content">
|
||||
<a class="button gray small alpha"
|
||||
href="/rowers/sessions/today/rower/{{ rower.id }}">
|
||||
@@ -36,6 +36,19 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% if user.is_authenticated and user|is_manager %}
|
||||
<div class="grid_2 dropdown">
|
||||
<button class="grid_2 alpha button green small dropbtn">
|
||||
Change Rower
|
||||
</button>
|
||||
<div class="dropdown-content">
|
||||
{% for member in user|team_rowers %}
|
||||
<a class="button green small" href="/rowers/sessions/{{ timeperiod }}/rower/{{ member.id }}">{{ member.user.first_name }} {{ member.user.last_name }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="grid_12 alpha">
|
||||
{% if plannedsessions %}
|
||||
<p>
|
||||
|
||||
@@ -23,6 +23,12 @@
|
||||
</div>
|
||||
<div class="grid_2 suffix_6 omega">
|
||||
<p>
|
||||
{% if timeperiod and rower %}
|
||||
<a class="button gray small" href="/rowers/sessions/create/{{ timeperiod }}/rower/{{ rower.id }}">Add Session</a>
|
||||
{% elif timeperiod %}
|
||||
<a class="button gray small" href="/rowers/sessions/create/{{ timeperiod }}">Add Session</a>
|
||||
{% else %}
|
||||
<a class="button gray small" href="/rowers/sessions/create">Add Session</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -145,10 +145,41 @@ def team_members(user):
|
||||
if therower.rowerplan != 'coach':
|
||||
return []
|
||||
teams = Team.objects.filter(manager=user)
|
||||
members = Rower.objects.filter(team__in=teams)
|
||||
members = Rower.objects.filter(team__in=teams).distinct()
|
||||
return [rower.user for rower in members]
|
||||
except TypeError:
|
||||
return []
|
||||
|
||||
return []
|
||||
|
||||
@register.filter
|
||||
def team_rowers(user):
|
||||
try:
|
||||
therower = Rower.objects.get(user=user)
|
||||
if therower.rowerplan != 'coach':
|
||||
return []
|
||||
teams = Team.objects.filter(manager=user)
|
||||
members = Rower.objects.filter(team__in=teams).distinct()
|
||||
return members
|
||||
except TypeError:
|
||||
return []
|
||||
|
||||
return []
|
||||
|
||||
@register.filter
|
||||
def verbosetimeperiod(timeperiod):
|
||||
table = {
|
||||
'today':'Today',
|
||||
'thisweek': 'This Week',
|
||||
'thismonth': 'This Month',
|
||||
'lastmonth': 'Last Month',
|
||||
'lastweek': 'Last Week',
|
||||
}
|
||||
|
||||
try:
|
||||
verbose = table[timeperiod]
|
||||
except KeyError:
|
||||
verbose = timeperiod
|
||||
|
||||
return verbose
|
||||
|
||||
|
||||
@@ -11759,7 +11759,11 @@ def plannedsession_create_view(request,timeperiod='today',rowerid=0):
|
||||
|
||||
add_rower_session(r,ps)
|
||||
|
||||
url = reverse(plannedsession_create_view)
|
||||
url = reverse(plannedsession_create_view,
|
||||
kwargs = {
|
||||
'rowerid':r.id,
|
||||
'timeperiod':timeperiod,
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
sessioncreateform = PlannedSessionForm()
|
||||
|
||||
Reference in New Issue
Block a user