Session

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

Bases : object

Conteneur pour les choses transactionnelles d’OpenERP :

env

L’Environnement

cr

Le curseur d’OpenERP

uid

L’ID de l’utilisateur (entier)

pool

Le registre des modèles

context

Le context actuel d’OpenERP

browse(model, ids)[source]

Raccourci vers openerp.models.BaseModel.browse

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()

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()

close()[source]

Ferme le curseur

commit()[source]

Valide la transaction

context
cr
create(model, values)[source]

Raccourci pour openerp.models.BaseModel.create

classmethod from_env(env)[source]

Return a ConnectorSession from openerp.api.Environment

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.

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

Raccourci pour openerp.models.BaseModel.read

rollback()[source]

Annule la transaction

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

Raccourci pour openerp.models.BaseModel.search

uid
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.

db_name

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

uid

L’ID de l’utilisateur (entier)

context

Le context actuel d’OpenERP

Utilisation

session_hdl = ConnectorSessionHandler(db_name, 1)
with session_hdl.session() as session:
    # work with session
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