Session log — Setshedi caption, lectures list page, ML Lectures plugin

← All session logs

Session log — Setshedi caption, lectures list page, ML Lectures plugin

27 May 2026 · Hasmukh with Claude · auto-published from the local journal entry. A polished narrative version can be requested in any future Claude session.

Summary

Three pieces of work on medistage.medilearn.africa today. First, a caption was added beneath the Prof Mashiko Setshedi portrait in the UCT Partnership section of the homepage. Second, a new public page was created to hold the list of pre-recorded lectures for the FCP Part 1 Refresher Course, with a call to action linking to it from the existing course page. Third, after Hasmukh pointed out that each lecture should be edited from the admin rather than by us editing the page, a new ML Lectures plugin was built on the Past Events plugin pattern, seeded with the 22 placeholder rows, and wired up so the public page is driven by a single shortcode. Two outstanding session logs from 26 May were also published to documentation.mobilearn.africa during this session.

Decisions

  • Caption text under Prof Setshedi is simply "Prof Mashiko Setshedi". No title or affiliation repeated since the paragraph above her photo already names her role.
  • New lectures list page lives at /fcp-part-1-refresher-2026-lectures/, styled to match the FCP Refresher page (banner, eyebrow, heading, divider).
  • Initial implementation used 22 hand-coded cards on the page. Hasmukh asked for a proper admin-managed list instead, modelled on the Past Events plugin, with a flat scrollable list rather than cards and no visible lecture numbers.
  • Lecturer ordering on the page is controlled by a numeric Order field in the admin, lower numbers first. The list is not numbered on the public page.
  • Linking to ML Speakers was deferred. For now the presenter is a single free-text field. A speaker link can be added later if Hasmukh wants the photo, bio and Read more link from a Speakers record.
  • Photo upload and video embed features from Past Events were dropped for this v1. An optional Recording link field is included so a YouTube or LMS link can be added later, rendered as a small "Watch lecture" link under the row.
  • 22 placeholder lectures were seeded as Draft so the public page shows the "No lectures published yet" message until Hasmukh starts filling them in.
  • Test of Lecture 1 with a dummy Setshedi entry was done to confirm the public styling, then reverted to a blank draft so the live page is honest overnight.

Changes made

  • Homepage: backed up content row 1 to /root/backups/medistage/home-20260527-pre-caption.html, added a centred "Prof Mashiko Setshedi" caption paragraph directly beneath her portrait. Verified live, 200.
  • Published the two outstanding 26 May session logs (founder photograph, under-construction notice) to documentation.mobilearn.africa using the existing on-demand publisher script. Both pages return 200, both are surfaced as "New" on /overview/, and .published markers were created locally.
  • Created a new public page at /fcp-part-1-refresher-2026-lectures/ titled "Pre-recorded Lectures" with banner, intro and a section ready for the lecture list.
  • Added a "See the full lecture library" call to action with a "View all pre-recorded lectures" button at the foot of /fcp-part-1-refresher-2026/, pointing to the new page.
  • Built a new ML Lectures plugin at /var/www/medistage/user-content/plugins/ml-lectures/, modelled on ML Past Events. Files: plugin.php with the PM_Plugin subclass, admin form, admin table and AJAX dispatcher; css/ml-lectures.css for the public list; css/ml-lectures-admin.css for the admin manager; js/ml-lectures-admin.js for save, edit and delete; js/ml-lectures.js placeholder for any future public interactivity.
  • Registered the new plugin by adding "ML_Lectures" to the plugins option, alongside the EP and other ML plugins.
  • Seeded the ML_Lectures option with 22 placeholder lecture rows, sort_order 1 to 22, all status draft, ready to be edited from the admin.
  • Replaced the body of /fcp-part-1-refresher-2026-lectures/ with a single [lectures-list] shortcode so the page is now driven entirely by the plugin.
  • Briefly populated lecture 1 with a test entry to confirm the public look ("Approach to anaemia in adults", Prof Setshedi placeholder, dummy summary). Confirmed the styling rendered correctly, then reverted the row to a blank draft.
  • Wrote today's session log.

Follow-ups

  • Hasmukh to populate the 22 lecture rows from the admin. Each row needs topic, presenter name (and optional affiliation), short description, and status set to Published when ready to appear on the live page.
  • If Hasmukh wants the Speakers list integrated later, the plugin can grow a "Linked speaker" dropdown like Past Events has, which would pull the presenter name and photo from the speaker record automatically.
  • Consider adding a Recording link field workflow once the LMS embeds are confirmed (YouTube, Vimeo, or LMS player). The field already exists in the plugin, just unused for now.
  • A similar ML Lectures plugin can be installed on staging.medilearn.africa if a lectures library page is wanted there too.