mirror of
https://github.com/simple-login/app.git
synced 2024-09-20 15:05:59 +08:00
add admin page for manual subscription
This commit is contained in:
parent
b00524e74f
commit
0f9cb13920
|
@ -5,6 +5,7 @@ from flask_admin.actions import action
|
|||
from flask_admin.contrib import sqla
|
||||
from flask_login import current_user
|
||||
|
||||
from app.extensions import db
|
||||
from app.models import User, ManualSubscription
|
||||
|
||||
|
||||
|
@ -120,3 +121,19 @@ class MailboxAdmin(SLModelView):
|
|||
class LifetimeCouponAdmin(SLModelView):
|
||||
can_edit = True
|
||||
can_create = True
|
||||
|
||||
|
||||
class ManualSubscriptionAdmin(SLModelView):
|
||||
can_edit = True
|
||||
|
||||
@action(
|
||||
"extend_1y",
|
||||
"Extend for 1 year",
|
||||
"Extend 1 year more?",
|
||||
)
|
||||
def extend_1y(self, ids):
|
||||
for ms in ManualSubscription.query.filter(ManualSubscription.id.in_(ids)):
|
||||
ms.end_at = ms.end_at.shift(years=1)
|
||||
flash(f"Extend subscription for {ms.user}", "success")
|
||||
|
||||
db.session.commit()
|
||||
|
|
|
@ -34,6 +34,7 @@ from app.admin_model import (
|
|||
AliasAdmin,
|
||||
MailboxAdmin,
|
||||
LifetimeCouponAdmin,
|
||||
ManualSubscriptionAdmin,
|
||||
)
|
||||
from app.api.base import api_bp
|
||||
from app.auth.base import auth_bp
|
||||
|
@ -93,6 +94,7 @@ from app.models import (
|
|||
File,
|
||||
Contact,
|
||||
RefusedEmail,
|
||||
ManualSubscription,
|
||||
)
|
||||
from app.monitor.base import monitor_bp
|
||||
from app.oauth.base import oauth_bp
|
||||
|
@ -205,7 +207,7 @@ def fake_data():
|
|||
password="password",
|
||||
activated=True,
|
||||
is_admin=True,
|
||||
enable_otp=False,
|
||||
# enable_otp=True,
|
||||
otp_secret="base32secret3232",
|
||||
intro_shown=True,
|
||||
fido_uuid=None,
|
||||
|
@ -372,6 +374,10 @@ def fake_data():
|
|||
Mailbox.create(user_id=user2.id, email="winston2@high.table", verified=True)
|
||||
db.session.commit()
|
||||
|
||||
ManualSubscription.create(
|
||||
user_id=user2.id, end_at=arrow.now().shift(years=1, days=1), commit=True
|
||||
)
|
||||
|
||||
|
||||
@login_manager.user_loader
|
||||
def load_user(user_id):
|
||||
|
@ -795,6 +801,7 @@ def init_admin(app):
|
|||
admin.add_view(MailboxAdmin(Mailbox, db.session))
|
||||
admin.add_view(EmailLogAdmin(EmailLog, db.session))
|
||||
admin.add_view(LifetimeCouponAdmin(LifetimeCoupon, db.session))
|
||||
admin.add_view(ManualSubscriptionAdmin(ManualSubscription, db.session))
|
||||
|
||||
|
||||
def setup_do_not_track(app):
|
||||
|
|
Loading…
Reference in a new issue