annotate templates.py @ 12:8a595d55e245

Changed back to lists from radio buttons. Now test runs and logs results
author Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk>
date Tue, 12 Mar 2013 15:11:39 +0000
parents 15260ae0d6bc
children 8261089e6f04
rev   line source
gyorgy@0 1 audiotempl= '''
gyorgy@0 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
gyorgy@0 3 <html xmlns="http://www.w3.org/1999/xhtml">
gyorgy@0 4
gyorgy@0 5 <html lang="en" dir="ltr">
gyorgy@0 6
gyorgy@0 7 <head>
daniele@12 8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8;charset=utf-8" >
daniele@12 9 <link rel="stylesheet" type="text/css" href="../htempl/barrensa.css" TITLE="combined" />
daniele@12 10 <link rel="stylesheet" href="../build/mediaelementplayer.min.css" TITLE="combined">
gyorgy@0 11 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
daniele@12 12
daniele@11 13 <title>Audio Environment Classification</title>
gyorgy@0 14
gyorgy@0 15 <script src="../build/jquery.js"></script>
daniele@11 16 <!script src="../build/mediaelement-and-player.min.js"></script>
gyorgy@0 17
gyorgy@0 18
gyorgy@0 19 <script language = "JavaScript">
gyorgy@0 20
gyorgy@0 21 window.onload = function () {
daniele@11 22 document.getElementById("a1")[%i].selected = true;
daniele@11 23 document.getElementById("a2")[%i].selected = true;
daniele@11 24 document.getElementById("a3")[%i].selected = true;
daniele@11 25 document.getElementById("a4")[%i].selected = true;
daniele@11 26 document.getElementById("a5")[%i].selected = true;
daniele@11 27 document.getElementById("a6")[%i].selected = true;
daniele@11 28 document.getElementById("a7")[%i].selected = true;
daniele@11 29 document.getElementById("a8")[%i].selected = true;
daniele@11 30 document.getElementById("a9")[%i].selected = true;
daniele@11 31 document.getElementById("a10")[%i].selected = true;
gyorgy@0 32 }
gyorgy@0 33
gyorgy@0 34 </script>
gyorgy@0 35
gyorgy@0 36 <script language="JavaScript" src="../js/gen_validatorv4.js"
gyorgy@0 37 type="text/javascript" xml:space="preserve"></script>
gyorgy@0 38 </head>
gyorgy@0 39
gyorgy@0 40 <body>
daniele@12 41
daniele@12 42 <div id="mainPicture">
daniele@12 43 <div class="picture">
daniele@12 44 <div id="headerTitle">Audio Environment Classification</div>
daniele@12 45 </div>
daniele@12 46 </div>
daniele@12 47 <div class="contentBox">
gyorgy@0 48
gyorgy@0 49 <h3 id="test 1">%i/%i</h3><br>
daniele@11 50 <h4>Please play the sounds and indicate where they have been recorded </h4>
daniele@12 51
gyorgy@0 52 <form name="attributes" action="doAttrib" method="POST">
daniele@12 53 <audio id="audio player 1" controls>
daniele@12 54 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 55 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 56 </audio>
gyorgy@0 57 <br>
gyorgy@0 58
daniele@12 59 <select name="attribute1" id="a1">
daniele@12 60 <option value="0"></option>
daniele@12 61 <option value="1">bus</option>
daniele@12 62 <option value="2">busy street</option>
daniele@12 63 <option value="3">office</option>
daniele@12 64 <option value="4">open air market</option>
daniele@12 65 <option value="5">park</option>
daniele@12 66 <option value="6">quiet street</option>
daniele@12 67 <option value="7">restaurant</option>
daniele@12 68 <option value="8">supermarket</option>
daniele@12 69 <option value="9">tube</option>
daniele@12 70 <option value="10">tube station</option>
daniele@12 71 </select>
gyorgy@0 72 <br>
gyorgy@0 73
daniele@12 74 <audio id="audio player 2" controls>
daniele@12 75 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 76 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 77 </audio>
gyorgy@0 78
daniele@12 79 <select name="attribute2" id="a2">
daniele@12 80 <option value="0"></option>
daniele@12 81 <option value="1">bus</option>
daniele@12 82 <option value="2">busy street</option>
daniele@12 83 <option value="3">office</option>
daniele@12 84 <option value="4">open air market</option>
daniele@12 85 <option value="5">park</option>
daniele@12 86 <option value="6">quiet street</option>
daniele@12 87 <option value="7">restaurant</option>
daniele@12 88 <option value="8">supermarket</option>
daniele@12 89 <option value="9">tube</option>
daniele@12 90 <option value="10">tube station</option>
daniele@12 91 </select>
gyorgy@0 92 <br>
gyorgy@0 93
daniele@12 94 <audio id="audio player 3" controls>
daniele@12 95 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 96 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 97 </audio>
gyorgy@0 98
daniele@12 99 <select name="attribute3" id="a3">
daniele@12 100 <option value="0"></option>
daniele@12 101 <option value="1">bus</option>
daniele@12 102 <option value="2">busy street</option>
daniele@12 103 <option value="3">office</option>
daniele@12 104 <option value="4">open air market</option>
daniele@12 105 <option value="5">park</option>
daniele@12 106 <option value="6">quiet street</option>
daniele@12 107 <option value="7">restaurant</option>
daniele@12 108 <option value="8">supermarket</option>
daniele@12 109 <option value="9">tube</option>
daniele@12 110 <option value="10">tube station</option>
daniele@12 111 </select>
gyorgy@0 112 <br>
gyorgy@0 113
daniele@12 114 <audio id="audio player 4" controls>
daniele@12 115 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 116 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 117 </audio>
gyorgy@0 118
daniele@12 119 <select name="attribute4" id="a4">
daniele@12 120 <option value="0"></option>
daniele@12 121 <option value="1">bus</option>
daniele@12 122 <option value="2">busy street</option>
daniele@12 123 <option value="3">office</option>
daniele@12 124 <option value="4">open air market</option>
daniele@12 125 <option value="5">park</option>
daniele@12 126 <option value="6">quiet street</option>
daniele@12 127 <option value="7">restaurant</option>
daniele@12 128 <option value="8">supermarket</option>
daniele@12 129 <option value="9">tube</option>
daniele@12 130 <option value="10">tube station</option>
daniele@12 131 </select>
gyorgy@0 132 <br>
gyorgy@0 133
daniele@12 134 <audio id="audio player 5" controls>
daniele@12 135 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 136 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 137 </audio>
gyorgy@0 138
daniele@12 139 <select name="attribute5" id="a5">
daniele@12 140 <option value="0"></option>
daniele@12 141 <option value="1">bus</option>
daniele@12 142 <option value="2">busy street</option>
daniele@12 143 <option value="3">office</option>
daniele@12 144 <option value="4">open air market</option>
daniele@12 145 <option value="5">park</option>
daniele@12 146 <option value="6">quiet street</option>
daniele@12 147 <option value="7">restaurant</option>
daniele@12 148 <option value="8">supermarket</option>
daniele@12 149 <option value="9">tube</option>
daniele@12 150 <option value="10">tube station</option>
daniele@12 151 </select>
gyorgy@0 152 <br>
gyorgy@0 153
daniele@12 154 <audio id="audio player 6" controls>
daniele@12 155 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 156 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 157 </audio>
gyorgy@0 158
daniele@12 159 <select name="attribute6" id="a6">
daniele@12 160 <option value="0"></option>
daniele@12 161 <option value="1">bus</option>
daniele@12 162 <option value="2">busy street</option>
daniele@12 163 <option value="3">office</option>
daniele@12 164 <option value="4">open air market</option>
daniele@12 165 <option value="5">park</option>
daniele@12 166 <option value="6">quiet street</option>
daniele@12 167 <option value="7">restaurant</option>
daniele@12 168 <option value="8">supermarket</option>
daniele@12 169 <option value="9">tube</option>
daniele@12 170 <option value="10">tube station</option>
daniele@12 171 </select>
gyorgy@0 172 <br>
gyorgy@0 173
daniele@12 174 <audio id="audio player 7" controls>
daniele@12 175 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 176 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 177 </audio>
daniele@12 178 <select name="attribute7" id="a7">
daniele@12 179 <option value="0"></option>
daniele@12 180 <option value="1">bus</option>
daniele@12 181 <option value="2">busy street</option>
daniele@12 182 <option value="3">office</option>
daniele@12 183 <option value="4">open air market</option>
daniele@12 184 <option value="5">park</option>
daniele@12 185 <option value="6">quiet street</option>
daniele@12 186 <option value="7">restaurant</option>
daniele@12 187 <option value="8">supermarket</option>
daniele@12 188 <option value="9">tube</option>
daniele@12 189 <option value="10">tube station</option>
daniele@12 190 </select>
gyorgy@0 191 <br>
gyorgy@0 192
daniele@12 193 <audio id="audio player 8" controls>
daniele@12 194 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 195 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 196 </audio>
daniele@11 197
daniele@12 198 <select name="attribute8" id="a8">
daniele@12 199 <option value="0"></option>
daniele@12 200 <option value="1">bus</option>
daniele@12 201 <option value="2">busy street</option>
daniele@12 202 <option value="3">office</option>
daniele@12 203 <option value="4">open air market</option>
daniele@12 204 <option value="5">park</option>
daniele@12 205 <option value="6">quiet street</option>
daniele@12 206 <option value="7">restaurant</option>
daniele@12 207 <option value="8">supermarket</option>
daniele@12 208 <option value="9">tube</option>
daniele@12 209 <option value="10">tube station</option>
daniele@12 210 </select>
daniele@11 211 <br>
daniele@11 212
daniele@12 213 <audio id="audio player 9" controls>
daniele@12 214 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 215 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 216 </audio>
gyorgy@0 217
daniele@12 218 <select name="attribute9" id="a9">
daniele@12 219 <option value="0"></option>
daniele@12 220 <option value="1">bus</option>
daniele@12 221 <option value="2">busy street</option>
daniele@12 222 <option value="3">office</option>
daniele@12 223 <option value="4">open air market</option>
daniele@12 224 <option value="5">park</option>
daniele@12 225 <option value="6">quiet street</option>
daniele@12 226 <option value="7">restaurant</option>
daniele@12 227 <option value="8">supermarket</option>
daniele@12 228 <option value="9">tube</option>
daniele@12 229 <option value="10">tube station</option>
daniele@12 230 </select>
daniele@11 231 <br>
gyorgy@0 232
daniele@12 233 <audio id="audio player 10" controls>
daniele@12 234 <source src="../AASPAudio/%s.wav" type="audio/wav">
daniele@12 235 <object class="playerpreview" type="application/x-shockwave-flash" data="player_mp3_mini.swf" width="200" height="20"><param name="movie" value="player_mp3_mini.swf" /><param name="bgcolor" value="#085c68" /><param name="FlashVars" value="mp3=../AASPAudio/%s.wav" /><embed href="player_mp3_mini.swf" bgcolor="#085c68" width="200" height="20" name="movie" align="" type="application/x-shockwave-flash" flashvars="mp3=../AASPAudio/%s.wav" /></object>
daniele@12 236 </audio>
daniele@12 237
daniele@12 238 <select name="attribute10" id="a10">
daniele@12 239 <option value="0"></option>
daniele@12 240 <option value="1">bus</option>
daniele@12 241 <option value="2">busy street</option>
daniele@12 242 <option value="3">office</option>
daniele@12 243 <option value="4">open air market</option>
daniele@12 244 <option value="5">park</option>
daniele@12 245 <option value="6">quiet street</option>
daniele@12 246 <option value="7">restaurant</option>
daniele@12 247 <option value="8">supermarket</option>
daniele@12 248 <option value="9">tube</option>
daniele@12 249 <option value="10">tube station</option>
daniele@12 250 </select>
daniele@12 251
daniele@12 252 </p>
daniele@12 253 <br>
gyorgy@0 254 <input type="hidden" name="pageId" value="%i">
gyorgy@0 255 <input type="hidden" name="sessionId" value="%s">
gyorgy@0 256
gyorgy@0 257 <input type="submit" value="submit" name="submitButton"/>
gyorgy@0 258
gyorgy@0 259 </form>
gyorgy@0 260
gyorgy@0 261 <script language="JavaScript" type="text/javascript"
daniele@12 262 xml:space="preserve">//<![CDATA[
daniele@12 263 var frmvalidator = new Validator("attributes");
daniele@12 264
daniele@11 265 frmvalidator.addValidation("attribute1","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 266 frmvalidator.addValidation("attribute2","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 267 frmvalidator.addValidation("attribute3","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 268 frmvalidator.addValidation("attribute4","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 269 frmvalidator.addValidation("attribute5","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 270 frmvalidator.addValidation("attribute6","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 271 frmvalidator.addValidation("attribute7","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 272 frmvalidator.addValidation("attribute8","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 273 frmvalidator.addValidation("attribute9","dontselect=0", "Please select at least one main attribute for each item");
daniele@11 274 frmvalidator.addValidation("attribute10","dontselect=0", "Please select at least one main attribute for each item");
daniele@12 275
gyorgy@0 276 //]]></script>
gyorgy@0 277
gyorgy@0 278 </div>
daniele@12 279
daniele@12 280 </div>
daniele@12 281
daniele@12 282 </body>
gyorgy@0 283
gyorgy@0 284 <script>
gyorgy@0 285 $('audio,video').mediaelementplayer();
gyorgy@0 286 </script>
gyorgy@0 287 </html>
gyorgy@0 288 '''
gyorgy@0 289
gyorgy@0 290 welcome_templ= '''
gyorgy@0 291 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
gyorgy@0 292 <html xmlns="http://www.w3.org/1999/xhtml">
gyorgy@0 293
gyorgy@0 294 <html lang="en" dir="ltr">
gyorgy@0 295
gyorgy@0 296 <head>
gyorgy@0 297 <meta http-equiv="Content-Type" content="text/html; charset=utf-8;charset=utf-8" >
daniele@12 298 <link rel="stylesheet" type="text/css" href="../htempl/barrensa.css">
gyorgy@0 299 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
daniele@11 300 <title>Environment Classification</title>
gyorgy@0 301 <script language="JavaScript" src="../js/gen_validatorv4.js"
gyorgy@0 302 type="text/javascript" xml:space="preserve"></script>
gyorgy@0 303 </head>
gyorgy@0 304 <body>
gyorgy@0 305 <div id="mainPicture">
gyorgy@0 306 <div class="picture">
daniele@11 307 <div id="headerTitle">Environment Classification - Listening test</div>
gyorgy@0 308 </div>
gyorgy@0 309 <div class="contentBox">
gyorgy@0 310 <h2>Welcome!</h2><br />
daniele@11 311 <br /> <br />
gyorgy@0 312
gyorgy@0 313 <form name="userinfos" action="doStart" method="POST">
gyorgy@0 314 <div class="selects">
gyorgy@0 315 </p>
gyorgy@0 316 Select Username<br />
gyorgy@0 317 <input type="text" name="uinfo00" id="uinfo00" />
gyorgy@0 318 <br /><br />
gyorgy@0 319
gyorgy@0 320 Age<br />
gyorgy@0 321 <select name="uinfo01" id="uinfo01">
gyorgy@0 322 <option value="0"></option>
gyorgy@0 323 <option value="1">< 18</option>
gyorgy@0 324 <option value="2">18-24</option>
gyorgy@0 325 <option value="3">25-34</option>
gyorgy@0 326 <option value="4">35-44</option>
gyorgy@0 327 <option value="5">45-54</option>
gyorgy@0 328 <option value="5">55-64</option>
gyorgy@0 329 <option value="6">65-74</option>
gyorgy@0 330 <option value="7">> 74</option>
gyorgy@0 331 </select>
gyorgy@0 332 <br /><br />
gyorgy@0 333 It is encouraged to use high quality headphones for this test. However, if you use loudspeakers instead make sure you're in the correct position between the speakers in order to evaluate stereo effects. Please specify (the closest to) your listening conditions:
gyorgy@0 334 <br />
daniele@11 335 <select name="info1" id="info1">
gyorgy@0 336 <option value="0"></option>
gyorgy@0 337 <option value="1">high quality headphones</option>
gyorgy@0 338 <option value="2">low quality headphones</option>
gyorgy@0 339 <option value="3">loudspeakers / professional studio</option>
gyorgy@0 340 <option value="4">loudspeakers / semi-professional studio</option>
gyorgy@0 341 <option value="5">hifi speakers / home</option>
gyorgy@0 342 </select>
gyorgy@0 343 <input type="hidden" name="pageId" value="0">
gyorgy@0 344 <input type="hidden" name="sessionId" value="%s">
gyorgy@0 345 <input type="submit" value="submit" name="startButton">
gyorgy@0 346 </p>
gyorgy@0 347 </form>
gyorgy@0 348
gyorgy@0 349 <script language="JavaScript" type="text/javascript"
gyorgy@0 350 xml:space="preserve">//<![CDATA[
gyorgy@0 351 var frmvalidator = new Validator("userinfos");
gyorgy@0 352
gyorgy@0 353 frmvalidator.addValidation("uinfo00","req","Please select a username");
gyorgy@0 354 frmvalidator.addValidation("uinfo00","maxlen=20", "Max length for username is 20");
gyorgy@0 355 frmvalidator.addValidation("uinfo00","minlen=3", "Min length for username is 3");
gyorgy@0 356 frmvalidator.addValidation("uinfo01","dontselect=0", "Please specify all information");
gyorgy@0 357
gyorgy@0 358 frmvalidator.addValidation("info1","dontselect=0", "Please specify all information");
gyorgy@0 359
gyorgy@0 360 //]]></script>
gyorgy@0 361
gyorgy@0 362
gyorgy@0 363 </div>
gyorgy@0 364 <br />
gyorgy@0 365 <h3>Thank you for participating in this project!</h3><br />
gyorgy@0 366
gyorgy@0 367 </div>
gyorgy@0 368 </body>
gyorgy@0 369
gyorgy@0 370 </html>
gyorgy@0 371 '''
gyorgy@0 372
gyorgy@0 373 endtempl = '''
gyorgy@0 374 <!DOCTYPE html>
gyorgy@0 375 <html lang="en" dir="ltr">
gyorgy@0 376 <head>
gyorgy@0 377 </head>
gyorgy@0 378 <body>
gyorgy@0 379 <p>results</p>
gyorgy@0 380 <table border="1">
gyorgy@0 381 <tr>
gyorgy@0 382 <th>Audio File</th>
gyorgy@0 383 <th>Main 1</th>
gyorgy@0 384 <th>Main 2</th>
gyorgy@0 385 <th>Other 1</th>
gyorgy@0 386 <th>Other 2</th>
gyorgy@0 387 </tr>
gyorgy@0 388 %s
gyorgy@0 389 </table>
gyorgy@0 390 <p> <a href="http://www.elec.qmul.ac.uk/digitalmusic">thanks!</a> </p>
gyorgy@0 391 </body>
gyorgy@0 392 </html>
gyorgy@0 393 '''
gyorgy@0 394 #<p> <a href="/out/">thanks!</a> </p>
gyorgy@0 395
gyorgy@0 396 endtempl2 = '''
gyorgy@0 397 <tr>
gyorgy@0 398 <td>%s</td>
gyorgy@0 399 <td><center>%s</center></td>
gyorgy@0 400 <td><center>%s</center></td>
gyorgy@0 401 <td><center>%s</center></td>
gyorgy@0 402 <td><center>%s</center></td>
gyorgy@0 403 </tr>
gyorgy@0 404 '''