Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
4 Odpowiedzi
3433 Widoki

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

Awatar
Odrzuć
Najlepsza odpowiedź

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 .

Awatar
Odrzuć
Najlepsza odpowiedź

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

   

Awatar
Odrzuć
Najlepsza odpowiedź

HI, you can follow following tutorial for this:

https://youtu.be/kwkddYoFQCE

Hope it helps,

Thanks

Awatar
Odrzuć
Autor Najlepsza odpowiedź

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
Awatar
Odrzuć