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: [8.0] Impostare un field in readonly in view

[8.0] Impostare un field in readonly in view 3 Anni 10 Mesi fa #20109

  • cmarinozzi
  • Avatar di cmarinozzi
  • Offline
  • Junior Boarder
  • Messaggi: 20
  • Karma: 0
Ciao,

dati i modelli project.task e project.task.work ho esteso quest'ultimo aggiungendo un campo "planned hours".
class project_work(models.Model):
    _inherit = 'project.task.work'
    
    planned_hours = fields.Float('Planned Time', required=True, help='Estimated time to do the work')
ho poi ereditato la view che visualizza i works del task per aggiungere il suddetto campo
<record id="view_task_form_aurema" model="ir.ui.view">
    		<field name="name">project.task.form</field>
    		<field name="model">project.task</field>
    		<field name="inherit_id" ref="project.view_task_form2"/>
    		<field name="arch" type="xml">
    			
    			<xpath expr=".//field[@name='work_ids']/tree/field[@name='hours']" position="before">
    				<field name="planned_hours"/>
    			</xpath>
    			
    		</field>
</record>

Come dovrei fare ora affinchè il campo planned_hours sia readonly sotto certe condizioni e in particolare che sia readonly se lo stage_id del task non si trova al primo stage di default che è draft?

Io ho provato ad aggiungere al field planned_hours questo: attrs="{'readonly':[('task_id.stage_id','!=','draft')]}"

ma mi viene ritornato l'errore

Error: QWeb2 - template: Runtime Error: Error: QWeb2 - template: Runtime Error: Error: Unknown field task_id in domain [('task_id.stage_id','!=','draft')]

se vado ad aggiungere alla view (cosa che cmq non vorrei fare) anche <field name="task_id"/> poi si arrabbia per lo stesso motivo ma sul non riconosciuto "stage_id".

Ho provato anche a creare nel modello un computed_field che va a leggersi task_id.stage_id e ne ritorna il valore e usare questo nuovo campo nel domain (ma anche in questo caso devo ancora aggiungere il campo alla view e comunque non funziona).

Come si fa??

Inoltre l'altra mia domanda è... io ho messo il domain che testa la diseguaglianza con 'draft'... ma è palesemente errata, è possibile in qualche modo mettere un external_identifier con cui effettuare il confronto?

Grazie!
Ultima modifica: 3 Anni 10 Mesi fa da cmarinozzi.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0] Impostare un field in readonly in view 3 Anni 10 Mesi fa #20110

  • enlightx
  • Avatar di enlightx
  • Online
  • Platinum Boarder
  • Messaggi: 6064
  • Ringraziamenti ricevuti 638
  • Karma: 85
cmarinozzi ha scritto:
Come dovrei fare ora affinchè il campo planned_hours sia readonly sotto certe condizioni e in particolare che sia readonly se lo stage_id del task non si trova al primo stage di default che è draft?

Devi usare l'attributo attrs.
es:
<field name="planned_hours" attrs="{'readonly': [condizione]}"

al posto di condizione devi mettere un dominio valido
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.
Ringraziano per il messaggio: ndrini

[8.0] Impostare un field in readonly in view 3 Anni 10 Mesi fa #20111

  • cmarinozzi
  • Avatar di cmarinozzi
  • Offline
  • Junior Boarder
  • Messaggi: 20
  • Karma: 0
Ok, ma è quello che ho provato a fare. Vero che stavo usando paretensi tonde invece che le quadre per il domain. Ora facendo inizialmente questo (perchè poi dovrò in realtà testare "stage_id")
<field name="planned_hours" attrs="{'readonly': [['task_id','=',1]]}"/>

mi viene detto
Error: QWeb2 - template['ListView.rows']: Runtime Error: Error: QWeb2 - template['ListView.row']: Runtime Error: Error: Unknown field task_id in domain [["task_id","=",1]]

se poi alla view aggiungo questo
<field name="task_id" attrs="{'invisible': '1'}"/>

funziona, ma la colonna task_id è in realtà visibile (seppur nasconda il valore di task_id). E questo non va bene.

se poi rimodifico il domain così
<field name="planned_hours" attrs="{'readonly': [['task_id.stage_id','=',1]]}"/>

mi viene dato questo errore
Error: QWeb2 - template['ListView.rows']: Runtime Error: Error: QWeb2 - template['ListView.row']: Runtime Error: Error: Unknown field task_id.stage_id in domain [["task_id.stage_id","=",1]]
Ultima modifica: 3 Anni 10 Mesi fa da cmarinozzi.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0] Impostare un field in readonly in view 3 Anni 10 Mesi fa #20112

  • cmarinozzi
  • Avatar di cmarinozzi
  • Offline
  • Junior Boarder
  • Messaggi: 20
  • Karma: 0
Ho visto che l'editor mi ha rimosso tutte le parentesi quadre dei domain..... cmq fai conto che ci sono tutte al posto giusto...
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

[8.0] Impostare un field in readonly in view 3 Anni 10 Mesi fa #20113

  • enlightx
  • Avatar di enlightx
  • Online
  • Platinum Boarder
  • Messaggi: 6064
  • Ringraziamenti ricevuti 638
  • Karma: 85
ah scusa, non avevo visto la seconda parte del post.

il dominio è sempre di questo tipo:

[('x','y','z')]
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.

[8.0] Impostare un field in readonly in view 3 Anni 10 Mesi fa #20114

  • enlightx
  • Avatar di enlightx
  • Online
  • Platinum Boarder
  • Messaggi: 6064
  • Ringraziamenti ricevuti 638
  • Karma: 85
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.142 secondi

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

Protected by R Antispam