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

ARGOMENTO: Chiamare un oggetto osv_memory, da un button

Chiamare un oggetto osv_memory, da un button 6 Anni 7 Mesi fa #7616

  • IvanB
  • Avatar di IvanB
  • Offline
  • Senior Boarder
  • Messaggi: 63
  • Karma: 0
Salve a tutti.
cerco un consiglio;
Ho creato un oggetto osv_memory da usare come wizard, dal quale devo mostrare dei dati all'utente (e la prima volta che faccio un wizard).
ora vorrei definire un pulsante, con il quale, mostro il sudetto oggetto all'utente.
avete qualche esempio, o suggerimento? finora non sono riuscito a fare molto (tranne una caterva di errori) :help:
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:Chiamare un oggetto osv_memory, da un button 6 Anni 7 Mesi fa #7617

  • angedras
  • Avatar di angedras
  • Offline
  • Platinum Boarder
  • Messaggi: 330
  • Ringraziamenti ricevuti 4
  • Karma: 10
Ciao,
ne ho uno sottomano proprio ora:

nel modulo stock in stock_view il bottone "Create Invoice" richiama l'azione 'action_stock_invoice_onshipping' e quindi il wizard (osv.osv.memory) stock_invoice_onshipping; questo apre una finestra con dei dati precaricati dal metodo view_init.

Dagli uno sguardo, magari può fare al caso tuo

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

Re:Chiamare un oggetto osv_memory, da un button 6 Anni 7 Mesi fa #7618

  • IvanB
  • Avatar di IvanB
  • Offline
  • Senior Boarder
  • Messaggi: 63
  • Karma: 0
Ottimo; sembra faccia proprio al caso mio.
Solo mi chiedo una cosa:
il bottone viene definito in questa maniera,
<button name="%(action_stock_invoice_onshipping)d" string="Create Invoice" attrs="{'invisible': }" type="action" icon="terp-gtk-go-back-rtl" />

la domanda che mi pongo è sul tag 'name';
viene definito con il "%(" davanti, e chiuso alla fine con la "d".
a cosa servono? come si usano? si può fare una chiamata diretta, o devo per forza usarli? se è un parametro, da dove lo passo?

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

Re:Chiamare un oggetto osv_memory, da un button 6 Anni 7 Mesi fa #7619

  • angedras
  • Avatar di angedras
  • Offline
  • Platinum Boarder
  • Messaggi: 330
  • Ringraziamenti ricevuti 4
  • Karma: 10
Nel file xml del wizard trovi la definizione con l'id:
<act_window name="Create invoice"
            res_model="stock.invoice.onshipping"
            src_model="stock.picking"
            key2="client_action_multi"
            multi="True"
            view_mode="form"
            view_type="form"
            target="new"
            id="action_stock_invoice_onshipping"/>

nella tabella ir_values al record con nome 'action_stock_invoice_onshipping' trovi nella colonna value qualcosa tipo "ir.actions.act_window,449", scrivendo nel button della view %(action_stock_invoice_onshipping)d stai dicendo al sistema di prendere l'oggetto in ir.actions.act_window con id 449. Ricordati che il type del bottone deve essere action (di default è object che invece richiama un metodo del modello della view). Se hai già un parametro lo puoi passare nel contesto dell'applicazione, altrimenti puoi fare un wizard multistep in cui nella prima schermata inserisci il parametro che vuoi passare.

Trovi qualcosa in più http://doc.openerp.com/v6.0/developer/3_10_wizard/index.html

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

Re:Chiamare un oggetto osv_memory, da un button 6 Anni 7 Mesi fa #7620

  • IvanB
  • Avatar di IvanB
  • Offline
  • Senior Boarder
  • Messaggi: 63
  • Karma: 0
Grazie, ho provato in tutte le maniere, ma non gli piace, e non riesco a capire dove sbaglio. :angry017:
questo è il messaggio di errore:
raise ValueError('No references to %s.%s' % (module, xml_id))
ValueError: No references to product_datasheet.action_paperboard_weight_suppliers

eppure mi pare corretto; questo è il pulsante sul programa chiamante:
<button name="%(action_paperboard_weight_suppliers)d" string="Paperboard weight by Suppliers" type="action" icon="gtk-execute" groups="base.group_extended"/>

questa è la view del wizard:
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>

<!-- View of Paperboard weight by Default's suppliers (memory object)-->
<record id="view_paperboard_weight_suppliers" model="ir.ui.view">
<field name="name">board weight by Default's suppliers</field>
<field name="model">paperboard.weight.suppliers</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Paperboard weight by Default's suppliers">
<field name="partner_id"/>
<field name="weight_mq"/>
</form>
</field>
</record>

<act_window name="Paperboard weight by Suppliers"
res_model="paperboard.weight.suppliers"
src_model="product.acsked"
key2="client_action_multi"
multi="True"
view_mode="form"
view_type="form"
target="new"
id="action_paperboard_weight_suppliers"/>

</data>
</openerp>

e questo è il programma del wizard:
class paperboard_weight_suppliers(osv.osv_memory):
_name = "paperboard.weight.suppliers"
_description = "Paperboard weight by suppliers"
_columns = {
'partner_id': fields.many2one('res.partner', 'Supplier', domain=[('supplier', '=', True)]),
'weight_mq': fields.float('gr. for mq'),
}
def view_init(self, cr, uid, fields_list, context=None):
if context is None:
context = {}
# qui metterò le letture per i dati da mostrare all'utente
return False
paperboard_weight_suppliers()

...e non capisco dov'è l'errore. aiuto!!!
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re:Chiamare un oggetto osv_memory, da un button 6 Anni 7 Mesi fa #7623

  • angedras
  • Avatar di angedras
  • Offline
  • Platinum Boarder
  • Messaggi: 330
  • Ringraziamenti ricevuti 4
  • Karma: 10
Così su due piedi..
assicurati che l'xml dove si trova la definizione del button sia chiamato dopo la view del wizard, dove è definita la action, nel file del modulo __openerp__.py
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.136 secondi

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

Protected by R Antispam