From fa2e0a614fb39bf224169bd2acb612fde4cd5115 Mon Sep 17 00:00:00 2001 From: shahzeydyfah Date: Sat, 9 Mar 2024 23:01:16 +0330 Subject: [PATCH] fix(project):add list project --- app/models/design_progress.py | 31 +++++++++++++++-------------- app/repositories/design_progress.py | 14 ++++++++----- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/app/models/design_progress.py b/app/models/design_progress.py index 9a0eec8..15bd68f 100644 --- a/app/models/design_progress.py +++ b/app/models/design_progress.py @@ -15,23 +15,23 @@ class DesignProgressModel(BaseModel): complete_at: Optional[datetime.datetime] = Field(description='تاریخ تکمیل مدارک') user_complete: Optional[int] = Field(description='کاربری که اطلاعات را تکمیل می کند در این فیلد قرار می گیرد') type: Literal[1, 2, 3, 4, 5, 6, 7] = Field(description=""" - 1 تکمیل مدارک و مستندات -.2 فاز صفر -.3 فاز یک -.4 طراحی شبکه و دوربین و برق اضطراری -.5 فاز دو -.6 متر برآورد - .7 اسناد مناقصه + 1. تکمیل مدارک و مستندات + .2 فاز صفر + .3 فاز یک + .4 طراحی شبکه و دوربین و برق اضطراری + .5 فاز دو + .6 متر برآورد + .7 اسناد مناقصه """) parent_id: Optional[uuid.UUID] = Field(description='زیر مجموعه کدام نوع اصلی است') sub_type: Optional[Literal[1, 2, 3, 4, 5, 6, 7]] = Field(description=""" - 1. برنامه فیزیکی - 2. گزارش فاز صفر کلیه رشته ها -3. آلترناتیک لکه گذاری جا نمایی در سایت - 4. آلترناتیک لکه گذاری معماری طبقات - 5. فاز یک معماری -6.تائید دانشگاه علوم پزشکی - 7.گزارش های کلیه رشته ها + 1. برنامه فیزیکی + 2. گزارش فاز صفر کلیه رشته ها + 3. آلترناتیک لکه گذاری جا نمایی در سایت + 4. آلترناتیک لکه گذاری معماری طبقات + 5. فاز یک معماری + 6.تائید دانشگاه علوم پزشکی + 7.گزارش های کلیه رشته ها """) @@ -54,4 +54,5 @@ class CreateDesignProgress(DesignProgressModel): class GetRecord(pydantic.BaseModel): project_id:uuid.UUID = Field(description='کد شناسایی پروژ') - type:Literal[1, 2, 3, 4, 5, 6, 7] = Field(description='نوع') \ No newline at end of file + type:Literal[1, 2, 3, 4, 5, 6, 7] = Field(description='نوع') + sub_type:Optional[Literal[1, 2, 3, 4, 5, 6, 7]] \ No newline at end of file diff --git a/app/repositories/design_progress.py b/app/repositories/design_progress.py index 74c8292..8c4e9d1 100644 --- a/app/repositories/design_progress.py +++ b/app/repositories/design_progress.py @@ -3,6 +3,8 @@ import uuid from typing import List from uuid import UUID +from fastapi import HTTPException + from app.models.design_progress import DesignProgressModel, CreateDesignProgress, RecordModel, GetRecord from core.repositories.base import BaseRepository from core.service.mongo_db import use_collection @@ -13,8 +15,7 @@ class DesignProgressRepository(BaseRepository[CreateDesignProgress]): def __int__(self): super().__init__(collection=COLLECTION, model=CreateDesignProgress) def create_progress_model(self,_inp:CreateDesignProgress, type_create='create')->DesignProgressModel: - print(type_create) - if _inp.complete_at: + if _inp.complete_at and _inp.records: _inp.start_at = _inp.records[0].send.date_at progress = DesignProgressModel( project_id=_inp.project_id, @@ -25,7 +26,6 @@ class DesignProgressRepository(BaseRepository[CreateDesignProgress]): complete_at= _inp.complete_at ) if type_create == 'create': - print('9999999999999') progress.init_id().cu_at() else: progress.u_at() @@ -57,8 +57,12 @@ class DesignProgressRepository(BaseRepository[CreateDesignProgress]): return await self.get(get_record) async def get(self,get_record:GetRecord): - progress = await use_collection(COLLECTION).find_one({"project_id":get_record.project_id,"type":get_record.type}) - progress['records'] = await use_collection('design_progress_record').find({"design_progress_id":progress["_id"]}).to_list(None) + print("2222222") + if get_record.type in [2,3]: + raise HTTPException(status_code=422,detail='لطفا نوع زیرمجموعه را ارد کنید') + progress = await use_collection(COLLECTION).find_one({"project_id":get_record.project_id,"type":get_record.type,"sub_type":get_record.sub_type}) + if progress: + progress['records'] = await use_collection('design_progress_record').find({"design_progress_id":progress["_id"]}).to_list(None) return progress async def update(self, _id: UUID, update: CreateDesignProgress):