mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[ADD] Hotel Management using Odoo Connector
This commit is contained in:
4
hotel_node_master/models/node_backend/__init__.py
Normal file
4
hotel_node_master/models/node_backend/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
||||
# Copyright 2018 Alexandre Díaz <dev@redneboa.es>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import common
|
||||
52
hotel_node_master/models/node_backend/common.py
Normal file
52
hotel_node_master/models/node_backend/common.py
Normal file
@@ -0,0 +1,52 @@
|
||||
# Copyright 2018 Alexandre Díaz <dev@redneboa.es>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from contextlib import contextmanager
|
||||
from odoo import models, api, fields
|
||||
from ...components.backend_adapter import NodeLogin, NodeServer
|
||||
|
||||
class NodeBackend(models.Model):
|
||||
_name = 'node.backend'
|
||||
_description = 'Hotel Node Backend'
|
||||
_inherit = 'connector.backend'
|
||||
|
||||
name = fields.Char('Name')
|
||||
address = fields.Char('Host', required=True,
|
||||
help='Full URL to the host.')
|
||||
db = fields.Char('Database Name',
|
||||
help='Odoo database name.')
|
||||
user = fields.Char('Username',
|
||||
help='Odoo administration user.')
|
||||
passwd = fields.Char('Password',
|
||||
help='Odoo password.')
|
||||
port = fields.Integer(string='TCP Port', default=443,
|
||||
help='Specify the TCP port for the XML-RPC protocol.')
|
||||
protocol = fields.Selection([('jsonrpc', 'jsonrpc'), ('jsonrpc+ssl', 'jsonrpc+ssl')],
|
||||
'Protocol', required=True, default='jsonrpc+ssl')
|
||||
odoo_version = fields.Char()
|
||||
|
||||
@contextmanager
|
||||
@api.multi
|
||||
def work_on(self, model_name, **kwargs):
|
||||
self.ensure_one()
|
||||
node_login = NodeLogin(
|
||||
self.address,
|
||||
self.protocol,
|
||||
self.port,
|
||||
self.db,
|
||||
self.user,
|
||||
self.passwd)
|
||||
with NodeServer(node_login) as node_api:
|
||||
_super = super(NodeBackend, self)
|
||||
with _super.work_on(model_name, node_api=node_api, **kwargs) as work:
|
||||
yield work
|
||||
|
||||
@api.multi
|
||||
def test_connection(self):
|
||||
pass
|
||||
|
||||
@api.multi
|
||||
def import_room_types(self):
|
||||
node_room_type_obj = self.env['node.room.type']
|
||||
for backend in self:
|
||||
node_room_type_obj.with_delay().fetch_room_types(backend)
|
||||
Reference in New Issue
Block a user