Skip to content

Commit

Permalink
Only make panel available in dev environment
Browse files Browse the repository at this point in the history
  • Loading branch information
lcarvajal committed Jul 26, 2024
1 parent e23d0ab commit b8dc94c
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 30 deletions.
6 changes: 5 additions & 1 deletion app/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@

load_dotenv()

SQLALCHEMY_DATABASE_URL = os.getenv('DATABASE_URL')
if os.getenv('ENV') == 'dev':
SQLALCHEMY_DATABASE_URL = os.getenv('PROD_DATABASE_URL')
else:
SQLALCHEMY_DATABASE_URL = os.getenv('DATABASE_URL')

engine = create_engine(SQLALCHEMY_DATABASE_URL)

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Expand Down
32 changes: 3 additions & 29 deletions app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
from fastapi.middleware.cors import CORSMiddleware
import os,json, base64
from dotenv import load_dotenv
from sqladmin import Admin, ModelView
import firebase_admin
from app.router import router
from app.config import get_settings
from app.database import engine, Base
from app.models import user, roadmap
from app.utils.admin import configure_admin

load_dotenv()

Expand Down Expand Up @@ -43,30 +42,5 @@
cred = firebase_admin.credentials.Certificate(service_account_info)
firebase_admin.initialize_app(cred)

# Set up Admin
admin = Admin(app, engine)

class UserAdmin(ModelView, model=user.User):
column_list = [user.User.id, user.User.name]

class RoadmapAdmin(ModelView, model=roadmap.Roadmap):
column_list = [roadmap.Roadmap.id, roadmap.Roadmap.title]

class RoadmapFollowAdmin(ModelView, model=roadmap.RoadmapFollow):
column_list = [roadmap.RoadmapFollow.id, roadmap.RoadmapFollow.user_id, roadmap.RoadmapFollow.roadmap_id]

class ModuleAdmin(ModelView, model=roadmap.Module):
column_list = [roadmap.Module.id, roadmap.Module.title]

class SubmoduleAdmin(ModelView, model=roadmap.Submodule):
column_list = [roadmap.Submodule.id, roadmap.Submodule.title]

class ResourceAdmin(ModelView, model=roadmap.Resource):
column_list = [roadmap.Resource.id, roadmap.Resource.title, roadmap.Resource.type, roadmap.Resource.url]

admin.add_view(UserAdmin)
admin.add_view(RoadmapAdmin)
admin.add_view(RoadmapFollowAdmin)
admin.add_view(ModuleAdmin)
admin.add_view(SubmoduleAdmin)
admin.add_view(ResourceAdmin)
if os.getenv('ENV') == 'dev':
configure_admin(app, engine)
30 changes: 30 additions & 0 deletions app/utils/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from app.models import user, roadmap
from sqladmin import Admin, ModelView

def configure_admin(app, engine):
admin = Admin(app, engine)

class UserAdmin(ModelView, model=user.User):
column_list = [user.User.id, user.User.name]

class RoadmapAdmin(ModelView, model=roadmap.Roadmap):
column_list = [roadmap.Roadmap.id, roadmap.Roadmap.title]

class RoadmapFollowAdmin(ModelView, model=roadmap.RoadmapFollow):
column_list = [roadmap.RoadmapFollow.id, roadmap.RoadmapFollow.user_id, roadmap.RoadmapFollow.roadmap_id]

class ModuleAdmin(ModelView, model=roadmap.Module):
column_list = [roadmap.Module.id, roadmap.Module.title]

class SubmoduleAdmin(ModelView, model=roadmap.Submodule):
column_list = [roadmap.Submodule.id, roadmap.Submodule.title]

class ResourceAdmin(ModelView, model=roadmap.Resource):
column_list = [roadmap.Resource.id, roadmap.Resource.title, roadmap.Resource.type, roadmap.Resource.url]

admin.add_view(UserAdmin)
admin.add_view(RoadmapAdmin)
admin.add_view(RoadmapFollowAdmin)
admin.add_view(ModuleAdmin)
admin.add_view(SubmoduleAdmin)
admin.add_view(ResourceAdmin)

0 comments on commit b8dc94c

Please sign in to comment.