chartes / lettres-vue

Site de l’application Ecco (Édition Collaborative de COrrespondances)
https://dev.chartes.psl.eu/ecco/
1 stars 3 forks source link

feat: Add/Edit collections related to #24 #33

Closed carinedengler closed 1 year ago

carinedengler commented 1 year ago

formerly https://github.com/chartes/lettres-vue/pull/21

carinedengler commented 1 year ago
vicpsl commented 1 year ago

Bonjour Carine, j'ai testé cette MR et voici mes premières observations :

  1. en principe, le deuxième point de ta liste ne correspond pas aux specifications "collection owners can only add/edit/delete their own" car un "collection owner" sera toujours un admin et tous les admin peuvent éditer les collections. Hors j'ai encore accès aux modifications de titre / descriptions de collections en tant que contributeur quand la collection est associée à mon user contributor2 (cela ne devrait être possible que pour les admins) : image

  2. un contributeur n'a plus accès au bouton "Créer une collection", c'est parfait. En revanche un contributeur a toujours accès à l'URL /collections/create ou /collections/id/create avec le formulaire : Problème : accès à l'URL en tant que contributeur : image Problème : accès à l'URL sans être identifié : image

Il faudrait soit retourner un message d'erreur pour les users sans droits suffisants (du type erreur 401: unauthorised) ou renvoyer à la page de connexion /login si le user n'est pas connecté.

Merci beaucoup

carinedengler commented 1 year ago

Pour le premier point

Pour le deuxième point, j'ai effectivement pas pensé aux URLs, je corrige cela.

vicpsl commented 1 year ago

Merci Carine : Premier point : Ok, attendons que les devs de Frank soient achevés pour faire le changement alors. Et effectivement, le owner sera admin. Les contributeurs n’accèderons pas à la gestion des collections.

Deuxième point (URLS) : merci beaucoup

Victor

Le mar. 13 déc. 2022 à 17:42, Carine Dengler @.***> a écrit :

Pour le premier point

  • c'est la vue de la liste des collections, comme cette card va être rendu non-interactive suite aux développements de Frank, je n'y ai plus touché pour éviter des conflits lors de l'intégration de ces développements, est-ce que tu préfères que je change quand même ?
  • j'avais mal compris les specs alors : je pensais que l'idée de pouvoir choisir un owner pour une collection était justement qu'aussi un contributor pourrait devenir owner d'une collection (créé par un admin pour lui), ce n'est donc pas le cas ?

Pour le deuxième point, j'ai effectivement pas pensé aux URLs, je corrige cela.

— Reply to this email directly, view it on GitHub https://github.com/chartes/lettres-vue/pull/33#issuecomment-1349025451, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWENBTHLY57BZMCWNR2OHMDWNCROZANCNFSM6AAAAAAS4EU57Y . You are receiving this because you commented.Message ID: @.***>

carinedengler commented 1 year ago

Je viens de corriger le souci avec les URLs (je n'ai mis que "Page réservée aux administrateurs du site." pour l'instant sur la page si l'utilisateur est connecté, mais non-admin) côté front et back ; il me reste un souci avec la liste des admis de laquelle choisir l'owner de la collection, je pousse dès que j'ai résolu le problème.

carinedengler commented 1 year ago

Je viens de rajouter la fonctionnalité avec le menu déroulant des utilisateurs possibles pour owner de la collection (les utilisateurs admin). Je vais demander à Frank d'y jeter un coup d'oeil à l'implémentation, je suis pas 100% certaine que c'est la bonne manière de faire.

vicpsl commented 1 year ago

Bonjour Carine, merci pour les ajouts en revanche la création d'une collection cause l'erreur suivante : image

spinner perpétuel causé par : [Vue warn]: Error in v-on handler (Promise/async): "TypeError: newCollection.error.response.data.errors is undefined"

found in

--->

at src/layouts/LayoutDefault.vue at src/App.vue vue.runtime.esm.js:619 TypeError: **newCollection.error.response.data.errors is undefined createNewCollection CollectionCreationPage.vue:93** VueJS 33 vue.runtime.esm.js:1897 NB : la ressource est bien créée dans le backend mais il y a problème avec le Front (problème d'identification ? j'ai un POST en erreur 401 { "authenticated": false, "message": "Invalid token. Registeration and / or authentication required" } alors que je suis connecté (Vue dev tools et currentUser sont bien définis)
carinedengler commented 1 year ago

Bonjour Victor,

je n'avais pas cette erreur lors de mes tests - pourrais-tu m'indiquer les droits de l'utilisateur ?

L'erreur 401 qui est remonté semble être l'erreur "standard" remonté, je l'ai eu dans d'autres cas bien que j'étais identifié aussi et quelque chose d'autre était le problème.

vicpsl commented 1 year ago

Bonjour Carine, le user est bien admin, ce qui est bien repéré par les devtools de VUE. Il semble que cette erreur soit causée par autre chose. Merci à toi Victor

carinedengler commented 1 year ago

Bonjour Victor,

j'ai du faire mon dernier test avec l'ajout de la collection sur une mauvaise version du code, après avoir vérifié mes différentes branches, j'ai réussi à reproduire. Je viens de pousser le correctif.

vicpsl commented 1 year ago

Merci Carine, j'ai pu noter les problèmes suivants :

  1. la mise à jour du titre ou de la description d'une collection déjà existante sur /collections/id cause les erreurs suivantes :
    
    [Vue warn]: Error in render: "TypeError: _vm.collection.admin is null"

found in

---> at src/components/CollectionInteractiveCard.vue

at src/pages/CollectionPage.vue at src/layouts/LayoutDefault.vue at src/App.vue vue.runtime.esm.js:619 ~~~ ~~~ TypeError: _vm.collection.admin is null render CollectionInteractiveCard.vue:128 VueJS 14 load CollectionInteractiveCard.vue:144 save CollectionInteractiveCard.vue:154 click CollectionInteractiveCard.vue:88 VueJS 33 vue.runtime.esm.js:1897 ~~~ ~~~ [Vue warn]: Error in render: "TypeError: _vm.collection.admin is null" found in ---> at src/components/CollectionInteractiveCard.vue at src/pages/CollectionPage.vue at src/layouts/LayoutDefault.vue at src/App.vue vue.runtime.esm.js:619 ~~~ ~~~ TypeError: _vm.collection.admin is null render CollectionInteractiveCard.vue:128 VueJS 7 vue.runtime.esm.js:1897 ~~~ (y compris en resélectionnant le même curator avant de sauvegarder). **NB le problème n'existe pas si un changement de curator est effectué en même temps que les mises à jour de Titre/Description.** 2. Changer de curator sur une collection importante (Catherine de Médicis d'id=1) prend beaucoup de temps (plusieurs secondes) alors que c'est instantanné sur une petite collection ? Edit : voir https://github.com/chartes/lettres-app/issues/88 Merci, Victor
carinedengler commented 1 year ago

J'ai corrigé le problème ci-dessus avec le dernier commit.

vicpsl commented 1 year ago

Bonjour Carine, après les nouveaux tests ce matin : après la création d'une collection, de retour sur /collections/, les collections ne se chargent pas avec : la requête

GET | http://localhost:5004/api/1.0/collections?facade=hierarchy&include=admin résultant en une BAD REQUEST 400. Réponse : { "errors": { "status": 400, "detail": "min() arg is an empty sequence" }, "jsonapi": { "version": "1.0" } }

carinedengler commented 1 year ago

Bonjour Carine, après les nouveaux tests ce matin : après la création d'une collection, de retour sur /collections/, les collections ne se chargent pas avec : la requête

GET | http://localhost:5004/api/1.0/collections?facade=hierarchy&include=admin résultant en une BAD REQUEST 400. Réponse : { "errors": { "status": 400, "detail": "min() arg is an empty sequence" }, "jsonapi": { "version": "1.0" } }

Est-ce que tu as créé un document ? J'ai eu cette erreur avec des documents "défaut", il leur manque une valeur dans le champ creation.

carinedengler commented 1 year ago

Bonjour Victor (et bonne nouvelle année !),

je viens de résoudre les conflits de cette branche. Est-ce qu'il reste quelque chose à faire pour pouvoir l'intégrer ?

(je vais regarder les soucis sur l'autre PR en cours de la journée)

vicpsl commented 1 year ago

Bonjour Carine, j'ai testé cette nouvelle version et voici mes observations :

Pb1 : accès direct aux URLs http://localhost:9090/collections ou http://localhost:9090/collections/id hors connexion : erreur [Vue warn]: Error in render: "TypeError: _vm.current_user is null" alors qu’elles sont accessibles en dev (on doit pouvoir y accéder hors connexion - sans les instruments de mise à jour) : pour les visiteurs).

Pb2: Lors de la déconnexion, les boutons « Créer la collection » encore visibles : redirect à l’accueil lors de la Déconnexion ?

Pb3 : Spin infini lorsqu’on supprime un Titre de collection/sous-collection au lieu d’annuler la mise à jour et de renvoyer l’erreur Titre obligatoire

Pb4 : Mise à jour Hiérarchie ne se met pas toujours à jour après modification du titre (collections et sous collection) : - fonctionne après un refresh de la page

Pb5 : Erreur : on peut mettre à jour les informations (titre, curator, etc) de la collection défaut, qui du coup n’existe plus : <Collection 86> None UPDATING RESOURCE: <Document 6607> document {} {'collections': [None]} Can't flush None value found in collection Document.collections DELETING RESOURCE: <Collection 86>

Pb6 : Editeur création collection est encore un quill : texte non formaté pour le Tiitre

Pb7 : création nouveau doc : collection défaut = Catherine de Médicis : changer pour Collection défaut (Non triée)?

Pb8 : Serait-il possible de ne pas afficher la collection défaut Non Triée dans la liste des Collections (les documents doivent néanmoins être indexés et accessibles via une recherche) ?

Merci beaucoup

carinedengler commented 1 year ago
  1. cela me semble être un ticket à part
  2. je vois effectivement encore toute la vue de la collection lors de l'édition, je rajouterais cela au même ticket que le point précédent
  3. il y a effectivement un souci de l'édition du titre, cependant cette fonctionnalité n'a pas été rajouté par cette PR
  4. je vais voir cela avec @fbessou
  5. j'ai pas compris la phrase (le français), désolée : nous avons utilisé le même éditeur de champs de texte qu'ailleurs, et chez moi ça semble être OK, peux-tu préciser ?
  6. comme toutes les deux PR se trouvent sur la tête dev, il faudrait intégrer l'une ou l'autre avant de pouvoir adapter aux changements faites sur l'autre
  7. oui, mais voir ma remarque plus bas

Pour éviter des malentendus, quand je dis "faisons ça sur un autre ticket" je le fais pour limiter un peu l'étendu des tickets, pour que les PRs sont plus petits et plus vite à tester/intégrer (et les tickets sont plus faciles pour nous à chiffrer).

Pour le dernier point, la collection "Non triées" et une fonctionnalité supplémentaire ; tout ce qui était nécessaire pour le bon fonctionnement de la suppression de collection est intégré dans le chiffrement de ce ticket là, mais toute au-delà (comment et où afficher cette collection, etc.) me semble être des demandes supplémentaires.

Est-ce qu'on peut discuter de tous ces points demain ?

vicpsl commented 1 year ago

Bonjour Carine,

j'ai intégré les changements des PR33 et 37 à la branche editorial_dev, qui comporte également des développements que j'ai effectué.

J'intégrerai tes développements via le merge d'editorial_dev dans dev.

J'ai résolu les points 1, 2, 3, 5, 7.