Skip to content

Publication des interviews via le BO#2321

Open
Mopolo wants to merge 3 commits into
afup:masterfrom
Mopolo:gestion-interviews-backend
Open

Publication des interviews via le BO#2321
Mopolo wants to merge 3 commits into
afup:masterfrom
Mopolo:gestion-interviews-backend

Conversation

@Mopolo

@Mopolo Mopolo commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Ce système permet de piloter la publication des interviews depuis le BO pour simplifier cette étape souvent assez chronophage.

  • une interview peut concerner une ou plusieurs personnes
  • une personne ne peut être que dans une seule interview par évènement
  • la publication reste gérée par WordPress, via la date enregistrée depuis le BO
  • si l'enregistrement WordPress échoue, une interview est tout de même sauvegardée côté BO pour une nouvelle tentative
  • les différents textes (intro, bouton et questions) ne sont pas du tout stockés côté WordPress, et leurs modifications depuis le BO sont donc immédiatement visibles sur event
  • les anciennes interviews ne sont pas affectées ni modifiées par ce système

Une configuration par évènement est nécessaire

image

La configuration permet le pont avec WordPress

image

Création/édition d'une interview

image

La liste des interviews

image

@Mopolo Mopolo self-assigned this Jul 22, 2026
@Mopolo
Mopolo force-pushed the gestion-interviews-backend branch from 65694b7 to 8a79077 Compare July 22, 2026 17:33
@Mopolo
Mopolo marked this pull request as ready for review July 22, 2026 17:58
@Mopolo
Mopolo requested review from agallou and stakovicz as code owners July 22, 2026 17:58
@Mopolo
Mopolo requested a review from vgreb July 22, 2026 17:58

@vgreb vgreb left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beau boulot !

Comment thread sources/AppBundle/Controller/Event/Blog/TalkWidgetAction.php Outdated
'signed' => false,
])
->addForeignKey('interview_id', 'interview', 'id', ['delete' => 'CASCADE', 'update' => 'NO_ACTION'])
->addIndex('speaker_id', ['unique' => true])

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Attention, l'unicité porte uniquement sur speaker_id, sans notion d'événement.

Du coup un speaker ne peut être rattaché à une seule interview, alors que la description dit "une personne ne peut être que dans une seule interview par évènement".

Je me trompe peut être mais j'ai l'impression qu'il y a un souci avec le modèle de donnée.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah oui c'est normal ça.

Dans la table des speakers (afup_conferenciers) il y a l'id de l'event (id_forum). Quand une personne est speaker à plusieurs events, il y a plusieurs lignes dans la table des speakers.

Donc pas besoin de refaire un lien vers l'event, on l'a via le speaker.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oui je suis d'accord avec toi, pas besoin de refaire le lien mais la contrainte d'unicité n'est pas bonne car uniquement sur la colonne speaker_id.

Si un speaker est interviewé pour un premier event, on ne pourra pas rajouter d'interview pour un évènement suivant.

A priori il faudrait mettre la contrainte d'unicité sur interview_id et speaker_id. Je me trompe ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dans notre modèle de données, un speaker_id ne peut pas être dans plusieurs events.

Si je soumet au CFP du Forum 2025 et au Forum 2026, j'aurais 2 speaker_id différents, un par Forum. Avec à chaque fois les données dupliquées (pour garder l'historique). Et du coup pas de soucis pour avoir une interview par event, vu que j'aurais un speaker_id différent pour chaque event.

Donc un speaker_id ne peut pas, et ne doit pas, être présent plusieurs fois dans la table interview_speaker. Avoir la contrainte sur la pair interview_id/speaker_id aurait le même effet en pratique mais aide moins à la perf quand on cherche une interview par speaker_id.

Est-ce que c'est plus clair ?

@Mopolo
Mopolo force-pushed the gestion-interviews-backend branch from 8a79077 to 77ab368 Compare July 24, 2026 07:27
@Mopolo
Mopolo force-pushed the gestion-interviews-backend branch from 77ab368 to fc2235e Compare July 24, 2026 07:34
Comment thread db/migrations/20260630120000_create_interview_tables.php Outdated

return true;
} catch (\Exception $e) {
$this->addFlash('error', 'Erreur WordPress : ' . $e->getMessage());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

j'allais dire qu'il y avait peut-être un risque d'envoyer des informations qui ne devraient pas être affichées (secrétaire ou autre) en catchant tout \Exception et renvoyant le message, mais vu le public qui utilisera la fonctionnalité ça ne devrait pas être gênant.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm oui ça me paraissait ok. J'ai rajouté un log pour avoir une trace si besoin de debug plus tard.

public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('speakers', EntityType::class, [

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

le sélecteur semble être peu pratique à utiliser. ça serait compliqué de mettre un select2 ou équivalent dessus ? (si c'est trop long ça ne devrait pas être gênant)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'avais tenté avec des checkbox mais le template faisait des affichages étranges alors en attendant j'ai mis un select multiple qui s'adapte à la quantité de speakers pour tous les afficher.

Il suffit de faire CTRL + click (ou CMD + click sur mac) pour en choisir plusieurs. Et c'est assez rare les confs à plusieurs non ?

Est-ce qu'avec des checkbox (si je trouve comment corriger) ça te semblerait mieux ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants