28-05-2014, 23:14
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 :
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.