``create`` accessed ``partner.user_ids[0]`` which raised ``IndexError``
when the ticket's partner had no linked user (e.g. a plain contact).
Use ``partner.user_ids[:1]`` so a partner without a user yields an empty
recordset, which the following ``if not user`` guard handles gracefully,
leaving the ticket's team untouched.
Extract the team-leader assignment logic into a dedicated
``_define_user_id`` helper, shared between ``_compute_user_id`` and
``create``:
- ``_compute_user_id`` now delegates to ``_define_user_id`` instead of
inlining the membership/leader checks.
- ``create`` also assigns ``user_id`` from the default team via the same
helper, so a portal-created ticket gets the team leader assigned.
This centralises the decision (keep current user / fall back to team
leader) in a single, reusable place.
In helpdesk_mgmt v16, ``_compute_user_id`` automatically filled
``user_id`` with ``team_id.alias_user_id`` when the team was set and
no user was assigned. This behaviour was removed in v18: the compute
now only clears ``user_id`` when the assigned user is not a member of
the selected team, without assigning anyone in its place.
This commit restores equivalent behaviour using ``team_id.user_id``
(the Team Leader field) instead of ``alias_user_id``:
- When ``team_id`` changes and the current ``user_id`` is not a member
of the new team, the Team Leader is assigned automatically.
- If the team has no leader configured, ``user_id`` is left unchanged
to avoid creating unassigned tickets.
- ``super()`` is not called: this is a full replacement of the v18
OCA behaviour, not an extension of it.
Also updates README.rst to document the new auto-assignment behaviour.