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
Ricordati di dichiarare la versione di Odoo a cui riferisce la domanda
  • Pagina:
  • 1
  • 2

ARGOMENTO: Passare un valore da un form all'altro

Passare un valore da un form all'altro 3 Anni 6 Mesi fa #21987

  • uilli
  • Avatar di uilli
  • Offline
  • Fresh Boarder
  • Messaggi: 12
  • Karma: 0
Sto creando un mio modulo.
All'interno del file .py ho creato due classi::
# -*- encoding: utf-8 -*-
from openerp import models, fields, api
from openerp.osv import osv

class miomodulo_contratto(models.Model):
    _name = 'tbl_contratto'
    _description = 'Classe per l\'inserimento in tbl_contratto'
        
    scode =  fields.Char('Codice Contratto', size=3, required=True)
    sdescrizione =  fields.Char('Descrizione Breve', size=40, required=True)
    def controllo_scode_contratto(self, cr, uid, ids, scode_contratto, context=None):
        if scode_contratto and not unicode.isdigit(
        
    _sql_constraints = [
                ('scode', 
                'unique(scode_contratto)',
                'Attenzione! Hai scelto un Codice già esistente.\n Per favore, inseriscine uno diverso.'),
                ('sdescrizione', 
                'unique(sdescrizione)',
                'Attenzione! La Descrizione inserita è già stata utilizzata.\n Per favore, inseriscine una diversa.')
                ]
        
class miomodulo_responsabile(models.Model):
    _name = 'tbl_responsabile'
    _description = 'Classe per l\'inserimento in tbl_responsabile'
        
    _inherits = {'tbl_contratto': 'id_tbl_contratto'}
    
    id_tbl_contratto = fields.Many2one('tbl_contratto', 'Codice Contratto')
    responsabile_contratto =  fields.Char(string='Responsabile Contratto', size=100, help="Indica il responsabile del contratto", required=True)

Nel file .xml ho creato un bottone collegato ad un'azione che mi permette di aprire le due viste una dopo l'altra:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
	<data>
		<record id="view_miomodulo_contratto_tree" model="ir.ui.view"> 
		    <field name="name">miomodulo.contratto.tree.view</field>
		    <field name="model">tbl_contratto</field>
		    <field name="arch" type="xml">
		        <tree string="miomodulo" export="false">
		        	<field name="id"/>
		        	<field name="scode"/>
		        	<field name="sdescrizione"/>
		        </tree>
		    </field>
		</record>
		
		<record id="view_miomodulo_contratto_form" model="ir.ui.view">
		    <field name="name">miomodulo.contratto.form.view</field>
		    <field name="model">tbl_contratto</field>
		    <field name="arch" type="xml">
		        <form string="miomodulo" duplicate="false">
		        	<header>

		        		<button name="%(action_miomodulo_inserimento_responsabile)d" type="action" string="Submit" />
		        	</header>
		        	<sheet>
			            <group>
			            		<field name="id" attrs="{'invisible': [('write_date', '=', False)]}" />
			           		<field name="scode"/>
			           		<field name="sdescrizione"/>
			            </group>
		            </sheet>
		        </form>
		    </field>
		</record>
		
		<record id="action_miomodulo_contratto" model="ir.actions.act_window">
		    <field name="name">Contratto</field> 
		    <field name="res_model">tbl_contratto</field> 
		    <field name="view_type">form</field>
		    <field name="view_mode">tree,form</field> 
		    <field name="search_view_id" eval="False"/> 
		</record>

		<menuitem action="action_miomodulo_contratto" id="menu_action_miomodulo_contratto" parent="mail.mail_feeds" sequence="140"/>
		
		<record id="view_miomodulo_responsabile_tree" model="ir.ui.view"> 
		    <field name="name">miomodulo.responsabile.tree.view</field>
		    <field name="model">tbl_responsabile</field>
		    <field name="arch" type="xml">
		        <tree string="miomodulo" export="false">
		        	<field name="id"/>
		        	<field name="id_tbl_contratto"/>
		        	<field name="responsabilei"/>
		        </tree>
		    </field>
		</record>
		
		<record id="view_miomodulo_responsabile_form" model="ir.ui.view">
		    <field name="name">miomodulo.responsabile.form.view</field>
		    <field name="model">tbl_responsabile</field>
		    <field name="arch" type="xml">
		        <form string="miomodulo" duplicate="false">
		            <group>
		            		<field name="id" attrs="{'invisible': [('write_date', '=', False)]}" />
		           		<field name="id_tbl_contratto"/>
			        	<field name="responsabile"/>
		            </group>
		        </form>
		    </field>
		</record>	
		
		<record id="action_miomodulo_inserimento_responsabile" model="ir.actions.act_window">
			<field name="name">Inserimento.Responsabile</field>
			<field name="res_model">tbl_responsabile</field>
			<field name="view_type">form</field>
			<field name="view_mode">tree,form</field>
			<field name="view_id" ref="view_miomodulo_responsabile_form"></field>
		</record>	
	</data>
</openerp>

Ciò che vorrei fare è, quando clicco sul bottone, di passare l'id ti tbl_contratto al secondo form.
Sapreste farmi un esempio di come fare?

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

Passare un valore da un form all'altro 3 Anni 6 Mesi fa #21991

  • enlightx
  • Avatar di enlightx
  • Online
  • Platinum Boarder
  • Messaggi: 6064
  • Ringraziamenti ricevuti 638
  • Karma: 85
nei parametri del button puoi mettere qualcosa tipo context="{'chiave': valore}" per passare ciò che ti serve alla action richiamate e di conseguenza portarti dietro quel valore dove vuoi.
Davide Corio
Odoo Solution Architect
email: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
web: www.davidecorio.com
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Passare un valore da un form all'altro 3 Anni 6 Mesi fa #21992

  • uilli
  • Avatar di uilli
  • Offline
  • Fresh Boarder
  • Messaggi: 12
  • Karma: 0
Ti ringrazio per la risposta.
Se però ho capito bene cosa mi consigli, dovrei settare un valore all'interno del bottone. Io però vorrei che il bottone prendesse l'id di tbl_contratto e lo usasse come valore di id_tbl_contratto nel secondo form.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Passare un valore da un form all'altro 3 Anni 6 Mesi fa #21993

  • enlightx
  • Avatar di enlightx
  • Online
  • Platinum Boarder
  • Messaggi: 6064
  • Ringraziamenti ricevuti 638
  • Karma: 85
se per "id di tbl_contratto" intendi l'id del record corrente, te lo trovi già nel context.

ma forse conviene che spieghi il caso d'uso, perchè inizio a pensare che tu voglia reinventare i wizards.
Davide Corio
Odoo Solution Architect
email: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
web: www.davidecorio.com
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Passare un valore da un form all'altro 3 Anni 6 Mesi fa #21994

  • uilli
  • Avatar di uilli
  • Offline
  • Fresh Boarder
  • Messaggi: 12
  • Karma: 0
Non credo che i wizard facciano al caso mio (però sono nuovo nel mondo di Odoo e quindi potrei non aver capito bene io il loro funzionamento).

Ciò che voglio è:

1) compilare il form 'miomodulo.contratto.form.view', che 'utilizza il modello tbl_contratto';
2) cliccare su 'submit', memorizzando i dati inseriti all'interno della tabella 'tbl_contratto';
3) aprire automaticamente il form 'action_miomodulo_inserimento_responsabile', nel quale il valore di 'id_tbl_contratto' (fields.Many2one('tbl_contratto', 'Codice Contratto')) non sia selezionabile, ma sia settato sull'id della riga appena creata in 'tbl_contratto'.

Spero di essere stato più chiaro.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Passare un valore da un form all'altro 3 Anni 6 Mesi fa #21995

  • enlightx
  • Avatar di enlightx
  • Online
  • Platinum Boarder
  • Messaggi: 6064
  • Ringraziamenti ricevuti 638
  • Karma: 85
allora passare i valori tramite il context penso vada bene.

guarda ad esempio come fa il sale.order quando clicchi sul pulsante che crea la fattura.
sul form hai un pulsante che ti porta su un altro form e pre-compila alcuni campi
Davide Corio
Odoo Solution Architect
email: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
web: www.davidecorio.com
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
Tempo creazione pagina: 0.157 secondi

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

Protected by R Antispam