{% extends "core/base.html" %} {% load lyric_extras %} {% block title_text %}Billpost{% endblock title_text %} {% block header_text %}Billpost{% endblock header_text %} {% block content %} {# Hidden owner span — preserves the existing FT contract that reads the #} {# post owner via #id_post_owner. Visible owner attribution moved into the #} {# self line ("just me, …" / "& me, …") below. #}

{{ post.title }}

{% if viewer_is_owner %} {# Owner viewing — owner-centric prose. "shared between" lists #} {# every recipient; the self line is the owner's own handle. #} {% if other_recipients %}

shared between {% for r in other_recipients %}{{ r|at_handle }}{% if not forloop.last %}, {% endif %}{% endfor %}

& me, {{ post.owner|at_handle }} the {{ post.owner.active_title_display }}

{% else %}

just me, {{ post.owner|at_handle }} the {{ post.owner.active_title_display }}

{% endif %} {% else %} {# Invitee viewing — "shared with" prose centred on the viewer #} {# (request.user). Sole invitee collapses to a single line; the #} {# "created by …" line attributes the post to its founder. #} {% if other_recipients %}

shared with {% for r in other_recipients %}{{ r|at_handle }}{% if not forloop.last %}, {% endif %}{% endfor %}

& me, {{ request.user|at_handle }} the {{ request.user.active_title_display }}

{% else %}

shared with me, {{ request.user|at_handle }} the {{ request.user.active_title_display }}

{% endif %}

created by {{ post.owner|at_handle }} the {{ post.owner.active_title_display }}

{% endif %}
{# Admin-Post (note-unlock thread) input is read-only: the user can't #} {# respond, and the placeholder calls that out. View_post hard-rejects #} {# POSTs to NOTE_UNLOCK posts; the post_save Line signal is the safety #} {# net for ORM-level / API writes that bypass the view. #} {% if post.kind == 'note_unlock' %}
{% else %}
{% csrf_token %} {% if form.errors %}
{{ form.errors.text.0 }}
{% endif %}
{% endif %} {# Bud btn (bottom-left) + slide-out recipient field — async share. #} {# Suppressed on admin Posts (note unlock thread) since friend-invites #} {# don't apply to system-authored threads. #} {% if post.kind != 'note_unlock' %} {% include "apps/billboard/_partials/_bud_panel.html" %} {% endif %} {# Gear btn (bottom-right) + menu — NVM always; DEL (owner) / BYE #} {# (invitee) gated to user-Posts. #} {% include "apps/billboard/_partials/_post_gear.html" %}
{% endblock content %} {% block scripts %} {% include "apps/dashboard/_partials/_scripts.html" %} {% endblock scripts %}