En: 开发的功能很好地过滤了群组,但它并不仅仅返回过去 24 小时内的案例。我希望它隐藏所有超过 24 小时的案例。可以调整一下吗?
PT:O filter que desenvolvi para os group está funcionando bem,exceto por um detalhe:ele não está retornando apenas os casos que ocorreram nas últimas nas últimas 24 小时。 Gostaria 是一个神秘的事物,是我在这段时间内所经历的一切。 Poderia ajustar isso?
_logger = logging.getLogger(__name__)
@api.model
def cases_records_hide(self):
_logger.info("A função cases_records_hide() foi chamada com sucesso.")
# Encontre registros criados há mais de 24 horas
records_to_hide = self.env['linhaverde.case'].search([
('datetime_created', '<', datetime.now() - timedelta(hours=24))
])
_logger.info(f"Encontrados {len(records_to_hide)} registros para esconder.")
# Log dos IDs dos registros que serão ocultados
_logger.info(f"IDs dos registros a serem ocultados: {records_to_hide.ids}")
# Get the current user
current_user = self.env.user
# Log do nome do usuário e dos grupos aos quais ele pertence
_logger.info(f"Nome do usuário: {current_user.name}")
_logger.info(f"Grupos do usuário: {current_user.groups_id.mapped('name')}")
# Check if the user is in the specified groups
if current_user.has_group('linhaverde_odoo.group_linhaverde_focal_point') or \
current_user.has_group('linhaverde_odoo.group_linhaverde_operator') or \
current_user.has_group('linhaverde_odoo.group_linhaverde_partner'):
# Usuários em 'linhaverde_focal_point', 'linhaverde_operator' ou 'linhaverde_partner' não podem ver os casos que passaram de 24h
_logger.info("Permissão de leitura removida dos registros com sucesso.")
return [('id', 'not in', records_to_hide.ids)]
else:
# Outros usuários podem ver todos os casos
_logger.info("Usuário não está em grupos específicos. Retornando todos os registros.")
return []
_logger.info("Permissão de leitura removida dos registros com sucesso.")
您的函数名称是:“def Cases_records_hide”,但它返回“不隐藏”记录的域。这是你的目的吗?
不返回域名,直接返回您想要显示的记录怎么样:
# if user allowed:
return self.env['linhaverde.case'].search([
('datetime_created', '>', datetime.now() - timedelta(hours=24))
])