Projet

Général

Profil

Development #13053

champ 'slug' unique pour tous les connecteurs

Ajouté par Serghei Mihai il y a plus de 7 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
05 septembre 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

0001-base-make-slug-field-unique-13053.patch (22,3 ko) 0001-base-make-slug-field-unique-13053.patch Serghei Mihai, 05 septembre 2016 12:07
0001-base-make-slug-field-unique-13053.patch (22,7 ko) 0001-base-make-slug-field-unique-13053.patch Serghei Mihai, 21 novembre 2016 10:22
0001-make-slug-field-unique-13053.patch (1,19 ko) 0001-make-slug-field-unique-13053.patch Serghei Mihai, 21 novembre 2016 10:23
0001-make-slug-field-unique-13053.patch (1,13 ko) 0001-make-slug-field-unique-13053.patch Serghei Mihai, 21 novembre 2016 10:23
0001-make-slug-unique-per-connector-13053.patch (22,4 ko) 0001-make-slug-unique-per-connector-13053.patch Serghei Mihai, 17 janvier 2017 15:54
0001-make-slug-field-unique-13053.patch (1,16 ko) 0001-make-slug-field-unique-13053.patch Serghei Mihai, 17 janvier 2017 16:00
0001-make-slug-field-unique-13053.patch (1,12 ko) 0001-make-slug-field-unique-13053.patch Serghei Mihai, 17 janvier 2017 16:01
0001-make-slug-field-unique-13053.patch (1,13 ko) 0001-make-slug-field-unique-13053.patch Serghei Mihai, 17 janvier 2017 16:01
0001-make-slug-field-unique-13053.patch (1,19 ko) 0001-make-slug-field-unique-13053.patch Serghei Mihai, 17 janvier 2017 16:04
0001-make-slug-unique-per-connector-13053.patch (27,4 ko) 0001-make-slug-unique-per-connector-13053.patch Serghei Mihai, 20 septembre 2017 09:59
0001-make-slug-unique-per-connector-13053.patch (28,2 ko) 0001-make-slug-unique-per-connector-13053.patch Serghei Mihai, 20 septembre 2017 10:03
0001-make-slug-unique-13053.patch (1,11 ko) 0001-make-slug-unique-13053.patch Serghei Mihai, 21 septembre 2017 12:14
0001-make-slug-unique-13053.patch (1,1 ko) 0001-make-slug-unique-13053.patch Serghei Mihai, 21 septembre 2017 12:15
0001-make-slug-unique-13053.patch (1,13 ko) 0001-make-slug-unique-13053.patch Serghei Mihai, 21 septembre 2017 12:16
0001-make-slug-unique-13053.patch (1,12 ko) 0001-make-slug-unique-13053.patch Serghei Mihai, 21 septembre 2017 12:16
0001-make-slug-unique-13053.patch (1,18 ko) 0001-make-slug-unique-13053.patch Serghei Mihai, 21 septembre 2017 12:17
0001-make-slug-unique-13053.patch (1,07 ko) 0001-make-slug-unique-13053.patch Serghei Mihai, 21 septembre 2017 12:18
0001-make-slug-unique-13053.patch (1,13 ko) 0001-make-slug-unique-13053.patch Serghei Mihai, 21 septembre 2017 12:19

Révisions associées

Révision e1467dd2 (diff)
Ajouté par Serghei Mihai il y a plus de 6 ans

make slug unique per connector (#13053)

Révision 884d749d (diff)
Ajouté par Serghei Mihai il y a plus de 6 ans

make slug unique (#13053)

Historique

#1

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.

#2

Mis à jour par Serghei Mihai il y a plus de 7 ans

Mais l'attribut unique=True de la classe BaseResource se repecute sur tous les modèles qui l'héritent.

#3

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).

#4

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.

#5

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.

#6

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.

#7

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.

#9

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).

#10

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.

#11

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)

#12

Mis à jour par Serghei Mihai il y a plus de 7 ans

Patch à jour sur le master.
Les migrations pour les connecteurs Montpellier et IMIO (tax et liege) dans des patchs séparés.

#14

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.

#16

Mis à jour par Serghei Mihai il y a plus de 6 ans

Avec avec la prise en compte de Cityweb fraichement poussé.

#17

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.

#18

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).

#19

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Ben là de sûr il y a sicoval-test.

#21

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

Poussons ça maintenant.

#22

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)

#23

Mis à jour par Serghei Mihai il y a plus de 6 ans

  • Statut changé de En cours à Résolu (à déployer)
#24

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é.

#25

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF