fix(project):add list project
This commit is contained in:
@@ -50,4 +50,8 @@ class RecordModel(Record):
|
|||||||
design_progress_id: uuid.UUID = Field(description='کد شناسایی فیلد پیشرفت طراحی در این فیلد قرار می گیرد')
|
design_progress_id: uuid.UUID = Field(description='کد شناسایی فیلد پیشرفت طراحی در این فیلد قرار می گیرد')
|
||||||
|
|
||||||
class CreateDesignProgress(DesignProgressModel):
|
class CreateDesignProgress(DesignProgressModel):
|
||||||
records:Optional[List[Record]]=Field(description='لیست رکوردها د این فیلد قرار میگیرد')
|
records:Optional[List[Record]]=Field(description='لیست رکوردها د این فیلد قرار میگیرد')
|
||||||
|
|
||||||
|
class GetRecord(pydantic.BaseModel):
|
||||||
|
project_id:uuid.UUID = Field(description='کد شناسایی پروژ')
|
||||||
|
type:Literal[1, 2, 3, 4, 5, 6, 7] = Field(description='نوع')
|
||||||
@@ -3,7 +3,7 @@ import uuid
|
|||||||
from typing import List
|
from typing import List
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from app.models.design_progress import DesignProgressModel, CreateDesignProgress, RecordModel
|
from app.models.design_progress import DesignProgressModel, CreateDesignProgress, RecordModel, GetRecord
|
||||||
from core.repositories.base import BaseRepository
|
from core.repositories.base import BaseRepository
|
||||||
from core.service.mongo_db import use_collection
|
from core.service.mongo_db import use_collection
|
||||||
from core.utils.crudify import mongo_soft_deleter
|
from core.utils.crudify import mongo_soft_deleter
|
||||||
@@ -12,7 +12,8 @@ COLLECTION = "design_progress"
|
|||||||
class DesignProgressRepository(BaseRepository[CreateDesignProgress]):
|
class DesignProgressRepository(BaseRepository[CreateDesignProgress]):
|
||||||
def __int__(self):
|
def __int__(self):
|
||||||
super().__init__(collection=COLLECTION, model=CreateDesignProgress)
|
super().__init__(collection=COLLECTION, model=CreateDesignProgress)
|
||||||
def create_progress_model(self,_inp:CreateDesignProgress)->DesignProgressModel:
|
def create_progress_model(self,_inp:CreateDesignProgress, type_create='create')->DesignProgressModel:
|
||||||
|
print(type_create)
|
||||||
if _inp.complete_at:
|
if _inp.complete_at:
|
||||||
_inp.start_at = _inp.records[0].send.date_at
|
_inp.start_at = _inp.records[0].send.date_at
|
||||||
progress = DesignProgressModel(
|
progress = DesignProgressModel(
|
||||||
@@ -23,7 +24,11 @@ class DesignProgressRepository(BaseRepository[CreateDesignProgress]):
|
|||||||
start_at= _inp.start_at,
|
start_at= _inp.start_at,
|
||||||
complete_at= _inp.complete_at
|
complete_at= _inp.complete_at
|
||||||
)
|
)
|
||||||
progress.init_id().cu_at()
|
if type_create == 'create':
|
||||||
|
print('9999999999999')
|
||||||
|
progress.init_id().cu_at()
|
||||||
|
else:
|
||||||
|
progress.u_at()
|
||||||
return progress
|
return progress
|
||||||
def create_record(self,_inp:CreateDesignProgress,_id:uuid.UUID=None):
|
def create_record(self,_inp:CreateDesignProgress,_id:uuid.UUID=None):
|
||||||
records = []
|
records = []
|
||||||
@@ -40,18 +45,26 @@ class DesignProgressRepository(BaseRepository[CreateDesignProgress]):
|
|||||||
progress = self.create_progress_model(create)
|
progress = self.create_progress_model(create)
|
||||||
await use_collection(COLLECTION).insert_one(progress.mongo_dict())
|
await use_collection(COLLECTION).insert_one(progress.mongo_dict())
|
||||||
if create.records:
|
if create.records:
|
||||||
|
list_records = []
|
||||||
records = self.create_record(create, progress.id)
|
records = self.create_record(create, progress.id)
|
||||||
for record in records:
|
for record in records:
|
||||||
await use_collection('design_progress_record').insert_one(record.mongo_dict())
|
list_records.append(record.mongo_dict())
|
||||||
return await self.get(progress.id)
|
await use_collection('design_progress_record').insert_many(list_records)
|
||||||
|
get_record = GetRecord(
|
||||||
|
project_id=create.project_id,
|
||||||
|
type=create.type
|
||||||
|
)
|
||||||
|
return await self.get(get_record)
|
||||||
|
|
||||||
async def get(self, _id: UUID):
|
async def get(self,get_record:GetRecord):
|
||||||
progress = await use_collection(COLLECTION).find_one({"_id":_id})
|
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":_id}).to_list(None)
|
progress['records'] = await use_collection('design_progress_record').find({"design_progress_id":progress["_id"]}).to_list(None)
|
||||||
return progress
|
return progress
|
||||||
|
|
||||||
async def update(self, _id: UUID, update: CreateDesignProgress):
|
async def update(self, _id: UUID, update: CreateDesignProgress):
|
||||||
progress = self.create_progress_model(update)
|
progress = self.create_progress_model(update,'update')
|
||||||
|
print(progress)
|
||||||
|
print(_id)
|
||||||
await use_collection(COLLECTION).update_one({"_id":_id},{"$set":progress.mongo_dict()})
|
await use_collection(COLLECTION).update_one({"_id":_id},{"$set":progress.mongo_dict()})
|
||||||
if update.records:
|
if update.records:
|
||||||
before_records = await use_collection('design_progress_record').distinct("_id",{"design_progress_id":_id})
|
before_records = await use_collection('design_progress_record').distinct("_id",{"design_progress_id":_id})
|
||||||
@@ -61,13 +74,14 @@ class DesignProgressRepository(BaseRepository[CreateDesignProgress]):
|
|||||||
delete_records = list(before_records).copy()
|
delete_records = list(before_records).copy()
|
||||||
for record in update.records:
|
for record in update.records:
|
||||||
if record.id:
|
if record.id:
|
||||||
save_record = RecordModel(
|
save_record = {
|
||||||
design_progress_id=_id,
|
"_id":record.id,
|
||||||
title=record.title,
|
"title":record.title,
|
||||||
send=record.send,
|
"design_progress_id":_id,
|
||||||
receive=record.receive
|
"send":record.send.dict(),
|
||||||
).u_at()
|
"receive":record.receive.dict()
|
||||||
update_records.append(save_record.mongo_dict())
|
}
|
||||||
|
update_records.append(save_record)
|
||||||
update_record_ids.append(record.id)
|
update_record_ids.append(record.id)
|
||||||
delete_records.remove(record.id)
|
delete_records.remove(record.id)
|
||||||
else:
|
else:
|
||||||
@@ -79,7 +93,8 @@ class DesignProgressRepository(BaseRepository[CreateDesignProgress]):
|
|||||||
).init_id().cu_at()
|
).init_id().cu_at()
|
||||||
create_records.append(save_record.mongo_dict())
|
create_records.append(save_record.mongo_dict())
|
||||||
if update_records:
|
if update_records:
|
||||||
await use_collection('design_progress_record').update_many({"_id":{"$in":update_record_ids}},{"$set":update_records})
|
print("111111111",update_record_ids)
|
||||||
|
await use_collection('design_progress_record').update_many({"_id": {"$in":update_record_ids}},{"$set":update_records})
|
||||||
if create_records:
|
if create_records:
|
||||||
await use_collection('design_progress_record').insert_many(create_records)
|
await use_collection('design_progress_record').insert_many(create_records)
|
||||||
if delete_records:
|
if delete_records:
|
||||||
|
|||||||
Reference in New Issue
Block a user