Dodawanie elementów z innego modelu [Zamknięte]

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

przez
Dr.One
na 19.04.2015 12:06:47

Potrzebuję wyświetlić element z innego modelu, a dokładniej w modelu "stock" istnieje w nim pole o nazwie location_id (nazwa magazynu). Nie mogę dodać tego pola bo nie wiem jak dodać/za importować go do mojego modułu/widoku.

Mam nadzieję, że dobrze to określiłem ;)

Dr.One
Dr.One
341
| 5 3 5
Data pytania 31.01.2015, 17:39
0
głos
583 Odsłony

Rozwiązałem niektóre z moich problemów, wciąż jednak nie mogę zrozumieć dlaczego jeśli dodaję pole do istniejącego widoku nie pokazuje mi wartości zapisanej w tym polu.

Na przyklad:

Umieściłem w widoku "stock_move_form" pole "product_qty", teoretycznie wartość w tym polu powinna pokazywać istniejącą ilość produktu, niestety nie pokazuje. DLACZEGO ?

Jeśli system dopuszcza umieszczenie pola (znajduje sie ono na liście pól dla danego widoku) powinien być w stanie tę wartość pokazać prawda ?

Jeśli dla danego widoku nie zostało zdefiniowane pole nie pozwoli go dopisać wyświetlając błąd.

Dlaczego więc w tym wypadku nie wyświetla zawartości tego pola ?

Mam nadzieję, że rozumiecie o co mi chodzi ? :)

Podpowiedzcie, gdzie tkwi błąd ?

Dr.One
Dr.One
341
| 5 3 5
Data odpowiedzi 24.02.2015, 10:34
0
głos

pole "product_qty" w modelu stock.move nie ma związku z generalną ilością produktów w magazynie

Janusz Stefaniak
na 24.02.2015, 19:55

Nie mówimy o ogólnej ilości danego produktu w magazynie/magazynach tylko w określonej lokalizacji. Zdaję sobie sprawę, że ogólna ilość może się znacząco różnić od ilości w ściśle określonym miejscu, chyba że to jedyne miejsce :) w którym się dany produkt znajduje :)

Dr.One
na 24.02.2015, 21:22

pole "product_qty" w modelu stock.move oddaje, mniej więcej, akurat przesuwaną ilość produktu, i nie ma żadnego związku z ilością w danej lokalizacji.

Janusz Stefaniak
na 24.02.2015, 21:40

Usilnie staram się znaleźć jakiś sposób na pokazanie tej wartości, okazuje sie jednak, że to nie takie proste. Nawet jesli chciałbym pobierać te dane bezpośrednio z bazy ...... za chiny nie mogę ich zlokalizować. Przekopalem chyba wszystkie możliwe miejsca i ani śladu ... :(

Dr.One
na 25.02.2015, 10:32

Osobiście niezbyt rozumiem której wartości szukasz. Jeśli szukasz globalnej ilości to w szukaj w modelu product.product (w module stock). Jeśli szczegółowych danych to szukaj w modelu stock.quant.

Dariusz Żbikowski
na 25.02.2015, 10:49

Hej Darku, pomyślałem ... usunę zdefiniowane pole stock_id i location_id z głównego widoku produktu i w to miejsce wstawię nowe pole które będzie pokazywało aktualną lokalizację wraz z ilością .... ale tak jak sobie to umyślilem nie chciało działac. Wróciłem więc do wcześniej rozpoczętego tematu importowania danych z innego modelu. Podoba mi sie przykład który pokazałeś, działa zgodnie z oczekiwaniami (mam na myśli zliczanie ilości w lokalizacjach) czy mógłbym jeszcze prosić o lekkie skomentowanie na potwierdzenie moich przemyśleń o konstrukcji i sposobie dziania ? Co skąd i dlaczego ....

Dr.One
na 10.03.2015, 15:04

Przypuszczam, że potrzebne ci pole typu feilds.related, przeanalizuj dokumentację (nowe lub stare api) i przykłady w kodzie, np. coś w stylu (dość złożone, stare api, pochodzi z stock.py):

'location_name': fields.related('location_id', 'complete_name', type='char', string='Location Name', store={
                                                            'stock.location': (_get_location_change, ['name', 'location_id', 'active'], 20),
                                                            'stock.inventory.line': (lambda self, cr, uid, ids, c={}: ids, ['location_id'], 20),}),

lub nieco inny, drugi przykład (z tego samego pliku):

        'product_id': fields.related('move_lines', 'product_id', type='many2one', relation='product.product', string='Product'),

Dariusz Żbikowski
Dariusz Żbikowski
1263
| 4 3 3
Data odpowiedzi 31.01.2015, 20:58
0
głos

Oczywiście pierwsze co spróbowałem to dodać tę linię do py i pole do xml'a :( niestety od razu błąd serwera. :) Naiwnie myślałem że zadziała :)

Dr.One
na 31.01.2015, 21:16

Jak napisałem, przykład dość złożony, store można ew. wywalić całkiem, jednak .... poczytaj i pokombinuj :)))

Dariusz Żbikowski
na 31.01.2015, 21:25

Dodałem drugi przykład, chyba bardziej będzie Ci pasował.

Dariusz Żbikowski
na 31.01.2015, 21:32

OK jak to się ma do wyciągnięcia elementu z innego modelu ? Jeszcze nie bardzo rozumiem filozofię tego API. Powoli co prawda zaczynam to łapać ale ...... powoli ;) Ale nic to ..... nie zniechęcamy się :) jedziemy dalej :)

Dr.One
na 01.02.2015, 11:52

W końcu po kilku godzinach "walk" cos jednak zaczęło mi tu działać. Jeszcze nie tak jak bym tego chciał ale zawsze .... Doszedłem jak wstawić piękne "buttony", doszedłem także jak wyświetlić element z innego modelu. Wciąż nie jest doskonale, na przykład chciałbym na buttonie ikonkę i np wartość wybranego pola (location_id) wszystko mi się rozjeżdża. Przekopałem pół internetu, znalazłem opis jak powinien wyglądać "Smart button" .... ale wciąż nie mogę uzyskać zadowalającego efektu. :(

Dr.One
na 01.02.2015, 21:12

Jeśli chodzi o dodanie samego pola z innego modelu, wystarczyło dopisać tę linę: 'code': fields.many2one('stock.location', 'Location'), Nie jest to jednak najlepsze rozwiązanie ponieważ to dodaje pole a nie jego istniejącą wartość. Jak to zrobić aby pokazywana była jedynie zapisana w tym polu informacja ? Czy trzeba dodać jakiś parametr ? W chwili uruchomienia "edycji" rozwija się pole wyboru a tego nie potrzebuję :(

Dr.One
na 01.02.2015, 23:09

Ciekawostką jest, ze pole utworzone pobiera dane z modelu stock, kiedy edytuję rekord mogę wybierać istniejące i dodawać nowe wpisy na listę ale nie wiem jeszcze jak się zachowa informacja o lokalizacji w przypadku przesunięcia między magazynami.

Dr.One
na 02.02.2015, 13:24

Kolejna sprawa to czy kiedy kliknę na lokalizację w okreslonym magazynie czy powinienem zobaczyć na liście co się tam aktualnie znajduje ?

Dr.One
na 02.02.2015, 13:25

poszukaj w "Więcej"

Dariusz Żbikowski
na 04.02.2015, 14:44

Ponieważ nowy moduł jest nowym API postanowiłem spróbować podpiąć pole "location_id" i wrzucić do niego informację o lokalizacji i ilosci :) Jak to się pieknie zazębiło :)

Dr.One
na 10.03.2015, 13:32

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: 31.01.2015, 17:39
Oglądano: 583 razy
Ostatnia aktualizacja: 19.04.2015, 12:06