Skip to content
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

[DETTE TECH] dissocier les Fiches Pratiques de Forum #765

Closed
vincentporte opened this issue Sep 4, 2024 · 1 comment
Closed

[DETTE TECH] dissocier les Fiches Pratiques de Forum #765

vincentporte opened this issue Sep 4, 2024 · 1 comment
Assignees

Comments

@vincentporte
Copy link
Contributor

vincentporte commented Sep 4, 2024

L'objectif général de ce chantier est de retirer les dépendances entre les fiches pratiques et le modèle Forum

Seront ajoutés :

  • l'app documentation, contenant un modèle pour les catégorie de fiches pratiques et un modèle pour les fiches pratiques
  • une classe de modèle de données générique contenant un nom, un slug, une description courte, une description longue et une image, réutilisable par les modèles de l'app documentation, le modèle de l'app Partner et les app à venir pour gérer les contenus éditoriaux
  • enrichissement de la Materialized View de l'app search

Les bénéfices :

  • supprimer la complexité des vues et gabarits liés à Forum
  • réduire le nombre de requetes executées lors de l'affichage des pages de documentation
  • supprimer la surcharge du modèle Forum
  • réduire la surface de la lib machina, de ses signaux à chaque save, des contrôles de permissions et de l'usage de mptt
  • disposer d'un ensemble d'elements communs réutilisables pour tous les contenus éditoriaux

Les contraintes :

  • les méthodes de collectes des données matomo liées aux fiches pratiques, ne seront plus compatibles
  • migration de données (Forum, Topic, Upvote, Rating, ForumStat)

Etapes

  1. désactiver les routes à réutiliser (ie /documentation), desactiver la collecte des stats non compatibles refactor(documentation): partie 1, désactivation des routes et scripts necessaires #783
  2. ajout de modèle abstrait pour réduire l'adhérence à machina refactor(documentation): partie 2, ajout de modèles abstraits pour réduire l'adhérence à machina #784
  3. ajout de l'app documentation et de ses deux modèles Category et Document refactor(documentation): partie 3, ajout de l'app documentation et de ses modèles #785
  4. ajout des vues du modèle category de l'app documentation refactor(documentation): partie 4, ajout des vues du modèle category de l'app documentation #786
  5. ajout de la vue de détail du modèle document de l'app documentation refactor(documentation): partie 5, ajout de la vue de consultation de détail du modèle document de l'app documentation #789
  6. ajout de la vue de liste de modèle document de l'app documentation servie en HTMX refactor(documentation): partie 6, ajout du filtrage dans la vue de detail de category #791
  7. migration des Ratings refactor(documentation): partie 7, Rating, modèle, migration et vue #792
  8. association des Topics avec les Document refactor(documentation): partie 8, associer les Topic avec les Document #793

TODO

  • ForumStat
  • SearchEngine
@vincentporte vincentporte self-assigned this Sep 4, 2024
@vincentporte vincentporte changed the title [DETTE TECH] Fiche Pratique [DETTE TECH] Fiche Pratique part 1 - documentation top level Sep 10, 2024
@vincentporte vincentporte changed the title [DETTE TECH] Fiche Pratique part 1 - documentation top level [DETTE TECH] dissocier les Fiches Pratiques de Forum Sep 23, 2024
This was referenced Sep 24, 2024
vincentporte added a commit that referenced this issue Sep 25, 2024
## Description

🎸 Ajout d'un `middleware` pour activer une page parking lors des
maintenances techniques à venir : migration IC #731 , et migration de la
documentation #765

## Type de changement

🚧 technique

### Points d'attention

🦺 Ajout de la variable d'environnement `PARKING_PAGE`
🦺 `ParkingPageMiddleware` attrape toutes les requêtes sauf celles vers
l'admin lorsqu'il est actif.
🦺 exclure le template `parking.html` du contrôle de `djlint` dans la CI
(`make quality`)


### Captures d'écran (optionnel)

page parking


![image](https://github.com/user-attachments/assets/7ad1960e-171e-4d46-b177-11c2084dea9f)
vincentporte added a commit that referenced this issue Sep 25, 2024
## Description

🎸 Ajout d'un `middleware` pour activer une page parking lors des
maintenances techniques à venir : migration IC #731 , et migration de la
documentation #765

## Type de changement

🚧 technique

### Points d'attention

🦺 Ajout de la variable d'environnement `PARKING_PAGE`
🦺 `ParkingPageMiddleware` attrape toutes les requêtes sauf celles vers
l'admin lorsqu'il est actif.
🦺 exclure le template `parking.html` du contrôle de `djlint` dans la CI
(`make quality`)


### Captures d'écran (optionnel)

page parking


![image](https://github.com/user-attachments/assets/7ad1960e-171e-4d46-b177-11c2084dea9f)
vincentporte added a commit that referenced this issue Oct 9, 2024
## Description

### Modifications principales, dans le gabarit
`lacommunaute/templates/forum_conversation/partials/topic_tags.html`

🎸 **suppression du paramètre `page=1` qui forçait le masquage de la zone
de filtre**
🎸 **appel `htmx` de `TopicListView` lors du clic sur les tags, pour
éviter tous les inconvénients d'un rechargement de page complet**

### Petits bonus en passant
🎸 fiabilisation des tests sur les filtres x les étiquettes
🎸 desambiguation des paramètres dans le contexte de la vue
`TopicListView`
🎸 suppression de la gestion d'une liste de `Tag` dans les url (non
terminé), pour n'en gérer plus qu'un seul

## Type de changement

🪲 Correction de bug (changement non cassant qui corrige un problème).
🎨 changement d'UI
🚧 technique

### Points d'attention

🦺 réécriture des tests concernés dans les commits pour améliorer la
lisibilité (voir les passer en style `pytest`)
🦺 renommage des énums pour une meilleure présentation utilisateur
🦺 réécriture des tests de `ForumView` à voir ultérieurement selon les
impacts de l'issue #765


### Captures d'écran (optionnel)

filtrage `ALL`


![image](https://github.com/user-attachments/assets/ae02763b-df65-45f2-b3b3-3093ba3b4fea)

filtrage `ALL` x étiquette


![image](https://github.com/user-attachments/assets/7d444de3-8242-419a-b42e-286b294f4e74)

filtrage `NEW`


![image](https://github.com/user-attachments/assets/614076c0-bbca-49a9-a644-f6295538efed)

filtrage `NEW` x étiquette


![image](https://github.com/user-attachments/assets/1586e1e1-ed3d-47cc-9ac1-14dc28102c6a)

filtrage `CERTIFIED`


![image](https://github.com/user-attachments/assets/7c44186c-551a-4c11-8808-70201b253708)

filtrage `CERTIFIED` x étiquette


![image](https://github.com/user-attachments/assets/1cb8d7d1-1ff9-4edc-916d-b60c4a4c64f4)
@vincentporte
Copy link
Contributor Author

stand by

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