display when subscription ends in admin

This commit is contained in:
Son NK 2021-03-26 12:14:48 +01:00
parent 26a087619c
commit 9d5c2e3f80
3 changed files with 30 additions and 1 deletions

View File

@ -50,6 +50,7 @@ class UserAdmin(SLModelView):
def scaffold_list_columns(self):
ret = super().scaffold_list_columns()
ret.insert(0, "upgrade_channel")
ret.insert(0, "premium_end")
return ret
@action(

View File

@ -478,6 +478,31 @@ class User(db.Model, ModelMixin, UserMixin):
return "N/A"
@property
def premium_end(self) -> str:
if self.lifetime:
return "Forever"
sub: Subscription = self.get_subscription()
if sub:
return str(sub.next_bill_date)
apple_sub: AppleSubscription = AppleSubscription.get_by(user_id=self.id)
if apple_sub and apple_sub.is_valid():
return apple_sub.expires_date.humanize()
manual_sub: ManualSubscription = ManualSubscription.get_by(user_id=self.id)
if manual_sub and manual_sub.is_active():
return manual_sub.end_at.humanize()
coinbase_subscription: CoinbaseSubscription = CoinbaseSubscription.get_by(
user_id=self.id
)
if coinbase_subscription and coinbase_subscription.is_active():
return coinbase_subscription.end_at.humanize()
return "N/A"
def can_create_new_alias(self) -> bool:
if self.is_premium():
return True

View File

@ -388,7 +388,10 @@ def fake_data():
db.session.commit()
ManualSubscription.create(
user_id=user2.id, end_at=arrow.now().shift(years=1, days=1), commit=True
user_id=user2.id,
end_at=arrow.now().shift(years=1, days=1),
comment="Local manual",
commit=True,
)