diff --git a/routers/projects.py b/routers/projects.py index 874c483..6621af2 100644 --- a/routers/projects.py +++ b/routers/projects.py @@ -100,19 +100,18 @@ def create_project(project: ProjectCreate, request:Request, db: db_dependency): user = get_user_from_jwt(request, db) - db_project = ProjectCreate( + db_project = Project( name=project.name, description=project.description, - tasks=[], - user_ids=[getattr(user, "id")] + tasks=[] ) + + db_project.users.append(user) + db.add(db_project) db.commit() db.refresh(db_project) - db.commit() - db.refresh(db_project) - return db_project @@ -207,16 +206,11 @@ def delete_project(project_id: int, db: db_dependency, request: Request): db_project = get_project_by_id_for_user(user, project_id, db) ## Remove dangling tasks and user associations - tasks: List[TaskBase] = db.query(TaskBase).filter(getattr(TaskBase, "project_id") == project_id).all() + tasks: List[Task] = db.query(Task).filter(Task.project_id == project_id).all() for task in tasks: db.delete(task) db_project.tasks.remove(task) - users: List[ProjectUserBase] = db.query(ProjectUserBase).join(ProjectUserBase).filter(getattr(ProjectBase, "id") == project_id).all() - for proj_user in users: - db_project.users.remove(proj_user) - proj_user.projects.remove(db_project) - db.delete(db_project) db.commit() return {"detail": "Project deleted successfully"} diff --git a/schemas/projects.py b/schemas/projects.py index 302d7f5..592cea8 100644 --- a/schemas/projects.py +++ b/schemas/projects.py @@ -16,10 +16,11 @@ class ProjectFull(ProjectBase): id: int class ProjectCreate(BaseModel): + model_config = ConfigDict(from_attributes=True) + name: str description: Optional[str] = None tasks: List[TaskBase] = [] - user_ids: List[int] = [] class ProjectUpdate(BaseModel): name: Optional[str] = None