Benvenuto!

Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.

0

0
Luigi Di Naro
Il 13/09/20, 07:00

OK ora è molto piu' chiaro .... Evidentemente il fix fatto per limitare il degrado di prestazioni ha come effetto collaterale il bug che hai evidenziato. Oltretutto la issue è ancora aperta per cui so propenso a pensare che il problema non sia stato risolto.

Purtroppo intervenire su oggetti base: user, partner, product etc etc è sempre operazione delicata.

Sinceramente, non mi era mai capitato di dover estendere la search con tale scopo e di conseguenza non ho mai affrontato il bug di cui sopra. Puoi provare ad aggiungere un commento e lo screen alla issue e vedere che ti rispondono oppure analizzare il problema e tirare fuori una soluzione.

Azzardo, molto azzardo, una ipotesi ... i valori di aggregazione vengono estratti prima della effettiva ricerca ... un qualcosa tipo count e groupby e solo successivamente popolati i valori quando espandi il gruppo. Se questa ipotesi fosse vera, il fix fatto alterando la search avrebbe come conseguenza che la prima ricerca torna tutte le ou_id mentre poi la successiva search non torna nulla ... questa ipotesi non mi convince del tutto pero' a sensazione potrebbe essere se non la fonte almeno una strada da analizzare per identificare il problema.

Purtroppo un simile intervento temo necessiti di approfondite conoscenze di come funzioni odoo a basso livello, orm, ed un bel po' di tempo per elaborare una soluzione efficiente.

Una soluzione barbara, ma che cmq necessita di intervento sul codice base di odoo, è quello di filtrare i valori di ritorno alla ui nella group_by e togliere quelli che hanno 0 come elementi ... molto ma molto sporca e barbara come soluzione.

Vedi se riesci a tirarci fuori qualcosa da queste indicazioni ma sopratutto se trovi una soluzione faccelo sapere ... l'argomento a livello generale è interessante.


La tua risposta


0
Luigi Di Naro
Il 12/09/20, 13:32

hai messo un filtro o una record_rule? ... se hai messo un filtro quello e' solo sulla tree ....


La tua risposta

0
Luigi Gregori
Il 12/09/20, 14:19

Di fatto non ho fatto nulla (ancora :D ) 
Ho usato il modulo OCA partner_organization_unit  sperando che "risolvesse" il problema da solo ...

Di fatto credo sia una rule sugli oggetti (da res_partner.py)

    # Extending methods to replace a record rule.
    # Ref: https://github.com/OCA/operating-unit/issues/258
    @api.model
    def search(self, args, offset=0, limit=None, order=None, count=False):
        # Get the OUs of the user
        ou_ids = self.env.user.operating_unit_ids.ids
        domain = ['|',
                  ('operating_unit_ids', 'in', ou_ids),
                  ('operating_unit_ids', '=', False)]
        return super().search(domain + args, offset=offset, limit=limit,
                              order=order, count=count)
Ma sinceramente non ho capito come funzioni la totalizzazione nei tree - magari la tolgo e già migliora la situazione anche se nel caso specifico non vorrei proprio vedere "REGIONE LAZIO ..."

La tua risposta

Resta informato

Informazioni sulla comunità

Forum ufficiale dell'Associazione Odoo Italia Leggi le linee guida

Strumenti di richiesta

53 follower

Statistiche

Richiesta del: 11/09/20, 07:16
Vista: 85 volte
Ultimo aggiornamento: 13/09/20, 07:00