Bug #23339
ajout d'un document à un usager refusé si un autre usager le possède déjà
0%
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
Historique
Mis à jour par Frédéric Péters il y a environ 6 ans
- Fichier 0001-api-allow-multiple-occurences-of-same-document-in-po.patch 0001-api-allow-multiple-occurences-of-same-document-in-po.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
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.
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.
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.
Mis à jour par Frédéric Péters il y a environ 6 ans
- Fichier 0001-api-allow-multiple-occurences-of-same-document-in-po.patch 0001-api-allow-multiple-occurences-of-same-document-in-po.patch ajouté
(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).
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 ?
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).
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)
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
api: allow multiple occurences of same document in portfolio (#23339)