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.widgets import SplitDateTimeWidget
|
||||||
from django.forms.extras.widgets import SelectDateWidget
|
from django.forms.extras.widgets import SelectDateWidget
|
||||||
from django.forms.formsets import BaseFormSet
|
from django.forms.formsets import BaseFormSet
|
||||||
|
from django.contrib.admin.widgets import AdminDateWidget
|
||||||
from datetimewidget.widgets import DateTimeWidget
|
from datetimewidget.widgets import DateTimeWidget
|
||||||
from django.core.validators import validate_email
|
from django.core.validators import validate_email
|
||||||
import os
|
import os
|
||||||
@@ -671,6 +672,8 @@ class GeoPoint(models.Model):
|
|||||||
def half_year_from_now():
|
def half_year_from_now():
|
||||||
return timezone.now()+timezone.timedelta(days=182)
|
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
|
# models related to training planning - draft
|
||||||
# Do we need a separate class TestTarget?
|
# Do we need a separate class TestTarget?
|
||||||
@@ -819,13 +822,13 @@ class PlannedSession(models.Model):
|
|||||||
|
|
||||||
name = models.CharField(max_length=150,blank=True)
|
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,
|
startdate = models.DateField(default=timezone.now,
|
||||||
verbose_name='Start Date')
|
verbose_name='Start Date')
|
||||||
|
|
||||||
enddate = models.DateField(default=timezone.now,
|
enddate = models.DateField(default=a_week_from_now,
|
||||||
verbose_name='End Date')
|
verbose_name='End Date')
|
||||||
|
|
||||||
sessiontype = models.CharField(default='session',
|
sessiontype = models.CharField(default='session',
|
||||||
@@ -899,7 +902,7 @@ class PlannedSessionForm(ModelForm):
|
|||||||
widgets = {
|
widgets = {
|
||||||
'comment': forms.Textarea,
|
'comment': forms.Textarea,
|
||||||
'startdate': DateInput(),
|
'startdate': DateInput(),
|
||||||
'enddate': DateInput(),
|
'enddate': AdminDateWidget(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
{% block title %}New Planned Session{% endblock %}
|
{% block title %}New Planned Session{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="grid_12 alpha">
|
<div class="grid_12 alpha">
|
||||||
{% include "planningbuttons.html" %}
|
{% include "planningbuttons.html" %}
|
||||||
@@ -38,6 +39,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</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_12 alpha">
|
||||||
<div class="grid_6 alpha">
|
<div class="grid_6 alpha">
|
||||||
<form enctype="multipart/form-data" action="{{ formloc }}" method="post">
|
<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>
|
<h1>Plan for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div id="timeperiod" class="grid_2 dropdown">
|
<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">
|
<div class="dropdown-content">
|
||||||
<a class="button gray small alpha"
|
<a class="button gray small alpha"
|
||||||
href="/rowers/sessions/today/rower/{{ rower.id }}">
|
href="/rowers/sessions/today/rower/{{ rower.id }}">
|
||||||
@@ -36,6 +36,19 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</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_12 alpha">
|
||||||
{% if plannedsessions %}
|
{% if plannedsessions %}
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -23,6 +23,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid_2 suffix_6 omega">
|
<div class="grid_2 suffix_6 omega">
|
||||||
<p>
|
<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>
|
<a class="button gray small" href="/rowers/sessions/create">Add Session</a>
|
||||||
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -145,10 +145,41 @@ def team_members(user):
|
|||||||
if therower.rowerplan != 'coach':
|
if therower.rowerplan != 'coach':
|
||||||
return []
|
return []
|
||||||
teams = Team.objects.filter(manager=user)
|
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]
|
return [rower.user for rower in members]
|
||||||
except TypeError:
|
except TypeError:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
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)
|
add_rower_session(r,ps)
|
||||||
|
|
||||||
url = reverse(plannedsession_create_view)
|
url = reverse(plannedsession_create_view,
|
||||||
|
kwargs = {
|
||||||
|
'rowerid':r.id,
|
||||||
|
'timeperiod':timeperiod,
|
||||||
|
})
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
else:
|
else:
|
||||||
sessioncreateform = PlannedSessionForm()
|
sessioncreateform = PlannedSessionForm()
|
||||||
|
|||||||
@@ -11,6 +11,15 @@
|
|||||||
<head>
|
<head>
|
||||||
{% block scripts %} {% endblock %}
|
{% block scripts %} {% endblock %}
|
||||||
|
|
||||||
|
<script type="text/javascript" src="/admin/jsi18n/"></script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/core.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js"> </script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/actions.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/calendar.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/admin/DateTimeShortcuts.js"></script>
|
||||||
|
|
||||||
<script src="/static/cookielaw/js/cookielaw.js"></script>
|
<script src="/static/cookielaw/js/cookielaw.js"></script>
|
||||||
{% analytical_head_top %}
|
{% analytical_head_top %}
|
||||||
{% if GOOGLE_ANALYTICS_PROPERTY_ID %}
|
{% if GOOGLE_ANALYTICS_PROPERTY_ID %}
|
||||||
@@ -38,6 +47,8 @@
|
|||||||
<meta property="fb:app_id" content="694685920739849" />
|
<meta property="fb:app_id" content="694685920739849" />
|
||||||
<meta property="og:title" content="{% block og_title %}Rowsandall{% endblock %}" />
|
<meta property="og:title" content="{% block og_title %}Rowsandall{% endblock %}" />
|
||||||
<meta property="og:description" content="{% block og_description %}Rowsandall: Free Data and Analysis. For Rowers. By Rowers.{% endblock %}" />
|
<meta property="og:description" content="{% block og_description %}Rowsandall: Free Data and Analysis. For Rowers. By Rowers.{% endblock %}" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/static/admin/css/forms.css"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/static/admin/css/widgets.css"/>
|
||||||
<link rel="stylesheet" href="/static/css/reset.css" />
|
<link rel="stylesheet" href="/static/css/reset.css" />
|
||||||
<link rel="stylesheet" href="/static/css/text.css" />
|
<link rel="stylesheet" href="/static/css/text.css" />
|
||||||
<link rel="stylesheet" href="/static/css/960_12_col.css" />
|
<link rel="stylesheet" href="/static/css/960_12_col.css" />
|
||||||
|
|||||||
Reference in New Issue
Block a user