Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
4 Antworten
3445 Ansichten

Here is the code :

class PriceResourcesReport(models.Model):
     _name = 'price.resources.report'
     _description = "Resource Prices Model"
     _auto = False
     
     partner= fields.Many2one(comodel_name='res.partner', string='Partner',readonly=True)
     resname = fields.Char(string='Partner Name',readonly=True)
     tarifs = fields.Float(string='Word Rate',readonly=True)
    

        

def init(self):
        
        tools.drop_view_if_exists(self._cr, 'price_resources_report')
        self._cr.execute(""" CREATE VIEW price_resources_report AS (
        SELECT
                partners.id as id,
                partners.id as partner,
                partners.name as resname,
                prix.prix_mot as tarifs
                
            FROM
                res_partner as partners
            LEFT JOIN
                res_prixcombination as prix ON prix.id_partner = partners.id where partners.is_supplier=True
            
        )""")   

Odoo server is restarted and addon is updated but nothing happens.

Can you help please

Thanks

Avatar
Verwerfen
Beste Antwort

Hi Tahar,


Please try to add below line in query:

row_number() over (order by partners.id) as id



def init(self):
        
        tools.drop_view_if_exists(self._cr, 'price_resources_report')
        self._cr.execute(""" CREATE VIEW price_resources_report AS (
        SELECT
                row_number() over (order by partners.id) as id
                partners.id as partner,
                partners.name as resname,
                prix.prix_mot as tarifs
                
            FROM
                res_partner as partners
            LEFT JOIN
                res_prixcombination as prix ON prix.id_partner = partners.id where partners.is_supplier=True
            
        )""")   

We have to provide an id for the same model.

Please update your module after change in query.

This may work .

Avatar
Verwerfen
Beste Antwort

Hey Tahar,

Please try the below code.

def init(self):

    # self._table = price_resources_report

    tools.drop_view_if_exists(self.env.cr, self._table)

    self.env.cr.execute("""CREATE or REPLACE VIEW %s as (

        %s

        FROM ( %s )

        %s

        )""" % (self._table, self._select(), self._from(), self._group_by()))

def _select(self):

    select_str = """

        partners.id as id,

        partners.id as partner,

        partners.name as resname,

        prix.prix_mot as tarifs

    """

    return select_str

def _from(self):

    from_str = """

        res_partner as partners

        LEFT JOIN res_prixcombination as prix ON prix.id_partner = partners.id

    """

    return from_str

def _group_by(self):

    group_by_str = """

        GROUP BY

            partners.id as partner,

            partners.name as resname,

            prix.prix_mot as tarifs                

    """

    return group_by_str

Thank you!

Regards,




Email:      odoo@aktivsoftware.com  

Skype: kalpeshmaheshwari

   

Avatar
Verwerfen
Beste Antwort

HI, you can follow following tutorial for this:

https://youtu.be/kwkddYoFQCE

Hope it helps,

Thanks

Avatar
Verwerfen
Autor Beste Antwort

Thank you for your reply.

Actually, it was a matter of acess rights. But the other issue is that I got an error message saying :

psycopg2.ProgrammingError: relation "resources_report" does not exist
LINE 1: SELECT "resources_report".id FROM "resources_report" WHERE T...
                                          ^
Have you an idea about that?
Many thanks
Avatar
Verwerfen