Releases: makeabilitylab/makeabilitylabwebsite
2.9.0
What's Changed
- External slides URL on Talk/Poster; drop slideshare_url (#1273) by @jonfroehlich in #1274
- Add read-only Data Health admin dashboard + checks (#1276) by @jonfroehlich in #1277
- Add CI + test-settings shim + split tests into a package (#1279) by @jonfroehlich in #1280
- Refactor view_project_people: fix director hardcoding + N+1 query storm by @jonfroehlich in #1285
- Fix mobile navbar sizing/wrap and logo overflow (#1281, #1282, #1286) by @jonfroehlich in #1287
- Remove unused jQuery UI + dead autocomplete.css (#1288) by @jonfroehlich in #1289
- Vanilla navbar collapse; remove dead back-to-top + jQuery Easing (#1288) by @jonfroehlich in #1290
- Remove dead Bootstrap scrollspy from (#1288) by @jonfroehlich in #1291
- Replace Bootstrap 3 popover (jQuery) with a vanilla popover (#1288) by @jonfroehlich in #1292
- Replace Bootstrap carousel JS with a vanilla crossfade carousel (#1288) by @jonfroehlich in #1293
- Drop jQuery 1.9.1 + Bootstrap 3.3.6 JavaScript (#1288) by @jonfroehlich in #1295
- Remove redundant allowfullscreen on video iframes (#1296) by @jonfroehlich in #1297
- Auto-calculate publication num_pages from PDF (#1298) by @jonfroehlich in #1301
- Make projects private by default with a single is_visible flag (#1300) by @jonfroehlich in #1302
- Hide private projects on all remaining surfaces (#1300 follow-up) by @jonfroehlich in #1303
- Replace django-image-cropping with an in-repo Cropper.js admin widget (#1299) by @jonfroehlich in #1305
- Admin: preview, crop & shuffle the Star Wars easter-egg figure in the Person cropper (#1304) by @jonfroehlich in #1306
- Add dynamic sitemap.xml and robots.txt (#1252) by @jonfroehlich in #1307
- Serve sitemap via static robots.txt; drop dead Django robots view (#1252) by @jonfroehlich in #1308
- Bump version to 2.8.1 for the sitemap.xml release (#1252) by @jonfroehlich in #1309
- Pin sitemap URLs to https; bump to 2.8.2 (#1252) by @jonfroehlich in #1310
- docs: document Apache static-vs-Django routing (robots.txt & sitemap.xml) by @jonfroehlich in #1311
- docs: correct log locations in DEPLOYMENT.md (buildlog.txt not on shared FS) by @jonfroehlich in #1312
- Member page: dynamic load-more, vertical papers, bio expand, section nav (#1110) by @jonfroehlich in #1314
Full Changelog: 2.3.4...2.9.0
2.3.4
2.3.4 — Performance, correctness, and hygiene
A focused pass on long-standing bugs and the publications/index page perf cliff. No breaking changes — drop-in upgrade from 2.3.2. 49 unit tests now pass (up from 0 at the start of the pass).
⚡ Performance
/publications/is ~8× faster end-to-end. Addedprefetch_related('authors', 'projects', 'keywords')to the Publication queryset across/publications/,/,/project/<n>/, and/member/<n>/. The snippet loopspub.authors.all/pub.projects.all/pub.keywords.allper row, so the prefetch eliminates the bulk of the N+1. Measured locally: 617 queries / 275.83 ms → 60 queries / 35 ms. (d4f6d65)- Talk and Video pages also faster via the same
select_related+prefetch_relatedshape across index/project/member views. Index: 348 → 154 queries / 174 → 104 ms. Project page: 85 → 63 queries / 71 → 39 ms. (1cae31c) - Thumbnails now lazy-load.
loading="lazy"added to all 9 artifact-thumbnail<img>tags indisplay_pub_snippet.htmlanddisplay_talk_snippet.html. Below-the-fold images defer until scrolled into view. Particularly noticeable on slow mobile networks. (a51d812)
🐛 Bug fixes
serve_pdfno longer crashes on duplicate substring matches and no longer enables PDF-filename enumeration. ReplacedPublication.objects.get(pdf_file__icontains=filename)withfilter(pdf_file__iendswith=filename).first(). Preserves the fuzzydifflibfallback for stale external links (#1173). (f78fc14)- News pages with deleted authors no longer crash.
News.authorisnull=True, on_delete=SET_NULL. Previously thenews_itemview raisedAttributeErrorand thenews_listingtemplate raisedNoReverseMatchwhenever a News row's author had been removed. Both call sites guarded. (1c0d6c0) delete_unused_filesno longer crashes on artifacts with no PDF or thumbnail. Three call sites guarded (talk PDF, pub PDF, pub thumbnail), matching the existing poster-branch pattern (#1254). (202b1bb)views/member.pyMultipleObjectsReturned handler now references a real field. The fallback usedorder_by('-modified_date')which doesn't exist on Person; switched to-bio_datetime_modified(#1254). (202b1bb)Artifact.do_filenames_need_updatingchecks the correct fields. Theraw_fileandthumbnailbranches were both comparingpdf_file.name(copy-paste bug); each now checks its own field. (c7abcf7)News.save()slug-collision loop excludes self. Admin-cleared slugs no longer bump unnecessarily on re-save. (c7abcf7)Person.save()no longer leaks file descriptors when assigning the Star Wars fallback image — wrapped in try/finally that closes aftersuper().save()reads the file. (c7abcf7)
🧹 Hygiene
- Production file-log level is now INFO instead of DEBUG. The file handler in
settings.pyis conditional onDEBUG— local dev keeps verbose file logs; production logs are much smaller and no longer expose per-request URLs or_logger.debugpayloads at/logs/debug.log. (~75 MB of stale rotateddebug.log*files in~/ml-www-prodwere also cleaned up manually.) (31f2b4f) - Stray
print()statements removed frommodels/projectils/ml_utils.py. (14da008) - Broken
_logger.debugpayload fixed inviews/people.py:62— the second positional arg was being silently dropped. (14da008) - Duplicate
Coalesceimport removed frommodels/personnmodels/project_role.py:88` per PEP 8 (#1254). (f0d44c1) - Dead code removed:
get_closest_filename_from_filesystemhelper inserve_pdf.py. (f78fc14)
🧪 Tests
The test suite went from effectively empty to 49 unit tests covering BibTeX citation, get_current_member_count, Artifact.do_filenames_need_updating, serve_pdf paths, plu_biocoverage. AllSimpleTestCase` — no DB setup required,runs in <100 ms.
🛠 Known follow-ups (not in this release)
- Production-side Apache exemption for
/media/publications/(#1173) — theserve_pdfview's code is now safe to expose, but Apache on production still serves/media/publications/*directly. The test serve IT in Dec 2025; the prod-side ask is in flight. /logs/exposure design check — currently public by design perdocs/DEPLOYMENT.md. Open question whether to add an IP allowlist or basic auth; not load-bearing since prod logs are now INFO-only.- DB-touching test infrastructure — would unlock
assertNumQueriesregression tests for the perf wins and view-level integration tests for the null-guard logic.
More Accessibility Improvements
More accessibility and CSS improvements and refinements.
What's Changed
- Fixing a number of bugs by @jonfroehlich in #1246
- More accessibility fixes by @jonfroehlich in #1247
- added medical position titles by @jonfroehlich in #1248
- Significantly updated this internal page with a frontend by @jonfroehlich in #1249
Full Changelog: 2.1.1.0...2.2.3
Accessibility Overhaul
- Massive accessibility overhaul by @jonfroehlich in #1242
- Fix poster issues by @jonfroehlich in #1235
- Fix same name problem by @jonfroehlich in #1237
- Auto-fills poster content from pub info, addressing Issue #1229 by @jonfroehlich in #1230
- Update admin interfaces by @jonfroehlich in #1232
Django 5.2.9 Upgrade
What's Changed
- Upgrade to django 5.2.9 by @jonfroehlich in #1214
- Fixed YouTube Embed Error #1211
- Fixed popup fails to close on admin interface #973
Full Changelog: 1.9.4.9...1.9.6
1.3.1
What's Changed
- Simplified navbar.css significantly. Also added better support for light vs. dark navbar
- Updated logos to v3
- Updated footer to include educational mission
- Redid people page with updated aesthetics and fast load times
- Updated publications page to no longer use .js
1.1
What's Changed
- Adding significantly more logging to help debug lag/slowness
- Upgraded to Docker 4.2.5, which required upgrading to at least PostgreSQL 12 (from 11). Now up to 16 on -test and prod
- Rebuilt docker-compose structure to improve handling of -test and prod and address security issues
New Contributors
Full Changelog: 1.0.10...1.1
v1.0.0 with Django 4.1.2
Django Update
Django is updated to 2.1.7, reorders people page, fixes minor bugs, and adds high school research section to FAQ.
bug fixes
fixes project gallery spacing, white nav bar items turning invisible on hover, and long captions for project gallery images.