Source code for openerp.addons.magentoerpconnect.connector

# -*- coding: utf-8 -*-
##############################################################################
#
#    Author: Guewen Baconnier
#    Copyright 2013-2015 Camptocamp SA
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU Affero General Public License as
#    published by the Free Software Foundation, either version 3 of the
#    License, or (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################

from openerp import models, fields
from openerp.addons.connector.connector import ConnectorEnvironment
from openerp.addons.connector.checkpoint import checkpoint


[docs]def get_environment(session, model_name, backend_id): """ Create an environment to work with. """ backend_record = session.env['magento.backend'].browse(backend_id) env = ConnectorEnvironment(backend_record, session, model_name) lang = backend_record.default_lang_id lang_code = lang.code if lang else 'en_US' if lang_code == session.context.get('lang'): return env else: with env.session.change_context(lang=lang_code): return env
[docs]class MagentoBinding(models.AbstractModel): """ Abstract Model for the Bindigs. All the models used as bindings between Magento and OpenERP (``magento.res.partner``, ``magento.product.product``, ...) should ``_inherit`` it. """ _name = 'magento.binding' _inherit = 'external.binding' _description = 'Magento Binding (abstract)' # openerp_id = openerp-side id must be declared in concrete model backend_id = fields.Many2one( comodel_name='magento.backend', string='Magento Backend', required=True, ondelete='restrict', ) # fields.Char because 0 is a valid Magento ID magento_id = fields.Char(string='ID on Magento') _sql_constraints = [ ('magento_uniq', 'unique(backend_id, magento_id)', 'A binding already exists with the same Magento ID.'), ]
[docs]def add_checkpoint(session, model_name, record_id, backend_id): """ Add a row in the model ``connector.checkpoint`` for a record, meaning it has to be reviewed by a user. :param session: current session :type session: :class:`openerp.addons.connector.session.ConnectorSession` :param model_name: name of the model of the record to be reviewed :type model_name: str :param record_id: ID of the record to be reviewed :type record_id: int :param backend_id: ID of the Magento Backend :type backend_id: int """ return checkpoint.add_checkpoint(session, model_name, record_id, 'magento.backend', backend_id)