Release notes

These release notes do not cover changes to the Python API of matholymp, which is considered unstable. If making use of matholymp at the Python API level (such as by writing your own scripts importing matholymp modules, or making substantial changes to the example HTML templates for the online registration system that involve calls to matholymp APIs not in the provided examples), you should examine the source code changes to determine if any API changes require changes to your code.

When upgrading matholymp, you should run the mo-static-upgrade script from the directory containing the static site, to update the CSV data files with details of past events for any format changes in the new version of matholymp. After doing so, run mo-static-generate.

Version 2020.07.0 (22 July 2020)

Because of changes to how data is represented in the registration system, upgrades to this version can only be made between events when the registration system is not active.

  • Python 3 is now fully supported in the registration system. Python 3.5 or later is now required; Python 2 is no longer supported. To support Python 3, Roundup 2.0.0 or later is required by the registration system.
  • A bug has been fixed in mo-static-import where it would download an incorrect file as the RSS feed of scores when downloading files automatically from the registration system.
  • A bug has been fixed that caused the static site to have incorrect descriptions of the dates as of which ages are given for contestants who competed in years all of which had the same such description but for which that description was not the one in staticsite.cfg.
  • Changes have been made to how uploaded flags and photos are handled in the registration system, which involve updates to country.item.html and person.item.html. New files consent_form.index.html, consent_form.item.html, flag.index.html, flag.item.html, photo.index.html and photo.item.html are added, and file.index.html, file.item.html, private_file.index.html and private_file.item.html are removed.
  • As part of cleanups to Python coding style, the example Python files for the registration system have been changed.
  • The registration system code and associated Roundup patches have been updated for Roundup 2.0.0, as have many HTML templates for the registration system and the example config.ini. Because of Roundup API changes, the code will no longer work with older Roundup versions. The modified templates are _generic.404.html, _generic.index.html, country.retireconfirm.html, help_controls.js, page.html, person.retireconfirm.html, person.rooms.html, person.scoreenter.html, person.status.html and user.forgotten.html. Some Roundup patches have been removed as integrated into Roundup 2.0.0. As well as applying changes to config.ini, a new secret_key setting in that file needs to be added using roundup-admin updateconfig followed by merging the matholymp-specific comments back into the file.
  • Various HTML templates for the registration system have been updated to support Python 3. The modified templates are _generic.index.html, _generic.item.html, arrival.index.html, country.index.html, event.index.html, gender.index.html, language.index.html, matholymprole.index.html, rss.index.html, tshirt.index.html and user.index.html.
  • The example extensions/email-template-new-user for the registration system has been extended to discuss more cases of which organisers should be contacted for certain issues.
  • person.item.html now says explicitly that names should be entered in the form they should appear on the website and name badges, rather than entering full legal names as on a passport.
  • The automated tests run by mo-run-tests now include some tests of the registration system, if Roundup and MechanicalSoup are available. These tests do not yet cover all of the registration system functionality.
  • Various HTML templates for the registration system have been removed, as templates that originally came from Roundup but are not relevant, or are no longer relevant, in the registration system context. The removed templates are _generic.calendar.html, _generic.help-empty.html, _generic.help-list.html, _generic.help-search.html, _generic.help-submit.html, _generic.help.html, help.html, user.help-search.html, user.help.html, user.register.html and user.rego_progress.html. The templates dpage.html and page.html are modified to remove content from them that is irrelevant in the registration system context and that references removed files.
  • country.item.html and person.item.html have been changed so that the page title just shows a blank for the name of a removed country or person, instead of showing [hidden]. Other templates for data only visible to some users have been similarly changed to avoid showing [hidden]; this affects the following templates: arrival.item.html, event.item.html, gender.item.html, language.item.html, tshirt.item.html, user.item.html.
  • Actions modifying registration system data are now required to be submitted via HTTP POST requests (before the CSRF protection added in Roundup 1.6.0, such a restriction would not have added any security, but given the CSRF protection which does not apply to GET requests, it is now desirable).
  • mo-run-tests now supports a --coverage option to measure code coverage, using Coverage.py. This is only relevant for developing matholymp, not for using it.
  • A bug has been fixed that produced internal errors when registering a person with an arrival or departure time hour specified without a date, or an arrival or departure time minute specified without a date or an hour.
  • A possible race condition has been fixed in the handling of consent form uploads. That race condition could have allowed a malicious user with access to register participants for one country to cause a consent form uploaded for another country to be linked to a participant from the malicious user’s country, if they acted at exactly the right time while the upload of the consent form was being processed.
  • Flags for removed countries, replaced flags for current countries, photos for removed people and replaced photos for current people are no longer public in the registration system. (There were no public links to such files, but previously they could still be accessed under the URLs under which they were public when they were the current flag or photo for a non-removed country or person.)
  • The new configuration variable matholymp_data_protection_url must be specified in extensions/config.ini for the registration system. This gives the URL of a page with information about how personal data of participants is used. person.item.html has been updated to link to that page. The example extensions/email-template-new-user for the registration system has also been updated to reference such information.
  • The registration system now supports collecting information about participant consent for certain uses of personal data. The new configuration variable matholymp_consent_ui must be specified in extensions/config.ini for the registration system. If Yes, this information is collected by the registration system; if No, it is not, as before. When this information is collected, photos may be uploaded that can be used on name badges but are not public on the website. The example extensions/email-template-new-user for the registration system references this information. person.item.html has been updated accordingly.
  • Specifying an invalid contact email address for a country now results more consistently in errors from the registration system, rather than only producing errors if the registration system tried to create a user account with the invalid address.
  • More than one contact email address may be specified for a country in the registration system, with the additional addresses all receiving the email generated with username and password details. country.item.html is updated accordingly.
  • A bug has been fixed that produced internal errors when registering a person with only part of their date of birth specified, when dates of birth are not required for all participants.
  • When official and unofficial countries are distinguished, scoreboards and CSV files now show ranks for countries and contestants restricted to official countries, in addition to ranks among the full set of countries and contestants.
  • Papers for Deputy Leaders (and Observers with Deputy and Contestants) are generated in a separate file from those for Leaders (and Observers with Leader).
  • The static site table of all countries at all events now shows which countries are official countries, when official and unofficial countries are distinguished at at least one event.
  • event.index.html, event.item.html, person.item.html, person.scoreselect.html, person.status.html and page.html have been modified for internal changes in registration system code.
  • A bug has been fixed that produced internal errors when scaling down PNG photos with an alpha channel.
  • The menu of countries for entering scores no longer shows staff countries or “None”.
  • When logged in administratively to the registration system, the CSV file of countries now includes their contact email addresses. Consequently, a CSV file of countries downloaded when logged in administratively cannot be used with mo-static-import.
  • The registration system now supports tracking the expected numbers of participants in each role, and the expected number of single room requests, from each country. This information can be edited by registering users for that country, and appears in the CSV file of countries when logged in administratively. Entering this data can be enabled or disabled for registering users independently of enabling or disabling registering details of participants. The registration status page shows whether these numbers have not yet been confirmed for a given country, and uses them in determining whether any expected participants have not yet been registered, whether unexpected participants have been registered, and whether there are more or fewer single room requests than expected. country.item.html, event.item.html, person.item.html and page.html are updated accordingly, as is extensions/email-template-new-user; a new template country.prereg.html is added.
  • The default roles available in the registration system now include “Crew”, “Guest”, “Press” and “VIP”.
  • Requests for single rooms can now be made through the registration system; the available types of rooms, generally and for particular roles, can be configured online. There are five new configuration variables that must be specified in extensions/config.ini for the registration system: matholymp_initial_room_types, matholymp_initial_room_types_non_contestant, matholymp_initial_room_types_contestant, matholymp_initial_default_room_type_non_contestant and matholymp_initial_default_room_type_contestant. There are new templates room_type.index.html and room_type.item.html, while matholymprole.item.html, page.html and person.item.html are updated accordingly.
  • Requests to share a room with a given other person can now be made through the registration system. person.item.html is updated accordingly.
  • The choice of background PDFs for name badges is now configured through the registration system rather than hardcoded in Python code. There are new templates badge_type.index.html and badge_type.item.html, while matholymprole.item.html and page.html are updated accordingly.
  • Badges for the “Problem Selection” and “Problem Selection Chair” roles now default to using the badge type for coordinators rather than the generic type for organisers.
  • The default document generation template badge-template.tex has been adjusted to allow more space for the event venue.
  • Background colours for name badges are now configured through the registration system. This means that typically only a single background PDF lanyard-generic.pdf is needed for producing name badges, when PDFs for different roles differed only in choice of colours. The default document generation template badge-template.tex is adjusted accordingly.
  • When the registration system is configured to collect passport numbers and nationality information, it also asks for participants’ names as in their passports if different from the names given for the website and name badges and needed for invitation letters. person.item.html is updated accordingly.
  • Countries can be registered in bulk by uploading a CSV file of country details rather than needing to fill in an online form for each country being registered. (If there is no flag to reuse or a new flag is to be used, that still needs to be handled manually for each such country.) There are new templates country.bulkregister.html and country.bulkconfirm.html, while page.html is updated accordingly.
  • Non-administrative registration system users can no longer change their own usernames.
  • The registration system now supports creating or editing a country with a code that is a substring of that for another country. (Previously this only worked if the country with the longer code was created later and the one with the shorter code not edited after that.)
  • Staff participants can be registered in bulk by uploading a CSV file of basic person details, with associated self-registration accounts being automatically created and emails being sent to those participants to request that they complete the remaining details, rather than an administrative user needing to fill in an online form for each person being registered. page.html, user.item.html and person.item.html have been updated accordingly; there are new templates person.bulkregister.html and person.bulkconfirm.html. A new file extensions/email-template-self-reg is also needed to provide a template for the emails sent to such participants; an example is provided.
  • user.item.html has been updated to avoid warnings when non-administrative users edit their own user records.
  • Name badges can be generated online from the registration system. A new configuration variable matholymp_docgen_directory must be specified in extensions/config.ini for the registration system; this gives the location of the directory with documentgen.cfg, or is empty if that directory is not available, in which case online badge generation is not supported. A new variable matholymp_badge_use_background must also be specified. person.item.html and person.index.html are updated accordingly.
  • country.item.html, person.item.html and user.item.html have been updated to use more consistent spelling.
  • Invitation letters can be generated using mo-document-generate, and online from the registration system. A new document generation template invitation-letter-template.tex is used for this purpose. person.item.html and person.index.html are updated :file:accordingly. New variables matholymp_invitation_letter_email and matholymp_invitation_letter_register must also be specified for the registration system. A new file extensions/email-template-invitation-change is also needed to provide a template for the emails sent when personal details used in such letters are changed after such a letter has been generated online; an example is provided.
  • The example page.html for the registration system is changed to make the division between links in the sidebar clearer.
  • Some page templates for the registration system are changed to fix HTML validation errors. The affected templates are country.index.html, dpage.html, page.html, person.index.html, person.rooms.html, person.scoreboard.html, person.scoredisplay.html, person.scoreenter.html, person.scoreselect.html and person.status.html.
  • The example dpage.html and page.html for the registration system are changed to use an HTML 5 DOCTYPE and specify lang="en" on the html tag.
  • mo-document-generate now supports a --exam-order option that may be used to specify a text file with a list of contestant codes, if papers or labels for contestant codes are to be printed in an order other than the default (all Contestants 1, then all Contestants 2, and so on).
  • Pages for countries and people, from both the static site and the registration system, now inline flag images and photos at the same width at which they are displayed, rather than inlining a full-width image that the browser has to scale down. To support this, Pillow is now required for static site generation. country.item.html and person.item.html are updated accordingly.
  • The static site and registration system now include an additional summary table of participants for each event, with all photos shown on a single page. A new variable photo_list_css must be specified in staticsite.cfg for static site generation; a new variable matholymp_photo_list_class must be specified in extensions/config.ini for the registration system; there is a new page template person.summary.html and page.html is updated accordingly.
  • There is some support for a virtual event, held remotely with leaders assigning marks for their contestants’ scripts and with medals, certificates and other materials shipped afterwards. A new variable matholymp_virtual_event must be specified in extensions/config.ini for the registration system. If Yes, leader email addresses and physical addresses for each country can be specified through country.prereg.html, and the registration status page notes when those are missing, while not noting certain missing information that is irrelevant for a virtual event. country.item.html is updated accordingly. A new column Virtual Event is used in the CSV file of events for the static site. For a virtual event, registering users may enter scores for their own country if this is enabled under Set medal boundaries or disable registration; event.item.html and page.html are updated accordingly.
  • A bug has been fixed in mo-static-upgrade where it would fail when the CSV file of events has a column Age Day Description.
  • mo-document-generate language-list all now generates an additional file language-status.txt, showing which languages have had papers provided and which are still waiting for those papers.
  • mo-document-generate now supports generating papers for all contestants in separate per-contestant files with a single command, by specifying all-split in place of all for the papers to generate.
  • The static site now supports adding custom text to the top of the scoreboard page; this is intended for when per-event notes are needed on that page. A new variable scoreboard_include_extra must be specified in staticsite.cfg.

Version 2018.02.0 (11 February 2018)

Because of changes to how data is represented in the registration system, upgrades to this version can only be made between events when the registration system is not active.

  • Static site generation now supports different events having different descriptions of the day for which contestant ages are given. If the CSV file of events has a column Age Day Description, the text from that column will be used instead of age_day_desc from staticsite.cfg.
  • mo-static-import can now work directly with the ZIP files of flags and photos from the registration system, instead of requiring you to unpack them manually, and can automatically download from the registration system any files not present in the directory specified.
  • mo-static-import now sets event_active_number to empty in staticsite.cfg if it was previously set to the number of the event for which data is being imported.
  • The registration system now allows entering phone numbers for all staff, not just Guides. Document generation will only use this information in the case of Guides, but it may sometimes be useful for other staff for other administrative purposes. person.item.html is updated accordingly.
  • The registration system now supports requiring allergies and dietary requirements information to be specified explicitly, possibly as None, rather than left blank. The new configuration variable matholymp_require_diet must be specified in extensions/config.ini for the registration system. If Yes, this information is required for all people at registration. If No, that field can be left blank at registration, as before. person.item.html is updated accordingly.
  • The registration system now supports editing rooms for many people from a single page. The example page.html is updated accordingly, and a new person.rooms.html is added.
  • mo-static-generate no longer writes output files if their contents would be unchanged, to support dependency-based postprocessing of its output.
  • The registration system now supports a configurable number of languages being registered for each participant, rather than the previous hardcoded two languages. The new configuration variable matholymp_num_languages must be specified in extensions/config.ini for the registration system. person.item.html is updated accordingly. The first language must be specified; the others are optional. Labels for contestant desks only list at most two languages.
  • Information about which arrival / departure points are airports (and so should have flight numbers entered when registering participants) is now entered and stored explicitly in the registration system, rather than being based on whether the name contains Airport. arrival.index.html and arrival.item.html are updated accordingly.
  • Which staff roles are allowed to be Guides for countries is now configured through the registration system database, rather than being hardcoded as only the Guide role. The default is only the Guide role, but other roles may be edited to allow them to guide countries (if, for example, a Deputy Chief Guide is also guiding a country). matholymprole.index.html and matholymprole.item.html are updated accordingly.
  • The example country.index.html and person.index.html for the registration system no longer link to ZIP files of flags and photos, so matching the lists in the static site which does not have such ZIP files, unless logged in administratively.

Version 2017.05.0 (1 May 2017)

Because of changes to how data is represented in the registration system, upgrades to this version can only be made between events when the registration system is not active.

  • The registration system now supports collecting nationality information for participants. The new configuration variable matholymp_require_nationality must be specified in extensions/config.ini for the registration system. If Yes, this information is collected and is required for all participants. If No, this information is not collected. person.item.html is updated accordingly.
  • The registration system now caches the generated scoreboard to avoid high system load when many people are accessing it simultaneously while coordination is going on. The templates person.scoreboard.html and person.scoredisplay.html are updated accordingly. This functionality only works on a Unix-like operating system; on other systems, the online scoreboard will still be regenerated every time it is accessed.
  • The registration system now supports scaling down excessively large photos uploaded when registering participants. To support this feature, matholymp now requires the Pillow library if the registration system is used. The new configuration variables matholymp_photo_max_size and matholymp_photo_min_dimen must be specified in extensions/config.ini for the registration system. The registration status page shows a list of people with large photos and provides the option to scale down those photos.
  • The registration system now applies the sanity check that dates of birth are not too recent to all participants with a date of birth registered rather than just to contestants. The example extensions/config.ini is updated accordingly (change to the comment on matholymp_sanity_date_of_birth only).
  • The registration system configuration variable matholymp_require_contestants_female is replaced by a variable matholymp_contestant_genders with a comma-separated list of genders allowed for contestants. If empty, all genders are allowed, which is equivalent to a value of Female, Male, Non-binary with the default set of genders.
  • The registration system now detects and gives errors for more cases of accessing invalid URLs instead of treating them as equivalent to other valid URLs.
  • The full version of the CSV file of person details now lists languages in a single Languages column (which contains a comma-separated list interpreted as if it were the single row of a CSV file) instead of separate columns for first and second languages. At most two languages can be requested at registration, but this change allows papers in more than two languages to be generated for a contestant in special circumstances by editing the CSV file before generating the papers. Labels for contestant desks only list at most two languages.
  • Registration system users with ordinary accounts for registering participants from their own country can now see a registration status page with information about missing registration information from their country. The example page.html and person.status.html are updated accordingly.
  • The example badge-template.tex is updated to reflect that allergies information is collected together with dietary requirements.
  • Static site generation now supports having a different form of a host country’s name that appears after “in”, for names requiring “the” in that context. A Country Name In column is added to the CSV file of events for that purpose.
  • It is now possible to have multiple staff countries in the registration system (e.g., to separate different kinds of staff), although exactly one staff country is created automatically. The example country.item.html is updated for this change. CSV files listing countries now explicitly track whether a country is a normal or staff country.
  • The online scoreboard now indicates the maximum score a contestant or country could achieve when only partial scores for that contestant or country have been entered, and shows a contestant’s or country’s total score, or a country’s total score on a problem, as a blank rather than zero if no scores for that contestant or country, or for that country on that problem, have been entered.
  • In the registration system, dates of birth now use separate drop-down menus for day, month and year, instead of needing to be entered as text in a particular format or using a pop-up not designed for dates far in the past. person.item.html is updated accordingly.
  • In the registration system, arrival and departure times now use separate drop-down menus for date (restricted to dates within the permitted range), hour and minute, instead of needing to be entered as text in a particular format or using a pop-up calendar. person.item.html is updated accordingly. The full version of the CSV file of person details now lists the arrival and departure dates separately from the arrival and departure times. Arrivals and departures after midnight at the start of the configured latest arrival and departure dates are now allowed as intended. The extensions/config.ini configuration variable matholymp_date_template is no longer used and is removed from the example file.
  • The registration system now gives an error if a person is registered as departing before they arrive.

Version 2017.01.0 (8 January 2017)

  • The ZIP files of flags and photos that can be downloaded from the registration system now have their contents arranged by the registration system identifier for the country or person, not by that for the file itself.
  • The registration system now supports uploading consent forms for participants, where the host country requires this for participants under a certain age. The new configuration variable matholymp_consent_forms_date must be specified in extensions/config.ini for the registration system. If empty, consent forms are disabled; otherwise, it must be a date such that participants born on or after that date require consent forms to be uploaded. If this feature is used, the configuration variable matholymp_consent_forms_url must also be set, to the URL of the blank consent form. person.item.html and person.index.html are updated to support this feature (but local changes may be needed to point people to an appropriate blank consent form to fill in), and new templates private_file.item.html and private_file.index.html are added.
  • The registration system templates user.item.html and country.item.html are updated to clarify the effects of editing email addresses entered in the registration system.
  • The registration system template person.item.html now collects information “Allergies and dietary requirements” rather than simply “Dietary requirements”. The CSV file column is renamed accordingly.
  • The registration system now supports requiring a date of birth to be specified for all participants rather than just for contestants. The new configuration variable matholymp_require_date_of_birth must be specified in extensions/config.ini for the registration system (as Yes or No). person.item.html is updated accordingly.
  • The registration system now supports collecting passport or identity card numbers for participants. The new configuration variable matholymp_require_passport_number must be specified in extensions/config.ini for the registration system. If Yes, this information is collected and is required for all participants. If No, this information is not collected. person.item.html is updated accordingly.
  • My list of ideas for possible future improvements to matholymp is now included in the documentation. See Matholymp todo list.

Version 2016.05.0 (1 May 2016)

  • Static site generation now supports a person with roles for more than one country at an event. (This is only intended for cases where someone has a role, such as Leader or Deputy Leader, for more than one non-staff country, such as A and B teams for the host country. If someone has both non-staff and staff roles, such as being both a Leader and on the organising committee, this should be represented by listing other roles under the non-staff participation.) In the registration system, this should be represented by separately registered entries for each country, with the same URL for past participation listed; it is not currently possible to register a new participant this way without multiple records being created for them by mo-static-import.
  • When papers are generated with mo-document-generate, the directory with papers received from leaders may contain only the LaTeX sources of a paper without a corresponding PDF version, in which case the PDF version is generated automatically with pdflatex. (If both PDF and LaTeX versions are present, the PDF version will be used, as before.)
  • mo-document-generate can now be used with arguments paper new-drafts to generate draft papers to display only for translations that are new or modified since the previous call with those arguments. Previously the user needed to keep track of which new or revised papers needed drafts generating.
  • The registration system code and associated Roundup patches have been updated for Roundup 1.5.1. Because of Roundup API changes, the code will no longer work with older Roundup versions.
  • The registration system now checks that flags are uploaded in PNG format, and that photos are uploaded in JPEG or PNG format, and that the filename extension for such uploaded files matches the format of the contents of the files. country.item.html and person.item.html are updated to mention these requirements. (These checks are not applied to flags or photos automatically reused from previous years.)
  • The numbers of rows and columns on each page of the display scoreboard are now configurable instead of being hardcoded as 2. The new configuration variables matholymp_display_scoreboard_rows and matholymp_display_scoreboard_columns must be specified in extensions/config.ini for the registration system.
  • If a person is registered with “Other roles” including their main role, that duplicate entry will be automatically excluded when generating the CSV file of person details, and so when the final registration data are transferred to the static site.

Version 2016.01.0 (2 January 2016)

  • Generated statistics now refer to the number of participating teams, not countries, at an event, reflecting that what is counted is not countries in the matholymp sense (including the special staff country and any countries sending only observers), nor in the sense of common usage (B teams are included, but countries sending only observers are excluded), but those sending nonempty teams. This includes changes to the CSV column headers in generated CSV files (though not in those that serve as inputs to mo-static-generate).
  • The mo-static-import script no longer takes an argument specifying the number of the event for which data is to be imported; instead, this is determined automatically from the data imported.
  • mo-static-import has an additional sanity check that data is not already present in the static site for countries or people at the event for which data is being imported.
  • When scores are incomplete, the live scoreboard’s cumulative statistics on scores show the maximum number of contestants who might have at least a given score after their scores are complete, as well as the number who have at least that score based on the scores entered so far.
  • The default set of choices for gender in the registration system now includes “Other”.
  • country.item.html no longer refers to accounts being created automatically only if the specified email address is not used by any other country. (That restriction was removed in version 2015.01.0.)
  • When the registration system is initialised, if matholymp_initial_languages in extensions/config.ini includes the special language name PREVIOUS, then all languages of papers at previous events will automatically be added to the registration system; this requires matholymp_static_site_directory to point to the static site data for previous events. To exclude some previous languages while including others automatically, languages starting with - may be listed after PREVIOUS (for example, PREVIOUS, -Latin).

Version 2015.04.0 (5 April 2015)

  • There is a new script mo-static-upgrade that should be run from the directory containing the static site when upgrading matholymp.
  • Country and role names can now contain commas without this causing ambiguity in interpretation of the CSV fields Other Roles and Guide For. Those fields now contain values interpreted as if they were the single row of a CSV file, instead of as simple comma-separated strings.
  • The registration system now detects and warns users if given or family names are entered all in uppercase. (This is a warning rather than a hard error because of the possibility that in some cases the correct orthography is all-uppercase; for example, for a single-character name.) person.item.html needs updating to make use of this feature.
  • The example document-generation template coord-form-template.tex now handles longer country names.
  • New configuration variables coord_form_print_logo and coord_form_text_left must be specified in documentgen.cfg. These can be used to configure the template for coordination forms; the example coord-form-template.tex has been updated to use them (settings of Yes make the template behave the same as in previous versions). In addition, the --background option to mo-document-generate can be used to include a background design from coord-form-background.pdf when generating coordination forms; again, the example template has been updated for this.
  • person.item.html has had clarification added that the languages to enter for contestants are those in which papers are requested.
  • Scoreboards now properly use singular rather than plural when referring to a single contestant having received a particular award, or to a single contestant being registered.
  • Special prizes are now supported. person.item.html needs updating to make use of this feature in the registration system.

Version 2015.01.0 (4 January 2015)

  • The registration system can detect some more cases of invalid URLs specified for previous participation.
  • A new configuration variable matholymp_static_site_directory must be specified in extensions/config.ini for the registration system. If this is empty, there is no change in functionality from previous versions. If not empty, it is a filesystem path to the static site (directory with staticsite.cfg), either absolute or relative to the Roundup instance directory, on the system running the registration system; this directory must be readably by the registration system, but need not be writable. This is used by the registration system to access information from the static site (specifically, to check whether URLs for previous participation specified at registration time do relate to some country or person that previously participated, and to support automatic reuse of flags and photos from previous years).
  • When registering a country, you can specify to reuse a flag from a previous year (without needing to download and reupload it manually); this reuse is the default option. This depends on matholymp_static_site_directory pointing to the static site data. The HTML site template country.item.html also needs updating from the provided examples to make use of this feature. Similarly, photos from previous years are reused by default when a person is registered (if a URL for previous participation is specified), with the same configuration requirement; person.item.html needs updating to make use of this feature.
  • The registration system makes further sanity checks on things done by administrative users.
  • A bug has been fixed that produced errors when downloading a CSV file of scores from the registration system.
  • Previously, when a person or country was removed from the registration system, although they no longer appeared in the lists of registered people or countries, accessing the page for that person or country directly via its URL (e.g., if it had been indexed by a search engine before the removal) would still show their details, with no indication (unless logged in with edit access) that the person or country was no longer registered. Now, accessing the page for a removed person or country will give an error instead of showing any details for that person or country, unless logged in with access to edit that person or country’s details.
  • When a contact email address was given for a country at registration time so that a registration system account could be created automatically, that address did not appear in public on the registration system page for that country but was unintentionally available to the public through the XML-RPC interface to the registration system. Now the registration system properly denies access to the contact email address through the XML-RPC interface as well as the main web interface.
  • The same contact email address can now be specified for multiple user accounts (this can be useful, for example, if the person registering participants from the host country also has an administrative account, or the same person registers participants for both a country’s main team and its B team). You may wish to update user.forgotten.html from the provided examples as the example file has been updated to reflect this change.
  • Scoreboards now show additional statistical information about scores.

Version 2014.09.0 (28 September 2014)

  • First public release.