Stable UI with changes based on wishes from Marcus

This commit is contained in:
Simon Pamies committed 2011-06-16 09:37:47 +02:00
1 parent fbca2db572
commit 2fefa1e92e
12 files changed
+168 -478

No files matched your search

+1 -2
View File
@@ -30,11 +30,10 @@ Simon
+ Sortierung funktioniert nicht richtig in den Legs und den Werten (der 1. Platz fehlt manchmal)
+ Anstatt DropDB lieber ein Removeallby eventname, racename ermöglichen (auch in der DB UI)
+ Zwei Zeilen in den Titeln
+ Wie kriege ich die Bars hin?
+ Mehrere Rennen anzeigbar und auswählbar machen
+ iPhone UI implementieren
+ Wenn Axel Branches eingerichtet hat, dann MongoDBs auf Server startbar machen über supervisord
@@ -128,6 +128,8 @@ def eventConfiguration(configurator):
dbrace = model.RaceImpl()
dbrace.update(dict(event=event['name'], name=rc['name']))
dbrace.update(dict(current_legs=[]))
# make sure to include start to enable sorting
if rc.has_key('start'):
dbrace.update(dict(start=rc['start']))
@@ -263,6 +265,7 @@ def liveRaceInformation(configurator):
# if competitor hasn't started yet we just ignore this leg
# and don't update the competitors information for the given leg
if competitor.get('started', False) is False:
comp.update(dict(current_leg=None))
continue
mark_name = leg['to']
@@ -347,7 +350,7 @@ def liveRaceInformation(configurator):
# compute total and net points of competitor
# net points: sum'd ranks of all races
net_points = map(sum, c_races)
net_points = 0
# total points: sum'd over ranks of all races but
# but for more than ten races discard some values
@@ -65,6 +65,8 @@ class Competitor(BaseDocument):
'event': unicode,
'nationality': unicode,
'current_leg' : int, # denotes the current leg the competitor is in
'total_points': int,
'net_points' : int,
@@ -17,6 +17,7 @@ log = logging.getLogger(__name__)
logging.basicConfig()
current_leaderboard_event = None
current_iphone_event = None
class BaseView(object):
@@ -102,6 +103,15 @@ class BaseView(object):
return cev
def currentIPhoneEvent(self):
cev = model.EventImpl.queryOneBy(name=current_leaderboard_event)
# XXX remove this - only for tests
if not cev:
return model.EventImpl.queryBy()[0]
return cev
def raceBy(self, event, name):
return model.RaceImpl.queryOneBy(event=event, name=name)
@@ -157,7 +167,7 @@ class BaseView(object):
competitors = model.CompetitorImpl.sortedBy(eventname=eventname, raceindex=int(params[0])-1, markindex=int(params[1])-1)
elif len(params) == 3:
columns = self.configuredColumns(columnmode)
competitors = model.CompetitorImpl.sortedBy(eventname=eventname, raceindex=int(params[0])-1, markindex=int(params[1])-1, valueindex=int(params[2])-1, columns=columns)
competitors = model.CompetitorImpl.sortedBy(eventname=eventname, raceindex=int(params[0])-1, markindex=int(params[1])-1, valueindex=int(params[2]), columns=columns)
else:
param = int(param.strip())
@@ -591,7 +591,8 @@ def moderatorLiveData(context, request):
dc = {}
dc.update({'name': competitor.name[:9], 'raceranks': racedata, 'markranks': markranks, 'legvalues': legvalues,
'nationality': competitor.nationality, 'global_rank': competitor.total, 'current_race': '', 'current_legs' : [],
'current_rank' : competitor.current_rank})
'current_rank' : competitor.current_rank, 'total_points' : getattr(competitor, 'total_points', 0),
'net_points': getattr(competitor, 'net_points', 0)})
try:
dc.update({'current_legs': [lg+1 for lg in current_legs], 'current_race': current_race+1})
@@ -63,6 +63,7 @@ function hideLoader() {
function showOverallWrap(caller) {
element = $('#overall-wrap');
element.fadeToggle('fast', function() {
$('#main-interface').toggle();
if (!element.is(':visible')) {
caller.css('background-image', 'url(/moderator-static/arrow-right.png)');
} else {
@@ -71,6 +72,10 @@ function showOverallWrap(caller) {
});
}
function switchRaceBlock(block) {
loadLeaderboard(block, param, global_competitors, global_direction, global_colmode);
}
function sortBy(param, element) {
$('.sort-asc, .sort-desc').css('background-image', 'url(/moderator-static/sort-none.png)');
@@ -105,9 +110,16 @@ function displayLeaderboard(data) {
for (cpos in data) {
competitor = data[cpos];
/* always change global rank */
/* always change current rank in view */
$('#clipping-'+rowid+'-1 span').html(competitor.current_rank);
/* insert some data in overall view */
$('#competitor-global-rank-'+rowid).html(competitor.global_rank);
$('#competitor-global-nationality-'+rowid).html(competitor.nationality);
$('#competitor-global-name-'+rowid).html(competitor.name);
$('#competitor-global-total-'+rowid).html(competitor.total_points);
$('#competitor-global-net-'+rowid).html(competitor.net_points);
name_element = $('#clipping-'+rowid+'-3 span');
if (name_element.html() != competitor.name) {
/* competitor position has changed - refresh whole line */
Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 220 B

@@ -10,17 +10,27 @@
<link href='mobile.css' media='screen' rel='stylesheet' type='text/css'>
</head>
<body>
<ul class='overview'>
<li class='event'>
<h2>Event: Bla Event</h2>
</li>
<li class='current-race'>
<p>Current Race 1</p>
</li>
<li class='current-leg'>
<p>Current Leg M2</p>
</li>
</ul>
<form>
<ul class='overview'>
<li class='event'>
<h2>Event: SAP Sailing Analytics</h2>
</li>
<li class='current-race'>
<select>
<option>Race 1</option>
<option>Race 2</option>
<option>Race 3</option>
</select>
</li>
<li class='current-leg'>
<select>
<option>Leg 1</option>
<option>Leg 2</option>
<option>Leg 3</option>
</select>
</li>
</ul>
</form>
<table class='race-table' id='r1-m1'>
<thead>
<tr>
@@ -30,88 +40,111 @@
<th colid='2'>
<span>Name</span>
</th>
<th colid='3'>
<span>Gap</span>
</th>
</tr>
</thead>
<tbody>
<tr class='odd' rowid='1'>
<td>1</td>
<td>EVANS</td>
<td>20</td>
</tr>
<tr class='even' rowid='2'>
<td>2</td>
<td>ALONSO</td>
<td>11</td>
</tr>
<tr class='odd' rowid='3'>
<td>3</td>
<td>ALONSO</td>
<td>18</td>
</tr>
<tr class='even' rowid='4'>
<td>4</td>
<td>BROTHERTHOl</td>
<td>10</td>
</tr>
<tr class='odd' rowid='5'>
<td>5</td>
<td>ASQUITH</td>
<td>15</td>
</tr>
<tr class='even' rowid='6'>
<td>6</td>
<td>CZAJKOWSKI</td>
<td>8</td>
</tr>
<tr class='odd' rowid='7'>
<td>7</td>
<td>NIELSEN</td>
<td>9</td>
</tr>
<tr class='even' rowid='8'>
<td>8</td>
<td>NIELSEN</td>
<td>10</td>
</tr>
<tr class='odd' rowid='9'>
<td>9</td>
<td>PIASECKI</td>
<td>6</td>
</tr>
<tr class='even' rowid='10'>
<td>10</td>
<td>FONSECA</td>
<td>12</td>
</tr>
<tr class='odd' rowid='11'>
<td>11</td>
<td>GRAEL</td>
<td>18</td>
</tr>
<tr class='even' rowid='12'>
<td>12</td>
<td>NORREGAARD</td>
<td>2</td>
</tr>
<tr class='odd' rowid='13'>
<td>13</td>
<td>LANG</td>
<td>8</td>
</tr>
<tr class='even' rowid='14'>
<td>14</td>
<td>KOSTOV</td>
<td>5</td>
</tr>
<tr class='odd' rowid='15'>
<td>15</td>
<td>CUPAC</td>
<td>3</td>
</tr>
<tr class='even' rowid='16'>
<td>16</td>
<td>STORCK</td>
<td>10</td>
</tr>
<tr class='odd' rowid='17'>
<td>17</td>
<td>MOORE</td>
<td>14</td>
</tr>
<tr class='even' rowid='18'>
<td>18</td>
<td>DELLE</td>
<td>12</td>
</tr>
<tr class='odd' rowid='19'>
<td>19</td>
<td>RESCH</td>
<td>5</td>
</tr>
<tr class='even' rowid='20'>
<td>20</td>
<td>DRAPER</td>
<td>6</td>
</tr>
</tbody>
</table>
@@ -133,6 +133,7 @@ body {
width: 100%; }
#header .function-btn-wrapper ul.function-btn {
padding: 1px;
background: #008fcc;
*display: inline-block; }
#header .function-btn-wrapper ul.function-btn:after {
content: " ";
@@ -177,7 +178,7 @@ span.race-count {
left: 0; }
#left-systembar div.blue-table-btn a {
display: block;
height: 91px;
height: 105px;
text-decoration: none;
background: url(/moderator-static/arrow-right.png) left top no-repeat #008fcc; }
#left-systembar div.blue-table-btn a:hover {
@@ -222,7 +223,8 @@ span.race-count {
background: url(/moderator-static/pause-icon.png) right center no-repeat #484848; }
#main-interface .blue-table .sort-rank {
display: block;
height: 39px; }
height: 39px;
margin: 15px 0 13px 0; }
#main-interface .blue-table #table-scrolling li {
float: left;
width: 94px;
@@ -238,8 +240,7 @@ span.race-count {
border-collapse: collapse;
width: 170px;
text-align: left;
vertical-align: middle;
margin: 13px 0 0 0; }
vertical-align: middle; }
#main-interface #overall-clipping td {
padding: 5px; }
#main-interface #overall-clipping tr.odd td {
@@ -264,14 +265,14 @@ span.race-count {
top: 0;
left: 0;
display: block;
height: 91px;
height: 105px;
width: 100%; }
#main-interface .race div a.leg-box-sort {
position: absolute;
top: 0;
left: 0;
display: block;
height: 91px;
height: 105px;
width: 100%; }
#main-interface .race div.main-box {
width: 39px; }
@@ -282,9 +283,9 @@ span.race-count {
top: 0;
left: 0; }
#main-interface .race div.main-box .sort-asc {
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center bottom no-repeat; }
#main-interface .race div.main-box .sort-desc {
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center bottom no-repeat; }
#main-interface .race div.leg-box {
font-size: 14px;
width: 39px; }
@@ -295,9 +296,9 @@ span.race-count {
top: 0;
left: 0; }
#main-interface .race div.leg-box .sort-asc {
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center bottom no-repeat; }
#main-interface .race div.leg-box .sort-desc {
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center bottom no-repeat; }
#main-interface .race div.table-box {
width: 39px;
margin: 0; }
@@ -306,12 +307,12 @@ span.race-count {
position: absolute;
top: 0;
left: 0;
height: 91px;
height: 105px;
width: 100%; }
#main-interface .race div.table-box .sort-asc {
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center bottom no-repeat; }
#main-interface .race div.table-box .sort-desc {
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center bottom no-repeat; }
#main-interface .race div.table-box ul {
background: #151515;
color: #ececec; }
@@ -319,7 +320,7 @@ span.race-count {
background: #484848; }
#main-interface .race div ul {
font-size: 14px;
margin: 91px 0 0 0;
margin: 105px 0 0 0;
text-align: center; }
#main-interface .race div ul li {
padding: 5px; }
@@ -345,10 +346,8 @@ span.race-count {
padding: 13px 10px;
color: #151515;
text-transform: uppercase;
font-weight: bold; }
#main-interface .race table.race-table th.firstelement {
width: 39px;
padding: 0; }
font-weight: bold;
width: 110px; }
#main-interface .race table.race-table th:first-child {
padding-left: 20px; }
#main-interface .race table.race-table th:last-child {
@@ -418,38 +417,18 @@ span.race-count {
body.race-1 #race-1 table th {
background: #de8a2e; }
body.race-1 #header ul.function-btn {
background: #de8a2e; }
body.race-1 #header ul.function-btn-active li {
background: #de8a2e; }
body.race-2 #race-2 table th {
background: #fec631; }
body.race-2 #header ul.function-btn {
background: #fec631; }
body.race-2 #header ul.function-btn-active li {
background: #fec631; }
body.race-3 #race-3 table th {
background: #9c277b; }
body.race-3 #header ul.function-btn {
background: #9c277b; }
body.race-3 #header ul.function-btn-active li {
background: #9c277b; }
body.race-4 #race-4 table th {
background: #95aa31; }
body.race-4 #header ul.function-btn {
background: #95aa31; }
body.race-4 #header ul.function-btn-active li {
background: #95aa31; }
body.race-5 #race-5 table th {
background: #d83c3c; }
body.race-5 #header ul.function-btn {
background: #d83c3c; }
body.race-5 #header ul.function-btn-active li {
background: #d83c3c; }
.border-activity {
background: url(/moderator-static/border-activity.png) 0 0 no-repeat; }
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html>
<head>
<title>SAP Sailing Analytics</title>
<meta content='width = device-width, initial-scale = 2.3, user-scalable = no' name='viewport'>
<meta content='yes' name='apple-mobile-web-app-capable'>
<meta content='black' name='apple-mobile-web-app-status-bar-style'>
<link href='${request.application_url}/moderator-static/iphone-splash-screen.png' rel='apple-touch-startup-image'>
<link href='${request.application_url}/moderator-static/sap-sailing-app-icon.png' rel='apple-touch-icon-precomposed'>
<link href='${request.application_url}/moderator-static/mobile.css' media='screen' rel='stylesheet' type='text/css'>
</head>
<body tal:define="event view.currentIPhoneEvent()">
<form>
<ul class='overview'>
<li class='event'>
<h2>Event: ${event.name}</h2>
</li>
<li class='current-race'>
<select>
<tal:for repeat="racename event.races">
<tal:do define="race view.raceBy(event.name, racename)">
<option>${race.name} {len(race.current_legs)&gt;0 and '(Running)' or ''}</option>
</tal:do>
</tal:for>
</select>
</li>
</ul>
</form>
<table class='race-table' id='r1-m1'>
<thead>
<tr>
<th colid='1'>
<span>Rank</span>
</th>
<th colid='2'>
<span>Name</span>
</th>
<th colid='3'>
<span>Gap</span>
</th>
</tr>
</thead>
<tbody>
<tal:for repeat="">
<tr class='odd' rowid='1'>
<td>1</td>
<td>EVANS</td>
<td>20</td>
</tr>
</tal:for>
</tbody>
</table>
</body>
<script src='${request.application_url}/moderator-static/jquery.js'></script>
</html>
@@ -14,12 +14,12 @@
<li id="eventline" class='message-0 active'>
<table width="100%" border="0" style="margin-right: 10px;">
<tr>
<td style="padding-right: 10px;">Event</td>
<td style="font-style: italic;">Sailing Team Germany</td>
<td>Boatclass 505</td>
</tr>
<tr>
<td style="padding-right: 10px;padding-top: 5px;">Commentator</td>
<td style="font-style: italic;">Marcus Baur</td>
<td style="padding-right: 10px;padding-top: 5px;">commented by</td>
<td style="font-weight: bold;">Marcus Baur</td>
</tr>
</table>
</li>
@@ -69,7 +69,7 @@
<tal:for repeat="bundle firstbundle">
<ul class='race-bundle-${repeat["bundle"].number}'>
<tal:for repeat="race bundle">
<li class='race-${event.races.index(race)+1}'>
<li class='race-${event.races.index(race)+1}' onclick='switchRace("${event.races.index(race)+1}")'>
${event.races.index(race)+1}
</li>
</tal:for>
@@ -189,7 +189,7 @@
<tal:for repeat="valrow range(1,21)">
<tr class='${repeat["valrow"].even and "odd" or "even"}' id='race-${raceid}-valrow-${valrow}'>
<tal:for repeat="valrowpos range(1,len(columns[1:])+1)">
<td id='race-${raceid}-mark-${markid}-valrow-${valrow}-pos-${valrowpos}'>
<td id='race-${raceid}-mark-${markid}-valrow-${valrow}-pos-${valrowpos}' >
<span>&nbsp;</span>
</td>
</tal:for>
@@ -217,437 +217,33 @@
<span>Skipper</span>
</th>
<th colid='4'>
<span>Crew</span>
</th>
<th colid='5'>
<span>Total Points</span>
</th>
<th colid='6'>
<th colid='5'>
<span>Net Points</span>
</th>
</tr>
</thead>
<tbody>
<tr rowid='0'>
<td class='table-sorting' colid='1'>
<a class='sort-asc' href='#'></a>
</td>
<td class='table-sorting' colid='2'>
<a class='sort-asc' href='#'></a>
</td>
<td class='table-sorting' colid='3'>
<a class='sort-asc' href='#'></a>
</td>
<td class='table-sorting' colid='4'>
<a class='sort-asc' href='#'></a>
</td>
<td class='table-sorting' colid='5'>
<a class='sort-asc' href='#'></a>
</td>
<td class='table-sorting' colid='6'>
<a class='sort-asc' href='#'></a>
</td>
</tr>
<tr class='odd' rowid='1'>
<tal:for repeat="compcolumns range(1,21)">
<tr class='${repeat["compcolumns"].even and "odd" or "even"}' rowid='1'>
<td colid='1'>
<span>1</span>
<span id="competitor-global-rank-${repeat['compcolumns'].number}">1</span>
</td>
<td colid='2'>
<span>30</span>
<span id="competitor-global-nationality-${repeat['compcolumns'].number}">30</span>
</td>
<td colid='3'>
<span>20</span>
<span id="competitor-global-name-${repeat['compcolumns'].number}">20</span>
</td>
<td colid='4'>
<span>50</span>
<span id="competitor-global-total-${repeat['compcolumns'].number}">10</span>
</td>
<td colid='5'>
<span>10</span>
</td>
<td colid='6'>
<span>10</span>
</td>
</tr>
<tr class='even' rowid='2'>
<td colid='1'>
<span>2</span>
</td>
<td colid='2'>
<span>31</span>
</td>
<td colid='3'>
<span>21</span>
</td>
<td colid='4'>
<span>51</span>
</td>
<td colid='5'>
<span>11</span>
</td>
<td colid='6'>
<span>11</span>
</td>
</tr>
<tr class='odd' rowid='3'>
<td colid='1'>
<span>3</span>
</td>
<td colid='2'>
<span>32</span>
</td>
<td colid='3'>
<span>22</span>
</td>
<td colid='4'>
<span>52</span>
</td>
<td colid='5'>
<span>12</span>
</td>
<td colid='6'>
<span>12</span>
</td>
</tr>
<tr class='even' rowid='4'>
<td colid='1'>
<span>4</span>
</td>
<td colid='2'>
<span>33</span>
</td>
<td colid='3'>
<span>23</span>
</td>
<td colid='4'>
<span>53</span>
</td>
<td colid='5'>
<span>13</span>
</td>
<td colid='6'>
<span>13</span>
</td>
</tr>
<tr class='odd' rowid='5'>
<td colid='1'>
<span>5</span>
</td>
<td colid='2'>
<span>34</span>
</td>
<td colid='3'>
<span>24</span>
</td>
<td colid='4'>
<span>54</span>
</td>
<td colid='5'>
<span>14</span>
</td>
<td colid='6'>
<span>14</span>
</td>
</tr>
<tr class='even' rowid='6'>
<td colid='1'>
<span>6</span>
</td>
<td colid='2'>
<span>35</span>
</td>
<td colid='3'>
<span>25</span>
</td>
<td colid='4'>
<span>55</span>
</td>
<td colid='5'>
<span>15</span>
</td>
<td colid='6'>
<span>15</span>
</td>
</tr>
<tr class='odd' rowid='7'>
<td colid='1'>
<span>7</span>
</td>
<td colid='2'>
<span>36</span>
</td>
<td colid='3'>
<span>26</span>
</td>
<td colid='4'>
<span>56</span>
</td>
<td colid='5'>
<span>16</span>
</td>
<td colid='6'>
<span>16</span>
</td>
</tr>
<tr class='even' rowid='8'>
<td colid='1'>
<span>8</span>
</td>
<td colid='2'>
<span>37</span>
</td>
<td colid='3'>
<span>27</span>
</td>
<td colid='4'>
<span>57</span>
</td>
<td colid='5'>
<span>17</span>
</td>
<td colid='6'>
<span>17</span>
</td>
</tr>
<tr class='odd' rowid='9'>
<td colid='1'>
<span>9</span>
</td>
<td colid='2'>
<span>38</span>
</td>
<td colid='3'>
<span>28</span>
</td>
<td colid='4'>
<span>58</span>
</td>
<td colid='5'>
<span>18</span>
</td>
<td colid='6'>
<span>18</span>
</td>
</tr>
<tr class='even' rowid='10'>
<td colid='1'>
<span>10</span>
</td>
<td colid='2'>
<span>39</span>
</td>
<td colid='3'>
<span>29</span>
</td>
<td colid='4'>
<span>59</span>
</td>
<td colid='5'>
<span>19</span>
</td>
<td colid='6'>
<span>19</span>
</td>
</tr>
<tr class='odd' rowid='11'>
<td colid='1'>
<span>11</span>
</td>
<td colid='2'>
<span>40</span>
</td>
<td colid='3'>
<span>30</span>
</td>
<td colid='4'>
<span>60</span>
</td>
<td colid='5'>
<span>20</span>
</td>
<td colid='6'>
<span>20</span>
</td>
</tr>
<tr class='even' rowid='12'>
<td colid='1'>
<span>12</span>
</td>
<td colid='2'>
<span>41</span>
</td>
<td colid='3'>
<span>31</span>
</td>
<td colid='4'>
<span>61</span>
</td>
<td colid='5'>
<span>21</span>
</td>
<td colid='6'>
<span>21</span>
</td>
</tr>
<tr class='odd' rowid='13'>
<td colid='1'>
<span>13</span>
</td>
<td colid='2'>
<span>42</span>
</td>
<td colid='3'>
<span>32</span>
</td>
<td colid='4'>
<span>62</span>
</td>
<td colid='5'>
<span>22</span>
</td>
<td colid='6'>
<span>22</span>
</td>
</tr>
<tr class='even' rowid='14'>
<td colid='1'>
<span>14</span>
</td>
<td colid='2'>
<span>43</span>
</td>
<td colid='3'>
<span>33</span>
</td>
<td colid='4'>
<span>63</span>
</td>
<td colid='5'>
<span>23</span>
</td>
<td colid='6'>
<span>23</span>
</td>
</tr>
<tr class='odd' rowid='15'>
<td colid='1'>
<span>15</span>
</td>
<td colid='2'>
<span>44</span>
</td>
<td colid='3'>
<span>34</span>
</td>
<td colid='4'>
<span>64</span>
</td>
<td colid='5'>
<span>24</span>
</td>
<td colid='6'>
<span>24</span>
</td>
</tr>
<tr class='even' rowid='16'>
<td colid='1'>
<span>16</span>
</td>
<td colid='2'>
<span>45</span>
</td>
<td colid='3'>
<span>35</span>
</td>
<td colid='4'>
<span>65</span>
</td>
<td colid='5'>
<span>25</span>
</td>
<td colid='6'>
<span>25</span>
</td>
</tr>
<tr class='odd' rowid='17'>
<td colid='1'>
<span>17</span>
</td>
<td colid='2'>
<span>46</span>
</td>
<td colid='3'>
<span>36</span>
</td>
<td colid='4'>
<span>66</span>
</td>
<td colid='5'>
<span>26</span>
</td>
<td colid='6'>
<span>26</span>
</td>
</tr>
<tr class='even' rowid='18'>
<td colid='1'>
<span>18</span>
</td>
<td colid='2'>
<span>47</span>
</td>
<td colid='3'>
<span>37</span>
</td>
<td colid='4'>
<span>67</span>
</td>
<td colid='5'>
<span>27</span>
</td>
<td colid='6'>
<span>27</span>
</td>
</tr>
<tr class='odd' rowid='19'>
<td colid='1'>
<span>19</span>
</td>
<td colid='2'>
<span>48</span>
</td>
<td colid='3'>
<span>38</span>
</td>
<td colid='4'>
<span>68</span>
</td>
<td colid='5'>
<span>28</span>
</td>
<td colid='6'>
<span>28</span>
</td>
</tr>
<tr class='even' rowid='20'>
<td colid='1'>
<span>20</span>
</td>
<td colid='2'>
<span>49</span>
</td>
<td colid='3'>
<span>39</span>
</td>
<td colid='4'>
<span>69</span>
</td>
<td colid='5'>
<span>29</span>
</td>
<td colid='6'>
<span>29</span>
<span id="competitor-global-net-${repeat['compcolumns'].number}">10</span>
</td>
</tr>
</tal:for>
</tbody>
</table>
</div>
+5 -5
View File
@@ -30,18 +30,18 @@ START_EXP_WIND = 'receiveexpeditionwind'
VN = {
'CSPDKNOT': ('CSPEEDKN', 'Current Speed (kn)', '%.1f', 'currentSpeedOverGroundInKnots'),
'CSPDMS' : ('CSPDMS', 'Current Speed (m/s)', '%.1f', 'currentSpeedOverGroundInMetersPerSecond'),
'ASPDKNOT': ('ASPDKN', 'Avg Speed (kn)', '%.1f', 'averageSpeedOverGroundInKnots'),
'ASPDKNOT': ('ASPDKN', 'Avg Speed (kn)', '%.2f', 'averageSpeedOverGroundInKnots'),
'ASPDMS' : ('ASPDMS', 'Avg Speed (m/s)', '%.1f', 'averageSpeedOverGroundInMetersPerSecond'),
'DSTTRV' : ('DSTTRV', 'Distance Travelled (m)', '%.1f', 'distanceTraveledOverGroundInMeters'),
'DSTTRV' : ('DSTTRV', 'Dist. Traveld (m)', '%.f', 'distanceTraveledOverGroundInMeters'),
'VMGKNOT': ('VMGKN', 'VMG (kn)', '%.1f', 'velocityMadeGoodInKnots'),
'VMGMS' : ('VMGMS', 'VMG (m/s)', '%.1f', 'velocityMadeGoodInMetersPerSecond'),
'AVMGKNOT': ('AVMGKN', 'Avg VMG (kn)', '%.1f', 'averageVelocityMadeGoodInKnots'),
'AVMGMS' : ('AVMGMS', 'Avg VMG (m/s)', '%.1f', 'averageVelocityMadeGoodInMetersPerSecond'),
'ETA' : ('ETASEC', 'ETA (s)', '%.f', 'estimatedTimeToNextMarkInSeconds'),
'DSTGO' : ('DSTGO', 'Distance To Go (m)', '%.f', 'windwardDistanceToGoInMeters'),
'DSTGO' : ('DSTGO', 'Dist. To Go (m)', '%.f', 'windwardDistanceToGoInMeters'),
'GAPSEC' : ('SGAP', 'Gap To Leader (s)', '%.1f','gapToLeaderInSeconds'),
'UPDOWNWIND' : ('UPDOWN', 'Up or Downwind?', '%s', 'upOrDownWindLeg'),
'GLP' : ('GLP', 'Gains and Losses (Places)', '%s', 'gainsAndLossesInPlaces'),
'GLP' : ('GLP', 'G & L (Places)', '%s', 'gainsAndLossesInPlaces'),
'RANK' : ('LRANK', 'Rank', '%s', 'rank'),
'STARTED' : ('STARTD', 'Started?', '%s','started'),
'FINISHED' : ('FINISHD', 'Finished?', '%s','finished')
@@ -53,7 +53,7 @@ COLUMN_MODE_NAMES = {
'LEADERBOARD-STATIC':
[VN['RANK'], VN['CSPDMS'], VN['DSTTRV'], VN['VMGMS'], VN['GLP']],
'LEADERBOARD-F1':
[VN['RANK'], VN['GAPSEC'], VN['ASPDMS'], VN['DSTTRV'], VN['GLP']],
[VN['RANK'], VN['GAPSEC'], VN['ASPDKNOT'], VN['DSTTRV'], VN['GLP']],
'LEADERBOARD-F2':
[VN['RANK'], VN['GAPSEC'], VN['GLP']],
'LEADERBOARD-F3':