537 lines
17 KiB
HTML
537 lines
17 KiB
HTML
{% extends "newbase.html" %}
|
|
{% load staticfiles %}
|
|
{% load rowerfilters %}
|
|
{% load leaflet_tags %}
|
|
|
|
{% block meta %}
|
|
{% leaflet_js %}
|
|
{% leaflet_css %}
|
|
{% endblock %}
|
|
|
|
{% block title %}Rowsandall Virtual Challenge{% endblock %}
|
|
|
|
{% block scripts %}
|
|
{% include "monitorjobs.html" %}
|
|
<script>
|
|
setTimeout("location.reload(true);",60000);
|
|
</script>
|
|
{% endblock %}
|
|
|
|
{% block og_title %}{{ race.name }}{% endblock %}
|
|
{% block description %}Virtual Rowing Challenge {{ race.name }}{% endblock %}
|
|
|
|
{% if racelogo %}
|
|
{% block og_image %}
|
|
<meta property="og:image" content="http://rowsandall.com/{{ racelogo.filename|spacetohtml }}" />
|
|
<meta property="og:image:secure_url" content="https://rowsandall.com/{{ racelogo.filename |spacetohtml }}" />
|
|
<meta property="og:image:width" content="{{ racelogo.width }}" />
|
|
<meta property="og:image:height" content="{{ racelogo.height }}" />
|
|
{% endblock %}
|
|
{% block image_src %}
|
|
<link rel="image_src" href="/{{ racelogo.filename |spacetohtml }}" />
|
|
{% endblock %}
|
|
{% endif %}
|
|
|
|
{% block main %}
|
|
|
|
|
|
<h1>{{ race.name }}</h1>
|
|
|
|
|
|
<ul class="main-content">
|
|
<li class="grid_2">
|
|
<div id="results">
|
|
<p>
|
|
{% if race|is_final %}
|
|
<h2>Final Results</h2>
|
|
{% else %}
|
|
<h2>Results</h2>
|
|
{% endif %}
|
|
</p>
|
|
{% if results or dns or dnf %}
|
|
<p>
|
|
<table class="listtable shortpadded" width="100%">
|
|
<thead>
|
|
<tr>
|
|
<th> </th>
|
|
<th>Name</th>
|
|
<th>Team Name</th>
|
|
<th> </th>
|
|
<th> </th>
|
|
<th> </th>
|
|
<th> </th>
|
|
<th>Class</th>
|
|
{% if race.sessiontype == 'race' %}
|
|
<th>Boat</th>
|
|
{% endif %}
|
|
<th>Time</th>
|
|
<th>Distance</th>
|
|
<th>Details</th>
|
|
<th> </th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for result in results %}
|
|
<tr>
|
|
<td>{{ forloop.counter }}</td>
|
|
<td>
|
|
<a href="/rowers/workout/{{ result.workoutid }}">
|
|
{{ result.username }}</a></td>
|
|
<td>{{ result.teamname }}</td>
|
|
<td>{{ result.age }}</td>
|
|
<td>{{ result.sex }}</td>
|
|
<td>{{ result.weightcategory }}</td>
|
|
<td>
|
|
{% if result.adaptiveclass == 'None' %}
|
|
|
|
{% else %}
|
|
{{ result.adaptiveclass }}
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ result.boatclass }}</td>
|
|
{% if race.sessiontype == 'race' %}
|
|
<td>{{ result.boattype }}</td>
|
|
{% endif %}
|
|
<td>{{ result.duration |durationprint:"%H:%M:%S.%f" }}</td>
|
|
<td>{{ result.distance }} m</td>
|
|
<td>
|
|
<a href="/rowers/workout/{{ result.workoutid }}">
|
|
Details</a></td>
|
|
<td>
|
|
{% if race.manager == request.user and not race|is_final %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/disqualify/{{ result.id }}/">
|
|
Disqualify
|
|
</a>
|
|
{% else %}
|
|
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
{% for result in dnf %}
|
|
<tr>
|
|
<td> </td>
|
|
<td>{{ result.username }}</td>
|
|
<td>{{ result.teamname }}</td>
|
|
<td>{{ result.age }}</td>
|
|
<td>{{ result.sex }}</td>
|
|
<td>{{ result.weightcategory }}</td>
|
|
<td>
|
|
{% if result.adaptiveclass == 'None' %}
|
|
|
|
{% else %}
|
|
{{ result.adaptiveclass }}
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ result.boatclass }}</td>
|
|
{% if race.sessiontype == 'race' %}
|
|
<td>{{ result.boattype }}</td>
|
|
{% endif %}
|
|
<td>
|
|
<a href="/rowers/workout/{{ result.workoutid|encode }}/view/entry/{{ result.id }}/">
|
|
Details</a>
|
|
</td>
|
|
<td>DNF</td>
|
|
</tr>
|
|
{% endfor %}
|
|
{% for result in dns %}
|
|
<tr>
|
|
<td> </td>
|
|
<td>{{ result.username }}</td>
|
|
<td>{{ result.teamname }}</td>
|
|
<td>{{ result.age }}</td>
|
|
<td>{{ result.sex }}</td>
|
|
<td>{{ result.weightcategory }}</td>
|
|
<td>
|
|
{% if result.adaptiveclass == 'None' %}
|
|
|
|
{% else %}
|
|
{{ result.adaptiveclass }}
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ result.boatclass }}</td>
|
|
{% if race.sessiontype == 'race' %}
|
|
<td>{{ result.boattype }}</td>
|
|
{% endif %}
|
|
<td>DNS</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</p>
|
|
<p>
|
|
<a href="/rowers/virtualevent/{{ race.id }}/compare"
|
|
title="Compare the workouts of all competitors">Compare Results</a>
|
|
</p>
|
|
{% else %}
|
|
<p>
|
|
No results yet
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
</li>
|
|
{% if form %}
|
|
<li class="grid_2">
|
|
|
|
<p>
|
|
<h2>Filter Results</h2>
|
|
</p>
|
|
<p>
|
|
|
|
<form id="result_filter_form", method="post">
|
|
<table>
|
|
{{ form.as_table }}
|
|
</table>
|
|
|
|
{% csrf_token %}
|
|
<input type="submit" value="Submit">
|
|
</p>
|
|
</li>
|
|
{% endif %}
|
|
{% if racelogo %}
|
|
<li class="grid_2">
|
|
<img src="/{{ racelogo.filename }}" alt="{{ racelogo.filename }}" height="100" width="120">
|
|
{% if race.manager == request.user %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/image">Edit Image</a>
|
|
{% endif %}
|
|
</li>
|
|
{% endif %}
|
|
{% if race.sessiontype == 'race' %}
|
|
<li class="grid_2">
|
|
<p>
|
|
<h2>Course</h2>
|
|
</p>
|
|
<div class="mapdiv">
|
|
{{ coursediv|safe }}
|
|
|
|
{{ coursescript|safe }}
|
|
</div>
|
|
</li>
|
|
{% endif %}
|
|
<li class="grid_2">
|
|
<div id="raceinfo">
|
|
<p>
|
|
<h2>Challenge Information</h2>
|
|
</p>
|
|
<p>
|
|
<table class="listtable shortpadded" width="100%">
|
|
<tbody>
|
|
{% if race.sessiontype == 'race' %}
|
|
<tr>
|
|
<th>Course</th><td>{{ race.course }}</td>
|
|
</tr>
|
|
{% else %}
|
|
<tr>
|
|
<th>Indoor Race</th><td>To be rowed on a Concept2 ergometer</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Time Zone</th><td>{{ race.timezone }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
<tr>
|
|
<th>
|
|
{{ race.sessionmode }} challenge
|
|
</th><td>{{ race.sessionvalue }} {{ race.sessionunit }}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Registration closure</th>
|
|
<td>{{ race.registration_closure }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Date</th><td>{{ race.startdate }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Race Window</th><td>{{ race.startdate }} {{ race.start_time }} to {{ race.enddate }} {{ race.end_time }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Results Submission Deadline</th><td>{{ race.evaluation_closure }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Organizer</th><td>{{ race.manager.first_name }} {{ race.manager.last_name }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Contact Email</th><td>{{ race.contact_email }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Contact Phone</th><td>{{ race.contact_phone }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Comment</th><td>{{ race.comment|linebreaks }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</p>
|
|
</div>
|
|
</li>
|
|
<li class="grid_2">
|
|
<div id="registerbuttons">
|
|
{% if request.user.is_anonymous %}
|
|
<p>
|
|
Registered users of rowsandall.com can participate in this challenge.
|
|
Participation is free, unless specified differently in the comment above.
|
|
{% if race.sessiontype == 'race' %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/register"><h3>Register</h3></a>
|
|
{% else %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/registerindoor"><h3>Register</h3></a>
|
|
{% endif %}
|
|
</p>
|
|
{% else %}
|
|
<p>
|
|
See challenge rules below. Participation to this challenge is free,
|
|
unless specified differently in the comment above.
|
|
</p>
|
|
<p>
|
|
{% for button in buttons %}
|
|
{% if button == 'registerbutton' %}
|
|
<p>
|
|
{% if race.sessiontype == 'race' %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/register"><h3>Register</h3></a>
|
|
{% else %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/registerindoor"><h3>Register</h3></a>
|
|
{% endif %}
|
|
</p>
|
|
{% endif %}
|
|
{% if button == 'submitbutton' %}
|
|
<table width=100% class="shortpadded">
|
|
<tr>
|
|
<td>
|
|
<a href="/rowers/virtualevent/{{ race.id }}/submit">Submit Workout</a>
|
|
</td>
|
|
<td>
|
|
Submit a workout that is already on the site as your challenge result
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<a href="/rowers/workout/upload/{{ race.id }}/">Upload your challenge result</a>
|
|
</td>
|
|
<td>
|
|
Upload a new workout to the site and submit it as a result. You
|
|
need a workout data file.
|
|
</td>
|
|
</tr>
|
|
{% if race.sessiontype == 'indoorrace' %}
|
|
<tr>
|
|
<td>
|
|
<a href="/rowers/workout/addmanual/{{ race.id }}">Enter your challenge result manually</a>
|
|
</td>
|
|
<td>
|
|
If you don't have a data file, enter the results
|
|
manually. If you have a photo of the monitor with the
|
|
result, it is recommended to add this to the workout.
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
{% endif %}
|
|
{% if button == 'resubmitbutton' %}
|
|
<p>
|
|
<a href="/rowers/virtualevent/{{ race.id }}/submit">Submit New Result</a>
|
|
</p>
|
|
{% endif %}
|
|
{% if button == 'withdrawbutton' %}
|
|
<p>
|
|
<a href="/rowers/virtualevent/{{ race.id }}/withdraw">Withdraw</a>
|
|
</p>
|
|
{% endif %}
|
|
{% if button == 'adddisciplinebutton' %}
|
|
<p>
|
|
<a href="/rowers/virtualevent/{{ race.id }}/adddiscipline">
|
|
Register New Boat
|
|
</a>
|
|
</p>
|
|
{% endif %}
|
|
{% if button == 'editbutton' %}
|
|
<p>
|
|
{% if race.sessiontype == 'race' %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/edit">Edit Challenge
|
|
</a>
|
|
{% else %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/editindoor">Edit Challenge
|
|
</a>
|
|
{% endif %}
|
|
</p>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
</div>
|
|
</li>
|
|
<li class="grid_2">
|
|
<div id="registered">
|
|
{% if records %}
|
|
<h2>Registered Competitors</h2>
|
|
<table class="listtable shortpadded" width="100%">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Team Name</th>
|
|
{% if race.sessiontype == 'race' %}
|
|
<th>Class</th>
|
|
<th>Boat</th>
|
|
{% else %}
|
|
<th>Class</th>
|
|
{% endif %}
|
|
<th>Age</th>
|
|
<th>Gender</th>
|
|
<th>Weight Category</th>
|
|
<th>Adaptive</th>
|
|
</tr>
|
|
<tbody>
|
|
{% for record in records %}
|
|
<tr>
|
|
<td>{{ record.username }}
|
|
<td>{{ record.teamname }}</td>
|
|
<td>{{ record.boatclass }}</td>
|
|
{% if race.sessiontype == 'race' %}
|
|
<td>{{ record.boattype }}</td>
|
|
{% endif %}
|
|
<td>{{ record.age }}</td>
|
|
<td>{{ record.sex }}</td>
|
|
<td>{{ record.weightcategory }}</td>
|
|
<td>
|
|
{% if record.adaptiveclass == 'None' %}
|
|
|
|
{% else %}
|
|
{{ record.adaptiveclass }}
|
|
{% endif %}
|
|
</td>
|
|
{% if record.userid == rower.id and 'withdrawbutton' in buttons %}
|
|
<td>
|
|
<a href="/rowers/virtualevent/{{ race.id }}/withdraw/{{ record.id }}" >Withdraw</a>
|
|
</td>
|
|
{% endif %}
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
{% for record in records %}
|
|
{% if record.userid == request.user.rower.id %}
|
|
{% if race.sessiontype == 'race' %}
|
|
{% if record.emailnotifications %}
|
|
<a href="/rowers/raceregistration/togglenotification/{{ race.id }}">
|
|
Unsubscribe from challenge notifications by email
|
|
</a>
|
|
{% else %}
|
|
<a href="/rowers/raceregistration/togglenotification/{{ race.id }}">
|
|
Subscribe to challenge notifications by email
|
|
</a>
|
|
{% endif %}
|
|
{% else %}
|
|
{% if record.emailnotifications %}
|
|
<a href="/rowers/indoorraceregistration/togglenotification/{{ race.id }}">
|
|
Unsubscribe from challenge notifications by email
|
|
</a>
|
|
{% else %}
|
|
<a href="/rowers/indoorraceregistration/togglenotification/{{ race.id }}">
|
|
Subscribe to challenge notifications by email
|
|
</a>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
</li>
|
|
<li class="grid_4">
|
|
<div id="rules">
|
|
<p>
|
|
<h2>Rules</h2>
|
|
</p>
|
|
<p>
|
|
Virtual challenge are intended as an informal way to add a
|
|
competitive element to training and as a quick way to set
|
|
up and manage for example race intensity practices.
|
|
</p>
|
|
<p>
|
|
On the water challenges are rowed on the course shown.
|
|
You cannot submit results rowed
|
|
on other bodies of water.
|
|
</p>
|
|
<p>
|
|
Indoor challenge are open for all, wherever you live.
|
|
However, be aware of the
|
|
time zone for the challenge window.
|
|
</p>
|
|
<p>
|
|
As a rowsandall.com user, you can
|
|
register to take part in this event. Please note the registration
|
|
deadline. You must register before this deadline.
|
|
You can always withdraw from participating before the registration
|
|
deadline or the start of the challenge window, whichever is earlier.
|
|
</p>
|
|
<p>
|
|
After the start of the challenge window and before the submission deadline,
|
|
you can submit results by linking the challenge to one of your uploaded
|
|
workouts. The workout start time must be within the challenge window
|
|
and your course must pass through the blue polygons on the course
|
|
map (in the right order), for your result to be valid.
|
|
</p>
|
|
<p>
|
|
The results table has a link to a page where details of your workout
|
|
are shown.
|
|
</p>
|
|
<p>
|
|
Challenge results are stored permanently and are not deleted when
|
|
you delete the respective workout or remove your account.
|
|
By registering, you agree with this and the challenge rules.
|
|
</p>
|
|
<p>
|
|
If you use a manually added workout for your indoor challenge result,
|
|
please attach a screenshot of the ergometer display for verification.
|
|
</p>
|
|
<p>
|
|
Virtual Challenges on rowsandall.com is honors based. Please be a good
|
|
sport, submit real results rowed by you, and make sure you set the
|
|
boat type correctly. For (future functionality) age and gender
|
|
corrected times, please be sure your gender and birth date are set
|
|
correctly in your user settings.
|
|
</p>
|
|
<p>
|
|
Virtual challenges are intended as an informal way to add a
|
|
competitive element to training. Virtual challenges are not
|
|
refereed or staffed to provide for participants safety.
|
|
Individual participants are entirely responsible for their
|
|
safety while participating in a virtual challenge.
|
|
</p>
|
|
<p>
|
|
Until the evaluation closure time, the challenge organizer can
|
|
review and reject entries. If you are disqualified in this
|
|
way, you will receive an email with the reason.
|
|
</p>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>
|
|
<div class="fb-share-button"
|
|
data-href="{{ request.build_absolute_uri }}"
|
|
data-layout="button" data-size="small" data-mobile-iframe="false">
|
|
<a class="fb-xfbml-parse-ignore" target="_blank"
|
|
href="https://www.facebook.com/sharer/sharer.php?u={{ request.build_absolute_uri }}">Share</a>
|
|
</div>
|
|
</p><p>
|
|
<a class="twitter-share-button"
|
|
href="https://twitter.com/intent/tweet"
|
|
data-url="{{ request.build_absolute_uri }}"
|
|
{% if race.sessiontype == 'race' %}
|
|
data-text="@rowsandall #rowingdata Participate in virtual challenge '{{ race.name }}'">Tweet</a>
|
|
{% else %}
|
|
data-text="@rowsandall #rowingdata Participate in Indoor Rowing virtual challenge '{{ race.name }}'">Tweet</a>
|
|
{% endif %}
|
|
</p><p>
|
|
<a href="https://www.pinterest.com/pin/create/button/"
|
|
data-pin-do="buttonBookmark">
|
|
</a>
|
|
</p>
|
|
|
|
|
|
{% if not racelogo and race.manager == request.user %}
|
|
<a href="/rowers/virtualevent/{{ race.id }}/image">Add Challenge Logo</a>
|
|
{% endif %}
|
|
{% endblock %}
|
|
|
|
{% block sidebar %}
|
|
{% include 'menu_racing.html' %}
|
|
{% endblock %}
|