Added total points and net points (not working, likely to break code); added many layout changes

This commit is contained in:
Simon Pamies committed 2011-06-15 12:17:33 +02:00
1 parent 0eeeb3a6b8
commit fbca2db572
9 files changed
+605 -100

No files matched your search

@@ -344,11 +344,23 @@ def liveRaceInformation(configurator):
# save marknames for the given leg
c_marknames[raceindex][lcount] = (leg['from'], leg['to'])
# compute total and net points of competitor
# net points: sum'd ranks of all races
net_points = map(sum, c_races)
# total points: sum'd over ranks of all races but
# but for more than ten races discard some values
# XXX
total_points = 0
comp.update(dict(current_rank=c_current_rank,
races=c_races,
marks=c_marks,
values=c_values,
total=c_total_rank))
total=c_total_rank,
net_points=net_points,
total_points=total_points))
# next leg
lcount += 1
@@ -65,6 +65,9 @@ class Competitor(BaseDocument):
'event': unicode,
'nationality': unicode,
'total_points': int,
'net_points' : int,
'leg_indexes': {}, # holds association between leg position and unique id <position in marks>:<unique id>
'total': int, # total rank
@@ -40,7 +40,7 @@ function liveRefresh() {
function toggleListener() {
$('#refresh-button').toggleClass('refresh');
if ($('#refresh-button').hasClass('refresh')) {
$('#refresh-button').css('background-image', 'url(/moderator-static/refresh-icon.png)');
$('#refresh-button').css('background-image', 'url(/moderator-static/freeze.png)');
listener_paused = true;
} else {
listener_paused = false;
@@ -59,12 +59,30 @@ function showLoader() {
function hideLoader() {
//$('.refresh-btn').html('');
}
function showOverallWrap(caller) {
element = $('#overall-wrap');
element.fadeToggle('fast', function() {
if (!element.is(':visible')) {
caller.css('background-image', 'url(/moderator-static/arrow-right.png)');
} else {
caller.css('background-image', 'url(/moderator-static/arrow-left.png)');
}
});
}
function sortBy(param, element) {
$('.sort-asc, .sort-desc').css('background-image', 'url(/moderator-static/sort-none.png)');
element.toggleClass('sort-asc').toggleClass('sort-desc');
if (element.hasClass('sort-asc'))
if (element.hasClass('sort-asc')) {
global_direction = 'asc';
else global_direction = 'desc';
element.css('background-image', 'url(/moderator-static/sort-arrow-active-bottom.png)')
} else {
global_direction = 'desc';
element.css('background-image', 'url(/moderator-static/sort-arrow-active-top.png)')
}
global_sortkey = param;
loadLeaderboard(global_race, param, global_competitors, global_direction, global_colmode);
@@ -87,7 +87,7 @@ table {
body {
background: #151515;
font-family: "Trebuchet MS";
font-family: "Trebuchet MS", sans-serif;
color: #ececec; }
body a {
text-decoration: none;
@@ -119,18 +119,34 @@ body {
padding: 0 5px 0 0;
*display: inline-block; }
#header ul.systeminfo li {
padding: 10px 0 10px 30px;
border-top: 1px solid #e1e1e1; }
#header ul.systeminfo li.active {
background: url(/moderator-static/freeze.png) no-repeat left center; }
#header ul.systeminfo li.message-0 {
border: none; }
padding: 10px 0 10px 30px; }
#header ul.systeminfo:after {
content: " ";
display: block;
height: 0;
clear: both;
visibility: hidden; }
#header .function-btn-wrapper {
font-size: 24px;
color: #ececec;
text-transform: uppercase;
width: 100%; }
#header .function-btn-wrapper ul.function-btn {
padding: 1px;
*display: inline-block; }
#header .function-btn-wrapper ul.function-btn:after {
content: " ";
display: block;
height: 0;
clear: both;
visibility: hidden; }
#header .function-btn-wrapper ul.function-btn li {
background: #151515;
padding: 5px;
margin: 0 1px 0 0;
float: left; }
#header .function-btn-wrapper ul.function-btn li:last-child {
margin: 0; }
span.race-count {
padding: 102px 0 0 0;
@@ -161,7 +177,7 @@ span.race-count {
left: 0; }
#left-systembar div.blue-table-btn a {
display: block;
height: 92px;
height: 91px;
text-decoration: none;
background: url(/moderator-static/arrow-right.png) left top no-repeat #008fcc; }
#left-systembar div.blue-table-btn a:hover {
@@ -179,29 +195,8 @@ span.race-count {
margin: 0 0 0 10px;
position: relative;
font-size: 18px; }
#right-systembar .function-btn-wrapper {
font-size: 24px;
color: #ececec;
text-transform: uppercase;
text-align: center;
position: absolute;
top: 0;
left: 0;
width: 100%; }
#right-systembar .function-btn-wrapper ul.function-btn {
padding: 1px;
*display: inline-block; }
#right-systembar .function-btn-wrapper ul.function-btn:after {
content: " ";
display: block;
height: 0;
clear: both;
visibility: hidden; }
#right-systembar .function-btn-wrapper ul.function-btn li {
background: #151515;
padding: 5px 0; }
#right-systembar .function-btn-wrapper ul.function-btn li:first-child {
margin: 0 0 1px 0; }
#right-systembar .race-count {
padding-top: 10px; }
#right-systembar .slide-forward {
background: url(/moderator-static/arrow-right.png) left bottom no-repeat #484848;
display: block;
@@ -210,9 +205,9 @@ span.race-count {
#main-interface {
height: 100%; }
#main-interface .sort-asc {
background: url(/moderator-static/sort-arrow-top.png) 0 0 no-repeat #151515; }
background: url(/moderator-static/sort-none.png) 0 0 no-repeat #151515; }
#main-interface .sort-desc {
background: url(/moderator-static/sort-arrow-bottom.png) 0 0 no-repeat #151515; }
background: url(/moderator-static/sort-none.png) 0 0 no-repeat #151515; }
#main-interface .blue-table {
padding: 0 10px 0 0;
font-size: 14px;
@@ -220,7 +215,11 @@ span.race-count {
#main-interface .blue-table .refresh-btn {
display: block;
height: 39px;
background: url(/moderator-static/freeze.png) right center no-repeat #484848; }
background: url(/moderator-static/refresh-icon.png) right center no-repeat #484848; }
#main-interface .blue-table .pause-btn {
display: block;
height: 39px;
background: url(/moderator-static/pause-icon.png) right center no-repeat #484848; }
#main-interface .blue-table .sort-rank {
display: block;
height: 39px; }
@@ -240,7 +239,7 @@ span.race-count {
width: 170px;
text-align: left;
vertical-align: middle;
margin: 14px 0 0 0; }
margin: 13px 0 0 0; }
#main-interface #overall-clipping td {
padding: 5px; }
#main-interface #overall-clipping tr.odd td {
@@ -265,14 +264,14 @@ span.race-count {
top: 0;
left: 0;
display: block;
height: 92px;
height: 91px;
width: 100%; }
#main-interface .race div a.leg-box-sort {
position: absolute;
top: 0;
left: 0;
display: block;
height: 92px;
height: 91px;
width: 100%; }
#main-interface .race div.main-box {
width: 39px; }
@@ -283,9 +282,9 @@ span.race-count {
top: 0;
left: 0; }
#main-interface .race div.main-box .sort-asc {
background: url(/moderator-static/sort-arrow-top.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
#main-interface .race div.main-box .sort-desc {
background: url(/moderator-static/sort-arrow-bottom.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
#main-interface .race div.leg-box {
font-size: 14px;
width: 39px; }
@@ -296,9 +295,9 @@ span.race-count {
top: 0;
left: 0; }
#main-interface .race div.leg-box .sort-asc {
background: url(/moderator-static/sort-arrow-top.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
#main-interface .race div.leg-box .sort-desc {
background: url(/moderator-static/sort-arrow-bottom.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
#main-interface .race div.table-box {
width: 39px;
margin: 0; }
@@ -307,15 +306,20 @@ span.race-count {
position: absolute;
top: 0;
left: 0;
height: 92px;
height: 91px;
width: 100%; }
#main-interface .race div.table-box .sort-asc {
background: url(/moderator-static/sort-arrow-top.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
#main-interface .race div.table-box .sort-desc {
background: url(/moderator-static/sort-arrow-bottom.png) center 40px no-repeat; }
background: url(/moderator-static/sort-none.png) center 40px no-repeat; }
#main-interface .race div.table-box ul {
background: #151515;
color: #ececec; }
#main-interface .race div.table-box ul li.odd {
background: #484848; }
#main-interface .race div ul {
font-size: 14px;
margin: 92px 0 0 0;
margin: 91px 0 0 0;
text-align: center; }
#main-interface .race div ul li {
padding: 5px; }
@@ -372,7 +376,8 @@ span.race-count {
background: #151515;
height: 100%;
position: absolute;
left: 50px; }
left: 50px;
top: 0; }
#overall-wrap #overall {
border-collapse: collapse;
text-align: left;
@@ -413,37 +418,37 @@ span.race-count {
body.race-1 #race-1 table th {
background: #de8a2e; }
body.race-1 #right-systembar ul.function-btn {
body.race-1 #header ul.function-btn {
background: #de8a2e; }
body.race-1 #right-systembar ul.function-btn-active li {
body.race-1 #header ul.function-btn-active li {
background: #de8a2e; }
body.race-2 #race-2 table th {
background: #fec631; }
body.race-2 #right-systembar ul.function-btn {
body.race-2 #header ul.function-btn {
background: #fec631; }
body.race-2 #right-systembar ul.function-btn-active li {
body.race-2 #header ul.function-btn-active li {
background: #fec631; }
body.race-3 #race-3 table th {
background: #9c277b; }
body.race-3 #right-systembar ul.function-btn {
body.race-3 #header ul.function-btn {
background: #9c277b; }
body.race-3 #right-systembar ul.function-btn-active li {
body.race-3 #header ul.function-btn-active li {
background: #9c277b; }
body.race-4 #race-4 table th {
background: #95aa31; }
body.race-4 #right-systembar ul.function-btn {
body.race-4 #header ul.function-btn {
background: #95aa31; }
body.race-4 #right-systembar ul.function-btn-active li {
body.race-4 #header ul.function-btn-active li {
background: #95aa31; }
body.race-5 #race-5 table th {
background: #d83c3c; }
body.race-5 #right-systembar ul.function-btn {
body.race-5 #header ul.function-btn {
background: #d83c3c; }
body.race-5 #right-systembar ul.function-btn-active li {
body.race-5 #header ul.function-btn-active li {
background: #d83c3c; }
.border-activity {
Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

@@ -10,7 +10,56 @@
columns view.configuredColumns('LEADERBOARD-%s' % request.params.get('c', 'F1'))">
<div id='rootwrapper'>
<div id='header'>
&nbsp;
<ul class='systeminfo'>
<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>
</tr>
<tr>
<td style="padding-right: 10px;padding-top: 5px;">Commentator</td>
<td style="font-style: italic;">Marcus Baur</td>
</tr>
</table>
</li>
<li>
<div class='function-btn-wrapper'>
<ul class='function-btn'>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F1'>
f1
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F2'>
f2
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F3'>
f3
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F4'>
f4
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F5'>
f5
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F6'>
f6
</a>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div id='appinterface'>
<!-- / THE LEFT BAR -->
@@ -29,12 +78,12 @@
</span>
</a>
<div class='blue-table-btn'>
<a href='#'></a>
<a href='javascript:;' onclick='showOverallWrap($(this))'></a>
</div>
</div>
<!-- / THE RIGHT BAR -->
<div id='right-systembar'>
<a class='slide-forward' href='#'>
<a class='slide-forward' href='javascript:;'>
<span class='race-count'>
<tal:for repeat="bundle lastbundle">
<ul class='race-bundle-${repeat["bundle"].number}'>
@@ -47,35 +96,6 @@
</tal:for>
</span>
</a>
<div class='function-btn-wrapper'>
<ul class='function-btn'>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F1'>
f1
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F2'>
f2
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F3'>
f3
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F4'>
f4
</a>
</li>
<li class='function-1'>
<a href='/@@/leaderboard-live?c=F5'>
f5
</a>
</li>
</ul>
</div>
</div>
<!-- / YIELD THE MAIN INTERFACE -->
<!-- / MAIN INTERFACE -->
@@ -135,7 +155,7 @@
<a class='leg-box-active' href='javascript:;' onclick='$(this).closest(".leg-wrap").find(".table-box, .race-table").toggle();'>
<ul>
<tal:for repeat="markrow range(1,21)">
<li id='race-${raceid}-mark-${markid}-row-${markrow}'></li>
<li id='race-${raceid}-mark-${markid}-row-${markrow}'>&nbsp;</li>
</tal:for>
</ul>
</a>
@@ -143,7 +163,7 @@
<div class='table-box' style="display:none;">
<ul>
<tal:for repeat="legrow range(1,21)">
<li id='race-${raceid}-mark-${markid}-legrow-${legrow}'></li>
<li class="${repeat['legrow'].even and 'odd' or 'even'}" id='race-${raceid}-mark-${markid}-legrow-${legrow}'>&nbsp;</li>
</tal:for>
</ul>
<a class='table-box-sort sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid},1", $(this))'></a>
@@ -153,7 +173,7 @@
<tr>
<tal:for repeat="column columns[1:]">
<th colid='${repeat["column"].number}'>
<span>${column[0]}</span>
<span>${column[1]}</span>
</th>
</tal:for>
</tr>
@@ -167,7 +187,7 @@
</tal:for>
</tr>
<tal:for repeat="valrow range(1,21)">
<tr class='odd' id='race-${raceid}-valrow-${valrow}'>
<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}'>
<span>&nbsp;</span>
@@ -182,15 +202,465 @@
</div>
</tal:for>
</div>
<div id='overall-wrap' style="display:none;">
<table id='overall'>
<thead>
<tr>
<th colid='1'>
<span>Rank</span>
</th>
<th colid='2'>
<span>Flag</span>
</th>
<th colid='3'>
<span>Skipper</span>
</th>
<th colid='4'>
<span>Crew</span>
</th>
<th colid='5'>
<span>Total Points</span>
</th>
<th colid='6'>
<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'>
<td colid='1'>
<span>1</span>
</td>
<td colid='2'>
<span>30</span>
</td>
<td colid='3'>
<span>20</span>
</td>
<td colid='4'>
<span>50</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>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'></script>
<!--<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'></script>-->
<script>
global_colmode = 'LEADERBOARD-${request.params.get('c', 'F1')}';
</script>
<script src='/moderator-static/jquery.js' type='text/javascript'></script>
<script src='/moderator-static/app.js' type='text/javascript'></script>
</html>