Fix edit form: is_published reset, contact decoupling, note label, author name case

- Fix #1: Add is_published to getThesisRawFields() SELECT so the publish
  checkbox stays checked when editing an already-published TFE.
- Fix #2: Rename 'Note contextuelle' → 'Note contextuelle relative à
  soutenance' in all templates and StudentEmail.
- Fix #3: Update findOrCreateAuthor to also UPDATE the author name when
  a record is found by name (fixes inability to capitalise names).
- Fix #4/#5: Decouple contact_interne (private author email) from
  contact_visible (public contact on TFE page). Add migration 037 to
  add contact_visible TEXT column to theses table and rebuild
  v_theses_full view. Update all controllers, templates, and DB methods
  to treat them independently.
- Fix #6: Investigated libre→interne restriction — no code barrier
  found; likely resolved by is_published fix.
This commit is contained in:
Pontoporeia
2026-06-08 18:31:10 +02:00
parent 3d524226a1
commit 3016c199bd
15 changed files with 164 additions and 37 deletions

View File

@@ -0,0 +1,2 @@
{"timestamp":"2026-06-09T10:12:58+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:151.0) Gecko/20100101 Firefox/151.0","actor":"127.0.0.1","action":"UPDATE","table":"theses","record_id":143,"old_data":{"id":143,"identifier":"2025-072","title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META","subtitle":null,"year":2025,"is_doctoral":0,"objet":"tfe","orientation_id":6,"ap_program_id":2,"finality_id":3,"synopsis":"Depuis une quinzaine dannées, Instagram sest imposé comme un acteur central du monde de lart visuel. Ce qui était un réseau social destiné au partage dimages personnelles est devenu, pour toute une génération dartistes, un lieu incontournable de visibilité, de circulation symbolique, de reconnaissance professionnelle. En soi, un dispositif de légitimation culturelle. Il ne sagit plus simplement dun outil de diffusion parmi dautres, mais dun environnement structurant, un écosystème dans lequel les artistes évoluent, négocient leurs existences publiques, et « construisent » leurs carrières. À la différence des lieux dexposition traditionnels (galeries, musées), Instagram est à la fois global, permanent, et massivement fréquenté. Il est devenu, pour reprendre les termes de la théorie critique, un milieu total, un espace dans lequel les frontières entre création, communication, autopromotion, performance de soi et marché sont brouillées, confondues, voire rendues indissociables.","context_note":null,"remarks":null,"access_type_id":2,"license_id":null,"jury_points":17.5,"jury_note_added":0,"submitted_at":"2026-06-08 08:33:14","defense_date":null,"published_at":null,"is_published":1,"baiu_link":null,"created_at":"2026-06-08 08:33:14","updated_at":"2026-06-08 08:33:36","exemplaire_baiu":0,"exemplaire_erg":0,"cc2r":0,"license_custom":null,"deleted_at":null,"contact_visible":null}}
{"timestamp":"2026-06-09T10:13:23+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:151.0) Gecko/20100101 Firefox/151.0","actor":"127.0.0.1","action":"UPDATE","table":"theses","record_id":143,"old_data":{"id":143,"identifier":"2025-072","title":"Pourquoi les artistes sont-ils encore sur Instagram alors que jai vu une story disant quil fallait quitter META","subtitle":null,"year":2025,"is_doctoral":0,"objet":"tfe","orientation_id":6,"ap_program_id":2,"finality_id":3,"synopsis":"Depuis une quinzaine dannées, Instagram sest imposé comme un acteur central du monde de lart visuel. Ce qui était un réseau social destiné au partage dimages personnelles est devenu, pour toute une génération dartistes, un lieu incontournable de visibilité, de circulation symbolique, de reconnaissance professionnelle. En soi, un dispositif de légitimation culturelle. Il ne sagit plus simplement dun outil de diffusion parmi dautres, mais dun environnement structurant, un écosystème dans lequel les artistes évoluent, négocient leurs existences publiques, et « construisent » leurs carrières. À la différence des lieux dexposition traditionnels (galeries, musées), Instagram est à la fois global, permanent, et massivement fréquenté. Il est devenu, pour reprendre les termes de la théorie critique, un milieu total, un espace dans lequel les frontières entre création, communication, autopromotion, performance de soi et marché sont brouillées, confondues, voire rendues indissociables.","context_note":null,"remarks":null,"access_type_id":2,"license_id":null,"jury_points":17.5,"jury_note_added":0,"submitted_at":"2026-06-08 08:33:14","defense_date":null,"published_at":null,"is_published":1,"baiu_link":null,"created_at":"2026-06-08 08:33:14","updated_at":"2026-06-08 08:33:36","exemplaire_baiu":0,"exemplaire_erg":0,"cc2r":0,"license_custom":null,"deleted_at":null,"contact_visible":null}}

View File

@@ -0,0 +1,20 @@
{"timestamp":"2026-06-09T10:12:58+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:151.0) Gecko/20100101 Firefox/151.0","context":"thesis_edit_tx","exception":"PDOException","message":"SQLSTATE[HY000]: General error: 25 column index out of range","trace":"#0 /home/padlock/repos/xamxam/app/src/Database.php(2186): PDOStatement->execute()
#1 /home/padlock/repos/xamxam/app/src/Controllers/ThesisEditController.php(233): Database->updateThesis()
#2 /home/padlock/repos/xamxam/app/public/admin/actions/edit.php(36): ThesisEditController->save()
#3 /home/padlock/repos/xamxam/app/router.php(46): include('...')
#4 {main}","extra":{"thesis_id":143}}
{"timestamp":"2026-06-09T10:12:58+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:151.0) Gecko/20100101 Firefox/151.0","context":"thesis_edit","exception":"PDOException","message":"SQLSTATE[HY000]: General error: 25 column index out of range","trace":"#0 /home/padlock/repos/xamxam/app/src/Database.php(2186): PDOStatement->execute()
#1 /home/padlock/repos/xamxam/app/src/Controllers/ThesisEditController.php(233): Database->updateThesis()
#2 /home/padlock/repos/xamxam/app/public/admin/actions/edit.php(36): ThesisEditController->save()
#3 /home/padlock/repos/xamxam/app/router.php(46): include('...')
#4 {main}","extra":{"thesis_id":143}}
{"timestamp":"2026-06-09T10:13:23+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:151.0) Gecko/20100101 Firefox/151.0","context":"thesis_edit_tx","exception":"PDOException","message":"SQLSTATE[HY000]: General error: 25 column index out of range","trace":"#0 /home/padlock/repos/xamxam/app/src/Database.php(2186): PDOStatement->execute()
#1 /home/padlock/repos/xamxam/app/src/Controllers/ThesisEditController.php(233): Database->updateThesis()
#2 /home/padlock/repos/xamxam/app/public/admin/actions/edit.php(36): ThesisEditController->save()
#3 /home/padlock/repos/xamxam/app/router.php(46): include('...')
#4 {main}","extra":{"thesis_id":143}}
{"timestamp":"2026-06-09T10:13:23+00:00","ip":"127.0.0.1","user_agent":"Mozilla/5.0 (X11; Linux x86_64; rv:151.0) Gecko/20100101 Firefox/151.0","context":"thesis_edit","exception":"PDOException","message":"SQLSTATE[HY000]: General error: 25 column index out of range","trace":"#0 /home/padlock/repos/xamxam/app/src/Database.php(2186): PDOStatement->execute()
#1 /home/padlock/repos/xamxam/app/src/Controllers/ThesisEditController.php(233): Database->updateThesis()
#2 /home/padlock/repos/xamxam/app/public/admin/actions/edit.php(36): ThesisEditController->save()
#3 /home/padlock/repos/xamxam/app/router.php(46): include('...')
#4 {main}","extra":{"thesis_id":143}}