Changelog
Current Build: 2026-10-06-ad3da24b
October 2026
Admin Interface - Prizes
- Print prize envelopes and slips from the browser: Manage Prizes has a new "Print Envelopes & Slips" page. It prints the prize money envelopes, the insert cards and their backs, and winner envelopes with names from the results. Print on DL envelopes or cards, or 3 slips to a sheet of A4 with the backs on alternate pages. Filter by day or by competition code to print one day, or to reprint a few envelopes. A test print marks the safe print area. It can replace the Word mail merge.
- Print envelopes from the competitions list: Select competitions and click "Print Envelopes & Slips". The envelopes page opens with those competition codes filled in. There is also an option to leave the amounts off.
- Prize amounts: A prize now has an Amount. Set it on the prize add and edit pages. The prizes list shows it. Envelopes and slips print the amount when there is one.
- Print trophy slips: Manage Prizes has a new "Print Trophy Slips" page. It prints the trophy slip that goes out with each trophy, one A4 page per trophy, with the trophy name and competition already filled in. The competitor keeps the top half and hands the bottom half back to the competition chair. Filter by day or by competition code, and add blank slips for any extras.
- Menu name: The old "Print Prize Envelopes" menu item prints labels for envelopes, so it is now called "Print Prize Envelope Labels".
September 2026
Admin Interface - Adjudication Sheets
- Adjudication sheet templates per competition: A competition can now have an adjudication sheet template (e.g. Junior, Junior Choir, Senior Choirs, Senior Solos). Set it on the competition edit page, or select competitions on the competitions list and use "Set Adjudication Sheet Template". Competitions with no template print the default sheet, as before.
- New sheets for the 2026 Mòd: The 2026 Gaelic and Music sheets print in full from the browser. There is no pre-printed stock, so one print run can mix sheet types. Long names wrap, and the comments box gets smaller to make room.
- Guide page on the reverse: The 2026 sheets can print the marking guide and feedback QR code on the back. A checkbox on the print forms turns this on or off. When it is on, print double-sided (long edge). Adjudicators write on the fronts only, and every back is the guide or a blank page. So the fronts never shift onto a back, and a single-sided scan picks up only the written pages.
- Print checks: The print preview shows the correct Chrome print settings. It also warns about competitions with no template set, and marks in red any page whose content does not fit. These messages do not print.
Admin Interface - Reports
- Entrants Per Competition ignores withdrawn entrants: The report now counts only entrants who have not withdrawn, so the totals match the entrants who will compete. The Pre Ballot version of the report already worked this way.
- New check-in list export: Tools has a new "Export Check-in List" button. It gives one row per competitor in the in-person competitions, with the day, start time, building, room, ballot order, and the contact number and name given on the entry. It is made for venue check-in sheets.
- Balloted entrant exports tidied: The "Balloted Entrants" and "Contact Details" exports now leave out withdrawn entrants. Names no longer show with extra quote marks, Gaelic accents show correctly in Excel, and the "ballot from" and "mobile" columns, which were missing, are now filled in.
Admin Interface - Orders
- No more empty orders in the orders list: Every login created a blank basket, which showed in Orders as a £0.00 paid order. Logging in now only refreshes a basket that already exists.
- Abandoned baskets are cleared automatically: A nightly task now removes baskets that were never bought, and the products and tickets they hold. It never touches an order that carries an entry, a membership, a payment, a delivery status or a billing name. The old clean up ran inside the PayPal callback and, because of a faulty condition, had never removed anything.
- Orders list hides empty order rows: The list now only shows orders that have something attached to them - an entry, a ticket, a product or a membership. Abandoned baskets no longer appear under "Paid". A genuine free entry has an entrant attached, so it still shows.
- To Ship and To Pick Up lists only show checked out orders: A shopper who put an item in the basket and then left showed on these lists with a blank name and address. The lists now ignore baskets that never reached checkout.
June - August 2026
Admin Interface
- Filter entrants by "Checked": The entrants list has a new Checked filter. It shows Unchecked, Checked (approved or rejected), Approved only, or Rejected only entries. Use it to see which entries still need checking.
- Competition edit no longer saves early: On the competition edit page, choosing a venue submitted the form at once. The form now saves only when you click Submit.
- Event logos: Each event now has optional "Wide Logo URL" and "Square Logo URL" fields. Notification emails to competitors show the event's logo in the header.
- Programme print layout: The programme prints in the standard layout again. The "boxed" layout, where you can edit text on screen before you print, is still available as an option.
Adjudicators
- Tidier "My Comps" page: The list of competitions for an adjudicator now shows as a full width table under the adjudicator details.
Submissions
- "View example" links: When a submission type has an example, the submissions page now shows a "View example" link. The link on the entry form now opens in a new tab.
Emails and Notifications
- No more duplicate notifications: A competitor with several entries got one copy of a notification for each entry. Each email address or phone number now gets one copy only.
- Emails for local Mòds: The welcome, username reminder, password reset, unpaid and rejection emails no longer refer to the Royal National Mòd. They use the name, enquiry address and sign-off of each Mòd.
- Membership on receipts: If a user buys a membership in the same order as an entry, the receipt now shows them as a current member.
Backend Commands
acg:syncadjudicators: Makes sure every adjudicator has a user account with adjudicator access, and creates one where it is missing. With--revokeit removes adjudicator access from users who are no longer adjudicators.acg:splitcomp: Splits a competition by age, school year, gender, or at random.acg:prescribeds: Packs the prescribed material for each competition, and the Teachers Packs, into zip files.
May 2026
Payments
- PayPal is now optional: Instances that don't take card payments through PayPal can run without it configured - useful for smaller local Mòds.
- Misc: Improvements to PayPal callback reliability.
Submissions
- Media uploads: Misc improvements to media upload and long term media storage.
Admin Interface - User Management
- Group shown on user detail page: The admin user view now displays the user's Group, making it easier to see at a glance which group a user belongs to.
- Filter users by Group: The admin user list now has a Group filter alongside the existing filters, so you can quickly narrow the list to users in a particular group.
Configuration
- Safer default for super-admin gate:
RN.superadminsinConfig/reefnet.phpnow defaults to an empty array. The locked-ballot unlock gate is therefore open to all admins by default. Instances that need to restrict this action to a named set of admins (e.g. the national Mòd, where many people have admin access) should overrideRN.superadminsin theirConfig/local.phpwith the allowed user IDs.
February 2026
Prescribed Changes Link
- Changes "Syllabus" page to "Important Files" to reflect the increasing use of this page for canonical information.
- Added prescribed changes document link to "Important Files" page.
Open Competition Types
- New "Open" entry types: Eight new competition entry types have been added for competitions open to all ages:
- Open Solo, Open Duet, Open Group, Open Choir
- Open Piping, Open Literature, Open Oral, Open Instrumental
- Flexible age requirements: Open competitions do not enforce age restrictions by default. If specific age limits are needed, they can be set on individual competitions.
- Optional school information: Entry forms for Open competitions include an optional "School Information" section for competitors who are still at school, helping with programme organisation.
Admin Interface
- Keyboard shortcut for saving: Press Ctrl+S (or Cmd+S on Mac) to save forms in the admin backend. This works on all admin edit screens.
Note: You may need to perform a hard refresh (Ctrl+Shift+R or Cmd+Shift+R) in your browser to load the new keyboard shortcut functionality.
Age Validation
- Minimum age now fully configurable: Date of birth validation now only applies when minage or maxage is explicitly set on a competition. The previous hardcoded minimum age of 5 has been removed - organisers should set minage on competitions if a minimum age is required.
Configuration
- New config value:
RN.entrytypes_requiring_preferrednameadded toConfig/reefnet.php- defines which entry types require a preferred name for GDPR compliance. Previously hardcoded, now configurable per instance.
Bug Fixes
- Contact number field fixes: Fixed inconsistencies in the contact phone number field name throughout the system, ensuring phone validation and SMS sending work correctly with the new split contact fields introduced in January.
- Admin contact list export: The contact list export now includes the additional contact info field.
Privacy Policy
- External privacy policy link: All privacy policy links now point to ancomunn.co.uk/privacy instead of a local page, ensuring users always see the most up-to-date policy.
Submissions
- BBC Information Form: New submission type for uploading BBC-required paperwork (PDF, DOC, DOCX, ODT). A link to a sample form is provided for reference.
January 2026
Entry Forms - Submit Button
- Rules and Privacy confirmation: Submit button now displays a reminder that by submitting, you confirm you have read and agree to the Rules of Entry and Privacy Policy
Entry Forms - Contact Details
- Contact field split into two: The single "Contact phone number" field is now two fields:
- "Contact phone number during event" - validated to ensure it's a real phone number
- "Additional contact info (optional)" - for noting whose phone it is, extension numbers, etc.
Entry Forms - Programme Name & Location
- Programme name and location are now separate fields: Previously combined into one, now split into:
- "Competitor Name (for programme and online use)"
- "Competitor Location (for programme and online use)"
- Duet entries now show both names: Programme name automatically displays as "Name & Partner Name" for duet competitions
- Updated help text: Clearer guidance on how name and location will appear in programme
Entry Forms - Autocomplete Improvements
- More details carry forward when re-entering a competitor: partner name, partner DOB, contact details, and custom programme location now pre-fill from previous entries
- School field autocomplete fixed on junior duet and junior oral forms
Age Validation
- School year now takes priority over date of birth for determining eligibility in junior competitions - if a school year is set, DOB-based age checks are skipped
Admin Interface
- Build version shown in footer: All pages now display the build date and version number for easier troubleshooting
- Simplified label for "Preferred location" field in admin entry edit screen
- School year filter improvements: Competitions with school year restrictions now show sensible age ranges in filter searches
Infrastructure
- Laravel 12 upgrade: Backend Laravel application upgraded to version 12, with continued Carbon 3 and PHP 8.2+ support.
December 2025
Admin Interface
- Event switching for all staff: Stewards, adjudicators, and other staff can now switch between events they have access to, not just administrators
September - November 2025
SMS Notifications
- SMS messaging for competitors: Administrators can now send SMS notifications to competitors with valid mobile numbers
- Bilingual messages: Notification messages available in both English and Gaelic
Configuration: SMS notifications are disabled by default in the main config file. This feature requires a Vonage account - please contact An Comunn Gàidhealach to discuss enabling SMS for your event.
Admin Interface
- Competition locking: Locked competitions can no longer be unlocked by non-administrators. Only designated super-administrators can unlock competitions once locked. Super admin accounts are defined in main config and overriden for individual instances.
- BBC consent checkbox: BBC recording consent option now properly included in admin entry forms
- Adjudication sheets: Competition numbers with leading zeros now handled correctly when generating adjudication sheet links
Backend Commands
acg:send-notification: New command-line tool for sending targeted SMS or email notifications to competitors, with filters for event, status, competition date, etc.
July - August 2025
Programme Generation
- Improved venue ordering: Fixed venue ordering in programme and ballot views to respect venue order settings
- Competition sorting: Fixed sorting in "by day" competition view to order by venue then time
- Finals handling: Competitions with qualifying rounds no longer show empty competitor lists in the programme
- Print layout improvements: Various tweaks to programme print preview and print styles
Admin Interface
- Admin form fix: Fixed issue where autofill on admin forms could cause crashes when editing entries
Backend Commands
acg:sanitycheck: New command-line tool for validating entry data integrity - detects potential issues like the same person entering conflicting competition types (e.g. learner and fluent). Includes experimental Gaelic-to-English surname matching.acg:mailmembers: Updated to support life members in mailings.
Infrastructure
- Laravel upgraded from 8 to 11: The backend Laravel application was upgraded through three major versions (8 → 9 → 10 → 11) using Laravel Shift, bringing improved performance, security updates, and modern PHP 8.2+ support.
May - June 2025
Programme Generation
- Enhanced ballot printouts: New bilingual programme layout with editable fields for venue, time, descriptions, and competitor lists
- Short names support: Programme can now display abbreviated competitor names where needed
Admin Interface
- Prize management: View assigned prizes directly from competition view, with links to prize details
- Bank Transfer payment method: Added "Bank Transfer" as a payment method option for orders
Backend Commands
acg:splitcomp: Command-line tool for splitting competitions based on entrant age. Updated to work correctly with school year restrictions (P1-S6) not just DOB-based ages.
Navigation
- Simplified tips menu: Removed outdated links from the Tips navigation menu
February - April 2025
Login
- Password field: Password now hidden by default with a toggle button to show/hide - previously defaulted to visible
Backend Commands
acg:makedummyballot: New command-line tool for generating dummy ballot data with realistic Gaelic names and school names, for programme testing and print previews.
January 2025
School Year Validation
- School year restrictions: Competitions can now be restricted by school year (P1-S6) instead of just age
- Entry forms updated: Entry forms now show "Open to school years" when a competition has school year restrictions
- Admin competition settings: Competition add/edit screens now include minimum and maximum school year fields









