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 :

Vu et données model dans odoo


Sujet :

Odoo (ex-OpenERP)

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2020
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Vu et données model dans odoo
    Bonjour

    Il m'est arrivé à plusieurs reprise d'avoir la difficulté de mettre la vue à jour après les modifications des données... cependant il me semble que naturellement odoo devrait mettre à jour les données dans la vue sans avoir d'action particulière?

    Par exemple ici j'ai une méthode pour créer un objet :

    Code python : 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
     
    declaration = fields.One2many(comodel_name='a_w_3.declaration', inverse_name="x_invoice_line",ondelete='set null')
    api.onchange('product_id'):
    def _onchange_product(self):
      if( not self.x_inv_declaration):
        self.declaration = self.env['a_w_3.declaration'].create({})
      self.declaration.x_invoice=self.invoice_id
      self.declaration.x_invoice_start=self.invoice_id.x_date_start
      self.declaration.x_invoice_end=self.invoice_id.x_date_end
      self.declaration.currency_id=self.invoice_id.currency_id
      self.declaration.x_invoice_state=self.invoice_id.state
      self.declaration.x_invoice_retro_com=self.invoice_id.x_amount_com
      self.declaration.x_invoice_client=self.invoice_id.partner_id
      self.declaration.x_article_com_ics=self.x_com_ics
      self.declaration.x_article_nom=self.product_id.display_name
      self.declaration.x_article_police=self.product_id.attribute_value_ids
      self.declaration.x_article_quantity=self.quantity
      self.declaration.x_article_prix_unit=self.price_unit
      self.declaration.x_client_taxe=self.product_id.product_tmpl_id.x_client_taxe
    d

    je crée bien l'objet mais dans la vue il apparait sans les valeurs que je lui passe voici le modèle :

    Code python : 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
     
    class a_i_wycc_declaration(models.Model):
        _name='a_w_3.declaration'
        x_state = fields.Selection(string='state of line', selection=[('dec_base','Non déclaré'), ('dec_done', 'Déclaration faite'),('dec_imp', 'Bdx CIE imprimé'),('dec_paided', 'Bdx CIE  payé')],default='dec_base')
        x_invoice_line = fields.Many2one(comodel_name='account.invoice.line',
                                         string='ligne de la déclaration', ondelete='set null')
        x_invoice = fields.Many2one(comodel_name="account.invoice",  string='facture ', ondelete='set null')
        x_invoice_start = fields.Date( string="date facture")
        x_invoice_end = fields.Date( string="date échéance")
        x_invoice_number = fields.Char(  string="numéro ")
        currency_id = fields.Many2one(related="x_invoice.currency_id", string="currency")
        x_invoice_state = fields.Selection( string='état',related="x_invoice.state")
        x_invoice_retro_com = fields.Monetary( string="retro")
        x_invoice_client=fields.Many2one('res.partner')
        x_partner = fields.Many2many('res.partner', string='associées')
        x_partner_name=fields.Char(string='Société',default="inconnu")
        x_company = fields.Many2one(comodel_name='res.company',compute='_compute_partner',string="company")
        x_article_com_ics = fields.Float(string='com ics article')
        x_article_nom = fields.Char( string=' nom de l\'article ')
        x_article_police = fields.Many2many(related="x_invoice_line.product_id.attribute_value_ids",string=' police(s) ')
        x_article_quantity = fields.Float( string="quantité")
        x_article_prix_unit = fields.Float( string="prix unitaire ")
        x_client_taxe = fields.Float(string='Taxe')

    Est ce qu'il ya une mauvaise conception qui explique cela?

  2. #2
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2019
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 50
    Points : 72
    Points
    72
    Par défaut
    Pour la création de ton objet, passe tes arguments directement dans ton dictionnaire du create.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.env[Model].create({'arg1': 'value', 'arg2': 'value2', ...})
    Après créer un objet sur un onchange c'est un peu lourd. tu vas surcharger ta base pour rien.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2020
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Après créer un objet sur un onchange c'est un peu lourd. tu vas surcharger ta base pour rien.
    Oui c'est pour ça que je préfère maitriser le code pour soit créer un objet soit updater les champs...j'ai également tester avec write mais sans plus de résultat, est ce que c'est bien un "bug" de odoo ? a priori le même code en dehors d'un onchange doit fonctionner ?

Discussions similaires

  1. [XL-2007] Copier données Excel dans modele word et créer dossier word
    Par lagaline dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2015, 09h18
  2. Générer un model dans Eclipse 3
    Par ArchFolken dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 29/09/2004, 15h29
  3. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05
  4. Réponses: 2
    Dernier message: 20/02/2004, 08h47
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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