Skip to main content

Library to improve interaction and communication with odoo for integration with other technologies.

Project description

odoo-models-connect

Odoo-Models-Connect is an library to improve interaction and communication with Odoo XML-RPC External API for integration with other technologies.

Installing

Install and update using pip:

$ pip install odoo-models-connect

Example

Initialize the required environment variables

  1. Create an .env file

  2. places the environment variables inside the file with these names:

    • DATABASE
    • USERNAME
    • PASSWORD
    • URL

For example .env:

DATABASE='local_DB'
USERNAME='admin@email.com'
PASSWORD='123456'
URL='http://localhost:8069'
  1. import load_env_vars:

    from odoo_models_connect import load_env_vars
    
  2. load environment variables:

    load_env_vars('path/to/environment')
    
    NOTE: must end in .env

You can create a high-level interface by declaring models by extending models.OdooModel as follows:

from odoo_models_connect import models, fields, load_env_vars


load_env_vars(env_path='path/to/.env')


class ResUsers(models.OdooModel):
    _name = 'res.users'

    name = fields.StringField()
    login = fields.StringField()
    password = fields.StringField()
NOTE: it is necessary to load the environment variables before doing the inheritance of OdooModel

count of number of records:

>>> ResUsers.search_count()
4

search and read record by id:

>>> ResUsers.search_by_id(2)
<ResUsers id=2>

search and read records:

>>> ResUsers.search_read()
[<ResUsers id=2>, <ResUsers id=6>, <ResUsers id=7>, <ResUsers id=8>]

filter records:

>>> ResUsers.search_read(query=[["name", 'ilike', "John"]])
[<ResUsers id=2>, <ResUsers id=6>]

create a record:

user = ResUsers(
    name='John',
    login='John@mail.com',
    password='john123',
)

user.create()

update a record:

user = ResUsers(
    id=8,
    name='John2',
    login='John2@mail.com',
    password='john1234',
)

user.update()

delete a record:

user = ResUsers(id=10)

user.delete()

Allowed data types:

  • StringField
  • BooleanField
  • BinaryField
  • DateField
  • DateTimeField
  • IntegerField
  • FloatField
  • MonetaryField
  • Many2oneField
  • Many2manyField
  • One2manyField

Other Features

Initialize the odoo connection:

from odoo_models_connect import ConnectOdoo

odoo = ConnectOdoo('http://localhost:8069', 'db_name')

User authentication in the odoo system:

uid = odoo.authenticate('user_email@mail.com', 'user_password')

In the case of wanting to make queries with the authenticated user in session it is necessary to use the reconnect method and pass a dictionary with the values of email, password and user id:

session = {
    "username": 'user_email@mail.com',
    "password": 'user_password',
    "uid": 7,
}

odoo.reconnect(session)

Making queries

To make a simple search of all the elements of a model is used:

users = odoo.search_read('res.users')

You can place conditions or the fields you want to bring from each element:

users = odoo.search_read('res.users', condition=[['name', '=', 'Admin']], fields=['name', 'login', 'image_1920'])

The read() method works to do a search for elements with a list of element ids:

users = odoo.read('res.users', object_ids=[1, 7, 17])

You can also bring only the fields that are needed:

users = odoo.read('res.users', object_ids=[8, 25], fields=['name', 'login'])

NOTE: ids must be of type integer

You can fetch the id of all the elements of a model stored in a database:

users_ids = odoo.search_ids('res.users')

You can add a condition or domain:

users_ids = odoo.search_ids('res.users', domain=[
[('name', 'ilike', 'John%')]])

The create() method is used to create an element of a model in a database.

data = {
    "name": 'John',
    "login": 'John@mail.com',
    "password": 'john123'
}

odoo.create('res.users', data)

The update() method is used to update an element of a model in a database.

data = {
    "name": 'Juan',
    "login": 'Juan@mail.com',
    "password": 'Juan123'
}

user_id = 9

odoo.update('res.users', user_id, data)

The delete() method is used to delete an element of a model in a database.

user_id = 9

odoo.delete('res.users', user_id)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odoo_models_connect-0.1.11.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odoo_models_connect-0.1.11-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file odoo_models_connect-0.1.11.tar.gz.

File metadata

  • Download URL: odoo_models_connect-0.1.11.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.7

File hashes

Hashes for odoo_models_connect-0.1.11.tar.gz
Algorithm Hash digest
SHA256 b9f5269fb813184b36802bb52a0d530b946e65171088b3ae23dd325ce5702af6
MD5 9b21b4b37789fae83407d0874f57343f
BLAKE2b-256 d12400ba0caa96e8be39626ab302f16ff55bc48877c7f7f72ae6c6a42b383f8b

See more details on using hashes here.

File details

Details for the file odoo_models_connect-0.1.11-py3-none-any.whl.

File metadata

File hashes

Hashes for odoo_models_connect-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 a267378c89a5d8dbe86c43bbbaf56bf630715fca5315be5dc256bc0e32e7ab1d
MD5 c8f617f70ff30befc748a3b33db0ac88
BLAKE2b-256 2735c398d303fe3bc3cf6777524aeb0cae30a5639c0e77170c7229226df3e61d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page