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.10.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.10-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: odoo_models_connect-0.1.10.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.10.tar.gz
Algorithm Hash digest
SHA256 66b370a228638aa7a1930b6f4d4ef67b7281e9c06e00411ba54bc9fcf00084fe
MD5 a7ab15accef4849ecae38133c6d9eb28
BLAKE2b-256 32d68af9d479c71cf5f1e7da3a7f322e46cbe334843e485c012b2abf69a90ba7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for odoo_models_connect-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 137096608dffd811084bdeee61d7bacb32eafadde9786c06b6d9624bfdd32a79
MD5 98e1938c4ed27a7cd1f17545ef2bf621
BLAKE2b-256 4d7a67c82cf1d0f3dd5ba95727bf7ada49f86a4d62f9c9201eaff0ffbf391777

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