2012-07-31 13 views
5

Czy istnieje sposób na zastąpienie domyślnych widoków openerp, rozwijając moduł zamiast robić to ręcznie z Ustawień/Dostosowania/Interfejsu użytkownika/widoków ...?Zastępuje widok domyślny przez moduł niestandardowy?

Używamy OpenERP i dostosowujemy wiele widoków domyślnych (Lista projektów, Lista faktur, Wyszukiwanie faktur itp.) Dodawanie i ukrywanie pól z listy oraz filtrów wyszukiwania/grup, robimy to ręcznie, przeglądając widok z klienta WWW. Czy istnieje sposób na opracowanie modułu, w którym mogę napisać xml dla wszystkich widoków, które chcę spersonalizować, a kiedy zainstaluję ten moduł, wszystkie te widoki (i również akcje okien) zostaną zaktualizowane?

Odpowiedz

6

Można użyć View Inheritance, aby dostosować dowolny widok przy użyciu plików XML.

Korzystając z dziedziczenia, można dodawać, usuwać i zamieniać elementy w dowolnym widoku. Można również zdefiniować nowe pełne widoki, aby zastąpić domyślne zamiast dziedziczenia. Po prostu utwórz nowy moduł z plikami XML, które dostosowują lub zastępują bieżące widoki i ładują ten moduł. Folder modułu powinien zawierać tylko __init__.py, __openerp__.py i pliki XML.

Oto prosty przykład, aby usunąć pole EAN13 z widoku produktu.


__init__.py pusty plik


__openerp__.py:

{ 
    "name" : "View Customization Test", 
    "version" : "1.0", 
    "category" : "Generic Modules/Inventory Control", 
    'depends' : ['product',], 
    "update_xml" : ["product.xml",], 
    "installable": True, 
    "active": True 
} 

product.xml:

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data> 
    <record model="ir.ui.view" id="view_product_form_custom"> 
     <field name="name">product.form.inherit2</field> 
     <field name="model">product.product</field> 
     <field name="inherit_id" ref="product.product_normal_form_view" /> 
     <field name="arch" type="xml"> 
     <field name="ean13" position="replace" /> 
     </field> 
    </record> 
    </data> 
</openerp> 
+0

Dzięki za link, na v7 jest tutaj https://doc.odoo.com/7.0/contribute/05_developing_modules/ –

0

Oczywiście, że istnieje. Możesz stworzyć swój własny moduł i zainstalować go. Zobacz podstawy w official docs. The Technical Memento jest również czymś, co powinieneś mieć pod ręką.

Ułatwia to projektowanie i testowanie w środowisku programistycznym, a następnie kopiowanie i instalowanie w środowisku produkcyjnym.

+0

Tx za doc, bardzo przydatne. Nie wiedziałem, że ten dokument istnieje. – sluc23

0

Z pewnością jest to możliwe (i to jest dobry pomysł, aby to zrobić.) Najpierw należy przeczytać podstaw do view and view inheritance

  • po prostu utwórz folder pod swoimi dodatkami
  • dodatek __init__.py [python module descriptor]
  • Dodaj __openerp__.py [OpenERP Module Descriptor]
  • Utwórz plik xml i wprowadź żądany widok z identyfikatorem XML istniejącego widoku i zarejestruj plik view.xml w __openerp__.py. Zaktualizuj swoją bazę danych za pomocą nowego modułu.
Powiązane problemy