<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0mm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0mm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri","sans-serif";}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:#44546A;}
span.EmailStyle20
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#993366;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:1098939098;
mso-list-type:hybrid;
mso-list-template-ids:339133012 134807555 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>OK expo website people. I am starting on the 10-15 pages of faults and glitches and whatnot that should be done on the expo website software.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>Who knows anything about <b>the fossil bits of JavaScript</b> that used to be accessed at <a href="http://expo.survex.com/javascript/">http://expo.survex.com/javascript/</a>... which is configured in the Apache config and also the Django JSLIB_URL constant, but which point to various jquery things which are not in any of the repositories and are not on the server either – and so not actually loaded or used.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>Simplest example:<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#002060'>javascript/<b>jquery-form</b>/jquery.form.min.js <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>used to be imported into pages showing a survex file, e.g. <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'><a href="http://expo.survex.com/survexfile/caves-1623/107/antigrav.svx">http://expo.survex.com/survexfile/caves-1623/107/antigrav.svx</a> <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>but the import currently fails. But the HTML page seems to work fine! This is the survex file online display & edit page.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>So what was it meant to do, so what functionality is invisibly missing ?<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>The import of </span><span style='font-family:"Calibri","sans-serif";color:#002060'>JSLIB_URL/codemirror/codemirror.min.js</span><span style='font-family:"Calibri","sans-serif";color:#993366'> in the same page also fails. I presume this is a better editor, and may even have survex syntax colouring, but the actual code we used to use has been lost in history.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>Elsewhere there are mentions of MEDIA_URL/CodeMirror-0.62/ but none of that is any of the repos either.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>Context: on the server today JSLIB_URL points to </span><span style='font-family:"Calibri","sans-serif";color:#002060'>http://expo.survex.com/javascript/ </span><span style='font-family:"Calibri","sans-serif";color:#993366'>which Apache aliases </span><span style='font-family:"Calibri","sans-serif";color:#002060'>to /usr/share/javascript/ </span><span style='font-family:"Calibri","sans-serif";color:#993366'>which, on the sever, has subdirectories<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#002060'>/jquery<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#002060'>/jquery-ui<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#002060'>/CaveView<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#002060'>/openlayers<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>and some others, but <i>not</i> <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#002060'>/jquery-form/<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>I presume these are what come “as standard” with Debian Buster on the server. On my copy of Ubuntu 20.04 on my home machine I have the same /jquery/ (and the same version: 3.3.1) but I don’t have /jquery-ui/ or any of the others. I have found no relevant installation instructions.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>Currently none of these javascript imports are under any kind of version control. Neither are any of them documented whatsoever.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>Documenting what is <i>supposed</i> to be there would be a start.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Calibri","sans-serif";color:#993366'>Philip<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#993366'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0mm 0mm 0mm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Philip Sargent [Gmail] [mailto:philip.sargent@gmail.com] <br><b>Sent:</b> 27 February 2021 01:02<br><b>To:</b> 'Expo Nerding'<br><b>Subject:</b> Expo website: troggle updating<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoPlainText>Hi,<o:p></o:p></p><p class=MsoPlainText style='margin-bottom:12.0pt'>OK I am about to re-engage with the Expo website updating. The job is <a href="http://expo.survex.com/handbook/troggle/trogdjango.html">just the Django version</a>:<o:p></o:p></p><p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='font-family:"Courier New"'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>The server is on Debian Buster (10.8) and I presume Wookey is not planning on upgrading that before next year but no hurry.<o:p></o:p></p><p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='font-family:"Courier New"'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>We are using python 3.7.3 which is in date and will have security updates until mid-2023<o:p></o:p></p><p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='font-family:"Courier New"'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>The troggle code is on Django 1.11 which is out of date and no longer getting security updates. The <i>initial need</i> is to migrate to Django 2.2 LTS which will be in-date until Spring 2022. This is compatible with python 3.7.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I have just finished bringing the CU Yachting Club website up from python2.7 & Django 1.5 to python 3.5 & Django 2.2, which is a much larger job than the Expo website. (It is stuck at python 3.5 because of old plugins: PayPal, Raven link, captchas, Mailman link, Trac link and image management.)<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>So I should do the Expo Django update while this is all fresh in my mind. I will need to remove the registration plugin and move to the Django in-built user system which is now more than adequate for our needs. I am also now much more adept at writing test suites for Django so I will do more automated testing.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>The CUYC python was written by a professional Django developer (in 2009) and so uses a much wider range of programming features than we use. I have learned a lot. (My wallpaper is peeling from all the swearing.)<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I remain firm in my belief that we should migrate away from Django and replace as much as possible with plain python. Django is just too big for amateurs now. This rewriting can be done a chunk at a time: logbooks, then survex, drawings, QMs and so on.. <o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>We can do import + static publish . No need for multi-user database now that importing everything takes 2 minutes.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Philip<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#993366'>CUYC:<br>14,674 lines</span></b><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#993366'> of non-comment, non-empty python.</span><br><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#993366'>That is <b>> 2x the size</b> of the CUCC Expo django codebase </span><br><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#993366'>and <b>15,658 lines</b> of non-empty HTML & scripts in the /templates/ too <br>That is <b>6x as big</b> as CUCC Expo - but mostly static.<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#993366'>Unlike CUCC Expo, <a href="https://www.cuyc.org.uk/training/">the CUYC system</a> is used every week to construct ~35 sailing trips a year and to enrol students in practical classes and theory courses – taking payment via PayPal and authenticating junior members of the university via the Raven plugin. So it is vital to the everyday functioning of the club. It very significantly reduces the workload on organisers. It will be staying on Django indefinitely and is hosted by SRCF. The club turnover is more than £50k a year.</span><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p></div></body></html>