Nowe pole w definicji produktu (z użyciem własnego modułu) [Zamknięte]

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

przez
Dr.One
na 19.04.2015 12:11:38

Bardzo 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ż :)

 

 

Dr.One
Dr.One
341
| 5 3 5
Data pytania 08.01.2015, 16:12
0
głos
888 Odsłony

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>

 

Dariusz Żbikowski
Dariusz Żbikowski
1263
| 4 3 3
Data odpowiedzi 09.01.2015, 09:12
1
głos

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 :) :)

 

Dr.One
Dr.One
341
| 5 3 5
Data odpowiedzi 09.01.2015, 09:24
0
głos

Nazwy rekordów są dowolne - byle się nie powielały w systemie.

Dariusz Żbikowski
na 09.01.2015, 10:03

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ć :) )

Dr.One
na 09.01.2015, 17:00

Powodzenia Robercie :)

Janusz Stefaniak
na 09.01.2015, 17:27

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: 08.01.2015, 16:12
Oglądano: 888 razy
Ostatnia aktualizacja: 19.04.2015, 12:11