Private
Public Access
1
0

added race action to race list

This commit is contained in:
Sander Roosendaal
2018-04-23 21:58:55 +02:00
parent 399d907066
commit e651198dba
4 changed files with 52 additions and 5 deletions

View File

@@ -1136,7 +1136,7 @@ class PlannedSessionForm(ModelForm):
class VirtualRaceForm(ModelForm): class VirtualRaceForm(ModelForm):
course = forms.ModelChoiceField(queryset = GeoCourse.objects, empty_label=None) course = forms.ModelChoiceField(queryset = GeoCourse.objects, empty_label=None)
registration_closure = forms.SplitDateTimeField(widget=AdminSplitDateTime(),required=False) registration_closure = forms.SplitDateTimeField(widget=AdminSplitDateTime(),required=False)
evaluation_closure = forms.SplitDateTimeField(widget=AdminSplitDateTime(),required=False) evaluation_closure = forms.SplitDateTimeField(widget=AdminSplitDateTime(),required=True)
class Meta: class Meta:
model = VirtualRace model = VirtualRace

View File

@@ -1,3 +1,4 @@
{% load rowerfilters %}
<p> <p>
<table width="100%" class="listtable shortpadded"> <table width="100%" class="listtable shortpadded">
<thead> <thead>
@@ -6,6 +7,7 @@
<th>Event</th> <th>Event</th>
<th>Country</th> <th>Country</th>
<th>Course</th> <th>Course</th>
<th>Action</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -15,6 +17,19 @@
<td><a href="/rowers/virtualevent/{{ race.id }}">{{ race.name }}</a></td> <td><a href="/rowers/virtualevent/{{ race.id }}">{{ race.name }}</a></td>
<td>{{ race.course.country }}</td> <td>{{ race.course.country }}</td>
<td>{{ race.course.name }}</td> <td>{{ race.course.name }}</td>
<td>
{% if rower %}
{% if race|can_register:rower %}
<a class="white dot" href="/rowers/virtualevent/{{ race.id }}">&nbsp;</a>
{% elif race|can_submit:rower %}
<a class="orange dot" href="/rowers/virtualevent/{{ race.id }}">&nbsp;</a>
{% elif race|race_complete:rower %}
<a class="green dot" href="/rowers/virtualevent/{{ race.id }}">&nbsp;</a>
{% else %}
<a class="red dot" href="/rowers/virtualevent/{{ race.id }}">&nbsp;</a>
{% endif %}
{% endif %}
</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>

View File

@@ -6,6 +6,9 @@ import json
import datetime import datetime
register = template.Library() register = template.Library()
from rowers.utils import calculate_age from rowers.utils import calculate_age
from rowers.plannedsessions import (
race_can_register, race_can_submit,race_rower_status
)
def strfdelta(tdelta): def strfdelta(tdelta):
minutes,seconds = divmod(tdelta.seconds,60) minutes,seconds = divmod(tdelta.seconds,60)
@@ -244,3 +247,18 @@ def date_dif(the_date):
return 1 return 1
@register.filter
def can_register(race,r):
return race_can_register(r,race)
@register.filter
def can_submit(race,r):
return race_can_submit(r,race)
@register.filter
def race_complete(race,r):
is_complete,has_registered = race_rower_status(r,race)
if is_complete == 'completed':
return True
else:
return False

View File

@@ -13328,6 +13328,8 @@ def virtualevents_view(request):
if not request.user.is_anonymous(): if not request.user.is_anonymous():
r = getrower(request.user) r = getrower(request.user)
else:
r = None
if request.method == 'POST': if request.method == 'POST':
# process form # process form
@@ -13342,19 +13344,29 @@ def virtualevents_view(request):
countries = [country] countries = [country]
if regattatype == 'upcoming': if regattatype == 'upcoming':
races = VirtualRace.objects.filter( races1 = VirtualRace.objects.filter(
startdate__gte=datetime.date.today(), startdate__gte=datetime.date.today(),
country__in=countries country__in=countries
).order_by("startdate","start_time") )
races2 = VirtualRace.objects.filter(
startdate__lte=datetime.date.today(),
evaluation_closure__gte=timezone.now(),
country__in=countries
)
races = (races1 | races2).order_by("startdate","start_time")
elif regattatype == 'previous': elif regattatype == 'previous':
races = VirtualRace.objects.filter( races = VirtualRace.objects.filter(
enddate__lt=datetime.date.today(), evaluation_closure__lt=timezone.now(),
country__in=countries country__in=countries
).order_by("startdate","start_time") ).order_by("startdate","start_time")
elif regattatype == 'ongoing': elif regattatype == 'ongoing':
races = VirtualRace.objects.filter( races = VirtualRace.objects.filter(
startdate__lte=datetime.date.today(), startdate__lte=datetime.date.today(),
evaluation_closure__gte=datetime.date.today(), evaluation_closure__gte=timezone.now(),
country__in=countries country__in=countries
).order_by("startdate","start_time") ).order_by("startdate","start_time")
elif regattatype == 'my': elif regattatype == 'my':
@@ -13374,11 +13386,13 @@ def virtualevents_view(request):
if is_ajax: if is_ajax:
return render(request,'racelist.html', return render(request,'racelist.html',
{ 'races':races, { 'races':races,
'rower':r,
}) })
return render(request,'virtualevents.html', return render(request,'virtualevents.html',
{ 'races':races, { 'races':races,
'form':form, 'form':form,
'rower':r,
} }
) )