Sto cercando di emulare il comportamento di sales order, in cui è possibile inserire una riga ordine, digitando i dati nella vista tabellare (inline), senza aprire una form apposita.
(Un simile comportamento avviene anche nel modulo italiano ddt)
Ho cercato nel codice base di sales di odoo, ma temo che il “trucco” sia ottenuto iniettando nella vista una modifica con un modulo successivo, per cui nella vista originale non trovo codici particolari per questo funzionalità...
Non riuscendoci chiedo:
Immissione/Editing one2many inline:
come è possibile ottenere tale comportamento ? Serve un widget per effettuare l’immissione e l’editing inline del campo one2many ?
Ho provato (e rimosso) anche con un widget trovato in rete, ma senza risultati
<field name="sent_line_ids" widget="one2many_list" nolabel="1" class="oe_inline oe_no_button" />
Immissione/Editing con form dedicata:
Se non definisco una form di immissione, il sistema ne genera una al volo.
Se definisco una vita collegata al model del record da creare, il sistema la aggancia correttamente.
Tuttavia:
Se creassi più viste form, c’è modo di specificare al sistema quale vista utilizzare in quel contesto di immissione particolare ?
La form creata, si trova in “aggiunta” due pulsanti “Salva & chiudi” e “Salva & Nuovo” . E’ Possibile modificare/eliminare i pulsanti “Salva & chiudi” e “Salva & Nuovo” ?
AGGIORNAMENTO
A forza di test il sistema adesso esegue l’edit inline senza richiamare la form creata…. Non capisco cosa abbia toccato, direi che dopo aver provato e rimosso il widget il codice è ritornato ad essere lo stesso di prima (con la form), ma adesso esegue l’edi inline e non richiama la form…. Boh...
Chi mi illumina ?
Lascio il codice sotto per dare una traccia di cosa ho fatto...
class ServiceReq(models.Model):
_name = 'service.req'
name = fields.Char(string="Assistenza prodotto rec")
…..
sent_line_ids = fields.One2many(comodel_name='service.sent', string="Spedizioni esterne", inverse_name='service_req_id')
class ServiceSent(models.Model):
_name = "service.sent"
#name = fields.Char(string="Spedizione Assistenza", required=True)
service_req_id = fields.Many2one(comodel_name='service.req', string='Pratica', required=True)
partner_id = fields.Many2one(comodel_name='res.partner', string='Destinatario', required=True)
ship_date = fields.Date("Data invio", required=True)
tracking_number = fields.Char(string="Traking number", required=True)
ddt_num = fields.Char(string="DDT Numero", required=True)
ddt_date =fields.Date()
<notebook>
<page string="Spedizioni">
<field name="sent_line_ids">
<tree string="Spedizioni effettuate" editable="top">
<field name="ddt_num" />
<field name="ddt_date" />
<field name="ship_date" />
<field name="tracking_number" />
</tree>
</field>
</page>