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
  • 3

ARGOMENTO: sequence number

sequence number 2 Anni 6 Mesi fa #24928

  • archetipo
  • Avatar di archetipo
  • Offline
  • Platinum Boarder
  • Messaggi: 331
  • Ringraziamenti ricevuti 5
  • Karma: 8
Le sequence funzionano sia nelle create che con i metodi compute, che con i default, quindi escludo una relazione al tipo di metodo che le implementa.
direi piu' che e' da verificare come e' stato implementato il modulo o potresti ancora a provare a cambiare compute con default.
ciao
Alessio Gerace
github.com/archetipo
Ultima modifica: 2 Anni 6 Mesi fa da archetipo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24929

  • Lotta
  • Avatar di Lotta
  • Online
  • Platinum Boarder
  • Messaggi: 450
  • Ringraziamenti ricevuti 14
  • Karma: 3
Ho verificato su stackoverflow e PURTROPPO quando si abbina ANCHE l'attributo store=True, diventa obbligatorio identificare un campo a cui agganciare il compute, pena la sua NON esecuzione
stackoverflow.com/questions/31945069/odo...work-with-store-true

L'ALTERNATIVA, sembrerebbe :-), essere quella di passare attraverso il metodo create, che effettivamente funziona.

A futura memoria, il problema è risolto con:
@api.model
    def create(self, vals): 
        temp = self.env['ir.sequence'].next_by_code('service.sequence.code')
        vals.update({'service_internal_number':temp})
        return super(ServiceReq,self).create(vals)

In case it may help....
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24932

  • archetipo
  • Avatar di archetipo
  • Offline
  • Platinum Boarder
  • Messaggi: 331
  • Ringraziamenti ricevuti 5
  • Karma: 8
Passare attraverso il create funziona di certo
non capisco cosa intendi di preciso dicendo:
PURTROPPO quando si abbina ANCHE l'attributo store=True, diventa obbligatorio identificare un campo a cui agganciare il compute

il campo non e' service_internal_number ?

la guida all'uso delle api e' qui
e per quanto ne so a me funziona l'approccio anche senza il create.
Alessio Gerace
github.com/archetipo
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24933

  • Lotta
  • Avatar di Lotta
  • Online
  • Platinum Boarder
  • Messaggi: 450
  • Ringraziamenti ricevuti 14
  • Karma: 3
mi spiego meglio :-)
quando un camp (service_internal_number) è CONTEMPORANEAMENTE sia un campo computato (compute) sia un campo di cui comunque si chieda la memorizzazione del dato sul dbase
allora necessita di un trigger su altri campi (@depends) altrimenti non verrà eseguito il compute ed il campo sarà vuoto.

Se invece store=False, allora viene computato normalmente il campo, anche se non dipende da altri campi.
E' l'attributo store=True che crea la differenza di comportamento, obbligando la presenza di un trigger

Rileggendo l'api che citi, si trova il testo sibillino
The decorator openerp.api.depends() must be applied on the compute method to specify the field dependencies; those dependencies are used to determine when to recompute the field; recomputation is automatic and guarantees cache/database consistenc
y
Ultima modifica: 2 Anni 6 Mesi fa da Lotta.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24936

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
Confermo quando già sperimentato da @Lotta .. il compute se abbinato allo store=True ha bisogno di altro field che fa da trigger per essere richiamato. Generalmente si usa il campo stato per gli oggetti che lo hanno.

Nel coso specifico però se ho ben capito quello che vuoi ottenere dovrebbe funzionare questo:
class ServiceReq(models.Model):
    _name = 'service.req'
    name = fields.Char(string="Assistenza prodotto rec")

    service_internal_number = fields.Char(string="Riferimento Interno", default=_compute_default_internal_number)
    def _compute_default_internal_number(self):
        return self.env['ir.sequence'].next_by_code('service.sequence.code')
   

Senza necessità di passare dalla write
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

sequence number 2 Anni 6 Mesi fa #24937

  • Lotta
  • Avatar di Lotta
  • Online
  • Platinum Boarder
  • Messaggi: 450
  • Ringraziamenti ricevuti 14
  • Karma: 3
grazie gigidn

non ho capito se nel codice che hai incollato c'è una modifica al metodo compute ed un aggancio @depends allo stato.... non mi sembra...

Ho trovato che l'aggancio al metodo create forse è una soluzione concettualmente migliore:
permette di attribuire il numero SOLO quando l'utente preme "crea" e nel caso annulli non si incrementa la sequenza....
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
  • 3
Tempo creazione pagina: 0.123 secondi

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

Protected by R Antispam