Skip to content

Commit 2908f96

Browse files
committed
admin views init moved into utils/
1 parent f55ad31 commit 2908f96

File tree

2 files changed

+41
-24
lines changed

2 files changed

+41
-24
lines changed

src/FlaskRTBCTF/__init__.py

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,6 @@
33
from flask import Flask
44

55
from FlaskRTBCTF.config import Config
6-
from FlaskRTBCTF.admin.views import (
7-
BaseModelView,
8-
UserAdminView,
9-
MachineAdminView,
10-
NotificationAdminView,
11-
)
126
from FlaskRTBCTF.utils import (
137
db,
148
bcrypt,
@@ -18,36 +12,23 @@
1812
mail,
1913
inject_app_context,
2014
)
21-
22-
from FlaskRTBCTF.users.models import User, Logs
23-
from FlaskRTBCTF.main.models import Notification
24-
from FlaskRTBCTF.ctf.models import Machine
25-
2615
from FlaskRTBCTF.users.routes import users
2716
from FlaskRTBCTF.ctf.routes import ctf
2817
from FlaskRTBCTF.main.routes import main
2918

19+
3020
_blueprints = (users, ctf, main)
3121

22+
_extensions = (db, bcrypt, cache, login_manager, admin_manager, mail)
23+
3224

3325
def create_app(config_class=Config):
3426
app = Flask(__name__)
3527
app.config.from_object(Config)
36-
37-
db.init_app(app)
38-
bcrypt.init_app(app)
39-
cache.init_app(app)
40-
login_manager.init_app(app)
41-
admin_manager.init_app(app)
42-
mail.init_app(app)
43-
4428
app.context_processor(inject_app_context)
4529

46-
# Add model views for admin control
47-
admin_manager.add_view(UserAdminView(User, db.session))
48-
admin_manager.add_view(MachineAdminView(Machine, db.session))
49-
admin_manager.add_view(NotificationAdminView(Notification, db.session))
50-
admin_manager.add_view(BaseModelView(Logs, db.session))
30+
for _ext in _extensions:
31+
_ext.init_app(app)
5132

5233
for _bp in _blueprints:
5334
app.register_blueprint(_bp)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,43 @@
11
from flask_admin import Admin
22
from flask_admin.menu import MenuLink
33

4+
from FlaskRTBCTF.admin.views import (
5+
BaseModelView,
6+
UserAdminView,
7+
MachineAdminView,
8+
NotificationAdminView,
9+
ChallengeAdminView,
10+
UserChallengeAdminView,
11+
UserMachineAdminView,
12+
)
13+
14+
from FlaskRTBCTF.users.models import User, Logs
15+
from FlaskRTBCTF.main.models import Notification
16+
from FlaskRTBCTF.ctf.models import (
17+
Machine,
18+
Challenge,
19+
Tag,
20+
Category,
21+
UserChallenge,
22+
UserMachine,
23+
)
24+
from .models import db
425

526
admin_manager = Admin(template_mode="bootstrap3")
627
admin_manager.add_link(MenuLink(name="CTF Setup", url="/setup"))
728
admin_manager.add_link(MenuLink(name="Go Back", url="/"))
29+
30+
# Add model views for admin control
31+
admin_manager.add_view(NotificationAdminView(Notification, db.session))
32+
admin_manager.add_view(UserAdminView(User, db.session, category="Users"))
33+
admin_manager.add_view(BaseModelView(Logs, db.session, category="Users"))
34+
admin_manager.add_view(ChallengeAdminView(Challenge, db.session, category="Challenges"))
35+
admin_manager.add_view(
36+
UserChallengeAdminView(UserChallenge, db.session, category="Challenges")
37+
)
38+
admin_manager.add_view(BaseModelView(Category, db.session, category="Challenges"))
39+
admin_manager.add_view(BaseModelView(Tag, db.session, category="Challenges"))
40+
admin_manager.add_view(MachineAdminView(Machine, db.session, category="Machines"))
41+
admin_manager.add_view(
42+
UserMachineAdminView(UserMachine, db.session, category="Machines")
43+
)

0 commit comments

Comments
 (0)