Deprecated: Constant E_STRICT is deprecated since 8.4, the error level was removed in /home/hybird/newwwwcreme/forum/inc/class_error.php on line 64
Solution pour modifier un module existant ?
Les avertissements suivants se sont produits :
Warning [2] Undefined variable $unreadreports - Line: 21 - File: global.php(961) : eval()'d code PHP 8.5.12 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/global.php(961) : eval()'d code 21 errorHandler->error_callback
/global.php 961 eval
/showthread.php 28 require_once
Warning [2] Undefined property: MyLanguage::$bottomlinks_forumteam - Line: 2 - File: global.php(1047) : eval()'d code PHP 8.5.12 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/global.php(1047) : eval()'d code 2 errorHandler->error_callback
/global.php 1047 eval
/showthread.php 28 require_once
Warning [2] Undefined array key 0 - Line: 1636 - File: showthread.php PHP 8.5.12 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1636 errorHandler->error_callback
/showthread.php 912 buildtree




Solution pour modifier un module existant ?
#7
Je suis content que vous vous en soyez sorti si vite. Je suis bien conscient que les callbacks sur les forms par exemple ne sont pas spécialement bien documentés, et même si nous faisons en sorte que notre code soit le plus clair possible, et qu'il fait souvent office de documentation, cela mériterait sûrement quelque chose de plus formel. Mais visiblement vous avez très bien compris comment ils marchent.

J'aurai quelques petites remarques sur votre code :
  • Vos imports dans votre models/opportunity.py sont un peu en vrac (c'est une broutille mais connaître la façon correcte est toujours mieux).
  • Le fait que tout soit géré dans les formulaires est un peu fragile je pense. Si une autre app décide de créer une Opportunity, elle plantera sur une erreur d'intégrité (votre number sera NULL). Après avoir regardé vite fait, en l'état je pense que seul des test unitaires vont planter, et donc que cela ne soit pas gênant en pratique, en revanche c'est une bonne chose d'en être conscient là encore.
  • Il est assez tordu d'avoir mis les hooks dans creme_config_register.py plutôt que creme_core_register.py. Dans les faits cela fonctionne un peu par hasard, parce que les formulaires d'Opportunity ont des widgets spéciaux (pour les phases de vente par exemple) qui vont forcer la registry de creme_config à se remplir, et donc appeler votre creme_config_register.py. Mais c'est bizarre et fragile comme façon de faire, alors que vous êtes sûr que creme_core_register.py est forcément appelé, et est donc classiquement utilisé pour ce genre ce chose.
  Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)