347 lines
12 KiB
HTML
347 lines
12 KiB
HTML
{% load rowerfilters %}
|
|
<h1><a href="/rowers/list-workouts/">Workout</a></h1>
|
|
<ul class="cd-accordion-menu animated">
|
|
<li class="has-children" id="workout">
|
|
<input type="checkbox" name="group-workout" id="group-workout" checked>
|
|
<label for="group-workout">Workout</label>
|
|
<ul>
|
|
<li id="workout-dashboard">
|
|
{% if user.is_authenticated and workout|may_edit:request %}
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/workflow/">
|
|
<i class="fas fa-tachometer-alt fa-fw"></i> View
|
|
</a>
|
|
{% else %}
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/workflow/">
|
|
<i class="fas fa-tachometer-alt fa-fw"></i> View
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
{% if user.is_authenticated and workout|may_edit:request %}
|
|
<li id="workout-edit">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/edit/">
|
|
<i class="fas fa-pencil-alt fa-fw"></i> Edit
|
|
</a>
|
|
</li>
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/editintervals/">
|
|
<i class="fas fa-pause fa-fw"></i> Intervals
|
|
</a>
|
|
</li>
|
|
{# {% if workout|water %} #}
|
|
<li id="workout-courses">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/courses/">
|
|
<i class="fas fa-route fa-fw"></i> Measured Courses
|
|
</a>
|
|
</li>
|
|
{# {% endif %} #}
|
|
{% endif %}
|
|
{% if user.is_authenticated %}
|
|
<li id="workout-comments">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/comment/">
|
|
<i class="fas fa-comments fa-fw"></i> Comments
|
|
({{ workout|aantalcomments }})
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
<li id="workout-stats">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/stats/">
|
|
<i class="fal fa-table fa-fw"></i> Statistics
|
|
</a>
|
|
</li>
|
|
<li id="compare">
|
|
<a href="/rowers/team-compare-select/workout/{{ workout.id|encode }}/">
|
|
<i class="fas fa-balance-scale fa-fw"></i> Compare
|
|
</a>
|
|
</li>
|
|
<li id="cp">
|
|
<a href="/rowers/user-analysis-select/cp/workout/{{ workout.id|encode }}/">
|
|
<i class="fas fa-user-chart fa-fw"></i> CP Chart
|
|
</a>
|
|
</li>
|
|
<li id="video-analysis">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/video/">
|
|
<i class="fas fa-video-plus fa-fw"></i> Video Analysis
|
|
</a>
|
|
</li>
|
|
{% if user.is_authenticated and workout|may_edit:request %}
|
|
<li id="chart-image">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/image/">
|
|
<i class="fas fa-file-image fa-fw"></i> Upload Image
|
|
</a>
|
|
</li>
|
|
<li id="workout-delete">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/delete/">
|
|
<i class="fas fa-trash-alt fa-fw"></i> Delete
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
</li>
|
|
<li class="has-children" id="flexchart">
|
|
<input type="checkbox" name="group-flexchart" id="group-flexchart">
|
|
<label for="group-flexchart">Interactive Charts</label>
|
|
<ul>
|
|
<li id="chart-stackedchart">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/flexchartstacked/">
|
|
<i class="fas fa-align-justify fa-fw"></i> Chart Stack
|
|
</a>
|
|
</li>
|
|
<li id="chart-flexchart">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/flexchart/">
|
|
<i class="fas fa-chart-line fa-fw"></i> Flex Chart
|
|
</a>
|
|
</li>
|
|
{% if workout|water %}
|
|
<li id="chart-map">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/map/">
|
|
<i class="fas fa-map-marked-alt fa-fw"></i> Map
|
|
</a>
|
|
</li>
|
|
<li id="chart-empower">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/forcecurve/">
|
|
<i class="fas fa-dumbbell fa-fw"></i> Force Curve
|
|
</a>
|
|
</li>
|
|
<li id="chart-otwpower">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/interactiveotwplot/">
|
|
<i class="fal fa-calculator-alt fa-fw"></i> Corrected Pace Plot
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
</li>
|
|
{% if user.is_authenticated and workout|may_edit:request %}
|
|
<li class="has-children" id="chart">
|
|
<input type="checkbox" name="group-chart" id="group-chart">
|
|
<label for="group-chart">Static Charts</label>
|
|
<ul>
|
|
<li id="chart-time">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/addstatic/1/">
|
|
<i class="fas fa-stopwatch fa-fw"></i> Time
|
|
</a>
|
|
</li>
|
|
<li id="chart-distance">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/addstatic/2/">
|
|
<i class="fas fa-ruler fa-fw"></i> Distance
|
|
</a>
|
|
</li>
|
|
<li id="chart-powerpie">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/addstatic/13/">
|
|
<i class="far fa-chart-pie fa-fw"></i> Power (Pie)
|
|
</a>
|
|
</li>
|
|
<li id="chart-hrpie">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/addstatic/3/">
|
|
<i class="fas fa-heartbeat fa-fw"></i> Heart Rate (Pie)
|
|
</a>
|
|
</li>
|
|
{% if workout|water %}
|
|
<li id="chart-otwpower">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/addstatic/9/">
|
|
<i class="fas fa-chart-area fa-fw"></i> OTW Power
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
</li>
|
|
<li class="has-children" id="export">
|
|
<input type="checkbox" name="group-export" id="group-export">
|
|
<label for="group-export">Export</label>
|
|
<ul>
|
|
<li id="export-c2">
|
|
{% if workout.uploadedtoc2 %}
|
|
<a href="http://log.concept2.com/profile/{{ user|c2userid }}/log/{{ workout.uploadedtoc2 }}">
|
|
Concept2 <i class="fas fa-check"></i>
|
|
</a>
|
|
{% elif user.rower.c2token == None or user.rower.c2token == '' %}
|
|
<a href="/rowers/me/c2authorize">
|
|
Connect to Concept2
|
|
</a>
|
|
{% else %}
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/c2uploadw/">
|
|
Concept2
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
<li id="export-nk">
|
|
{% if workout.uploadedtonk %}
|
|
<a href="{{ workout|nkviewerlink }}">
|
|
NK Logbook <i class="fas fa-check"></i>
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
<li id="export-strava">
|
|
{% if workout.uploadedtostrava %}
|
|
<a href="https://www.strava.com/activities/{{ workout.uploadedtostrava }}">
|
|
Strava <i class="fas fa-check"></i>
|
|
</a>
|
|
{% elif user.rower.stravatoken == None or user.rower.stravatoken == '' %}
|
|
<a href="/rowers/me/stravaauthorize">
|
|
Connect to Strava
|
|
</a>
|
|
{% else %}
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/stravauploadw/">
|
|
Strava
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
<li id="export-st">
|
|
{% if workout.uploadedtosporttracks %}
|
|
<a href="https://sporttracks.mobi/activity/{{ workout.uploadedtosporttracks }}">
|
|
SportTracks <i class="fas fa-check"></i>
|
|
</a>
|
|
{% elif user.rower.sporttrackstoken == None or user.rower.sporttrackstoken == '' %}
|
|
<a href="/rowers/me/sporttracksauthorize">
|
|
Connect to SportTracks
|
|
</a>
|
|
{% else %}
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/sporttracksuploadw/">
|
|
SportTracks
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
<li id="export-tp">
|
|
{% if workout.uploadedtotp %}
|
|
<a href="https://app.trainingpeaks.com">
|
|
TrainingPeaks <i class="fas fa-check"></i>
|
|
</a>
|
|
{% elif user.rower.tptoken == None or user.rower.tptoken == '' %}
|
|
<a href="/rowers/me/tpauthorize">
|
|
Connect to TrainingPeaks
|
|
</a>
|
|
{% else %}
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/tpuploadw/">
|
|
TrainingPeaks
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
<li id="export-garmin">
|
|
{% if workout.uploadedtogarmin %}
|
|
<a href="https://connect.garmin.com/modern/activity/{{ workout.uploadedtogarmin }}">
|
|
Garmin <i class="fas fa-check"></i>
|
|
</a>
|
|
{% elif user.rower.garmintoken == None or user.rower.garmintoken == '' %}
|
|
<a href="/rowers/me/garminauthorize/">
|
|
Connect to Garmin
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
<li id="export-rp3">
|
|
{% if workout.uploadedtorp3 %}
|
|
<a href="https://rp3rowing-app.com/workouts/show/{{ workout.uploadedtorp3 }}">
|
|
RP3 <i class="fas fa-check"></i>
|
|
</a>
|
|
{% elif user.rower.rp3token == None or user.rower.rp3token == '' %}
|
|
<a href="/rowers/me/rp3authorize">
|
|
Connect to RP3
|
|
</a>
|
|
{% else %}
|
|
<a href="https://rp3rowing-app.com/home">
|
|
RP3
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
<li id="export-csv">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/emailcsv/">
|
|
CSV
|
|
</a>
|
|
</li>
|
|
<li id="export-gpx">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/emailgpx/">
|
|
GPX
|
|
</a>
|
|
</li>
|
|
<li id="export-tcx">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/emailtcx/">
|
|
TCX
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="has-children" id="data">
|
|
<input type="checkbox" name="group-data" id="group-data">
|
|
<label for="group-data">Data</label>
|
|
<ul>
|
|
<li id="data-smoothen">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/smoothenpace/">
|
|
<i class="fas fa-magic fa-fw"></i> Smoothen
|
|
</a>
|
|
</li>
|
|
<li id="data-raw">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/undosmoothenpace/">
|
|
<i class="fas fa-undo fa-fw"></i> Restore Raw
|
|
</a>
|
|
</li>
|
|
<li id="data-fusion">
|
|
<a href="/rowers/workout/fusion/{{ workout.id|encode }}/">
|
|
<i class="fas fa-blender fa-fw"></i> Sensor Fusion
|
|
</a>
|
|
</li>
|
|
<li id="data-split">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/split/">
|
|
<i class="fas fa-cut fa-fw"></i> Split Workout
|
|
</a>
|
|
</li>
|
|
<li id="data-view">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/data/">
|
|
<i class="fal fa-table fa-fw"></i> Explore Raw Data
|
|
</a>
|
|
</ul>
|
|
</li>
|
|
<li class="has-children" id="advanced">
|
|
<input type="checkbox" name="group-advanced" id="group-advanced">
|
|
<label for="group-advanced">Advanced</label>
|
|
<ul>
|
|
{% if workout|water %}
|
|
<li id="advanced-wind">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/wind/">
|
|
<i class="fas fa-pennant fa-fw"></i> Wind
|
|
</a>
|
|
</li>
|
|
<li id="advanced-stream">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/stream/">
|
|
<i class="fas fa-stream fa-fw"></i> Stream
|
|
</a>
|
|
</li>
|
|
<li id="advanced-otwpower">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/otwsetpower/">
|
|
<i class="fas fa-calculator-alt fa-fw"></i> OTW Power
|
|
</a>
|
|
</li>
|
|
<li id="advanced-otwpower">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/zeropower-confirm/">
|
|
<i class="fas fa-eraser fa-fw"></i> Remove Power Data
|
|
</a>
|
|
</li>
|
|
{% if 'speedcoach2' in workout.workoutsource or 'nklinklogbook' in workout.workoutsource %}
|
|
<li id="advanced-usegps">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/otwusegps/">
|
|
<i class="fas fa-satellite"></i>
|
|
{% if workout.impeller %} {% else %}• {% endif %}Use GPS data
|
|
</a>
|
|
</li>
|
|
<li id="advanced-useimpeller">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/otwuseimpeller/">
|
|
<i class="fas fa-wind-turbine fa-rotate-180"></i>
|
|
{% if workout.impeller %}• {% else %} {% endif %}Use Impeller data
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
{% endif %}
|
|
<li id="advanced-instroke">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/instroke/">
|
|
<i class="fas fa-search-plus fa-fw"></i>
|
|
In-Stroke Metrics
|
|
</a>
|
|
</li>
|
|
<li id="advanced-recalcsummary">
|
|
<a href="/rowers/workout/{{ workout.id|encode }}/recalcsummary/">
|
|
<i class="fas fa-window-restore fa-fw"></i> Update Summary
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
{% endif %}
|
|
</ul><!-- cd-accordion-menu -->
|
|
|
|
{% include 'menuscript.html' %}
|