diff --git a/kontor-api/src/db/models/comic.py b/kontor-api/src/db/models/comic.py index 347301a..678e9c0 100644 --- a/kontor-api/src/db/models/comic.py +++ b/kontor-api/src/db/models/comic.py @@ -161,6 +161,17 @@ class WorkType(Base, BaseMixin): works[comic] = [artist] return works + def get_artists(self) -> Dict[str, List[str]]: + works: Dict[str, List[str]] = {} + for work in self.comic_works: + comic = work.comic.title + artist = work.artist + if comic in works: + works[comic].append(artist) + else: + works[comic] = [artist] + return works + def __repr__(self): return f'Worktype({self.id} {self.version} {self.name} {len(self.comic_works)})' diff --git a/kontor-api/src/db/repository/comic.py b/kontor-api/src/db/repository/comic.py index a8774c5..53f3a12 100644 --- a/kontor-api/src/db/repository/comic.py +++ b/kontor-api/src/db/repository/comic.py @@ -1,10 +1,13 @@ +import uuid +from datetime import datetime from typing import List, Type from sqlalchemy.orm import Session -from src.db.models.comic import Artist, Comic, Issue +from src.db.models.comic import Artist, Comic, Issue, WorkType from src.schema.comics.artist import ArtistDetailResponse from src.schema.comics.issue import IssueDetailsResponse +from src.webapps.comic.forms import AddWorktypeForm def get_artist_details(artist: Artist) -> ArtistDetailResponse: @@ -38,3 +41,15 @@ def get_issue_details(issue: Issue) -> IssueDetailsResponse: volume_id=issue.volume_id ) return response + +def create_new_worktype(work: AddWorktypeForm, db: Session) -> WorkType: + worktype = WorkType() + worktype.id = str(uuid.uuid4()) + worktype.created_date = datetime.now() + worktype.last_modified_date = datetime.now() + worktype.name = work.worktype + db.add(worktype) + db.commit() + db.refresh(worktype) + print(worktype) + return worktype diff --git a/kontor-api/src/db/repository/media.py b/kontor-api/src/db/repository/media.py index bfde24f..9221c88 100644 --- a/kontor-api/src/db/repository/media.py +++ b/kontor-api/src/db/repository/media.py @@ -1,9 +1,21 @@ from sqlalchemy.orm import Session - +import uuid +from datetime import datetime from src.db.models.media import MediaVideo from src.webapps.media.forms import AddLinkForm def create_new_video(video: AddLinkForm, db: Session) -> MediaVideo: print(video.url) - return MediaVideo() + media_video = MediaVideo() + media_video.id = str(uuid.uuid4()) + media_video.url = video.url + media_video.created_date = datetime.now() + media_video.last_modified_date = datetime.now() + media_video.review = True + media_video.should_download = True + db.add(media_video) + db.commit() + db.refresh(media_video) + print(media_video) + return media_video diff --git a/kontor-api/src/templates/comic/add_worktype.html b/kontor-api/src/templates/comic/add_worktype.html new file mode 100644 index 0000000..0055747 --- /dev/null +++ b/kontor-api/src/templates/comic/add_worktype.html @@ -0,0 +1,28 @@ +{% extends "shared/base.html" %} + + +{% block title %} +