Allow to post note with attachments and a CW

This commit is contained in:
Thomas Sileo 2022-09-08 22:20:16 +02:00
parent 356aace9bc
commit 0f20a1d12f
2 changed files with 19 additions and 2 deletions

View file

@ -1021,7 +1021,7 @@ async def admin_actions_unpin(
async def admin_actions_new(
request: Request,
files: list[UploadFile] = [],
content: str = Form(),
content: str | None = Form(None),
redirect_url: str = Form(),
in_reply_to: str | None = Form(None),
content_warning: str | None = Form(None),
@ -1032,6 +1032,19 @@ async def admin_actions_new(
csrf_check: None = Depends(verify_csrf_token),
db_session: AsyncSession = Depends(get_db_session),
) -> RedirectResponse:
if not content and not content_warning:
raise HTTPException(status_code=422, detail="Error: object must have a content")
# Do like Mastodon, if there's only a CW with no content and some attachments,
# swap the CW and the content
if not content and content_warning and len(files) >= 1:
content = content_warning
is_sensitive = True
content_warning = None
if not content:
raise HTTPException(status_code=422, detail="Error: objec must have a content")
# XXX: for some reason, no files restuls in an empty single file
uploads = []
raw_form_data = await request.form()

View file

@ -3,7 +3,11 @@
{% block head %}
{% if outbox_object %}
{% set excerpt = outbox_object.content | html2text | trim | truncate(50) %}
{% if outbox_object.content %}
{% set excerpt = outbox_object.content | html2text | trim | truncate(50) %}
{% else %}
{% set excerpt = outbox_object.summary | html2text | trim | truncate(50) %}
{% endif %}
<title>{% if outbox_object.name %}{{ outbox_object.name }}{% else %}{{ local_actor.display_name }}: "{{ excerpt }}"{% endif %}</title>
<link rel="webmention" href="{{ url_for("webmention_endpoint") }}">
<link rel="alternate" href="{{ request.url }}" type="application/activity+json">