Come da titolo sto cercando di rendere invisibile una riga nel timesheets dell'helpdesk usando un campo booleano show_row calcolato e memorizzato nel database .
Ho aggiunto un domain come attributo valorizzato true o false da show_row sul fiele timesheet_line_ids ma non funziona, esiste un metodo specifico ?
Se serve il codice lo posto :
helpdesk.support.form.inherited
helpdesk.support
[('show_in_timesheet', '=', True)]
2 Risposte
Grazie mille davide ho creato una regola su record per dare diritto di accesso solo quando show_in_timesheet=True e tutto funziona
solo che discriminando sui permessi ho incongruenze nel calcolo dei costi imputati al conto analitico, volevo realizzare qualcosa come nella maschera fattura dove la visibilità è discriminata dal campo display_type se non sbaglio
Se può essere di interesse ho risolto cosi :
show_in_timesheet = fields.Boolean(string='Show in Timesheet', compute='_compute_show_in_timesheet', store=False,default=True)
@api.depends('support_request_id')
def _compute_show_in_timesheet(self):
for line in self:
if line.product_id.detailed_type=='product' and self.env.context.get('params')['model']=='helpdesk.support':
line.show_in_timesheet = False
else:
line.show_in_timesheet=True
return True
questo mi permette di discriminare in timesheet_line_ids i prodotti di tipo sevizio(ore imputate al ticket ) da quello di tipo prodotto (i prodotti consumati nel ticket) e poi con la gestione delle record rule mostro solo la tipologia di prodotto di tipo servizio
Davide alla fine ho risolto in modo pulito con l'impostazione del dominio sulla definizione del campo, quindi funziona:
compute='_compute_partner_credit_warning')
timesheet_line_ids = fields.One2many(
'account.analytic.line',
'support_request_id',
string='Timesheets',
domain=[('product_id.detailed_type', '=','service')],
)
Ciao, la cosa più semplice ed immediata che si può fare in questi casi è mostrare un secondo one2many calcolato che mostra solo i record del primo one2many che hanno show_in_timesheet = True.
Altrimenti, puoi usare una regola di sicurezza per far si che determinati utenti non possano proprio vedere i record che hanno show_in_timesheet non valorizzato