Improve and condense related controls
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user