<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tutorial on Janik von Rotz</title>
    <link>https://janikvonrotz.ch/tags/tutorial/</link>
    <description>Recent content in Tutorial on Janik von Rotz</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 26 Sep 2022 09:13:47 +0200</lastBuildDate>
    <atom:link href="https://janikvonrotz.ch/tags/tutorial/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Odoo Development: Tree view with custom styles</title>
      <link>https://janikvonrotz.ch/2022/09/26/odoo-development-tree-view-with-custom-styles/</link>
      <pubDate>Mon, 26 Sep 2022 09:13:47 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2022/09/26/odoo-development-tree-view-with-custom-styles/</guid>
      <description>&lt;p&gt;The Odoo UI cannot be customized as easy as reports and websites. Using modules we can easily inject custom CSS styles.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Show last updated date above list view</title>
      <link>https://janikvonrotz.ch/2022/06/08/odoo-development-show-last-updated-date-above-list-view/</link>
      <pubDate>Wed, 08 Jun 2022 10:01:06 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2022/06/08/odoo-development-show-last-updated-date-above-list-view/</guid>
      <description>&lt;p&gt;Odoo runs various reports in the background. Some of these report take a while to finish and therefore seeing the last updated date is important. In a few steps I will show how you can add the last updated date to a list view.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://janikvonrotz.ch/images/odoo-development-last-updated.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Show message dialog</title>
      <link>https://janikvonrotz.ch/2022/02/01/odoo-development-show-message-dialog/</link>
      <pubDate>Tue, 01 Feb 2022 09:21:25 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2022/02/01/odoo-development-show-message-dialog/</guid>
      <description>&lt;p&gt;Some things are easily done in the Odoo framework, others are more difficult. An easy thing such as opening a dialog window with a custom message is more difficult than expected.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Set attributes conditionally</title>
      <link>https://janikvonrotz.ch/2021/11/24/odoo-development-set-attributes-conditionally/</link>
      <pubDate>Wed, 24 Nov 2021 14:06:11 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2021/11/24/odoo-development-set-attributes-conditionally/</guid>
      <description>&lt;p&gt;Attributes such as &lt;code&gt;invisible&lt;/code&gt; can be set on fields, widgets and buttons based on a condition. By using the &lt;code&gt;attrs&lt;/code&gt; attribute the field and condition can be passed to the element. Here is an example: &lt;code&gt;attrs=&amp;quot;{&#39;invisible&#39;: [(&#39;active&#39;, &#39;=&#39;, True)]}&amp;quot;&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But how do we achive this for &lt;code&gt;tree&lt;/code&gt; elements where &lt;code&gt;attrs&lt;/code&gt; is not available?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ansible: Combine group and host vars</title>
      <link>https://janikvonrotz.ch/2021/10/25/ansible-combine-group-and-host-vars/</link>
      <pubDate>Mon, 25 Oct 2021 08:13:01 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/10/25/ansible-combine-group-and-host-vars/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Group by related field</title>
      <link>https://janikvonrotz.ch/2021/09/29/odoo_development_group_by_related_field/</link>
      <pubDate>Wed, 29 Sep 2021 08:24:59 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/09/29/odoo_development_group_by_related_field/</guid>
      <description>&lt;p&gt;The Odoo ORM provides a &lt;a href=&#34;https://www.odoo.com/documentation/14.0/developer/reference/addons/orm.html?highlight=group#odoo.models.Model.read_group&#34;&gt;&lt;code&gt;read_group&lt;/code&gt;&lt;/a&gt; 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 &lt;code&gt;itertools&lt;/code&gt; library gives us new options to do so.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Create a settings page</title>
      <link>https://janikvonrotz.ch/2021/09/14/odoo_development_create_a_settings_page/</link>
      <pubDate>Tue, 14 Sep 2021 16:36:23 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/09/14/odoo_development_create_a_settings_page/</guid>
      <description>&lt;p&gt;Odoo stores all module settings in the &lt;code&gt;res.config.settings&lt;/code&gt; model. This model is based on the &lt;code&gt;models.TransientModel&lt;/code&gt; class, which means that the settings data is not persisted with this model.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Enable multi edit</title>
      <link>https://janikvonrotz.ch/2021/09/14/odoo_development_enable_multi_edit/</link>
      <pubDate>Tue, 14 Sep 2021 13:19:22 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/09/14/odoo_development_enable_multi_edit/</guid>
      <description>&lt;p&gt;With Odoo 13 an new attribute was introduced to the tree view that enables editing multiple rows at once.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Create a smart button with a counter</title>
      <link>https://janikvonrotz.ch/2021/08/26/odoo-development-create-a-smart-button-with-a-counter/</link>
      <pubDate>Thu, 26 Aug 2021 08:29:56 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/08/26/odoo-development-create-a-smart-button-with-a-counter/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Prevent deletion with custom constraint</title>
      <link>https://janikvonrotz.ch/2021/07/26/odoo-development-prevent-deletion-with-custom-constraint/</link>
      <pubDate>Mon, 26 Jul 2021 10:09:50 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/07/26/odoo-development-prevent-deletion-with-custom-constraint/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Add archiving functionality</title>
      <link>https://janikvonrotz.ch/2021/07/26/odoo-development-add-archiving-functionality/</link>
      <pubDate>Mon, 26 Jul 2021 09:58:30 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/07/26/odoo-development-add-archiving-functionality/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Configurable Kanban state</title>
      <link>https://janikvonrotz.ch/2021/07/14/odoo-development-configurable-kanban-state/</link>
      <pubDate>Wed, 14 Jul 2021 13:32:44 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/07/14/odoo-development-configurable-kanban-state/</guid>
      <description>&lt;p&gt;With the Odoo framework it is pretty easy to create a kanban view that groups and sorts an item by a state field. I&amp;rsquo;ll show how a kanban view can be added in a few steps.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Odoo Development: Add activity button</title>
      <link>https://janikvonrotz.ch/2021/07/14/odoo_development_add_activity_button/</link>
      <pubDate>Wed, 14 Jul 2021 10:07:47 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/07/14/odoo_development_add_activity_button/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setup GoCD environment using docker</title>
      <link>https://janikvonrotz.ch/2018/11/06/setup-gocd-environment-using-docker/</link>
      <pubDate>Tue, 06 Nov 2018 12:11:01 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2018/11/06/setup-gocd-environment-using-docker/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://www.adnovum.ch/&#34;&gt;AdNovum&lt;/a&gt; we are running &lt;a href=&#34;https://www.gocd.org/&#34;&gt;GoCD&lt;/a&gt; for automating the continuous delivery (CD) of our software products. GoCD has become the de facto standard for running CD pipelines.&lt;/p&gt;&#xA;&lt;p&gt;In this post I will give you a short introduction into GoCD using &lt;a href=&#34;https://www.docker.com/&#34;&gt;docker&lt;/a&gt;. We are going to setup a GoCD environment consisting of a server, an agent and deployable material. Further we are going to configure a deployment pipeline and build an node.js application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Build a Java 3-tier application from scratch - Part 1: Introduction and project setup</title>
      <link>https://janikvonrotz.ch/2015/03/15/build-a-java-3-tier-application-from-scratch-part-1-introduction-and-project-setup/</link>
      <pubDate>Sun, 15 Mar 2015 16:57:38 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2015/03/15/build-a-java-3-tier-application-from-scratch-part-1-introduction-and-project-setup/</guid>
      <description>&lt;p&gt;Welcome to my first post of the Java 3-tier application tutorial. In this tutorial I will tell show how you can develope a Model-View-Controller based Java desktop and server application using the latest tools and frameworks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Superb Java development with Gradle, Hibernate, FlywayDB, JavaFX and Eclipse – Part 2</title>
      <link>https://janikvonrotz.ch/2015/03/05/superb-java-development-with-gradle-hibernate-flywaydb-javafx-and-eclipse-part-2/</link>
      <pubDate>Thu, 05 Mar 2015 17:01:57 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2015/03/05/superb-java-development-with-gradle-hibernate-flywaydb-javafx-and-eclipse-part-2/</guid>
      <description>&lt;p&gt;As promised here&amp;rsquo;s the sequel to my last tutorial: &lt;a href=&#34;https://janikvonrotz.ch/2015/03/03/superb-java-development-with-gradle-hibernate-flywaydb-javafx-and-eclipse-part-1/&#34; title=&#34;Superb Java development with Gradle, Hibernate, FlywayDB, JavaFX and Eclipse – Part 1&#34;&gt;Part 1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This time we create a basic rich application with JavaFX. It will be quite simple, but still a good example to show how you can structure a complex project according to MVC.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Let’s write a Laravel application - Sortable table</title>
      <link>https://janikvonrotz.ch/2015/02/04/lets-write-a-laravel-application-sortable-table/</link>
      <pubDate>Wed, 04 Feb 2015 14:33:28 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2015/02/04/lets-write-a-laravel-application-sortable-table/</guid>
      <description>&lt;p&gt;I want to show how you can create a sortable table and reuse the code with any model you want to display.&#xA;As we don&amp;rsquo;t want to write any function or definition twice or more, let&amp;rsquo;s extend the BaseController class with the function to get sorted items from a variable model.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
