MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
1 stars 1 forks source link

Boite de dialogue d'import des métadonnées #95

Closed WREATCHED closed 1 year ago

WREATCHED commented 1 year ago

Demande interne (Leslie) On suppose que les services souhaiteraient dans la liste des url CSW de pouvoir saisir un libellé explicite en complément de l'url . Il s'agit donc de pouvoir le saisir et qu'il s'insère dans les mécanismes du QTreeWidget notamment ajout, suppression, glisser/déposer.

WREATCHED commented 1 year ago

Je propose en plus de la demande de Leslie de revoir complétement la boite de dialogue afin que les widgets dans l'IHM soient redimensionnables quelque soit la configuration de l'écran

WREATCHED commented 1 year ago

image

WREATCHED commented 1 year ago

En vidéo

https://user-images.githubusercontent.com/66324136/195390904-6a503fee-631c-4418-a68d-43881628b58f.mp4

WREATCHED commented 1 year ago

Poussé sur le git

alhyss commented 1 year ago

C'est super tout ça ! 😃

Dans le genre micro-détail, est-ce que maintenant qu'on a deux colonnes dans le tableau on pourrait imaginer écrire au dessus "CSW mémorisés" - par exemple en tant qu'étiquette du QGroupBox - et nommer les colonnes "Libellé" (avec une majuscule) et "URL" ?

Sinon, est-ce que ton contrôle d'unicité n'oblige pas à supprimer et recréer le CSW quand on veut changer uniquement le libellé ? J'ai tendance à penser que le comportement auquel l'utilisateur s'attend est le suivant :

Si tu utilises deux listes distinctes pour gérer les URL et les libellés, ça doit ressembler à ça :

def update_csw(url_list, label_list, new_url, new_label):
    if not new_url and not new_label:
        return
    csw_index_from_url = url_list.index(new_url) if new_url and new_url in url_list else None
    csw_index_from_label = label_list.index(new_label) if new_label and new_label in label_list else None
    if csw_index_from_url is not None and csw_index_from_label is not None:
        # le libellé et l'URL sont déjà répertoriés, et pas pour le même CSW :
        # on ne garde qu'un CSW avec lesdits libellé et URL
        if csw_index_from_url != csw_index_from_label:
            del url_list[csw_index_from_label]
            del label_list[csw_index_from_label]
            csw_index_from_url = url_list.index(new_url)
            label_list[csw_index_from_url] = new_label
        # si le libellé et l'URL étaient déjà répertoriés pour le même CSW,
        # c'est que rien n'a été modifié, donc il n'y a rien à faire
    elif csw_index_from_url is not None:
        # l'URL est déjà répertoriée, on met à jour le libellé
        label_list[csw_index_from_url] = new_label
    elif csw_index_from_label is not None:
        # le libellé est déjà répertorié, on met à jour l'URL
        url_list[csw_index_from_label] = new_url
    else:
        # URL et libellé non répertoriés = nouveau CSW
        url_list.append(new_url)
        label_list.append(new_label)
WREATCHED commented 1 year ago

VIDEO

https://user-images.githubusercontent.com/66324136/195647665-91679e21-ac17-46cf-9de6-ddaa4864c96c.mp4

alhyss commented 1 year ago

C'est parfait @WREATCHED

Il y a juste moi qui avais oublié de regarder les intitulés des champs de saisie, et ce serait mieux avec "Libellé du CSW" plutôt que "Libellé de l'URL du CSW" . Ce n'est pas vraiment l'URL qu'on nomme, plutôt le service lui-même. Désolée 😢

WREATCHED commented 1 year ago

image

Je repousse tout sur le git

alhyss commented 1 year ago

Est-ce que tu commences à lancer des fléchettes sur une cible avec ma tête si je dis que ce serait plus clair avec :

En parallèle, ce serait bien que lorsque Plume récupère l'URL éventuellement enregistrée dans les métadonnées à l'ouverture de la boîte de dialogue, tu ailles regarder si elle n'est pas dans la liste des CSW mémorisés afin d'afficher le libellé correspondant, le cas échéant. C'est un peu dommage de n'avoir que l'URL.

WREATCHED commented 1 year ago

OUF image

alhyss commented 1 year ago

Merci @WREATCHED 🥲