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.