Login/register pages now correctly unwrap API response {data: {token, user}}.
Cleaned up leftover apiFetch code.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
# Task Team Connector — User mapping
|
|
import logging
|
|
|
|
from odoo import fields, models
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ResUsers(models.Model):
|
|
_inherit = 'res.users'
|
|
|
|
tt_user_id = fields.Char(
|
|
string='Task Team User ID',
|
|
readonly=True,
|
|
copy=False,
|
|
help='UUID of this Odoo user in the Task Team database',
|
|
)
|
|
|
|
def _tt_get_or_create_user(self):
|
|
"""Return the Task Team UUID for this user, creating the account if needed."""
|
|
self.ensure_one()
|
|
if self.tt_user_id:
|
|
return self.tt_user_id
|
|
|
|
from ..services.api_client import TaskTeamApiClient
|
|
ICP = self.env['ir.config_parameter'].sudo()
|
|
api_url = ICP.get_param('task_team_connector.api_url', 'https://api.hasdo.info/api/v1')
|
|
api_key = ICP.get_param('task_team_connector.api_key', '')
|
|
|
|
try:
|
|
client = TaskTeamApiClient(api_url, api_key)
|
|
result = client.get_or_create_user(email=self.email, name=self.name)
|
|
tt_id = (result or {}).get('data', {}).get('id')
|
|
if tt_id:
|
|
self.sudo().write({'tt_user_id': tt_id})
|
|
return tt_id
|
|
except Exception as exc:
|
|
_logger.error('Failed to resolve Task Team user for %s: %s', self.email, exc)
|
|
return None
|