-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: 1406 contrib affichage des status sur ladmin #1425
Conversation
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
@@ -24,6 +24,7 @@ describe("mapContributionToDocument", () => { | |||
}; | |||
|
|||
it("devrait mapper l'answer d'un document sans fiche SP", async () => { | |||
// @ts-ignore |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pourquoi un ts-ignore, tu aurais pu mocker directement les valeurs, ça aurait été plus clean
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Et ça permet en cas de modification des données d'avoir un retour plus rapide sur ces tests. Après c'est vraiment galère des jeux de données aussi gros à maintenir :(
- intro | ||
- description |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pourquoi on le modifie dans cette PR ça
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah non ca c'est une erreur. Je comprends pas pourquoi mon hasura remet toujours ce champs description alors que je l'ai dégagé
export_id: | ||
custom_name: exportId | ||
custom_column_names: | ||
export_id: exportId |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mais du coup, tous les documents auront le même exportId, je vois pas comment c'est possible que les deux soient différents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour le coup la gymnastique n'est pas la plus clean peut être mais au moment de l'export, on détecte les documents qui ont changé depuis la dernière mise à jour des données. Puis on va mettre à jour l'export id seulement pour ces documents. Cela ne concerne que les contributions pour le moment d'ailleurs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oui j'initialise dans mon script de migration tous les documents sur le dernier export mais ensuite ils sont maj indépendamment au niveau de l'export
let tooltipText: string | undefined; | ||
if (!exportDate) { | ||
status = "NOT_PUBLISHED"; | ||
tooltipText = statusesMapping[status].text; | ||
} else { | ||
status = "PUBLISHED"; | ||
tooltipText = `${statusesMapping[status].text} le ${format( | ||
parseISO(exportDate), | ||
"dd/MM/yyyy HH:mm:ss" | ||
)}`; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On aurait pu le mettre dans un useEffect
, ça aurait opti un peu plus le code car là ça va se trigger à chaque fois
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est un écran de visualisation sans édition, il n'y a pas de modification de ces données donc pas de refresh.
if (status === "TO_PUBLISH") { | ||
if (statusDate && exportDate && isPublished({ statusDate, exportDate })) { | ||
status = "TO_PUBLISH"; | ||
} else { | ||
status = "PUBLISHING"; | ||
} | ||
} | ||
const tooltipTitle = statusesMapping[status].text; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Là aussi
@@ -66,6 +71,8 @@ export async function cdtnDocumentsGen( | |||
const glossaryTerms = await getGlossary(); | |||
const addGlossary = createGlossaryTransform(glossaryTerms); | |||
|
|||
const contributionsToPublish = await fetchContributionDocumentToPublish(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est dommage qu'on soit obligé de fetch deux fois les contributions, on aurait pu éviter cela en vérifiant une propriété des contributions, non ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On ne fetch pas toutes les contribs là je crois, on ne récupère que celle qui ont été modifiées : https://github.com/SocialGouv/cdtn-admin/pull/1425/files#diff-046031753264baf1637cef36c0bc23cd316e32a73e7250a81133410e2c0eed4fR8
Je pense que le nommage peut être amélioré ici pour éviter cette confusion :
const contributionsToPublish = await fetchContributionDocumentToPublish(); | |
const editedContributionsSinceLastPublish = await fetchEditedContributionDocument(); |
@@ -89,7 +92,8 @@ async function runIngester( | |||
suggestIndexName: string | undefined, | |||
bufferSize: number | undefined, | |||
suggestFile: string | undefined, | |||
disableGlossary: boolean | undefined | |||
disableGlossary: boolean | undefined, | |||
isProd: boolean |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour toutes ces variables, on utilise des contexte globaux pour éviter de faire du props forwarding, c'est dommage de changer cette approche
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ça revient à deux approches différentes dans le même code
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Faudra que tu me montre, j'avais compris qu'il fallait faire avec du props forwarding de mon côté
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quelques remarques mais pas bloquants pour une mise en prod pour moi.
@@ -66,6 +71,8 @@ export async function cdtnDocumentsGen( | |||
const glossaryTerms = await getGlossary(); | |||
const addGlossary = createGlossaryTransform(glossaryTerms); | |||
|
|||
const contributionsToPublish = await fetchContributionDocumentToPublish(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On ne fetch pas toutes les contribs là je crois, on ne récupère que celle qui ont été modifiées : https://github.com/SocialGouv/cdtn-admin/pull/1425/files#diff-046031753264baf1637cef36c0bc23cd316e32a73e7250a81133410e2c0eed4fR8
Je pense que le nommage peut être amélioré ici pour éviter cette confusion :
const contributionsToPublish = await fetchContributionDocumentToPublish(); | |
const editedContributionsSinceLastPublish = await fetchEditedContributionDocument(); |
@@ -71,7 +71,7 @@ export const ContributionsAnswer = ({ | |||
cdtnReferences: data.cdtnReferences, | |||
otherReferences: data.otherReferences, | |||
}); | |||
if (newStatus === "PUBLISHED") { | |||
if (newStatus === "TO_PUBLISH") { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Idée de nommage : READY
Le TO_PUBLISH
est confusant car il va rester même après une mise à jour des données. Le status READY
indique qu'elle est prête pour la prod. Une fois en prod, elle reste READY
qui ne porte pas à confusion comme le TO_PUBLISH
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je crois que j'aurai laissé "PUBLISHED" qui correspond à ce qu'on affiche su l'ui.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Un des retours du métier c'était justement que ce status "PUBLISHED" n'était pas claire parce que ca prête à confusion vu que le document n'est pas encore en prod. J'aime bien l'idée de le nommé "READY" (ou "prêt" en francais)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
c'est pour ça que dans le court moment où la contrib est publié mais pas encore mis en prod on affiche "à publier" et on la mets en orange. Mais le reste du temps elle est bien publié
let tooltipText: string | undefined; | ||
if (!exportDate) { | ||
status = "NOT_PUBLISHED"; | ||
tooltipText = statusesMapping[status].text; | ||
} else { | ||
status = "PUBLISHED"; | ||
tooltipText = `${statusesMapping[status].text} le ${format( | ||
parseISO(exportDate), | ||
"dd/MM/yyyy HH:mm:ss" | ||
)}`; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est un écran de visualisation sans édition, il n'y a pas de modification de ces données donc pas de refresh.
@@ -24,6 +24,7 @@ describe("mapContributionToDocument", () => { | |||
}; | |||
|
|||
it("devrait mapper l'answer d'un document sans fiche SP", async () => { | |||
// @ts-ignore |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Et ça permet en cas de modification des données d'avoir un retour plus rapide sur ces tests. Après c'est vraiment galère des jeux de données aussi gros à maintenir :(
export_id: | ||
custom_name: exportId | ||
custom_column_names: | ||
export_id: exportId |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour le coup la gymnastique n'est pas la plus clean peut être mais au moment de l'export, on détecte les documents qui ont changé depuis la dernière mise à jour des données. Puis on va mettre à jour l'export id seulement pour ces documents. Cela ne concerne que les contributions pour le moment d'ailleurs.
update public.documents d | ||
set export_id = le.id | ||
from _last_export le | ||
where (d.source = 'contributions' or d.source = 'information' or d.source = 'modeles_de_courriers') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
on ne le fait pas que sur les contributions ? Car actuellement, on ne gère que ces documents là : https://github.com/SocialGouv/cdtn-admin/pull/1425/files#diff-046031753264baf1637cef36c0bc23cd316e32a73e7250a81133410e2c0eed4fR31
Autant laisser à NULL dans la table pour le moment (car pas fiable vu que pas mis à jour).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok oui je peux faire que les contribs pour le moment
@@ -81,7 +82,9 @@ export const Comment = ({ comment, onDelete }: Props) => { | |||
}} | |||
> | |||
{" "} | |||
{statusesMapping[comment.status].text} | |||
{statusesMapping[comment.status].text === "Publié" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quality Gate passedIssues Measures |
🎉 Deployment for commit c554821 : IngressesDocker images
|
No description provided.