It is currently Sat Feb 11, 2012 8:34 pm

All times are UTC + 2 hours




Post new topic Reply to topic  [ 12 posts ] 
Author Message
 Post subject: personalisation d'un Tree
PostPosted: Wed Mar 03, 2010 3:35 pm 
Offline

Joined: Tue Feb 23, 2010 10:51 am
Posts: 57
Bonjour,

J'aimerais personnaliser une vue one2many.

voici mon code python

Code:
class offre_produits(osv.osv):
   _name = "offre.produits"
   _description = "Produits contenus dans l'offre"
   _table ="offre_produits"
   _columns = {
        'produit': fields.many2one('product.product', 'Produit'),
      'nbr_h': fields.integer('Heures'),
   
    } 
offre_produits()


class offre(osv.osv):
   _name = "offre.offre"
   _description = "Offre"
   _table ="offre_offre"
   _columns = {
        'nom': fields.char('Nom', size=128, required=True),
      'client': fields.many2one('res.partner', 'Client'),
      'projet_parent': fields.many2one('project.project', 'Projet'),
      'date_creation': fields.date('Date de creation'),
      'description':fields.text('Description'),
      'produits':fields.one2many('offre.produits','offre_id','Produits'),
   
    } 
offre()



j'ai créé une vue comme décris ci-dessous:

Code:
<notebook colspan="2">

<page string="Produits">

            <field name="produits" nolabel="1">
               <tree string="Produits" editable="top">
                     <field name="produit">
                        <tree>
                           <field name="name"/>
                           <field name="list_price"/>
                        </tree>
                     </field>
                     <field name="nbr_h"/>
               </tree>
   </field>
                     
</page>
                  
</notebook>



j'ai fait de même dans la vue liste pour l'objet offre_produits

mais au final il n'affiche que 2 colones: le nom du produit et le nombre d'heure (champs nbr_h). Il n'y a pas de colone "list_price"!

Quelqu'un pourrait-il m'expliquer mon erreur?


merci


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 03, 2010 4:48 pm 
Offline

Joined: Fri Nov 21, 2008 9:56 am
Posts: 3061
Location: Lotharingie
pas de 'list_price': field......, dans colums


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 03, 2010 5:49 pm 
Offline

Joined: Tue Feb 23, 2010 10:51 am
Posts: 57
non mais ce champ existe dans l'objet produit (product.product)

J'aimerais pouvoir y accéder et pouvoir l'afficher dans la vue via cette classe.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 03, 2010 8:12 pm 
Offline

Joined: Fri Nov 21, 2008 9:56 am
Posts: 3061
Location: Lotharingie
ajouter en dessous de class nom_de_la_classe_concernee :
_inherit = 'product.product'
pour heriter des objets qui composent product.

attention a l'indentation pour :
Code:
_columns = {
        'produit': fields.many2one('product.product', 'Produit'),
      'nbr_h': fields.integer('Heures'),

et
Code:
_columns = {
        'nom': fields.char('Nom', size=128, required=True),
      'client': fields.many2one('res.partner', 'Client'),


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 04, 2010 3:28 pm 
Offline

Joined: Tue Feb 23, 2010 10:51 am
Posts: 57
d'accord pour l'héritage mais mon problème est que j'aimerais pouvoir choisir dans une lsite un produit et que toutes ces informations (nom, prix de vente, ..) s'affiche et qu'EN PLUS les champs que je défini dans ma classe s'affiche (ici, nbr d'heures)

donc il y 'aurais une liste avec par exemple 3 colones:

nom_du_produit - prix_vente_du_produit - nbr_heures

et que le prix de vente soi celui du produit que j'ai sélectionné dans une liste de produits existants.

ps: ceci est la gestion de l'offre pour une entreprise de prestation de services où les services sont des produits et facturé en nombre d'heures


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 04, 2010 4:09 pm 
Offline

Joined: Fri Nov 21, 2008 9:56 am
Posts: 3061
Location: Lotharingie
installe le module nan_product_pack des addons extra-5.0, qui te permet d'ajouter d'autres produits au produit (sous produit donc), et qui prend en compte ou non le prix de vente du sous produit, mais qui dans la commande affichent toutes les infos (ouvre tous les produits, selectionnes en un, modifier, va dans l'onglet pack, et ajoute tous les produits que tu veux, cree au prealable le produit heure avec udm heure (clic sur la loupe udm nouveau, creer l'udm heure), change l'unite de mesure PCE (piece) avec l'udm cree heure.
quand tu ajoutes le sous produit au produit dans pack, tu peux choisir le nombre (1,2,3 ....)
quand tu fais une commande ou un devis, les sous produits s'affichent en dessous du produit principal, avec les memes infos que le produit (description, qte, udm, prix unitaire, prix net, sous total).
dans le client web, les sous produits s'affichent auto, avec le client gtkclic sur calculer en bas a droite.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 04, 2010 4:50 pm 
Offline

Joined: Tue Feb 23, 2010 10:51 am
Posts: 57
en fait j'avais plutot pensé a créer un champ fields.function() qui me permetterai d'aller chercher la valeur "list_price" de mon produit et également de calculer le prix total (list_price * nbr_h)



mon code donnerais:


Code:
...

_columns= {
    'produit': fields.many2one("product.product", 'Produit')
    'nbr_h' : fields.fload("heures"),
    'total': fields.function(_calcul_total, method=True, string="Total")
   
}


Le problème c'est que je n'arrive pas a créer de fonciton! En particuler je ne comprends pas l'utilisation de la méthode sefl.pool.get() et browse (explication très vague dans la docu officielle de openERP)

Pourrais-tu m'éclairer à ce sujet?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 04, 2010 5:18 pm 
Offline

Joined: Fri Nov 21, 2008 9:56 am
Posts: 3061
Location: Lotharingie
telecharge le module dont je t'ai parle et regardes le fichier python, il fait tout ce que tu as besoin.
pour get, browse, write, create, .... il suffit de traduire les mots en francais.
De plus pour info, fields.fload n'existe pas.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 04, 2010 5:25 pm 
Offline

Joined: Tue Feb 23, 2010 10:51 am
Posts: 57
ok v regarder à ca

déso pour la faute de frappe (je ne fait pas un copier coller de mon code)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 04, 2010 5:37 pm 
Offline

Joined: Fri Nov 21, 2008 9:56 am
Posts: 3061
Location: Lotharingie
telecharger juste le module :
http://dl.free.fr/puUezRJuZ
ne pas hesiter a l'installer pour comprendre ce qu'il fait (le code), si comme moi tu commences en dev python et xml.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 09, 2010 6:51 pm 
Offline

Joined: Fri Nov 21, 2008 9:56 am
Posts: 3061
Location: Lotharingie
description des objets en francais :
get browse ... :
http://myopenerp.blogspot.com/2009/12/l ... tails.html


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 10, 2010 11:17 am 
Offline

Joined: Tue Feb 23, 2010 10:51 am
Posts: 57
merci pour tes réponses!

Pour finir j'ai résolu mon problème en créant tous les champs que je désirais et un apprenant leur valeur par des fonction qui regardent dans l'objet produit.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC + 2 hours


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:

Protected by Anti-Spam ACP