AttributeError: '_LinksGroup' object has no attribute 'add' - Version imprimable +- Crème CRM (https://www.cremecrm.com/forum) +-- Forum : Utilisateurs (https://www.cremecrm.com/forum/forumdisplay.php?fid=5) +--- Forum : Questions (https://www.cremecrm.com/forum/forumdisplay.php?fid=8) +--- Sujet : AttributeError: '_LinksGroup' object has no attribute 'add' (/showthread.php?tid=170) |
AttributeError: '_LinksGroup' object has no attribute 'add' - Patix - 10-11-2020 Bonjour, Je continue ma progression tout doucement sur la doc exemple . Dans mon apps.py Code : # -*- coding: utf-8 -*- J'ai un message d'erreur : Code : File "v:\Python\creme2\creme\editors\apps.py", line 20, in register_menu La classe _LinksGroup se trouve dans le fichier : \Python\creme2\creme\creme_core\gui\menu.py si je ne m'abuse. Je ne comprends pas aussi 'persons-directory' et 'feautures' à quoi cela correspond. RE: AttributeError: '_LinksGroup' object has no attribute 'add' - Patix - 11-11-2020 Bon je me répond à moi-même Il faut remplacer : .add("create_editor", Editor) par .add_link("create_editor", Editor) RE: AttributeError: '_LinksGroup' object has no attribute 'add' - genglert - 12-11-2020 Oui en effet dans le tutoriel ".add('create_beaver', Beaver)" est erroné, et "add_link()" doit être utilisé à la place. Merci pour le retour, je corrigerai ça. Citation :Je ne comprends pas aussi 'persons-directory' et 'feautures' à quoi cela correspond. L'API du menu est un peu complexe, mais cela permet d'avoir un menu construit collaborativement par les différentes apps, de pouvoir modifier le menu depuis une app etc.... Si vous regardez le fichier 'creme/creme_core/apps.py', dans la méthode 'CremeCoreConfig.register_menu()', vous verrez que le core créé 3 groupes principaux: - 'creme': qui correspond à l'entrée 'Creme' au début du menu. - 'features': qui correspond à toutes les entrées ajoutées par les apps (principalement les liens vers les vues en listes). - 'creation'. qui correspond à l'entrée '+Création' Et dans le fichier 'creme/persons/apps.py', dans la méthode 'PersonsConfig.register_menu()' vous trouvez ce code : Code : directory = creme_menu.get( Il récupère le groupe avec l'ID 'feature' (le groupe principal docn), y créé une entrée/groupe 'persons-directory' ("Annuaire"), puis y ajoute les vues de listes des Sociétés et Contacts. Le code < creme_menu.get('features', 'persons-directory') > permet donc de récupérer directement le sous-groupe "Annuaire" (on donne la liste des ID -- l'équivalent du chemin d'un fichier par analogie). |