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

[métadonnées] Ajout d’un bouton pour supprimer un cadre d’acquisition #1673

Closed
bouttier opened this issue Jan 31, 2022 · 7 comments
Closed

Comments

@bouttier
Copy link
Contributor

Actuellement, seul les jeux de données peuvent être supprimé.
Note : il ne sera possible de supprimer un cadre d’acquisition uniquement si celui-ci n’a pas de jeux de données associés.

@gildeluermoz
Copy link
Contributor

Après une installation toute neuve, les cadres d'acquisition exemples ne peuvent pas être supprimés. Notamment le CA habitat.
Il faut le faire en base. Ce que l'utilisateur ne peut pas faire via l'interface.
A noter que ce CA habitat est créé avec 2 champs obligatoires non renseignés et sans acteur. Si on souhaite le modifier, il faut au préalable renseigner ces champs pour que le bouton enregistrer soit actif.

@JulienCorny
Copy link
Contributor

Est-ce que cette fonctionnalité est planifiée dans une prochaine release ? ou le travail commencé sur une branche ?

@camillemonchicourt
Copy link
Member

Non pas prévu, mais ça serait une bonne chose.

@edelclaux
Copy link
Contributor

edelclaux commented Aug 19, 2024

J'ai voulu regarder cette tâche. Le code amène plusieurs questions

Trace de la possibilité de suppression

On trouve à tous les étages les méthodes permettant la suppression d'un cadre d'acquisition.
Côté front:

Côté back:

Côté test:

Qu'est-ce qu'il s'est passé ? Est-ce que ça a été possible à un moment, puis retiré ? Pour quelles raisons ? C'est quoi le piège :D

Critère "is_deletable"

Le critère actuel de détermination de la possibilité de suppression ou non, "is_deletable", est le suivant:

def is_deletable(self):
    return not (
        db.session.scalar(
            exists()
            .select_from()
            .where(TDatasets.id_acquisition_framework == self.id_acquisition_framework)
            .select()
        )
    )

Il me semble qu'il faut contrôler également la parentalité du CA avant de le supprimer. S'il est parent, et qu'un autre CA le référence, il ne doit pas pouvoir être supprimé.

Est-ce que vous confirmez ? Est-ce que vous pensez à d'autres critères ?

List

Il y a deux méthodes utilisées pour lister des cadres d'acquisitions:

La seconde est marquée comme dépréciée depuis un an et demi (< 2.12 il me semble).

Est-ce effectivement le cas ? Qu'est-ce qui a empêché sa suppression ?

@camillemonchicourt
Copy link
Member

Selon moi, le seul élément à vérifier côté front et back est qu'on ne puisse supprimer un CA que si il n'a pas de JDD associé. Et si il n'a pas de CA enfant en effet.

@edelclaux
Copy link
Contributor

Selon moi, le seul élément à vérifier côté front et back est qu'on ne puisse supprimer un CA que si il n'a pas de JDD associé. Et si il n'a pas de CA enfant en effet.

Je penche pour faire la vérification côté back, et transmettre au front le résultat du calcul du critère via un booleén (is_deletable, ou quelque chose comme ça). Ca permettrait de centraliser la logique.

@camillemonchicourt
Copy link
Member

Fait dans la 2.15

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

No branches or pull requests

5 participants