www.numberspeaks.com

BLOG

Odoo – Filling many2many fields

Bellow code will help to manage many2many fields from model class. (0, 0, { values }) link to a new record that needs to be created with the given values dictionary (1, ID, { values }) update the linked record with id = ID (write values on it) (2, ID) remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well) (3, ID) cut the link to the linked record with id = ID (delete the relationship between the two objects but does not …

windows logo

Kill remote desktop session

Remote desktop sometimes gives me this error message “The terminal server has exceeded the maximum number of allowed connections.” It means my previous remote desktop session has been lost or allowed connections are full. I order to solve this, if you don’t mind losing your unsaved work, you will need to kill a session to open a new one, replace 192.168.1.1 by your server’s IP on the following command.

Linux

Odoo 9 Linux bash backup script

Bash backup odoo script is available on GitHub for Odoo 8 and 11. This bash script will help you to backup Odoo database, set a password on the backup file and remove files older than 7 days. You’ll need curl and 7zip linux package to make it work. This example is backing up od11-01 and od11-02 databases. It’s not really optimized with the double compression. BACKUP_DIR=/opt/backup ODOO_DATABASES="od11-01 od11-02" ADMIN_PASSWORD="ODOO_DATABASE_MANAGER_PASSORD" FILE_PASSWORD="ZIP_FILE_PASSWORD" TIMESTAMP=`date +%Y-%m-%d_%H-%M-%S` for DB in ${ODOO_DATABASES} do # create a backup curl -X POST \ -F "master_pwd=${ADMIN_PASSWORD}" \ -F "name=${DB}" \ -F "backup_format=zip" \ -o ${BACKUP_DIR}/${DB}/${DB}.${TIMESTAMP}.zip \ http://localhost:8069/web/database/backup 7z a …

SQL query in Odoo

    Sql query in Odoo model @api.multi def get_all_so(self, name=None): sql = "select * from sale_order where name like ‘%s%’ order by name desc;" % name self.env.cr.execute(sql) res_all = self.env.cr.fetchall() #fetchall() will return an array of dictionaries return res_all @api.multi def get_so(self, name=None): sql = "select * from sale_order where name like ‘%s’ order by name desc;" % name self.env.cr.execute(sql) #fetchone() will return the first element found as dictionary res_one = self.env.cr.fetchone() return res_one print(self.get_all_so(name=’SO2018′)) [{‘name’:’SO2018001′,’partner_id’:’Customer 1′,…},{‘name’:’SO2018002′,’partner_id’:’Customer 2′, …}] print(self.get_so(name=’SO2018001′)) {‘name’:’SO2018001′,’partner_id’:’Customer 1′,…}