wtorek, 10 września 2013

Menu w OpenERP 7.0

,
Załóżmy, że napisaliśmy nasz wspaniały nowy moduł dla OpenERP. Kod w Pythonie wygląda przyzwoicie i chcielibyśmy dać użytkownikom możliwość korzystania  z nowo powstałej funkcjonalności.
Użytkownik przyzwyczajony jest zazwyczaj, że po instalacji nowego modułu pojawi się menu związane z nową funkcjonalnością, która wykorzystuje właśnie nasz nowy moduł.
Przed dystrybucją takiego modułu, programista musi zadbać o poprawnie skonfigurowane menu.
W tym poście przedstawię sposób budowania menu od strony użytkownika. W kolejnych postach będę po kolei przedstawiał informacje, które będą tworzyły menu dla konfiguracji takiego modułu.

Gdy programista staje przed koniecznością utworzenia menu w OpenERP dla napisanego modułu, staje przed koniecznością stworzenia dwóch typów elementów:

menuitem - element menu mający bezpośredni skutek w samym menu OpenERP,

record - element odwołujący się do modelu ir.action.act_window, tworzący akcję, która "mówi" co OpenERP ma wyświetlić, gdy zostanie kliknięte menuitem odwołujące się do danej akcji.

W chwili obecnej może wydawać się to trochę zawiłe ale myślę, że przedstawiony przykład powinien rozwiać te obawy.

Niech nasz przykładowy moduł nazywa się "Students" i chcielibyśmy, żeby był dostępny poprzez przejście przez menu Sales -> After Sale Services -> Students. 

Kilka uwag:
A. Menu Sales instalowane jest domyślnie dla modułów CRM i/lub Sales
B. Menu After Sale Services domyślnie instalowane jest przez moduł crm_helpdesk
C. Menu Students jest elementem "aktywnym" odwołującym się do widoku tree naszego modułu - innymi słowy - kliknięcie w pozycję Students - umożliwia pracę z naszym nowo powstałym modułem.

Cały nasz kod związany z obsługą menu w pliku xml modułu wygląda tak:


<menuitem id="menu_sprzedaz" name="Sales" />
<menuitem id="menu_after_sale_services" name="After Sale Services" parent="menu_sprzedaz" />;
<menuitem id="menu_students" name="Students" parent="menu_after_sale_services" />;



Pierwsza linia odwołuje się do menu najwyższego poziomu- Sales. Dla naszego menu jest to root menu. Pytanie jakie nasuwa się w tym miejscu - skąd programista ma wiedzieć jakie nazwy (atrybut name) są przypisane do menu głównego?
Odpowiedź jest bardzo prosta - należy spojrzeć w katalogu Addons na źródła głównego modułu dla menu (w tym przypadku Sales lub crm). W tych plikach konfiguracyjnych odnajdziemy prawidłową nazwę root menu.
W drugiej linii w naszym testowym przypadku podmenu After Sale Services pochodzi już z modułu crm_heldpesk i tam należy odszukać definicję tego menu (prawidłowy parametr name) .

Każde menu bez podpiętej akcji pod to menu jest "nieklikalne". Oznacza to, że możemy rozwijać daną podgałąź ale do niej samej nie jest podpięta żadna czynność wyświetlenia listy elementów.

0 komentarze to “Menu w OpenERP 7.0”

 

peterson's blog Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger