Projet

Général

Profil

Development #21618

cook recipe: l'importance du champ 'slug' dans une action de type 'create-site'

Ajouté par Emmanuel Cazenave il y a environ 6 ans.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
02 février 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

Description

Cela pourrait être dans de la documentation sur cook et/ou aussi être mieux géré dans le code.

Soit le recipe suivant, où l'on peut noter l'absence de champ slug dans les deux tenants combo:

{
  "steps": [
    {"create-hobo": {
      "url": "https://hobo-hobo.local.publik/" 
    }},
    {"create-authentic": {
      "url": "https://authentic-authentic.local.publik/",
      "title": "Connexion" 
    }}, 
    {"set-idp": {
    }},
    {"create-combo": {
        "url": "https://user-combo.local.publik/",
        "title": "PortailUser",
        "template_name": "portal-user" 
    }},
    {"create-combo": {
        "url": "https://agent-combo.local.publik/",
        "title": "PortailAgent",
        "template_name": "portal-agent" 
    }},
    {"create-wcs": {
        "url": "https://wcs-wcs.local.publik/",
        "template_name": "publik.zip",
        "slug": "services",
        "title": "Démarches" 
    }},
    {"set-theme": {
      "theme": "publik" 
    }}
  ]
}

Dans hobo.environment.management.commands.cook.py::create_site :

if slug is None:
            slug = klass.Extra.service_default_slug
        obj, must_save = klass.objects.get_or_create(
                slug=slug,
                defaults={
                    'title': title,
                    'base_url': base_url,
                    'template_name': template_name
                })

Le premier objet service combo est crée, quand vient le tour du deuxième, la fonction get_or_create fait un get.
Résultat un seul object combo service crée, un seul objet combo service dans les hobo.json des tenants, avec tous les problèmes qui s'en suivent.

Formats disponibles : Atom PDF