Tworzenie modułów
https://www.odoo.com/documentation/10.0/howtos/backend.html
Wprowadzenie
Najprostszy przykład widoku
1) W podkatalogu dodatków (addons lub inny) tworzymy katalog modułu – zawierający trzy pliki:
__init__.py – pusty plik
__manifest__.py:
# -*- coding: utf-8 -*-
{
'name': 'Example [00] - User',
'data': [ 'user_form.xml' ],
'installable': True
}}
user_form.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="contact_form" model="ir.ui.view"> <!-- ir.ui.view - tabela widoków -->
<field name="name">Example 00 - New contact</field>
<field name="model">res.users</field> <!-- model użytkowników -->
<field name="arch" type="xml"> <!-- arch = architektura / definicja formularza -->
<form>
<h1><field name="name" /></h1>
<field name="login" />
</form>
</field>
</record>
</data>
</odoo>
2) Wchodzimy na stronę „Ustawienia” i włączamy tryb developerski:
http://127.0.0.1:8069/web?debug#menu_id=69&action=76
3) Przechodzimy do aplikacji, odświeżamy listę aplikacji i instalujemy moduł, który powinien się pojawić.
4) Z menu developera (drugie od końca „Open Developers Tools”) wybieramy „Otwórz widok”. Odszukujemy po identyfikatorze (contact_form) zdefiniowany w module widok. Po otwarciu można wpisać nowego użytkownika.
Otwarcie widoku z menu
Służy do tego element menuitem:
<!-- widok tabeli -->
<record id="view_account_tree" model="ir.ui.view">
<field name="name">Plan kont - okno</field>
<field name="model">account.account</field>
<field name="arch" type="xml">
<tree string="Plan kont">
<field name="code"/>
<field name="name"/>
<field name="internal_type" invisible="1"/>
</tree>
</field>
</record>
<!-- okno w którym otwieramy widok - wykorzystujemy standardowy model account.account -->
<record id="akcja_otwarcia" model="ir.actions.act_window">
<field name="name">Plan kont - akcja</field>
<field name="res_model">account.account</field>
<field name="view_type">tree</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_account_tree"/> <!-- widok tabeli - zob. wyzej -->
<field name="context">{}</field>
</record>
<menuitem name="Exaple 01" id="menu_example01" sequence="300"
parent="account.menu_finance_entries"
action='akcja_otwarcia' />
Po zainstalowaniu – pojawia się operacja w modue księgowości podmenu Doradca/Księgowy.