Witamy!
Forum dla profesjonalistów i entuzjastów systemu Odoo. Dyskusje, porady, opinie, komentarze.
Nowe pole w definicji produktu (z użyciem własnego modułu) [Zamknięte]
- Pytanie został zamknięty z powodu: niezwiązane z tematem lub nieaktualne
przezBardzo proszę, walczę z tematem od kilku godzin i jakoś nie moge sobie poradzić :)
Szperając po sieci natknąłem się na jakies przyklady ale także bez sukcesu.
Zapomniałem dodać, że taka forma mnie najbardziej interesuje. Oczywiście każda inna też :)
Po pierwsze zauważ, że istnieją dwa modele product.template oraz product.product. Pierwszy stanowi szablon dla definiowanych produktów za pomocą drugiego modelu. Model product.product dziedziczy z product.template.
Po drugie zauważ, że produkt jako taki posiada warianty, co najmniej jeden. Wariant produktu to własnie odpowiednik modelu product.product. Wariantem może być np. kolor lub rodzaj obudowy komputera.
Możemy zatem zdefiniowac przykładowo produkt Komputer i jego warianty kolor: biały, czarny obudowa: mała, duża. Będziemy mieli jeden szablon i w efekcie 4 warianty produktu wynikająće z kombinacji koloru i rodzaju obudowy .
Dodając jakieś cechę, czyli pole do produktu, musimy zatem zdecydować najpierw jakie ono ma własności. Czy stanowi cechę szablonu czy też cechę wariantu. Jeśli np. chemy dodać cechę "ilość pamięci" to pytanie czy zależy ona np. od obudowy. Jeśli tak to jest cechą wariantu a nie szablonu.
Przykład modułu:
- Nadpisanie modelu product.template, pole "foo", 32 znaki, wymagane
from openerp.osv import fields, orm
class product_template(orm.Model):
_inherit = 'product.template'
_columns = {
'foo': fields.char('FOO field', size=32, required=True),
}
product_template()
- Utworzenie widoku form oraz tree (o ile zmiana tego jest potrzebna)
<record id='view_product_foo_template_form' model='ir.ui.view'>
<field name="name">product.template.foo.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view" />
<field name="arch" type="xml">
<field name="list_price" position="after">
<field name="foo" />
</field>
</field>
</record>
<record id="product_template_foo_tree_view" model="ir.ui.view">
<field name="name">product.template.foo.tree</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_tree_view" />
<field name="arch" type="xml">
<field name="state" position="after">
<field name="foo" />
</field>
</field>
</record>
Czyli, robiłem dobrze jedynie przypisywałem to do złego modelu ponieważ product_product dziedziczy od product_template a nie odwrotnie ?
Widzę też różnicę w nazwie rekordu."product_template_cośtam_tree_view" dlatego pewnie miałem całą listę błędów przy próbie zainstalowania modułu bo próbowałem modyfikować istniejący.
Wielkie dzięki, dzisiaj bedę testował :)
Dam znać co z tego wyszło :) :)
Własnie zauważyłem, usilnie starałem się zainstalować dwa moduły nie sprawdzając czy nazwy pól się nie nałokładają :) ... no i się nakładały :) ale już poprawiłem i wszystko dziala :) Jutro popracuję nad listami rozwijanymi. Chodzi mi po głowie jeszcze jeden element ale o tym w osobnym poście :) Dziekuję Darku (jesli mogę tak pisać :) )
Bądź na bieżąco
O tym forum
Narzędzia do pytań
Statystyki
Spytał/a: 08.01.2015, 16:12 |
Oglądano: 1663 razy |
Ostatnia aktualizacja: 09.01.2015, 09:28 |
Nazwy rekordów są dowolne - byle się nie powielały w systemie.