source: OpenWorkouts-current/ow/templates/workout.pt @ ded7d95

currentfeature/docs
Last change on this file since ded7d95 was ded7d95, checked in by Borja Lopez <borja@…>, 5 years ago

Split the description/notes of the workout into several paragraphs if needed.

  • Property mode set to 100644
File size: 6.3 KB
Line 
1<html xmlns="http://www.w3.org/1999/xhtml"
2      xml:lang="en"
3      xmlns:tal="http://xml.zope.org/namespaces/tal"
4      xmlns:metal="http://xml.zope.org/namespaces/metal"
5      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
6      i18n:domain="OpenWorkouts"
7      metal:use-macro="load: base.pt"
8      tal:attributes="lang request.locale_name">
9
10  <metal:head-title metal:fill-slot="head-title">
11    <tal:t i18n:translate="">Workout details</tal:t>:
12    <tal:c tal:content="context.title"></tal:c>
13  </metal:head-title>
14
15  <metal:css metal:fill-slot="css">
16    <link rel="stylesheet" tal:condition="context.has_gpx"
17          href="${request.static_url('ow:static/components/Leaflet/leaflet.css')}" />
18    <link rel="stylesheet" tal:condition="context.has_gpx"
19          href="${request.static_url('ow:static/components/leaflet-elevation/leaflet-elevation.css')}" />
20    <link rel="stylesheet"
21          href="${request.static_url('ow:static/css/leaflet-elevation.css')}" />
22  </metal:css>
23
24  <metal:title metal:fill-slot="title">
25    <tal:t i18n:translate="">Workout details</tal:t>
26  </metal:title>
27
28  <metal:content metal:fill-slot="content">
29
30
31    <div class="workout-detail" id="workout">
32      <div class="workout-detail-resume">
33        <h3 tal:content="context.title"></h3>
34        <div id="" tal:attributes="id 'workout-' + context.workout_id + '-notes'">
35          <p tal:repeat="paragraph context.notes.split('\n')"
36             tal:content="paragraph"></p>
37        </div>
38        <ul class="workout-options">
39          <li>
40            <a href="" i18n:translate=""
41               tal:attributes="href request.resource_url(context, 'edit')">
42              edit workout
43            </a>
44          </li>
45          <li>
46            <a href="" i18n:translate=""
47               tal:attributes="href request.resource_url(context, 'update-from-file')">
48              update with tracking file
49            </a>
50          </li>
51          <li class="owo-del"><a href="" i18n:translate=""
52                                 tal:attributes="href request.resource_url(context, 'delete')">
53            delete
54          </a>
55          </li>
56        </ul>
57      </div>
58      <div class="workout-detail-info">
59        <ul id="" tal:attributes="id 'workout-' + context.workout_id + '-details'"
60            tal:define="hr context.hr; cad context.cad; atemp context.atemp; timezone context.owner.timezone">
61          <li class="important" tal:condition="context.distance">
62            <span><tal:t i18n:translate="">Distance</tal:t></span>
63            <tal:c tal:content="context.rounded_distance"></tal:c> km
64          </li>
65          <li class="important">
66            <span><tal:t i18n:translate="">Duration</tal:t></span>
67            <!--! use the properly formatted duration instead of the timedelta object -->
68            <tal:c tal:content="context._duration"></tal:c>
69          </li>
70          <li class="important">
71            <span><tal:t i18n:translate="">Start</tal:t></span>
72            <tal:c tal:content="context.start_in_timezone(timezone)"></tal:c>
73          </li>
74          <li tal:condition="context.speed">
75            <span><tal:t i18n:translate="">Speed</tal:t></span>
76            <span class="avg"><tal:t i18n:translate="">Avg.</tal:t>
77              <tal:c tal:content="round(context.speed['avg'], 1)"></tal:c>km/h</span>
78            <span class="max"><tal:t i18n:translate="">Max.</tal:t>
79              <tal:c tal:content="round(context.speed['max'], 1)"></tal:c>km/h</span>
80          </li>
81          <li tal:condition="hr">
82            <span><tal:t i18n:translate="">Heart Rate</tal:t></span>
83            <span class="avg"><tal:t i18n:translate="">Avg.</tal:t>
84              <tal:c tal:content="hr['avg']"></tal:c>bpm</span>
85            <span class="max"><tal:t i18n:translate="">Max.</tal:t>
86              <tal:c tal:content="hr['max']"></tal:c> bpm</span>
87          </li>
88          <li tal:condition="cad">
89            <span><tal:t i18n:translate="">Cadence</tal:t></span>
90            <span class="avg"><tal:t i18n:translate="">Avg.</tal:t>
91              <tal:c tal:content="cad['avg']"></tal:c></span>
92            <span class="max"><tal:t i18n:translate="">Max.</tal:t>
93              <tal:c tal:content="cad['max']"></tal:c></span>
94          </li>
95          <li tal:condition="atemp">
96            <span><tal:t i18n:translate="">Temperature</tal:t></span>
97            <span class="min"><tal:t i18n:translate="">Min.</tal:t>
98              <tal:c tal:content="atemp['min']"></tal:c>℃</span>
99            <span class="avg"><tal:t i18n:translate="">Avg.</tal:t>
100              <tal:c tal:content="atemp['avg']"></tal:c>℃</span>
101            <span class="max"><tal:t i18n:translate="">Max.</tal:t>
102              <tal:c tal:content="atemp['max']"></tal:c>℃</span>
103          </li>
104        </ul>
105        <div id="elevation"></div>
106      </div>
107    </div>
108
109    <!--! Track map -->
110    <div id="map" tal:condition="context.has_gpx"></div>
111  </metal:content>
112
113  <metal:body-js metal:fill-slot="body-js">
114
115    <script src="${request.static_url('ow:static/components/d3/d3.min.js')}"
116            tal:condition="context.has_gpx"></script>
117
118    <script src="${request.static_url('ow:static/components/Leaflet/leaflet.js')}"
119            tal:condition="context.has_gpx"></script>
120
121    <script src="${request.static_url('ow:static/components/leaflet-gpx/gpx.js')}"
122            tal:condition="context.has_gpx"></script>
123
124    <script src="${request.static_url('ow:static/components/leaflet-elevation/leaflet-elevation.js')}"
125            tal:condition="context.has_gpx"></script>
126
127    <script src="${request.static_url('ow:static/js/ow.js')}"
128            tal:condition="context.has_gpx"></script>
129
130    <script type="text/javascript" tal:condition="context.has_gpx">
131     var workout_map = owjs.map({
132         map_id: 'map',
133         latitude: ${start_point['latitude']},
134         longitude: ${start_point['longitude']},
135         zoom: 11,
136         gpx_url: '${request.resource_url(context, 'gpx')}',
137         start_icon: '${request.static_url('ow:static/components/leaflet-gpx/pin-icon-start.png')}',
138         end_icon: '${request.static_url('ow:static/components/leaflet-gpx/pin-icon-end.png')}',
139         shadow: '${request.static_url('ow:static/components/leaflet-gpx/pin-shadow.png')}',
140         elevation: true,
141         zoom_control: true
142     });
143     workout_map.render();
144    </script>
145  </metal:body-js>
146
147</html>
Note: See TracBrowser for help on using the repository browser.