Własne moduły. [Zamknięte]

To pytanie zostało zamknięte z powodu: niezwiązane z tematem lub nieaktualne

przez
Dr.One
na 19.04.2015 12:12:24

Od chwili gdy zacząłem pracować z OpenERP/Odoo miałem potrzebę dodania kilku elementów do produktu. Udało mi się to z wersją 7.0.

Wersja 8.0 jednak nie jest tak przyjazna - przynajmniej jak narazie.

Czy aż tak różnią się między sobą ?

Nie są to oczywiście jakieś ogromne zmiany. Poprostu kilka dodatkowych pól. Postępując zgodnie z opisami na stronie Odoo próbuję zbudować od podstaw moduł dodający pola do "Product" ale z jakiegoś powodu nic się nie pojawia w widoku .... za chiny nie wiem dlaczego :)

Sprawdziłem wszystko, klikam na Install, mieli mieli, pojawia się "Upgrade","Uninstall" czyli jakby się zainstalowało ale żadna ze ztron nie została zmieniona :( 

Czy to może dlatego, że 8.0 używa templates ?

Przeglądam strukturę XML'a, faktycznie wygląda nieco inaczej, wprowadzam zmiany, Podzielę się spostrzeżeniami jeśli będzie działać :)

Dr.One
Dr.One
341
| 5 3 5
Data pytania 29.12.2014, 13:44
0
głos
1834 Odsłony

Częściowo działa aczkolwiek nie tak jak sie spodziewalem, mianowicie dodane pola nie sa widoczne w głównym oknie produktu natomiast po wejściu inną drogą (przesunięcia między-magazynowe) pojawiaja się i nie pozwalają na kontynuację jeśli się ich nie uzupełni.

Dr.One
na 02.01.2015, 16:41

Nie rozumiem! przykład proszę!

Dariusz Żbikowski
na 02.01.2015, 21:25

Jeśli bezpośrednio wchodzę na menu product to tego nie widzę, natomiast jeśli wejdę w przesunięcia magazynowe otworzę któreś z wykonanych i kliknę na produkt wtedy rozwija się lista pól które dodałem :) Taka ciekawostka. Działa ale jakby w zupełnie osobnym - dodatkowym widoku.

Dr.One
na 05.01.2015, 14:58

Prawdopodobie spowodowane jest to tym, że musisz odróżnić dwie mocno ze sobą powiązane klasy product.product oraz product.template. Jedna z nich dziedziczy z drugiej, jednak widoki mogą być akurat zdefiniowane dla tej drugiej niż się spodziewasz.

Dariusz Żbikowski
na 05.01.2015, 15:03

Tak, z pewnoscią tak własnie jest :) Przeglądałem kod i doszedłem do tego wniosku :)

Dr.One
na 05.01.2015, 15:25

Teraz usilnie staram się dodać pole, w trybie "developers mode" definiując nowe pole w widoku product.template.product.form o nazwie x_support. Pole sie dodało ale nie mogę go umieścić w samej formie. Klikam update i nic sie nie dzieje :( Wczesniej wyświetlił mi sie błąd xml'a więc przekopałem jeszcze raz parametry pola, zmieniłem, komunikat już się nie pojawił ale nie mogę go dodać :( Ponadto na liście rozwijanej dostepnych pól mam teraz dwa wpisy x_support ... jak można je usunąć ?

Dr.One
na 05.01.2015, 15:30

Definicje pól (plik py): from openerp.osv import fields, osv class product_product(osv.osv): """Modified product.product """ _inherit = "product.product" _columns = { #------------------- rozwijana lista obudów ------------ 'ad_size': fields.selection([('RACK','Rack'),('USFF','Ultra small form factor'), ('SFF','Small form factor'),('DT','Desktop'),('CMT','Mini tower'), ('MT','Tower')], 'Case size', required=True), #--------------- rozwijana lista procesorów ----------- 'ad_proc':fields.selection([('CM','Celeron M'),('CL','Celeron'),('CD','Celeron D'), ('P4','Pentium 4'),('PD','Pentium D'),('DC','Dual Core'),('C2D','Core 2 Duo'), ('C2Q','Core 2 Quad'),('DX','Xeon Dual'),('QX','Xeon Quad'),('AT','Athlon'), ('SM','Sempron'),('DU','Duron')], 'Processor type'),} #------------ więcej rozwijanych list :) ----------------- ... def my_method(self, cr, uid, ids): """Description of my_method """ #do your actions here def existing_method(self, cr, uid): """ Override existing method, use same parameters as original """ # do some action res = super(product_product, self_).existing_method(cr, uid) # do some more actions return res #might be modified ////////////////////////////////////////////////////////////////////////////// a tak wygląda lista pól w xml'u: base.product.defaults.product.form product.product ... i te pola widoczne są w widoku product.product, nie widać ich w product.template. Próbowałem zmienić model na product.template w linii model ale nie pomaga :) i myślę, ze poprostu mylę jeszcze co jest czym :) Szkoda, że nie mogę dołączyć bezpośrednio zrzutów ekranu, byłoby łatwiej :)

Dr.One
na 05.01.2015, 16:32

Dosyć ciężko czyta się ten kod w komentarzu. Może przedstaw dokładnie problem w nowym wątku. Do tekstu możesz dodać ew. linki do obrazów.

Dariusz Żbikowski
na 05.01.2015, 17:23

Morduję się z tym ale jak narazie bezskutecznie. Ponieważ moja wiedza jest jak narazie bardzo skromna próbuję wykorzystać istniejące moduły, analizując je powoli odkrywam "co, po co i dlaczego" chociaż tego rodzaju sposób jest bardzo nie ekonomiczny. :) Moduł który zbudowałem działa ale dodawane pola znajdują sie nie tam gdzie bym chcial je zobaczyć. Zmieniając zawartość pliku nazwa.py mam na myśli odwołanie gdzie i do jakiego widoku miało by to byc przypisane osiągnąłem jedynie "mały crash" i nic więcej :( potrzebuję jakiegoś najprostszego przykładu jak dodać własne pole i żeby pokazywało sie ono w widoku product.template a nie w product.product. Albo raczej w obiekcie :) Wszystkie dodane przeze mnie pola mogę zobaczyć jedynie wtedy gdy wejdę do "Product variants" i wybiorę z listy któryś z istniejących. Wtedy dopiero wyświetla się to co dodałem. adres wygląda tak: /web#id=2&view_type=form&model=product.product&menu_id=457&action=166 w tym przypadku. W przypadku gdy wchodzę do products z menu adres wygląda nieco inaczej: /web#id=2&view_type=form&model=product.template&menu_id=452&action=168 z czego jasno wynika, ze to dwa różne widoki.

Dr.One
na 08.01.2015, 15:22

Morduję się z tym ale jak narazie bezskutecznie. Ponieważ moja wiedza jest jak narazie bardzo skromna próbuję wykorzystać istniejące moduły, analizując je powoli odkrywam "co, po co i dlaczego" chociaż tego rodzaju sposób jest bardzo nie ekonomiczny. :) Moduł który zbudowałem działa ale dodawane pola znajdują sie nie tam gdzie bym chcial je zobaczyć. Zmieniając zawartość pliku nazwa.py mam na myśli odwołanie gdzie i do jakiego widoku miało by to byc przypisane osiągnąłem jedynie "mały crash" i nic więcej :( potrzebuję jakiegoś najprostszego przykładu jak dodać własne pole i żeby pokazywało sie ono w widoku product.template a nie w product.product. Albo raczej w obiekcie :) Wszystkie dodane przeze mnie pola mogę zobaczyć jedynie wtedy gdy wejdę do "Product variants" i wybiorę z listy któryś z istniejących. Wtedy dopiero wyświetla się to co dodałem. adres wygląda tak: /web#id=2&view_type=form&model=product.product&menu_id=457&action=166 w tym przypadku. W przypadku gdy wchodzę do products z menu adres wygląda nieco inaczej: /web#id=2&view_type=form&model=product.template&menu_id=452&action=168 z czego jasno wynika, ze to dwa różne widoki.

Dr.One
na 08.01.2015, 15:22

no i jeszcze powielił mi się wpis :) Przepraszam

Dr.One
na 08.01.2015, 15:23

Otwórz nowy wątek, powiedzmy o tytule "Nowe pole w definicji produktu" to przedstawię jak je zdefiniować.

Dariusz Żbikowski
na 08.01.2015, 15:34

Zmuszony byłem zainstalowac wszystko od początku, tym razem usunąłem istniejącą(8.0) wersję ponieważ miałem z nią sporo problemów, więc żeby upewnić sie że tym razem nie pozostało nic co mogło by szwankować wykasowałem wsio !

Po zainstalowaniu nowej kopii, zainstalowaniu wszystkich wymaganych modułów przyszedł czas na załadowanie utworzonych wcześniej kopii list użytkowników, magazynów ........ i znowu problem, żadna z wyeksportowanych list nie chce się załadować oprócz użytkowników !

Tak to wygląda : "No matching record found for external id '__export__.stock_location_397' in field 'View Location' at row 57"

Jeszcze dobrze nie zacząłem używać a juz tracę cierpliwość :)

Co może być powodem takiego zachowania programu przecież podczas wprowadzania nowych magazynów nie modyfikowałm niczego co mogło by spowodować ten problem :( ?

Jak pisałem wcześniej miałem problem z systemem, po utworzeniu sporej ilości magazynów (spora ilość spowodowana tym, że chcąc ułatwić sobie i uzytkownikom pracę, wprowadziłem dla każdego miejsca paletowego jakoby osobny magazyn) zdaję sobie sprawę że to może byc nie najlepszy sposób ale nikt mi nie wskazal lepszego, przy okazji w ten sposób łatwiej jest wyszukiwać produkty lub sprawdzać co w danej lokalizacji sie znajduje ponieważ na jednej palecie może znajdować sie kilka różnych probuktów.

Jeśli w Odoo 8.0 istnieje możliwość rozwiązania tego problemu inaczej/łatwiej .... proszę o podpowiedź jak :)

Jeszcze raz podkreślam, musi być magazyn główny z podziałem na miejsca paletowe. Nie do końca rozumiem na czym polega różnica pomiędzy Warehouses i Localtions (Warehouses to fizyczne miejsca składowania - magazyny, a locations ? jak to rozumieć ?

Jeśli np wprowadzę 1 magazyn i 500 locations bo tyle ich potrzebuję to jak robić ruchy pomiędzy lokacjami ? Tak samo jak pomiędzy magazynami ?

Jesli natomiast wprowadzę 500 magazynów zamiast tego ? Będzie jakaś różnica w np module sprzedaży ?
Na pewno będzie łatwiej dla obsługujących magazyn.

W tej chwili mam do obsługi inny program który napisałem dość dawno temu i w nim mam magazyn podzielony w taki własnie sposób.

Każda lokalizacja ma swój KOD, np rząd, kolumna, poziom i w praktyce wygląda to tak: rząd 1-8 kolumna A-N poziom 1-3. Pozwala to na bardzo szybka lokalizację produktu w magazynie.(w wyszukiwarce wklepuje powiedzmy nazwę i model i natychmiast dostaję informację gdzie tego szukać, podobnie ze sprawdzaniem co w danym miejscu mam, wtedy w wyszukiwarce wprowadzam lokalizację i od razu wiem co tam znajdę.)

Jeśli teraz zrobie to samo w Odoo 8.0 czyli wprowadzę dla każdego miejsca (1A1, 1A2, 1A3, 2A1, 2A2, 2A3  itd) będę miał około 500 magazynów.!!!

Mam wrażenie, że Odoo ma z taka ilością mały  problem, czy może spotkaliście się z jakimś limitem jeśli chodzi o ilość magazynów ?

Dr.One
Dr.One
341
| 5 3 5
Data odpowiedzi 02.01.2015, 16:16
0
głos

Robercie, jeśli będziesz nieco bardziej konkretny postaram się pomóc. Jednak, jak na razie, przedstawiasz swoje problemy zbyt ogólnie. Z tego, co piszesz, wyczuwam, że masz problem z "przestawieniem się" na filozofię działania Odoo. Kopie list użytkowników, magazynów itp. nie będą Ci dobrze działały jeśli nie zrozumiesz konstrukcji i sposobu działania tabeli ir.model.data. To głównie w niej (ale nie tylko) przechowywane są wszelkie zależności pomiędzy danymi i modułami. Są dane które można importować jako CSV, np. kontrahenci, ale są także inne, których nie da się zachować jako prosty backup określonej tabeli.>>>>>>>>>>>>>Teraz odnośnie magazynów i lokalizacji. >>>>>>>>>> Odoo faktycznie wykonuje wszelkie operacje magazynowe (tj. przesunięcia) TYLKO I WYŁĄCZNIE pomiędzy lokalizacjami. Magazyn jako taki, jest pojęciem nadrzędnym grupującym lokalizacji. Półki, korytarze, miejsca to nic innego tylko lokalizacje w JEDNYM i TYM SAMYM magazynie. Do zarządzania przepływem towarów służą w v8 definicje reguł Push i Pull. Za ich pomocą definiujesz, że np. towar ABC ma zostać ulokowany po zakupie w korytarzu XY i na półce Z. To zrobi za Ciebie automat! Ruchy pomiędzy lokalizacjami robi się zwykle tylko w szczególnych przypadkach, kiedy to jest naprawdę wymagane.>>>>>>>> Zauważ, także że w Odoo nie musisz (choć możesz) wskazywać dokładnie z której półki masz pobrać towar, to zrobi za ciebie twoja własna, stosowna reguła "Pull" (ew. standardowa).>>>>>>>>> Podsumowując>>>>>>> musisz raczej zmienić schemat myślenia, który usiłujesz wdrożyć w swoim Odoo. Zrobisz to najprawdopodobniej równie skutecznie tylko ..... musisz "złapać" jak to robi Odoo. >>>>> Zacznij od najprostszych przykładów, tylko kilka produktów, 2-3 lokalizacje, 1 MAGAZYN!!!. WIELE reguł Push i Pull!!!! W trakcie testów zmieniaj priorytety tych reguł!!!

Dariusz Żbikowski
na 02.01.2015, 21:21

Szczęsliwego Nowego Roku !!!!! Faktycznie, trochę mnie zdezorientowała ta zmiana. Ponieważ w wersji 7.0 już jako tako byłem zorientowany muszę zacząć od początku. Skupmy się więc na temacie MAGAZYN/LOKALIZACJE. Jak pisałem wcześniej aby ułatwić sobie i operatorom magazynu wykonywanie przesunięć wewnątrz-magazynowych, planuję dla każdego miejsca paletowego osobny magazyn. Czy zamiast tworzyć tak wielką ilość magazynów, czy zamiast magazynów utworzyć lokalizacje ? Jeśli zaś chodzi o reguły Push/Pull ... przyznaję się bez bicia ... nie wiem o co chodzi :) Potrzebuję nieco więcej informacji cóż takiego to i do czego :)

Dr.One
na 05.01.2015, 09:06

Moim zdaniem miejsca paletowe to własnie są lokalizacje. O regułach Pull i Push przeczytaj najpierw w dokumentacji, którą polecałem (lub ogólnie znajdziesz coś w internecie). Krótko pisząc, reguły Pull to reguły tworzenia i przepływu zapotrzebowań. Reguły Push to reguły umieszczania(przesuwania) zakupionych towarów w(do) określonych lokalizacjach. Na poczatek obejrzyj i przeanalizuj te, które są już gotowe (patrz Ścieżki w magazynie).

Dariusz Żbikowski
na 05.01.2015, 14:23

Po zapoznaniu się z dokumentacją, zdecydowaliśmy zastosować podstawowe magazyny i loikalizacje w magazynach zgodnie z sugestią :) Narazie wszystko OK

Dr.One
na 07.01.2015, 10:47

W wersji 8 używany jest inny system raportów (Qweb zamiast RML) oraz wprowadzono nowe API. Możliwe jest jednak działanie w starym API. Najlepiej przedstaw detale swojego problemu, co i jak usiłujesz pokazać. Sprawdź jeszcze czy na pewno moduł ma status "zainstalowany" (widać to po kolorze na liście modułów).

Dariusz Żbikowski
Dariusz Żbikowski
1263
| 4 3 3
Data odpowiedzi 30.12.2014, 10:37
0
głos

Twoja odpowiedź

Spróbuj dać znacząca odpowiedź. Jeśli chcesz wypowiedzieć się na temat pytania lub odpowiedzi, po prostu użyj narzędzia komentowania. Proszę pamiętać, że zawsze można zrewidować swoją odpowiedź - nie ma potrzeby odpowiadać na to samo pytanie dwa razy. Także prosimy, nie zapomnij zagłosować - to naprawdę pomaga wybrać najlepsze pytania i odpowiedzi!

Zadaj Pytanie

Bądź na bieżąco

O tym forum

Forum dla profesjonalistów i entuzjastów systemu Odoo. Dyskusje, porady, opinie, komentarze.

Przeczytaj wytyczne

Narzędzia do pytań

3 obserwujący

Statystyki

Spytał/a: 29.12.2014, 13:44
Oglądano: 1834 razy
Ostatnia aktualizacja: 19.04.2015, 12:12