def connect(name): print() print('Connect') host = Host.objects.filter(name=name)[0] #print(host) hostname = host.hostname database = host.database login = host.login password = host.password #print(hostname) # Connect - Json Rpc connection = odoolib.get_connection( #hostname='localhost', #login="******", #database="ODOO-TACNA", #password="******", hostname=hostname, database=database, login=login, password=password, port=8069, protocol='jsonrpc', ) #print() #print(connection) return connection
def _connect(self): user_id = None if self.user_id and self.user_id > 0: user_id = self.user_id self.client = odoolib.get_connection(hostname=self.host, port=self.port, database=self.database, login=self.login, password=self.password, protocol=self.protocol, user_id=user_id) self.client.check_login(force=False)
def get_server_connection(config_file): config = ConfigParser.RawConfigParser({'protocol' : 'xmlrpc', 'port' : 8069}) config.read(config_file) hostname = config.get('Connection', 'hostname') database = config.get('Connection', 'database') login = config.get('Connection', 'login') password = config.get('Connection', 'password') protocol = config.get('Connection', 'protocol') port = int(config.get('Connection', 'port')) uid = int(config.get('Connection', 'uid')) return odoolib.get_connection(hostname=hostname, database=database, login=login, password=password, protocol=protocol, port=port, user_id=uid)
def read_data(url, port, database, login, password, model, fields, domain, firstrow=None): """Read an odoo model. `url`: URL of the odoo instance. `database`: name of the database. `model`: name of the odoo model in dot-notaion (ej `res.partner`). `fields`: list of field names. `domain`: list of tuples with odoo domain expression. `firstrow`: string overriding odoo's header row. Returns list (rows) of lists (columns) of the fetched data. """ connection = odoolib.get_connection( hostname=url, port=port, database=database, login=login, password=password, ) connection.get_user_context() model = connection.get_model(model) ids = model.search(domain) table_list = model.export_data(ids, fields, context=dict(connection.user_context or {}, import_compat=False))["datas"] if not table_list: raise EmptyTableError if firstrow: with io.StringIO(firstrow) as f: rows = [row for row in csv.reader(f)] if not len(rows) == 1: raise MoreThanHeaderContentError table_list.insert(0, rows[0]) return table_list
def get_server_connection(config_file): config = ConfigParser.RawConfigParser({'protocol': 'xmlrpc', 'port': 8069}) config.read(config_file) hostname = config.get('Connection', 'hostname') database = config.get('Connection', 'database') login = config.get('Connection', 'login') password = config.get('Connection', 'password') protocol = config.get('Connection', 'protocol') port = int(config.get('Connection', 'port')) uid = int(config.get('Connection', 'uid')) return odoolib.get_connection(hostname=hostname, database=database, login=login, password=password, protocol=protocol, port=port, user_id=uid)
def connection(database, hostname=None, port=None, login=None, password=None): parser = SafeConfigParser() pwd = os.environ.get('ETL_INI_CONFIG_PWD', False) or os.environ['PWD'] filename = os.path.join(pwd, 'config', 'etl.ini') if not os.path.exists(filename): filename = os.path.join(os.path.dirname(__file__), 'config.ini') parser.read(filename) if hostname is None: hostname = parser.get(database, 'host') if port is None: port = parser.getint(database, 'port') if login is None: login = parser.get(database, 'username') if password is None: password = parser.get(database, 'password') return odoolib.get_connection(hostname=hostname, port=port, database=database, login=login, password=password)
import odoolib import re connection = odoolib.get_connection( hostname="www.odoo.com", database="openerp", login="******", port=443, password="******", protocol='jsonrpcs', ) task_model = connection.get_model("project.task") sub_model = connection.get_model("sale.subscription") sub_line_model = connection.get_model("sale.subscription.line") product_model = connection.get_model("product.product") partner_model = connection.get_model("res.partner") odoo_database_model = connection.get_model("openerp.enterprise.database") tag_model = connection.get_model("project.tags") print("===CREATE CUSTOM BE PARENT===") ## PART 1 : CHECK TASKS upgrade_issues = task_model.search_read([('project_id', '=', 4157),('stage_id', 'not in', (373, 365)), ('create_date', '>', '2021-04-15'), ('mnt_subscription_id', '!=', False), ('parent_id', '=', False)], ["partner_id", "id", "name", "mnt_subscription_id", "enterprise_subscription_ids", "description", "create_date", "project_id", "user_id", "tag_ids", "parent_id", "reviewer_id"]) print(len(upgrade_issues))
#!/usr/bin/env python3 from odoolib import get_connection import base64 connection = get_connection(hostname="localhost", database='report', port=8069, login='******', password='******', protocol='jsonrpc') model_data = connection.get_model('ir.model.data') #Get id of the report action report_model, report_id = model_data.get_object_reference( 'sale', 'action_report_saleorder') #get a demo data _, sale_order_id = model_data.get_object_reference('sale', 'sale_order_7') report = connection.get_model(report_model) res = report.render_rpc(report_id, sale_order_id, False) outfile = open('sale.pdf', 'wb') outfile.write(base64.b64decode(res[0])) outfile.close()
import odoolib connection = odoolib.get_connection(hostname="localhost", database="my_db", login="******", password="******") user_model = connection.get_model("academy.course") ids = user_model.search([]) user_info = user_model.read(ids[0], ["name"]) print(user_info["name"])
#!/usr/bin/python3 api_key = "5b3ce3597851110001cf6248209f07136a7a44c0be17479e56a02c78" theURL = "https://api.openrouteservice.org/v2/directions/driving-car?api_key=5b3ce3597851110001cf6248209f07136a7a44c0be17479e56a02c78&start=8.681495,49.41461&end=8.687872,49.420318" ###################### ### Odoo JSON: import odoolib connection = odoolib.get_connection(hostname="localhost", port=8013, protocol="jsonrpc", database="odoo13_dirscache", login="******", password="******") user_model = connection.get_model("directions.route.request") user_model.get_route(8.681495000, 49.414610000, 8.687872000, 49.420318000) ###################### wget "http://localhost:8013/jsonrpc" --post-data '{"jsonrpc": "2.0", "method": "call", "params": {"service": "common", "method": "login", "args": ["odoo13_dirscache", "admin", "admin"] }, "id": 124658997 }' -O- --save-headers --header="Content-Type: application/json" -o /dev/null ###################### POST /jsonrpc HTTP/1.1 User-Agent: Wget/1.19.4 (linux-gnu) Accept: */* Accept-Encoding: identity Host: localhost:8013 Connection: Keep-Alive Content-Type: application/x-www-form-urlencoded Content-Length: 155 {"jsonrpc": "2.0", "method": "call", "params": {"service": "common", "method": "login", "args": ["odoo13_dirscache", "admin", "admin"] }, "id": 124658997 } HTTP/1.0 400 BAD REQUEST
print("hello Odoo 13") import odoolib #informations to edite ************************************************************************************************* hostname = "edu-odoo13en.odoo.com" #server url database = "edu-odoo13en" #domaine name login = "******" # administrator login (create the object) password = '******' ######################################################################################################################## #connection connection = odoolib.get_connection(hostname=hostname, database=database, login=login, password=password, port=443, protocol="jsonrpcs") #ask for country_id country_model = connection.get_model('res.country') ch_id = country_model.search([('name', '=', 'Switzerland')])[0] print(ch_id) ## works create user #partner_model = connection.get_model('res.partner') #a_turner = partner_model.create({ # 'name': 'okok okok', # 'street': 'Avenue du Peyrou 8', # 'zip': '2000',
def _conn(self, protocol): return odoolib.get_connection(hostname="localhost", protocol=protocol, database="test", login="******", password="******")
# -*- coding: utf-8 -*- # This script gives you a basic connection to the odoo server with the provided credentials from os import environ import odoolib con = odoolib.get_connection( hostname=environ["ODOO_HOST"], database=environ["ODOO_DATABASE"], login=environ["ODOO_LOGIN"], password=environ["ODOO_PASSWORD"], port=int(environ["ODOO_PORT"]), )