Janik Vonrotz

Odoo Development: Group by related field

The Odoo ORM provides a read_group method. Calling this method and passing a domain definition, fieldnames and a groupby fieldname will return a domain recordset grouped by the fieldname. A big drawback is that you cannot pass a relation to a subfield. Importing the itertools library gives us new options to do so.

Read More...



Odoo Development: Create a settings page

Odoo stores all module settings in the res.config.settings model. This model is based on the models.TransientModel class, which means that the settings data is not persisted with this model.

This is just nice to know. I will show how you can create a settings page for your Odoo module and let you know about its limitations.

Read More...



Odoo Development: Enable multi edit

With Odoo 13 an new attribute was introduced to the tree view that enables editing multiple rows at once.

Read More...



Sync Obsidian mobile app with Working Copy git repo

I’m using the Obsidian note taking app for almost anything. Having everything stored in plain text Markdown files makes it easy to sync the Obsidian vault with any file sync provider. However, getting the Obsidian vault on the mobile phone without their syncing service is not so easy. In this guide I will explain how you can sync the Obsidian vault to your phone using git and Working Copy.

Read More...



ZSH scripts with dynamic command completion

ZSH/Bash completion guides sure are confusing. I personally had difficulties wrapping my head around those arbitrary compdef, _describe, _arguments, compadd commands. Moreover, in my case I wanted to complete a script that is placed in multiple folders and should load completion arguments dynamically. Luckily I found a simple solution.

Read More...



Odoo Development: Create a smart button with a counter

Smart buttons help navigating between linked models in Odoo. Creating a smart button requires three components: counter field, compute function, view action and a button box on the view.

Read More...



Odoo Development: Prevent deletion with custom constraint

By default Odoo asks for confirmation if a record is being deleted. Making validations before deletion is up to the developer. I will show how you can add a custom constraint that prevents a record being deleted.

Read More...



Odoo Development: Add archiving functionality

Odoo has a builtin archiving function for any model. Once a record is archived it will not be displayed in any views and selections, but can is easily be unarchived. This functionality ensures that relations must not be removed if linked records is obsolete.

Read More...



Odoo Development: Configurable Kanban state

With the Odoo framework it is pretty easy to create a kanban view that groups and sorts an item by a state field. I’ll show how a kanban view can be added in a few steps.

Read More...



Odoo Development: Add activity button

The activity button is part of the chatter. Every model form can have activities. I will show how you can enable the activity button for your model form using the mixin class.

Read More...



1