added race action to race list
This commit is contained in:
@@ -1136,7 +1136,7 @@ class PlannedSessionForm(ModelForm):
|
||||
class VirtualRaceForm(ModelForm):
|
||||
course = forms.ModelChoiceField(queryset = GeoCourse.objects, empty_label=None)
|
||||
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:
|
||||
model = VirtualRace
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{% load rowerfilters %}
|
||||
<p>
|
||||
<table width="100%" class="listtable shortpadded">
|
||||
<thead>
|
||||
@@ -6,6 +7,7 @@
|
||||
<th>Event</th>
|
||||
<th>Country</th>
|
||||
<th>Course</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -15,6 +17,19 @@
|
||||
<td><a href="/rowers/virtualevent/{{ race.id }}">{{ race.name }}</a></td>
|
||||
<td>{{ race.course.country }}</td>
|
||||
<td>{{ race.course.name }}</td>
|
||||
<td>
|
||||
{% if rower %}
|
||||
{% if race|can_register:rower %}
|
||||
<a class="white dot" href="/rowers/virtualevent/{{ race.id }}"> </a>
|
||||
{% elif race|can_submit:rower %}
|
||||
<a class="orange dot" href="/rowers/virtualevent/{{ race.id }}"> </a>
|
||||
{% elif race|race_complete:rower %}
|
||||
<a class="green dot" href="/rowers/virtualevent/{{ race.id }}"> </a>
|
||||
{% else %}
|
||||
<a class="red dot" href="/rowers/virtualevent/{{ race.id }}"> </a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
@@ -6,6 +6,9 @@ import json
|
||||
import datetime
|
||||
register = template.Library()
|
||||
from rowers.utils import calculate_age
|
||||
from rowers.plannedsessions import (
|
||||
race_can_register, race_can_submit,race_rower_status
|
||||
)
|
||||
|
||||
def strfdelta(tdelta):
|
||||
minutes,seconds = divmod(tdelta.seconds,60)
|
||||
@@ -244,3 +247,18 @@ def date_dif(the_date):
|
||||
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
|
||||
|
||||
@@ -13328,6 +13328,8 @@ def virtualevents_view(request):
|
||||
|
||||
if not request.user.is_anonymous():
|
||||
r = getrower(request.user)
|
||||
else:
|
||||
r = None
|
||||
|
||||
if request.method == 'POST':
|
||||
# process form
|
||||
@@ -13342,19 +13344,29 @@ def virtualevents_view(request):
|
||||
countries = [country]
|
||||
|
||||
if regattatype == 'upcoming':
|
||||
races = VirtualRace.objects.filter(
|
||||
races1 = VirtualRace.objects.filter(
|
||||
startdate__gte=datetime.date.today(),
|
||||
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':
|
||||
races = VirtualRace.objects.filter(
|
||||
enddate__lt=datetime.date.today(),
|
||||
evaluation_closure__lt=timezone.now(),
|
||||
country__in=countries
|
||||
).order_by("startdate","start_time")
|
||||
elif regattatype == 'ongoing':
|
||||
races = VirtualRace.objects.filter(
|
||||
startdate__lte=datetime.date.today(),
|
||||
evaluation_closure__gte=datetime.date.today(),
|
||||
evaluation_closure__gte=timezone.now(),
|
||||
country__in=countries
|
||||
).order_by("startdate","start_time")
|
||||
elif regattatype == 'my':
|
||||
@@ -13374,11 +13386,13 @@ def virtualevents_view(request):
|
||||
if is_ajax:
|
||||
return render(request,'racelist.html',
|
||||
{ 'races':races,
|
||||
'rower':r,
|
||||
})
|
||||
|
||||
return render(request,'virtualevents.html',
|
||||
{ 'races':races,
|
||||
'form':form,
|
||||
'rower':r,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user