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

change_context(**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(**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
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
rollback()[source]

Annule la transaction

uid
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(**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