Improve and condense related controls

This commit is contained in:
2026-02-15 22:11:17 +00:00
parent ae3365e165
commit 981ee56de7
18 changed files with 1340 additions and 209 deletions

View File

@@ -640,6 +640,31 @@ def _compose_page_url_for_person(user, person):
return f"{reverse('compose_page')}?{query}"
def _compose_widget_url_for_person(user, person, limit=40):
preferred_service = _preferred_service_for_person(user, person)
identifier_row = _resolve_person_identifier(
user=user,
person=person,
preferred_service=preferred_service,
)
if identifier_row is None:
return ""
try:
safe_limit = int(limit or 40)
except (TypeError, ValueError):
safe_limit = 40
safe_limit = max(10, min(safe_limit, 200))
query = urlencode(
{
"service": identifier_row.service,
"identifier": identifier_row.identifier,
"person": str(person.id),
"limit": safe_limit,
}
)
return f"{reverse('compose_widget')}?{query}"
def _participant_feedback_display(conversation, person):
payload = conversation.participant_feedback or {}
if not isinstance(payload, dict):
@@ -3438,6 +3463,11 @@ class AIWorkspacePersonWidget(LoginRequiredMixin, View):
],
"send_state": _get_send_state(request.user, person),
"compose_page_url": _compose_page_url_for_person(request.user, person),
"compose_widget_url": _compose_widget_url_for_person(
request.user,
person,
limit=limit,
),
"manual_icon_class": "fa-solid fa-paper-plane",
}
return render(request, "mixins/wm/widget.html", context)