diff --git a/kontor-api/src/templates/comic/artist_detail.html b/kontor-api/src/templates/comic/artist_detail.html
index aed3bd1..650f796 100644
--- a/kontor-api/src/templates/comic/artist_detail.html
+++ b/kontor-api/src/templates/comic/artist_detail.html
@@ -51,7 +51,11 @@
{% endblock %}
diff --git a/kontor-api/src/templates/comic/artist_edit.html b/kontor-api/src/templates/comic/artist_edit.html
new file mode 100644
index 0000000..c73b585
--- /dev/null
+++ b/kontor-api/src/templates/comic/artist_edit.html
@@ -0,0 +1,32 @@
+{% extends "shared/base.html" %}
+
+
+{% block title %}
+ Edit Artist
+{% endblock %}
+
+{% block content %}
+
+
+
+ {% for error in errors %}
+
{{error}}
+ {% endfor %}
+
+
+
+
+
Edit an Artist entry
+
+
+
+{% endblock %}
diff --git a/kontor-api/src/webapps/base.py b/kontor-api/src/webapps/base.py
index 7c71e8b..acb8015 100644
--- a/kontor-api/src/webapps/base.py
+++ b/kontor-api/src/webapps/base.py
@@ -4,13 +4,14 @@ from fastapi.templating import Jinja2Templates
from src.core.config import settings
from src.webapps.admin import route_admin
from src.webapps.auth import route_login
-from src.webapps.comic import route_comics, route_worktype
+from src.webapps.comic import route_comics, route_worktype, route_artists
from src.webapps.media import route_media, route_videos
templates = Jinja2Templates(directory="src/templates")
api_router = APIRouter()
api_router.include_router(route_comics.router)
+api_router.include_router(route_artists.router)
api_router.include_router(route_worktype.router)
api_router.include_router(route_media.router)
api_router.include_router(route_videos.router)
diff --git a/kontor-api/src/webapps/comic/route_artists.py b/kontor-api/src/webapps/comic/route_artists.py
new file mode 100644
index 0000000..00cf0cd
--- /dev/null
+++ b/kontor-api/src/webapps/comic/route_artists.py
@@ -0,0 +1,53 @@
+from fastapi import APIRouter, Request, responses, status
+from fastapi.templating import Jinja2Templates
+from fastapi.responses import RedirectResponse
+
+from src.apis.utils import SessionDep
+from src.db.models.comic import Artist
+from typing import AnyStr
+
+#from src.db.repository.comic import create_new_worktype, update_worktype
+from src.main import logger
+#from src.schema.comics.worktype import AddWorkType
+#from src.webapps.comic.forms import AddWorktypeForm
+
+templates = Jinja2Templates(directory="src/templates")
+router = APIRouter(include_in_schema=False, prefix="/comic")
+
+@router.get("/artists")
+def get_artists(db: SessionDep, request: Request, msg: str | None = None):
+ artists = db.query(Artist).all()
+ return templates.TemplateResponse("comic/artists.html", {"request": request, "msg": msg, "artists": artists})
+
+@router.get("/artists/{artist_id}")
+def artist_detail(artist_id: AnyStr, request: Request, db: SessionDep):
+ artist = db.get(Artist, str(artist_id))
+ return templates.TemplateResponse("comic/artist_detail.html", {"request": request, "artist": artist})
+
+
+@router.get("/artist/edit/{artist_id}")
+def edit_artist(db: SessionDep, request: Request, artist_id: str):
+ artist = db.get(Artist, artist_id)
+ return templates.TemplateResponse("comic/artist_edit.html", {"request": request, "artist_name": artist.name, "artist_link": artist.weblink})
+
+@router.post("/artist/edit/{artist_id}")
+async def edit_artist(request: Request, db: SessionDep, artist_id: str):
+ form = AddArtistForm(request)
+ await form.load_data()
+ if form.is_valid():
+ try:
+ artist = AddArtist(**form.__dict__)
+ artist = update_artist(artist=artist, artist_id=artist_id, db=db)
+ return RedirectResponse(f"/comic/artists/{artist.id}", status_code=status.HTTP_303_SEE_OTHER)
+ except Exception as e:
+ print(e)
+ form.__dict__.get("errors").append("artist already added")
+ return templates.TemplateResponse("comic/artist_edit.html", form.__dict__)
+ return templates.TemplateResponse("comic/artist_edit.html", form.__dict__)
+
+@router.get("/artist/delete/{artist_id}")
+async def delete_artist(db: SessionDep, request: Request, artist_id: str):
+ artist = db.get(Artist, artist_id)
+ db.delete(artist)
+ db.commit()
+ return RedirectResponse("/comic/artists", status_code=status.HTTP_303_SEE_OTHER)
diff --git a/kontor-api/src/webapps/comic/route_comics.py b/kontor-api/src/webapps/comic/route_comics.py
index b27dd97..808795a 100644
--- a/kontor-api/src/webapps/comic/route_comics.py
+++ b/kontor-api/src/webapps/comic/route_comics.py
@@ -18,16 +18,6 @@ def comic_details(comic_id: AnyStr, request: Request, db: SessionDep):
comic = db.get(Comic, comic_id)
return templates.TemplateResponse("comic/comic_detail.html", {"request": request, "comic":comic})
-@router.get("/artists")
-def get_artists(db: SessionDep, request: Request, msg: str | None = None):
- artists = db.query(Artist).all()
- return templates.TemplateResponse("comic/artists.html", {"request": request, "msg": msg, "artists": artists})
-
-@router.get("/artists/{artist_id}")
-def artist_detail(artist_id: AnyStr, request: Request, db: SessionDep):
- artist = db.get(Artist, str(artist_id))
- return templates.TemplateResponse("comic/artist_detail.html", {"request": request, "artist": artist})
-
@router.get("/publishers")
def get_publishers(db: SessionDep, request: Request, msg: str | None = None):
publishers = db.query(Publisher).all()