16.0.17 • Published 11 months ago

odoojs v16.0.17

Weekly downloads
-
License
GPL v3
Repository
-
Last release
11 months ago

odoojs-rpc

A Javascript Lib to connet odoo. Used to Create Web Application.

contact us: odoojs@outlook.com

handbook

  1. go https://www.npmjs.com/package/odoojs?activeTab=code
  2. the folder: test_rpc
  3. all files in test_rpc

Usage

init

  1. before use odoojs. should init.
  2. then use api anywhere
import rpc from 'odoojs'
export const baseURL = 'http://127.0.0.1:8069'
export const timeout = 50000
export function messageError(error) {
  console.log('axios error: ', error.data.message)
}
rpc.init({ baseURL, timeout, messageError })

connect odoo, get version_info

import rpc from 'odoojs'
async function test_version_info() {
  const result = await rpc.web.webclient.version_info()
  console.log(result)
}

test_version_info()
// here is function result
const result = {
  server_version: '16.0-20230213',
  server_version_info: [16, 0, 0, 'final', 0, ''],
  server_serie: '16.0',
  protocol_version: 1
}

login odoo

import rpc from 'odoojs'

async function test_login() {
  const db = 'odoojs'
  const login = 'admin'
  const password = 'odoojs'
  const kw = { db, login, password }
  const info = await rpc.web.login(kw)
  const result = await rpc.session_check()
  await rpc.web.logout()
}

model api. CRUD

async function test_model() {
  const ptn = rpc.env.model('res.partner')
  const fields_info = await ptn.fields_get(
    ['name', 'is_company', 'parent_id', 'child_ids', 'category_id'],
    ['name', 'type']
  )
  const records = await ptn.search_read({
    domain: [['name', 'like', 'Admin']],
    fields: ['name', 'ref', 'is_company', 'child_ids', 'category_id']
  })
  const ids = await ptn.search([['name', 'like', 'Admin']])
  const res_id = ids[0]
  const record = await ptn.read_one(res_id, { fields: ['name', 'ref'] })
  const write_result = await ptn.write(res_id, { ref: 'ref_code' })
  const res_id2 = await ptn.create({ name: 'partner_name' })
  const unlink_result = await ptn.unlink(res_id2)
}

api of odoojs model

const partner_obj = rpc.env.model('res.partner')

partner_obj.search_read({domain, fields})
partner_obj.read(res_id, fields)
partner_obj.onchange(...)
partner_obj.create(vals_or_valslist)
partner_obj.write(res_id, vals)
partner_obj.unlink(res_id_or_ids)
partner_obj.name_search
partner_obj.name_get

env api.

rpc.env.model(model_name)
rpc.env.ref(xml_ref)
rpc.treeview(action_id)
rpc.formview(action_id)

api of odoojs viewmodel

// prepare action info and view info
// then

const treeview = rpc.env.treeview(action_id)
await treeview.load_fields()
const result = await treeview.search_read()

const formview = rpc.env.formview(action_id)
await formview.load_fields()
const record = await formview.read(res_id)

const value = {}
const value_display = formview.set_editable({record, value})
const {values} = await formview.onchange(fieldname, value)
const res_id = await formview.commit()

api of odoojs viewmodel one2many field

const formview = rpc.env.formview(action_id)
await formview.load_fields()
const fields_info = formview.fields
const record = await formview.read(res_id)
const relation_fieldinfo = fields_info[relation_field_name]
const o2m_ids = record[relation_field_name]
const relation = rpc.env.relation(relation_fieldinfo)
const o2mtree = relation.tree
const records = await o2mtree.read(o2m_ids)
o2mtree.pick_one
const o2mform = relation.form
const {values} = await o2mform.onchange()
o2mform.commit()
o2mtree.upinsert_one
await formview.onchange(relation_field_name, value)
await formview.commit()
0.0.10-b2

12 months ago

0.0.10-b3

12 months ago

0.0.10-b1

12 months ago

0.0.15

12 months ago

16.0.14

12 months ago

16.0.15

11 months ago

16.0.13

12 months ago

0.0.11

12 months ago

16.0.16

11 months ago

0.0.13

12 months ago

16.0.17

11 months ago

0.0.14

12 months ago

16.0.12

12 months ago

16.0.11

12 months ago

16.0.10

12 months ago

16.0.9

12 months ago

0.0.10

12 months ago

0.0.9-b4

12 months ago

0.0.9-b3

12 months ago

0.0.9-b2

12 months ago

0.0.9-b1

12 months ago

0.0.9

12 months ago

16.0.8

1 year ago

16.0.7

1 year ago

0.0.8

1 year ago

16.0.6

1 year ago

16.0.5

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

16.0.4

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

16.0.3

1 year ago

16.0.2

1 year ago

0.0.3

1 year ago

16.0.1

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago