Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami
  • Pagina:
  • 1
  • 2

ARGOMENTO: dominio dinamico per un campo many2one

dominio dinamico per un campo many2one 2 Anni 9 Mesi fa #24029

  • l.rodono
  • Avatar di l.rodono
  • Offline
  • Fresh Boarder
  • Messaggi: 10
  • Karma: 0
Salve scusate ,
mi chiamo Loretta
sto cercando di fare caricare nela lista del campo user_id in task soltanto i membri che fanno perte del suo progetto
ho provato inserendo un campo invisibile calcolato che mi chiama una funzione che ritorna un dominio.

se il doninio e statico es domain="[('id','in',[1,10,13])]" il filtro funziona
se il dominio e dinamico es domain=" [('id', 'in', get_domain)]" il filtro non funziona (nel file di log mi faccio visualizzare cosa torna _get_domain associata al campo get_domain e ritorna [1,10,13...] )

qualcuno mi sa dire dove sbaglio o come farlo??????




premesso che ho ereditato da project.task

parte del codice .py e questa:
get_domain = fields.Many2one('res.users', string="dominio", compute='_get_domain')

@api.multi
def _get_domain(self, context=None):
        project_id = (self.project_id).id
        print_log_data("**project_id", project_id)
        if project_id:
            result = self.domain_project(project_id)
            if result and result[0]:
                   return [('id','in',result[0])]
         return {}

 user_id = fields.Many2one('res.users', 'Assigned to', select=True, track_visibility='onchange')

codice xml:
 <xpath expr="//field[@name='user_id']" position="replace">
                 <field name="user_id"
                        options='{"no_open": True}'
                        domain=" [('id', 'in', get_domain)]"
                        on_change="onchange_user_id(user_id, context)"
                        context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager','project.group_project_user']}"/>   
  </xpath>


<xpath expr="/form/sheet/group" position="after">
                <group>
		   
                     <!--campo invisibile-->
                    <field name="get_domain"  invisible="1" />
                   

 	            </group>
            </xpath>

grazie
Grazie
Ultima modifica: 2 Anni 9 Mesi fa da eLBati.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

dominio dinamico per un campo many2one 2 Anni 9 Mesi fa #24033

  • eLBati
  • Avatar di eLBati
  • Online
  • Platinum Boarder
  • Messaggi: 1766
  • Ringraziamenti ricevuti 186
  • Karma: 38
Sai che gli onchange possono ritornare un domain da applicare ad un campo?
Vedi product_id_change di sale.order.line
Lorenzo Battistini
github.com/eLBati

TAKOBI
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

dominio dinamico per un campo many2one 2 Anni 9 Mesi fa #24034

  • l.rodono
  • Avatar di l.rodono
  • Offline
  • Fresh Boarder
  • Messaggi: 10
  • Karma: 0
Ciao grazie si ho gia usato on_change adattandola al mio caso,
funziona il filtro con il dominio che mi restituisce ma soltanto al cambio del valore del campo project_id a cui ho associato l'on_change,
io vorrei che lo facesse anche quando mi si apre il task, se apro la lista degli utenti la prima volta (in cui il project _id è gia assegnato) il filtro non c'è perche on_change non è stata invocata
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

dominio dinamico per un campo many2one 2 Anni 9 Mesi fa #24036

  • eLBati
  • Avatar di eLBati
  • Online
  • Platinum Boarder
  • Messaggi: 1766
  • Ringraziamenti ricevuti 186
  • Karma: 38
Alla peggio puoi anche fare override di fields_view_get e impostare il domain lì
Lorenzo Battistini
github.com/eLBati

TAKOBI
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

dominio dinamico per un campo many2one 2 Anni 9 Mesi fa #24047

  • l.rodono
  • Avatar di l.rodono
  • Offline
  • Fresh Boarder
  • Messaggi: 10
  • Karma: 0
Ciao
scusa ma non sono esperta sto cercando di capirci qualche cosa

avevo provato a sovrascrivere la field_view_get ma non avevo le informazioni caricate(in perticolare il project_id) nella view nel monento in cui palcolo la mia funzione domain_project(..) questo è il mio codice:
ho due dubbi:come posso prendere il project_id del task?
e dove devo inpostare il dominio per user_id?
def domain_project(self, cr, uid, id, project_id, context=None):
        print_log_data("PROJECT_ID IN DOMAIN :", project_id)

        if project_id:
            print_log_data("in project_id : ", project_id)
            project = self.pool.get('project.project').browse(cr, uid, project_id, context)
            print_log_data("PROJECT: ", project)
            members = []
            for m in project.members:
                members.append(m.id)

            print_log_data(" members : ", members)

            x = {'domain': {'user_id': [('id', 'in', members)]}}
             print_log_data("DOMINIO : ", x)
            return x

        

        return {}

 def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
         print_log_data("context at beginning of fields_view", context)
        
         x = super(extended_task, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
         
          y = self.domain_project(cr, uid, view_id, context)
          print_log_data(" dominio :", y)
         return x
Ultima modifica: 2 Anni 9 Mesi fa da eLBati. Motivo: formatting
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

dominio dinamico per un campo many2one 2 Anni 9 Mesi fa #24059

  • eLBati
  • Avatar di eLBati
  • Online
  • Platinum Boarder
  • Messaggi: 1766
  • Ringraziamenti ricevuti 186
  • Karma: 38
Stavo rileggendo il tuo primo messaggio.
Ti consiglio prima di tutto di rendere visibile il campo get_domain così vedi cosa contiene.

Teoricamente comunque non dovrebbe essere un Many2one ma un Many2many.

domain_project cosa fa?
Lorenzo Battistini
github.com/eLBati

TAKOBI
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
Tempo creazione pagina: 0.144 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam