Session

class connector.session.ConnectorSession(cr, uid, context=None)[source]

Bases : object

Conteneur pour les choses transactionnelles d’OpenERP :

connector.session.env

L’Environnement

connector.session.cr

Le curseur d’OpenERP

connector.session.uid

L’ID de l’utilisateur (entier)

connector.session.pool

Le registre des modèles

connector.session.context

Le context actuel d’OpenERP

ConnectorSession.browse(model, ids)[source]

Raccourci vers openerp.models.BaseModel.browse

ConnectorSession.change_context(*args, **kwds)[source]

Context Manager : crée un nouvel Env avec un context mis à jour

Génère un nouvel openerp.api.Environment utilisé à l’intérieur du context manager, où le context est enrichi avec les arguments. L’environnement original est restauré à la fermeture du context manager.

Le context enrichi est soit le context fourni, dans lequel les overrides sont fusionnés, ou le context actuel dans lequel les overrides sont fusionné, càd

# current context is {'key1': True}
r2 = records.with_context({}, key2=True)
# -> r2._context is {'key2': True}
r2 = records.with_context(key2=True)
# -> r2._context is {'key1': True, 'key2': True}

Avertissement

seuls les recordset lus à l’intérieur du context manager seront attachés à cet environnement. Dans beaucoup de cas, vous préférerez utiliser openerp.models.BaseModel.with_context()

ConnectorSession.change_user(*args, **kwds)[source]

Context Manager : crée un nouvel Env avec l’utilisateur spécifié

Ceci génère un nouvel openerp.api.Environment utilisé à l’intérieur du context manager, où l’utilisateur est remplacé par celui spécifié. L’environnement original est restaré à la fermeture du context manager.

Avertissement

seuls les recordset lus à l’intérieur du context manager seront attachés à cet environnement. Dans beaucoup de cas, vous préférerez utiliser openerp.models.BaseModel.with_context()

ConnectorSession.close()[source]

Ferme le curseur

ConnectorSession.commit()[source]

Valide la transaction

ConnectorSession.context
ConnectorSession.cr
ConnectorSession.create(model, values)[source]

Raccourci pour openerp.models.BaseModel.create

ConnectorSession.is_module_installed(module_name)[source]

Indique si un module est installé ou non dans la base de données en cours.

Utilise une convention établie pour les modules connecteurs : pour savoir si un module est installé, il regarde si un modèle (abstrait) avec le nom nom_module.installed est chargé dans le registre.

ConnectorSession.pool
ConnectorSession.read(model, ids, fields)[source]

Raccourci pour openerp.models.BaseModel.read

ConnectorSession.rollback()[source]

Annule la transaction

ConnectorSession.search(model, domain, limit=None, offset=0, order=None)[source]

Raccourci pour openerp.models.BaseModel.search

ConnectorSession.uid
ConnectorSession.write(model, ids, values)[source]

Raccourci pour openerp.models.BaseModel.write

class connector.session.ConnectorSessionHandler(db_name, uid, context=None)[source]

Bases : object

Permet de créer une nouvelle instance de ConnectorSession pour une base de données.

connector.session.db_name

Le nom de la base de données sur laquelle on travaille

connector.session.uid

L’ID de l’utilisateur (entier)

connector.session.context

Le context actuel d’OpenERP

Utilisation

session_hdl = ConnectorSessionHandler(db_name, 1)
with session_hdl.session() as session:
    # work with session
ConnectorSessionHandler.session(*args, **kwds)[source]

Context Manager : démarre une nouvelle session et s’assure que le curseur de la session est :

  • annulé en cas d’erreur

  • validé à la fin du contexte with si aucune erreur n’est apparue

  • toujours fermé à la fin d’un contexte with

  • il gère le signalement du registre