fix(subscriptions): un abonnement en échec (failed) ne bloque plus le réabonnement
This commit is contained in:
@@ -294,12 +294,16 @@ def _tous_abonnes_banner():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _show_active_view(row) -> bool:
|
||||||
|
return row is not None and row["status"] != "failed"
|
||||||
|
|
||||||
|
|
||||||
def layout(**query):
|
def layout(**query):
|
||||||
guard = account_guard("/compte/abonnement", require_subscription=False)
|
guard = account_guard("/compte/abonnement", require_subscription=False)
|
||||||
if guard is not None:
|
if guard is not None:
|
||||||
return guard
|
return guard
|
||||||
|
|
||||||
row = db.get_by_user(current_user.id) if current_user.is_authenticated else None
|
row = db.get_current(current_user.id) if current_user.is_authenticated else None
|
||||||
trial_used = (
|
trial_used = (
|
||||||
db.has_used_trial(current_user.id) if current_user.is_authenticated else False
|
db.has_used_trial(current_user.id) if current_user.is_authenticated else False
|
||||||
)
|
)
|
||||||
@@ -310,7 +314,7 @@ def layout(**query):
|
|||||||
body.append(banner)
|
body.append(banner)
|
||||||
body.extend(_feedback(query))
|
body.extend(_feedback(query))
|
||||||
|
|
||||||
if row is not None:
|
if _show_active_view(row):
|
||||||
body.append(_active_view(row))
|
body.append(_active_view(row))
|
||||||
body.append(_resiliation_modal(row["current_period_end"]))
|
body.append(_resiliation_modal(row["current_period_end"]))
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -77,3 +77,17 @@ def test_banner_absent_when_flag_off(monkeypatch):
|
|||||||
from src.pages import compte_abonnement
|
from src.pages import compte_abonnement
|
||||||
|
|
||||||
assert compte_abonnement._tous_abonnes_banner() is None
|
assert compte_abonnement._tous_abonnes_banner() is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_show_active_view_true_for_live_statuses(monkeypatch):
|
||||||
|
from src.pages import compte_abonnement
|
||||||
|
|
||||||
|
for status in ("pending", "trial", "active", "cancelled", "expired"):
|
||||||
|
assert compte_abonnement._show_active_view({"status": status}) is True
|
||||||
|
|
||||||
|
|
||||||
|
def test_show_active_view_false_for_failed_or_none(monkeypatch):
|
||||||
|
from src.pages import compte_abonnement
|
||||||
|
|
||||||
|
assert compte_abonnement._show_active_view({"status": "failed"}) is False
|
||||||
|
assert compte_abonnement._show_active_view(None) is False
|
||||||
|
|||||||
Reference in New Issue
Block a user