Projet

Général

Profil

Bug #39647

tableur : contrôle de l'unicité des slugs de requêtes

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
07 février 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

File "/usr/lib/python2.7/dist-packages/passerelle/apps/csvdatasource/models.py" in select
  297.             query = Query.objects.get(resource=self.id, slug=query_name)

File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/usr/lib/python2.7/dist-packages/django/db/models/query.py" in get
  384.             (self.model._meta.object_name, num)

Exception Type: MultipleObjectsReturned at /csvdatasource/signalements/query/sous_type_sans_filtre/
Exception Value: get() returned more than one Query -- it returned 2!

Fichiers

Révisions associées

Révision 11214a4e (diff)
Ajouté par Lauréline Guérin il y a environ 4 ans

csvdatasource: Query slug unicity (#39647)

Historique

#1

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • Assigné à mis à Lauréline Guérin
#2

Mis à jour par Lauréline Guérin il y a environ 4 ans

avant la migration 0014:

passerelle=> select * from csvdatasource_query;
 id | slug  | filters | projections | order | distinct | structure | resource_id | description | label 
----+-------+---------+-------------+-------+----------+-----------+-------------+-------------+-------
  1 | query |         |             |       |          | dict      |           1 |             | query
  2 | query |         |             |       |          | dict      |           1 |             | query
(2 lignes)

après la migration 0014:

passerelle=> select * from csvdatasource_query;
 id |  slug   | filters | projections | order | distinct | structure | resource_id | description | label 
----+---------+---------+-------------+-------+----------+-----------+-------------+-------------+-------
  1 | query   |         |             |       |          | dict      |           1 |             | query
  2 | query-1 |         |             |       |          | dict      |           1 |             | query
(2 lignes)

#3

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

Je crois que « slug = models.SlugField(_('Name (slug)'), unique=True) » va rendre impossible l'usage d'un même slug sur deux ressources distinctes... Or ce qu'on veut c'est une unicité de (resource, slug)

#4

Mis à jour par Lauréline Guérin il y a environ 4 ans

mais oui, c'est pas faux !
je corrige ça de suite :)

#6

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

Un poil la flemme de tester (je survole d'autres choses), alors je pose la question : ça donne quel message sur l'UI quand on veut ajouter une requête et qu'il y a conflit de slug ?

#7

Mis à jour par Lauréline Guérin il y a environ 4 ans

une erreur auto-gérée par django:


Un object Query avec ces champs Resource et Name (slug) existe déjà.

#8

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

  • Statut changé de Solution proposée à Solution validée

Ça passe. (Si qqun est pas content il fera un autre ticket)

#9

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 11214a4ef450f36d1be7e47460daf9a9c6254ae6
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Feb 13 16:32:53 2020 +0100

    csvdatasource: Query slug unicity (#39647)
#10

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

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

Formats disponibles : Atom PDF