IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Odoo (ex-OpenERP) Discussion :

Héritage dans Odoo [V8]


Sujet :

Odoo (ex-OpenERP)

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Par défaut Héritage dans Odoo
    Bonjour,

    Je débute dans odoo et j'essaye de réaliser un héritage entre deux classes, mais j'ai un petit problème.
    J'ai créer deux classes dont une des deux hérité de l'autre.
    Voici ma première class :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class zentest(osv.osv):
        _name = "zentest.stagiaire"
                 
        _columns = {
                    'myshare' : fields.char('champ char'), 
                    'myshare3' : fields.text('champ text'),  
                    'myshare6' : fields.date('champ date'),
                    'myshare9' : fields.selection([('1','selection 1'),('2','selection 2'),('3','selection 3'),('4','selection 4')],'champ selection'),              
                    }
        
        _defaults = {
                     'myshare9': '1', 
                     }
    Et celle qui l'hérit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class zentestbase2(osv.osv):
        _name = "zentest.objectherit"
        
        _inherit = 'zentest.stagiaire'
                  
        _columns = {  
                    'floatchamp' : fields.float('champ float',digits=(12,2)), 
                    'integerchamp' : fields.integer('champ integer',size=5),          
                    } 
    
        _defaults = {
                     'floatchamp': '12.34',
                     'integerchamp': '100', 
                     }
    Ensuite dans mon fichier xml qui me permet d'afficher les vues j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <record id="view_zentest" model="ir.ui.view">
                <field name="name">zentest.stagiaire.form</field>
                <field name="model">zentest.stagiaire</field>
                <field name="arch" type="xml">
                    <form string="mon premier machin">
                    			<label for="myshare" string="Champ de saisie"/>
    								<field name="myshare"/>
    								
    							<label for="myshare3" string="Champ Text"/>
    								<field name="myshare3" placeholder="Vous pouvez ecrire un jolie petit message si vous voulez "/>
    							
    							<label for="myshare6" string="Champ Date"/>
    								<field name="myshare6"/>
    							
    							<label for="myshare9" string="Champ de Selection"/>
    								<field name="myshare9"/>														
    	            </form>
                </field>
            </record>
            
            <record id="view_zentest_tree" model="ir.ui.view">
                <field name="name">zentest.stagiaire.tree</field>
                <field name="model">zentest.stagiaire</field>
                <field name="arch" type="xml">
                    <tree string="mon premier machin">
                    			<field name="myshare"/>		                	
    							<field name="myshare3"/>
    							<field name="myshare6"/>
    							<field name="myshare9"/>															
    	            </tree>
                </field>
            </record>
    
           
           	<record model="ir.actions.act_window" id="action_montest">
    			<field name="name">Afficher mon stage</field>
    			<field name="res_model">zentest.stagiaire</field>
          		<field name="view_type">form</field>
          		<field name="view_mode">tree,form</field>
      		</record>
    Et voici l'autre code xml pour ma classe hériter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <record id="view_zentest_objectherit" model="ir.ui.view">
                <field name="name">zentest.objectherit.form</field>
                <field name="model">zentest.objectherit</field>
                <field name="inherit_id" ref="zentest.view_zentest"/>     
                <field name="arch" type="xml">
                	<xpath expr="//field[@name='myshare']" position="after">
                    		<label for="floatchamp" string="float_herit"/>
    								<field name="floatchamp"/>
    							
    							<label for="integerchamp" string="integer_herit"/>
    								<field name="integerchamp"/>			
    				</xpath>
                </field>
            </record>
            
            <record id="view_zentest_objectherit_tree" model="ir.ui.view">
                <field name="name">zentest.objectherit.tree</field>
                <field name="model">zentest.objectherit</field>
                <field name="inherit_id" ref="zentest.view_zentest_tree"/>
                <field name="arch" type="xml">
                    <xpath expr="//field[@name='myshare']" position="after">
                    			<field name="floatchamp"/>		                	
    							<field name="integerchamp"/>																	
    	           	</xpath>
                </field>
            </record>
    
           
           	<record model="ir.actions.act_window" id="action_objectherit">
    			<field name="name">Stage_Herit</field>
    			<field name="res_model">zentest.objectherit</field>
          		<field name="view_type">form</field>
          		<field name="view_mode">tree,form</field>      		
      		</record>
    Donc pour la partie la je crois que je n'ai plus de problème, mais mon plus gros problème viens maintenant.
    Quand ensuite je vais sur mon interface de odoo j'ai bien mes champs herité dans la vue formulaire mais pas dans tree views.
    Après plusieurs test, soit j’obtiens seulement les champs de la vue de hérité mais sans mes nouveaux champs, soit j'ai juste 1 seul de mes nouveaux champs qui apparaît.

    Nom : Odoo_tree1.png
Affichages : 1753
Taille : 29,6 Ko

    Alors quand dans la view formulaire je retrouve tous mes champs que ce soit les nouveaux comme ceux qui sont hérité.

    Nom : Odoo_form2.png
Affichages : 1789
Taille : 38,7 Ko

    J'espère avoir expliquer mon cas le plus clair possible, merci d'avance pour toute réponse.
    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tout d'abord, tu ferais mieux d'utiliser la nouvelle API sur la v8 qui est plus pythonique.

    Ensuite, pour l'héritage, ce qui est important, ce sont les champs _name et _inherit. Si ils ont la même valeur (ou que _name n'est pas défini), alors cela veut dire que tu surcharges l'objet qui est dans _inherit. Sinon, si les valeurs sont différentes, alors tu crées un nouvel objet (dont le nom est la valeur de _name), qui hérite des propriétés de _inherit mais qui va créer une autre table dans la base de données et avoir un comportement à lui.

    Plus d'infos sur la doc Odoo : https://www.odoo.com/documentation/8...ml#inheritance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. héritage dans une requète sql
    Par 080983 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/08/2007, 17h21
  2. empecher héritage dans liste à puce imbriquées
    Par zamanika dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/03/2007, 15h18
  3. Questions sur l'héritage dans Matisse
    Par Cassios dans le forum NetBeans
    Réponses: 8
    Dernier message: 14/03/2007, 23h23
  4. Relations d'héritage dans un SGBD
    Par mawi dans le forum Access
    Réponses: 3
    Dernier message: 18/04/2005, 15h15
  5. Relations d'héritage dans un SGBD
    Par mawi dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 13/04/2005, 23h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo