+
Titel
Review
Download
+ Actions
- {% for mediafile in mediafiles %}
+ {% for mediafile in mediafiles %}
{{mediafile.title}}
{% with check=mediafile.review %}{% include "components/check.html" %}{% endwith %}
{% with check=mediafile.should_download %}{% include "components/check.html" %}{% endwith %}
+ Edit
+ Delete
- {% endfor %}
+ {% endfor %}
diff --git a/kontor-api/src/templates/media/media_nav.html b/kontor-api/src/templates/media/media_nav.html
new file mode 100644
index 0000000..104176b
--- /dev/null
+++ b/kontor-api/src/templates/media/media_nav.html
@@ -0,0 +1,5 @@
+
diff --git a/kontor-api/src/templates/shared/base.html b/kontor-api/src/templates/shared/base.html
index 26a5c00..a4a4216 100644
--- a/kontor-api/src/templates/shared/base.html
+++ b/kontor-api/src/templates/shared/base.html
@@ -1,25 +1,75 @@
-
-
-
-
-
- {% block title %}
- {% endblock %}
-
+
+
+
+
+
+ {% block title %}
+ {% endblock %}
+
-
- {% include "components/navbar.html" %}
- {% block content %}
- {% endblock %}
+
+
+ {% include "components/navbar.html" %}
+ {% block subnav %}
+ {% endblock %}
+
-
-
-
-
- {% block scripts %}
- {% endblock %}
+ {% block content %}
+ {% endblock %}
-
+
+
+ {% block scripts %}
+ {% endblock %}
+
+
+
+
+
diff --git a/kontor-api/src/webapps/comic/route_worktype.py b/kontor-api/src/webapps/comic/route_worktype.py
index 8e55f20..d079564 100644
--- a/kontor-api/src/webapps/comic/route_worktype.py
+++ b/kontor-api/src/webapps/comic/route_worktype.py
@@ -29,7 +29,7 @@ def add_worktype(request: Request, db: SessionDep):
return templates.TemplateResponse("comic/worktype_edit.html", {"request": request})
@router.post("/worktype/add")
-async def add_worktype(db: SessionDep, request: Request):
+async def add_worktype_post(db: SessionDep, request: Request):
form = AddWorktypeForm(request)
await form.load_data()
if form.is_valid():
@@ -47,11 +47,11 @@ async def add_worktype(db: SessionDep, request: Request):
@router.get("/worktype/edit/{worktype_id}")
def edit_worktype(db: SessionDep, request: Request, worktype_id: str):
- worktype = db.get(WorkType, worktype_id)
+ worktype: WorkType | None = db.get(WorkType, worktype_id)
return templates.TemplateResponse("comic/worktype_edit.html", {"request": request, "worktype": worktype.name})
@router.post("/worktype/edit/{worktype_id}")
-async def edit_worktype(request: Request, db: SessionDep, worktype_id: str):
+async def edit_worktype_post(request: Request, db: SessionDep, worktype_id: str):
form = AddWorktypeForm(request)
await form.load_data()
if form.is_valid():
diff --git a/kontor-api/src/webapps/media/route_actors.py b/kontor-api/src/webapps/media/route_actors.py
new file mode 100644
index 0000000..4b112b8
--- /dev/null
+++ b/kontor-api/src/webapps/media/route_actors.py
@@ -0,0 +1,24 @@
+from typing import AnyStr
+
+from fastapi import APIRouter, Request
+from fastapi.templating import Jinja2Templates
+from sqlalchemy import or_
+
+from src.apis.utils import SessionDep
+from src.db.models.media import MediaActor
+from src.core.log_conf import logger
+
+templates = Jinja2Templates(directory="src/templates")
+router = APIRouter(include_in_schema=False, prefix="/media")
+
+
+@router.get("/actors")
+def get_actors(db: SessionDep, request: Request, msg: str | None = None):
+ actors = db.query(MediaActor).all()
+ return templates.TemplateResponse("media/actors.html", {"request": request, "msg": msg, "actors": actors})
+
+@router.get("/actors/{actor_id}")
+def artist_detail(actor_id: AnyStr, request: Request, db: SessionDep):
+ actor = db.get(MediaActor, actor_id)
+ return templates.TemplateResponse("media/actor_detail.html", {"request": request, "actor": actor})
+
diff --git a/kontor-api/src/webapps/media/route_media.py b/kontor-api/src/webapps/media/route_media.py
index 3cacf3a..ef0f817 100644
--- a/kontor-api/src/webapps/media/route_media.py
+++ b/kontor-api/src/webapps/media/route_media.py
@@ -9,12 +9,13 @@ from src.apis.utils import SessionDep
from src.apis.version1.admin import get_current_user_from_token
from src.db.models.admin import Profile
from src.db.models.media import MediaFile, MediaActor
+from src.core.log_conf import logger
templates = Jinja2Templates(directory="src/templates")
router = APIRouter(include_in_schema=False, prefix="/media")
@router.get("/files")
-def get_mediafiles(db: SessionDep, request: Request, msg: str = None):
+def get_mediafiles(db: SessionDep, request: Request, msg: str | None = None):
params = request.query_params
query = params.get("query")
filter = {}
@@ -40,6 +41,7 @@ def get_mediafiles(db: SessionDep, request: Request, msg: str = None):
return templates.TemplateResponse("media/files.html", {"request": request, "msg": msg, "mediafiles": mediafiles})
except Exception as e:
print(e)
+ logger.info("User is not authorized, no data shown")
msg = "Nicht berechtigt!!"
return templates.TemplateResponse("media/files.html", {"request": request, "msg": msg, "mediafiles": []})
@@ -48,13 +50,8 @@ def file_details(file_id: AnyStr, request: Request, db: SessionDep):
mediafile = db.get(MediaFile, file_id)
return templates.TemplateResponse("media/file_detail.html", {"request": request, "mediafile":mediafile})
-@router.get("/actors")
-def get_actors(db: SessionDep, request: Request, msg: str = None):
- actors = db.query(MediaActor).all()
- return templates.TemplateResponse("media/actors.html", {"request": request, "msg": msg, "actors": actors})
-
-@router.get("/actors/{actor_id}")
-def artist_detail(actor_id: AnyStr, request: Request, db: SessionDep):
- actor = db.get(MediaActor, actor_id)
- return templates.TemplateResponse("media/actor_detail.html", {"request": request, "actor": actor})
+@router.get("files/edit/{file_id}")
+def edit_file(db: SessionDep, request: Request, file_id: str):
+ media_file = db.get(MediaFile, file_id)
+ return templates.TemplateResponse("media/file_detail.html", {"request": request, "mediafile":media_file})
diff --git a/kontor-vue/index.html b/kontor-vue/index.html
index 9e5fc8f..3fc8249 100644
--- a/kontor-vue/index.html
+++ b/kontor-vue/index.html
@@ -1,10 +1,10 @@
-
+
-
-
-
-
Vite App
+
+
+
+
Kontor
diff --git a/kontor-vue/src/App.vue b/kontor-vue/src/App.vue
index 5f0a584..c40c854 100644
--- a/kontor-vue/src/App.vue
+++ b/kontor-vue/src/App.vue
@@ -1,62 +1,20 @@
-
-
-
-
-
- Home
- About
-
-
+
diff --git a/kontor-vue/src/router/index.ts b/kontor-vue/src/router/index.ts
index 3e49915..3519ba5 100644
--- a/kontor-vue/src/router/index.ts
+++ b/kontor-vue/src/router/index.ts
@@ -1,5 +1,6 @@
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
+import ComicsView from '@/views/ComicsView.vue'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
@@ -9,6 +10,11 @@ const router = createRouter({
name: 'home',
component: HomeView,
},
+ {
+ path: '/comics',
+ name: 'comics',
+ component: ComicsView,
+ },
{
path: '/about',
name: 'about',
diff --git a/kontor-vue/src/views/ComicsView.vue b/kontor-vue/src/views/ComicsView.vue
new file mode 100644
index 0000000..5d18d4a
--- /dev/null
+++ b/kontor-vue/src/views/ComicsView.vue
@@ -0,0 +1,6 @@
+
+
+
+
Comics
+
+