[Creme 1.5] Gros changement pour SettinKey/SettingValue - Version imprimable +- Crème CRM (https://www.cremecrm.com/forum) +-- Forum : Développeurs (https://www.cremecrm.com/forum/forumdisplay.php?fid=10) +--- Forum : Général (https://www.cremecrm.com/forum/forumdisplay.php?fid=11) +--- Sujet : [Creme 1.5] Gros changement pour SettinKey/SettingValue (/showthread.php?tid=65) |
[Creme 1.5] Gros changement pour SettinKey/SettingValue - genglert - 02-09-2014 Attention ! les explications suivantes concernent uniquement les développeurs d'application ; les changements sont transparents pour les simples utilisateurs. Les SettinKey/SettingValue permettent la mise en place de variables qui définissent le comportement de l'application, et qui sont accessibles depuis l'interface utilisateur (au contraire du fichier settings.py - ou plutôt local_settings.py - uniquement accessible pour l'administrateur). elles permettent par exemple de régler l'heure d'envoi des e-mails de rappel pour les ToDos (pour cela allez dans la configuration générale -> portail des assistants). La version 1.5 s'accompagne d'un gros changement d'implémentation des SettinKey/SettingValue, motivé par les raisons suivantes:
Puisque régler ces différents problèmes allait provoquer des incompatibilités, il a été décidé de les régler tous d'un seul coup, plutôt que d'avoir des changements cassant la compatibilité étalés sur 2 ou 3 versions ; la décision a été facilitée par l'utilisation a priori assez rare de cette fonctionnalité. Nouvelle architecture :
Voici un petit guide expliquant comment modifier votre code utilisant les SettinKey/SettingValue, pour passer de Creme1.4 à Creme1.5. Remarque : notez bien que vous n'avez pas à vous soucier de la migration de la base de données ; celle-ci qui est effectuée par la commande 'migrate' comme d'habitude, et se charge de vos SettinKey/SettingValue aussi bien que celles fournies par Creme. Vous n'avez à vous soucier que de modifier votre code (ce qui est déjà pas mal !). Avant vous construisiez vos SettingKey dans le populate.py de votre app ; quelque chose du genre: Code : [...] Créez un fichier setting_keys.py à la racine de votre app, dans lequel vous déplacez la création du SettingKey, avec quelques modifications (détaillées après) : Code : # -*- coding: utf-8 -*- Notez les différences:
Vous pouvez ensuite revenir modifier votre populate.py: Code : [...] Vous devez ensuite modifier votre creme_core_register.py pour enregistrer votre SettingKey ; rajoutez ces quelques lignes : Code : from creme.creme_core.core.setting_key import setting_key_registry Il reste à modifier le code qui utilise une SettingValue:
Par exemple : Code : [...] Code : [...] |