remove dead my-sea invite accept/decline endpoints — acceptance is now implicit on bud-page sea-btn visit (accept-on-GET)

The @mailman Post's OK/BYE block + _invite_actions.html were dropped by the
bud-landing-page sprint; with accept-on-GET on my_sea_visit shipped in f5ee83b
the explicit endpoints have no trigger left. Removes:

- my_sea_invite_accept / my_sea_invite_decline views + the _sea_invite_for_request
  / _redirect_to_invite_log helpers they alone used (gameboard/views.py)
- the my-sea/invite/accept + my-sea/invite/decline URL routes (gameboard/urls.py)
- _invite_actions.html partial (already un-included from post.html)
- MySeaInviteAcceptDeclineTest (gameboard ITs); MySeaInvitePostRenderTest now
  asserts the form actions are gone by literal path/class instead of reverse()

There is no decline surface now — an un-clicked invite simply lapses after 24h.
post.html comment trimmed to match. 515 gameboard+billboard ITs/UTs green.

Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-05-29 11:52:38 -04:00
parent f5ee83be0a
commit 3bf35ad539
5 changed files with 22 additions and 169 deletions

View File

@@ -1,31 +0,0 @@
{% comment %}
Interactive OK/BYE block for a @mailman invite Line — Phase A of the my-sea
invite flow ([[my-sea-invite-voice-blueprint]]). Renders entirely from
`line.sea_invite.status`; the {% if line.sea_invite %} guard lives in
post.html so this partial is only reached for invite Lines.
PENDING (not expired) → OK / BYE form buttons (POST accept / decline).
ACCEPTED → "Accepted {date}" badge. (VISIT link to the owner's table is
added in Phase B once `my_sea_visit` exists.)
DECLINED → "Declined" · LEFT → "Left {date}" · else → "Expired".
{% endcomment %}
<span class="invite-actions invite-actions--{{ line.sea_invite.status|lower }}">
{% if line.sea_invite.status == 'PENDING' and not line.sea_invite.is_expired %}
<form class="invite-action-form" method="POST" action="{% url 'my_sea_invite_accept' line.sea_invite.id %}">
{% csrf_token %}
<button type="submit" class="btn btn-confirm invite-ok-btn">OK</button>
</form>
<form class="invite-action-form" method="POST" action="{% url 'my_sea_invite_decline' line.sea_invite.id %}">
{% csrf_token %}
<button type="submit" class="btn btn-abandon invite-bye-btn">BYE</button>
</form>
{% elif line.sea_invite.status == 'ACCEPTED' %}
<span class="invite-badge invite-badge--accepted">Accepted {{ line.sea_invite.accepted_at|date:'M j' }}</span>
{% elif line.sea_invite.status == 'DECLINED' %}
<span class="invite-badge invite-badge--declined">Declined</span>
{% elif line.sea_invite.status == 'LEFT' %}
<span class="invite-badge invite-badge--left">Left {{ line.sea_invite.left_at|date:'M j' }}</span>
{% else %}
<span class="invite-badge invite-badge--expired">Expired</span>
{% endif %}
</span>

View File

@@ -43,12 +43,11 @@
<span class="post-line-author">{{ line.author|at_handle }}</span>
<span class="post-line-text">{# adman / taxman / mailman-authored Lines (note unlock, share invite, tax ledger, invite cascade) may carry HTML anchors (note-ref / post-attribution). User-typed Lines stay escaped. `display_text` strips the `[<iso timestamp>] ` prefix that tax-ledger Lines carry to satisfy `unique_together = (post, text)` — the per-line `created_at` timestamp on the right renders the user-facing moment. #}{% if line.author.username == 'adman' or line.author.username == 'taxman' or line.author.username == 'mailman' %}{{ line.display_text|safe }}{% else %}{{ line.display_text }}{% endif %}</span>
<time class="post-line-time" datetime="{{ line.created_at|date:'c' }}">{{ line.created_at|relative_ts }}</time>
{# Pre-sprint @mailman invite Lines carried an in-line OK/BYE #}
{# block via _invite_actions.html. Bud landing page sprint #}
{# 2026-05-27 migrates that interaction onto bud.html — the #}
{# Line's prose now embeds a post-attribution anchor (see #}
{# apps.billboard.mail.INVITE_TEMPLATE) that routes to the #}
{# owner's bud page where accept/decline/spectator live. #}
{# @mailman invite Lines have no in-line OK/BYE block — the #}
{# Line's prose embeds a post-attribution anchor (see #}
{# apps.billboard.mail.INVITE_TEMPLATE) routing to the owner's #}
{# bud page, where clicking the glowing sea sub-btn accepts #}
{# the invite on visit. No explicit accept/decline surface. #}
</li>
{% endfor %}
<li class="post-line-buffer" aria-hidden="true"></li>