Janik Vonrotz

Obsidian and Vuepress: include markdown files

I am using Obisidan to manage markdown files and Vuepress to publish them. With the help of a script build.js the Obsidian vault is converted into a publishable format for Vuepress. Obsidian supports embeding markdown files using the ![](file.md) syntax. Here I’ll show you how this feature can be enabled for Vuepress.

Read More...



Weder Freiheit noch Trychler

Für einmal wird es politisch auf meinem Tech-Blog. Es geht um die Freiheitstrychler. Das ist eine scheinbar harmlose Gruppierung von radikalisierten Massnahmengegnern - sie sind mir seit deren Gründung ein Dorn im Auge. Wer das aus der Zukunft liest: Kontext ist die Corona-Pandemie, die zu diesem Zeitpunkt in der Schweiz leider nicht überwunden ist.

Read More...



Ansible: Combine group and host vars

In Ansible the configuration parameters are usually separated into two categories: host and group vars. As their names say these are variables that are either applied to a specific host or a group of hosts. And here is already an edge case. What if we want to configure a variable for group, but then also give the possibility to modify for a specific host. Read on to see my solution.

Read More...



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...



3