Connecteur

class connector.connector.Binder(connector_env)[source]

Bases : connector.connector.ConnectorUnit

Pour un enregistrement d’un modèle, capable de trouver un ID externe ou interne, ou crée la liaison entre eux

Le Binder devrait être implémenté dans les connecteurs.

Binder.bind(external_id, binding_id)[source]

Crée le lien entre un ID externe et un ID OpenERP

Paramètres:
  • external_id – ID externe à lier
  • binding_id (int) – ID OpenERP à lier
Binder.to_backend(binding_id, wrap=False)[source]

Donne l’ID externe pour un ID de liaison OpenERP (ID dans un modèle magento.*)

Paramètres:
  • binding_id – ID de liaison OpenERP pour lequel on veut l’ID du backend
  • wrap – si Faux, binding_id est l’ID de la liaison, si Vrai, binding_id est l’ID de l’enregistrement normal, la méthode va chercher la liaison correspondante et renvoyer l’ID de backend de la liaison.
Retourne:

ID externe de l’enregistrement

Binder.to_openerp(external_id, unwrap=False, browse=False)[source]

Donne l’ID OpenERP pour un ID externe

Paramètres:
  • external_id – ID externe pour lequel on veut l’ID OpenERP
  • unwrap – si Vrai, renvoie l’openerp_id, sinon renvoie l’ID de la liaison
  • browse – si Vrai, renvoie un recordset
Retourne:

un ID d’enregistrement, en fonction de la valeur à déballer, ou None si l’external_id n’est pas mappé

Type retourné:

int

Binder.unwrap_binding(binding_id, browse=False)[source]

Pour un enregistrement de liaison, donne l’enregistrement normal

Exemple : si appelé avec un ID de magento.product.product, il va renvoyer l’ID correspondant du product.product.

Paramètres:browse – si Vrai, renvoie une instance de browse_record à la place d’un ID
Binder.unwrap_model()[source]

Pour un modèle de liaison, donne le modèle normal.

Exemple : si appelé sur une binder pour magento.product.product, il va renvoyer product.product.

class connector.connector.ConnectorEnvironment(backend_record, session, model_name)[source]

Bases : object

Environnement utilisé par les différentes unités pour la synchronisation.

connector.connector.backend

Backend en cours sur lesquels on travaille. Obtenu avec backend_record.get_backend().

Instance de : connector.backend.Backend

connector.connector.backend_record

Enregistrement de type browse pour le backend. Le backend est hérité du modèle connector.backend et a au moins un type et une version.

connector.connector.session

Session en cours sur laquelle on travaille. Elle contient les cr, uid et context d’OpenERP.

connector.connector.model_name

Nom du modèle OpenERP avec lequel travailler.

ConnectorEnvironment.env
ConnectorEnvironment.get_connector_unit(base_class)[source]

Recherche et renvoie une instance de ConnectorUnit pour le modèle en cours et étant une classe ou sous-classe de base_class.

L’instance renvoyée est construite avec self pour son environnement.

Paramètres:base_class (connector.connector.ConnectorUnit) – ConnectorUnit à rechercher (classe ou sous-classe)
ConnectorEnvironment.model
ConnectorEnvironment.pool
ConnectorEnvironment.set_lang(*args, **kwds)[source]

Change la langue de travail dans l’environnement.

Ceci change la clé lang dans le context de la session.

class connector.connector.ConnectorUnit(connector_env)[source]

Bases : object

Classe abstraite pour chaque composant du connecteur :

Exemples :

Ou en gros n’importe quelle classe destinée à être inscrite dans un Backend.

ConnectorUnit.binder_for(model=None)[source]

Renvoie une nouvelle instance du bon Binder pour un modèle

ConnectorUnit.env

Renvoie le openerp.api.environment

ConnectorUnit.environment
ConnectorUnit.get_binder_for_model(model=None)[source]

Renvoie une nouvelle instance du bon Binder pour un modèle

Déprécié, utilisez maintenant binder_for.

ConnectorUnit.get_connector_unit_for_model(connector_unit_class, model=None)[source]

Déprécié en faveur de unit_for()

ConnectorUnit.localcontext

Présent pour une question de compatibilité.

openerp.tools.translate._() recherche cet attribut dans les classes pour être capable de traduire les chaînes.

Il n’y a aucune raison d’utiliser cet attribut à d’autres fins.

classmethod ConnectorUnit.match(session, model)[source]

Renvoie True si la classe en cours correspond au modèle recherché

Paramètres:
ConnectorUnit.model
ConnectorUnit.unit_for(connector_unit_class, model=None)[source]

Selon le ConnectorEnvironment en cours, recherche et renvoie une instance de ConnectorUnit pour le modèle actuel et étant une classe ou sous-classe de connector_unit_class.

Si un model différent est donné, un nouveau ConnectorEnvironment est construit pour ce modèle.

Paramètres:
  • connector_unit_class (connector.                                               connector.ConnectorUnit) – ConnectorUnit à rechercher (classe ou sous-classe)
  • model (str) – à donner si le ConnectorUnit est pour un autre modèle que le modèle actuel
class connector.connector.MetaConnectorUnit(name, bases, attrs)[source]

Bases : type

Metaclass pour ConnectorUnit.

Conserve un attribut _module sur les classes, de la même façon qu’OpenERP pour les classes de modèles. Il est utilisé ensuite pour les filtrer en fonction de l’état du module (installé ou non).

MetaConnectorUnit.for_model_names

Renvoie une liste de modèles sur lesquels une ConnectorUnit est utilisable

Utilisé dans match() lorsqu’on recherche la bonne ConnectorUnit pour un modèle.

MetaConnectorUnit.model_name
connector.connector.get_openerp_module(cls_or_func)[source]

Pour une fonction ou classe de niveau supérieur, renvoie le nom du module OpenERP où elle réside.

Ainsi nous serons capable de les filtrer en fonction de l’état d’installation des modules.

connector.connector.install_in_connector()[source]

Installe un module OpenERP dans le framework Connector.

Il doit être appelé une fois par module OpenERP à brancher.

Under the cover, it creates a openerp.models.AbstractModel whose name is the name of the module with a .intalled suffix: {name_of_the_openerp_module_to_install}.installed.

Le connecteur utilise ensuite ce modèle pour savoir quand le module OpenERP est installé ou non, s’il doit utiliser les classes ConnectorUnit de ce module ou non et s’il doit allumer les consommateurs d’événements ou non.