Projet

Général

Profil

Bug #23339

ajout d'un document à un usager refusé si un autre usager le possède déjà

Ajouté par Frédéric Péters il y a environ 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
23 avril 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Dans l'API :

        document, created = Document.objects.get_or_create(
            content_hash=content_hash,
            defaults={'content': document_file})
        if not created:
            raise api_errors.APIError('DOCUMENT_EXISTS')

Si jamais le document existe, on ne va pas plus loin, on ne l'ajoute pas au porte-document de l'usager.


Fichiers

Révisions associées

Révision 6d753a0f (diff)
Ajouté par Frédéric Péters il y a environ 6 ans

api: allow multiple occurences of same document in portfolio (#23339)

Historique

#2

Mis à jour par Frédéric Péters il y a environ 6 ans

J'ai hésité sur les métadonnées qui feraient la différence entre document dupliqué ou pas (juste user/document, ou davantage), pour au final tout considérer; ça peut se discuter.

#3

Mis à jour par Thomas Noël il y a environ 6 ans

Pour les meta on parle en fait de filename, origin et deletable_by_user : ça me va de les inclure en première approximation. Ack ainsi selon moi, mais si un autre connaisseur des usages de fargo veut intervenir, c'est bien aussi.

#4

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

Ça me va de considérer que la possibilité de supprimer ou pas le document fait partie de son identité, il faudrait juste documenter ça dans un unique_together.

     unique_together = (
         ('user', 'filename', 'document', 'origin', 'deletable_by_user'),
     )

qui ne marchera bien sûr pas si origin est nul, mais je vivrai avec.

#5

Mis à jour par Frédéric Péters il y a environ 6 ans

(j'ai craint que le get_or_create lève une exception de la db une fois l'unique_together en place mais non, il fait un select distinct d'abord).

#6

Mis à jour par Thomas Noël il y a environ 6 ans

Benjamin a dit :

ne marchera bien sûr pas si origin est nul

Mais c'est le cas pour les documents uploadés en natif (via /upload) non ?

#7

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

Oui, il n'y a aucun validation de rien du tout sur l'upload classique par l'utilisateur, je pense que c'est bien comme cela, sinon il faudrait forcer éventuellement un origin='user' et mettre un origin='web-service' par défaut sur les upload par WS (et là on pourra rendre le champ non nul, après une migration de donnée qui irait mettre 'unknown' partout).

#8

Mis à jour par Frédéric Péters il y a environ 6 ans

  • Statut changé de En cours à Résolu (à déployer)
commit 6d753a0f455a02d3e3adcd5e60529cd04c9a6b4c
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Mon Apr 23 14:52:39 2018 +0200

    api: allow multiple occurences of same document in portfolio (#23339)
#9

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF