fix: drop redundant green "Offer accepted" banner on offer page
The ACCEPTED state-notice alert floated between the offer-header well and the offer-pay-cta well — a green stripe in the middle of the page with nothing visually anchoring it. Worse, the message it carried duplicated content the next block already showed: - Buyer: the "Pay $X now" CTA right below is itself the call to action. "Offer accepted — pay now to complete your purchase" was noise on top. - Seller: the "Awaiting payment" well right below already names the buyer + amount and explains the auto-email + share link. Drop the is_accepted branch. The state badge in the offer header still shows "Accepted" — so the state is never invisible — and the pay / awaiting blocks carry the per-role copy. Other state-notice alerts (DECLINED, WITHDRAWN, EXPIRED, PAID, can_act, is_open) stay — they're useful precisely because their states have no follow-on action block.
This commit is contained in:
parent
c383c41f92
commit
527298874e
2 changed files with 7 additions and 5 deletions
|
|
@ -44,10 +44,6 @@
|
|||
<div class="alert alert-success offer-state-notice" name="alert">
|
||||
<p class="alert-message">Paid — this offer is complete.</p>
|
||||
</div>
|
||||
{% elif is_accepted %}
|
||||
<div class="alert alert-success offer-state-notice" name="alert">
|
||||
<p class="alert-message">Offer accepted{% if request.user and request.user.uuid_str == buyer_id %} — pay now to complete your purchase{% elif not is_paid %} — waiting on the buyer to pay ${{ "%.2f"|format(current_amount) }}{% endif %}.</p>
|
||||
</div>
|
||||
{% elif can_act %}
|
||||
<div class="alert alert-info offer-state-notice" name="alert">
|
||||
<p class="alert-message">It's your turn — accept, counter, or decline below.</p>
|
||||
|
|
|
|||
|
|
@ -6924,13 +6924,19 @@ class TestOfferCheckout(_AuthenticatedBase):
|
|||
body = self.testapp.get(f"/o/{offer_id}", status=200).body.decode()
|
||||
self.assertIn("Awaiting payment", body)
|
||||
self.assertIn("offer-pay-link", body)
|
||||
self.assertIn("waiting on the buyer to pay $75.00", body)
|
||||
self.assertIn("Buyer must pay", body)
|
||||
self.assertIn("$75.00", body)
|
||||
# Auto-email language: seller is told the buyer was emailed a
|
||||
# one-time link, not that they need to courier it themselves.
|
||||
self.assertIn("emailed", body)
|
||||
self.assertIn("one-time checkout link", body)
|
||||
# Seller never sees the buyer's pay-now form (they cannot pay).
|
||||
self.assertNotIn(f"/o/{offer_id}/checkout", body)
|
||||
# The orphaned green "Offer accepted — waiting on the buyer"
|
||||
# state-notice banner that used to float between the header and
|
||||
# the awaiting-payment well is gone; the awaiting-payment well
|
||||
# itself carries the message now.
|
||||
self.assertNotIn("offer-state-notice", body)
|
||||
|
||||
def test_pending_offer_renders_respond_countdown(self):
|
||||
"""A PENDING / COUNTERED offer carries a 'respond by' countdown
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue