Development #13053
champ 'slug' unique pour tous les connecteurs
0%
Description
Afin d'éviter de casser les connecteurs instanciés lors d'un ajout d'une nouvelle instance avec le même slug(comme arrivé ce matin sur Chateauroux) il serait bien qu'il soit unique.
Fichiers
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
C'est assez compliqué parce que chaque ressource a sa propre table et que ça utilise de l'héritage virtuel.
En attendant on peut déjà le rendre unique dans chaque ressource, ça devrait suffire.
Mis à jour par Serghei Mihai il y a plus de 7 ans
- Fichier 0001-base-make-slug-field-unique-13053.patch 0001-base-make-slug-field-unique-13053.patch ajouté
- Patch proposed changé de Non à Oui
Mais l'attribut unique=True
de la classe BaseResource
se repecute sur tous les modèles qui l'héritent.
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
Oui mais je lisais ton ticket comme unique pour tous les connecteurs et pas unique pour chaque type de connecteur. Ack pour moi mais j'attendrai d'autres relectures avant de pousser un truc pareil, je pense que ça peut péter notamment si c'est pas unique (mais c'est ce qu'on veut a priori).
Mis à jour par Serghei Mihai il y a plus de 7 ans
- Assigné à mis à Serghei Mihai
J'attends d'autres avis aussi. Mais si en prod ou recette il y a des connecteurs avec les mêmes slugs et sont utilisés, on devrait avoir des traces.
Mis à jour par Frédéric Péters il y a plus de 7 ans
Avant d'avoir des traces dans des mauvais moments, on peut vérifier.
Mis à jour par Serghei Mihai il y a plus de 7 ans
- Statut changé de Nouveau à En cours
C'est vérifié en recette et prod.
Mis à jour par Frédéric Péters il y a plus de 7 ans
Ok donc. Sans doute nécessaire de refaire les migrations. Et utile de les réaliser aussi sur les modules passerelle extérieurs.
Mis à jour par Serghei Mihai il y a plus de 7 ans
- Fichier 0001-base-make-slug-field-unique-13053.patch 0001-base-make-slug-field-unique-13053.patch ajouté
- Fichier 0001-make-slug-field-unique-13053.patch 0001-make-slug-field-unique-13053.patch ajouté
- Fichier 0001-make-slug-field-unique-13053.patch 0001-make-slug-field-unique-13053.patch ajouté
Migrations refaites, ainsi que celles des connecteurs passerelle spécifiques à Montpellier.
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
Juste en passant il y aurait une solution presque propre pour le rendre unique globalement:
class Slug(models.Model): slug = models.SlugField(primary_key=True) def __unicode__(self): return self.slug .... class BaseRessource(models.Model): .... - slug = models.SlugField() + slug = models.ForeignKey('Slug') ....
Faut penser à faire un create sur le modèle Slug avant de créer une ressource et vérifier la non existence d'un slug avant création de la ressource dans la méthode clean() du formulaire de création (et la migration est à travailler pour remplir la table avant de migrer le champ).
Mis à jour par Frédéric Péters il y a plus de 7 ans
Mais on n'a vraiment pas besoin d'une unicité globale.
Mis à jour par Thomas Noël il y a plus de 7 ans
Frédéric Péters a écrit :
Mais on n'a vraiment pas besoin d'une unicité globale.
Au contraire, on veux pouvoir avoir un /family/connectville (connecteur famille de la ville ConnectVille) et /mdel/connectville (connecteur MDEL de la ville ConnectVille)
Mis à jour par Serghei Mihai il y a plus de 7 ans
- Fichier 0001-make-slug-unique-per-connector-13053.patch 0001-make-slug-unique-per-connector-13053.patch ajouté
Patch à jour sur le master.
Les migrations pour les connecteurs Montpellier et IMIO (tax et liege) dans des patchs séparés.
Mis à jour par Serghei Mihai il y a plus de 7 ans
- Fichier 0001-make-slug-field-unique-13053.patch 0001-make-slug-field-unique-13053.patch ajouté
- Fichier 0001-make-slug-field-unique-13053.patch 0001-make-slug-field-unique-13053.patch ajouté
- Fichier 0001-make-slug-field-unique-13053.patch 0001-make-slug-field-unique-13053.patch ajouté
- Fichier 0001-make-slug-field-unique-13053.patch 0001-make-slug-field-unique-13053.patch ajouté
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
Encore une victime https://sentry.entrouvert.org/sentry/entrouvert-dev/issues/2268/ .
Serghei si tu peux rebaser.
Mis à jour par Serghei Mihai il y a plus de 6 ans
Mis à jour par Serghei Mihai il y a plus de 6 ans
- Fichier 0001-make-slug-unique-per-connector-13053.patch 0001-make-slug-unique-per-connector-13053.patch ajouté
Avec avec la prise en compte de Cityweb fraichement poussé.
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
Est-ce que c'est bien pris en compte par le formulaire de création de ressource ? Si c'est un ModelForm classique c'est le cas. Ensuite il faudra suivre particulièrement la mise à jour de passerelle parce que ça risque de péter et il faudra supprimer des modèles manuellement dans ce cas.
Pour le code en lui même (modulo la prise en compte dans le formulaire), c'est ack pour moi.
Mis à jour par Serghei Mihai il y a plus de 6 ans
La création d'un connecteur est bien un modelform.
Pour le deploiement j'avais déjà une fois fait le tour des nos recettes et prods pour m'assurer qu'il n'y ait pas de doublon de slug.
Je vais le refaire (plutôt ce soir).
Mis à jour par Serghei Mihai il y a plus de 6 ans
- Fichier 0001-make-slug-unique-13053.patch 0001-make-slug-unique-13053.patch ajouté
- Fichier 0001-make-slug-unique-13053.patch 0001-make-slug-unique-13053.patch ajouté
- Fichier 0001-make-slug-unique-13053.patch 0001-make-slug-unique-13053.patch ajouté
- Fichier 0001-make-slug-unique-13053.patch 0001-make-slug-unique-13053.patch ajouté
- Fichier 0001-make-slug-unique-13053.patch 0001-make-slug-unique-13053.patch ajouté
- Fichier 0001-make-slug-unique-13053.patch 0001-make-slug-unique-13053.patch ajouté
- Fichier 0001-make-slug-unique-13053.patch 0001-make-slug-unique-13053.patch ajouté
Et les patchs correspondants pour les modules passerelle externes, sauf passerelle-paris-poc-gru.
Mis à jour par Serghei Mihai il y a plus de 6 ans
Rabsé, avec les migrations pour les nouvelles applications parues dans contrib
depuis.
# passerelle commit e1467dd2b70e3e3b5f63a9885aaf762ffa568b6f (origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Tue Jan 17 15:50:56 2017 +0100 make slug unique per connector (#13053) # passerelle-montpellier-sig commit 7b0b2893302f25e4a0d20891a81687aa696aca6b (HEAD -> master, origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 21 12:19:35 2017 +0200 make slug unique (#13053) # passerelle-montpellier-encombrants commit 884d749d6fbc9e21579af44a21c720b91d2cdda1 (HEAD -> master, origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 21 12:18:59 2017 +0200 make slug unique (#13053) # passerelle-imio-extra-fees commit 986db90e3550291b49c8e1933659fbdda82fbacf (HEAD -> master, origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 21 12:13:32 2017 +0200 make slug unique (#13053) # passerelle-imio-ia-delib commit ec263bae49e70f01d595749d413900413a1506d8 (HEAD -> master, origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 21 12:14:53 2017 +0200 make slug unique (#13053) # passerelle-imio-liege-lisrue commit 01c8f5b8bfd4ac2051f8c6581f2cd33df78549f8 (HEAD -> master, origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 21 12:15:37 2017 +0200 make slug unique (#13053) # passerelle-imio-tax-compute commit bc586cc4e3946ea60e91fe55bae0d250e1f7c505 (HEAD -> master, origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 21 12:16:25 2017 +0200 make slug unique (#13053) # passerelle-imio-ts1-datasources commit d277c2510bf909d1fb2dbd66da214e7a4614c377 (HEAD -> master, origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 21 12:17:39 2017 +0200 make slug unique (#13053) # passerelle-maarch commit 509e97476d15b4f293b67a7313ad4005154fdeb3 (HEAD -> master, origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Sep 21 12:18:23 2017 +0200 make slug unique (#13053)
Mis à jour par Serghei Mihai il y a plus de 6 ans
- Statut changé de En cours à Résolu (à déployer)
Mis à jour par Frédéric Péters il y a plus de 6 ans
Pour avoir fait la mise à jour sur la recette et être tombé sur un doublon, ça m'irait vraiment bien qu'en amont de la mise à jour de la production ça soit vérifié.
Mis à jour par Benjamin Dauvergne il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Fermé
make slug unique per connector (#13053)