This commit is contained in:
wuaho 2021-09-10 18:04:12 +08:00
parent ea93aee1bd
commit d30d98fb3d
5 changed files with 37 additions and 12 deletions

View File

@ -71,6 +71,21 @@ async def move(
return schemas.Msg(code=0, msg='ok', data='移动成功')
@router.post("/sort")
async def sort(
game: str,
data_in: schemas.DashboardSort,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""
看板排序
"""
for item in data_in.sort:
await crud.dashboard.set_sort(db, index=item.dashboard_id, sort=item.sort)
return schemas.Msg(code=0, msg='ok', data=1)
@router.post("/copy")
async def copy(
data_in: schemas.DashboardCopy,

View File

@ -239,13 +239,12 @@ async def read_kanban(
kanban = await crud.folder.read_folder(db, project_id=data_in.id, user_id=current_user.id, cat='kanban')
for item in kanban:
dashboards = await crud.dashboard.find_many(db, {'pid': item['_id']})
res['kanban'].append({
'name': item['name'],
'children': [],
'_id': item['_id']
})
for d in dashboards:
async for d in crud.dashboard.find(db, {'pid': item['_id']}).sort([('sort', 1)]):
res['kanban'][-1]['children'].append({
'name': d['name'],
'_id': d['_id']
@ -275,14 +274,14 @@ async def read_kanban(
'isFolder': True
})
for d in await crud.dashboard.find_many(db, {'pid': f['_id']}):
async for d in crud.dashboard.find(db, {'pid': item['_id']}).sort([('sort', 1)]):
res['spaces'][-1]['children'][-1]['children'].append({
'name': d['name'],
'_id': d['_id']
})
# 空间 看板
for d in await crud.dashboard.find_many(db, {'pid': item['_id']}):
async for d in crud.dashboard.find(db, {'pid': item['_id']}).sort([('sort', 1)]):
res['spaces'][-1]['children'].append({
'name': d['name'],
'_id': d['_id'],

View File

@ -17,11 +17,13 @@ class CRUDDashboard(CRUDBase):
)
await db[self.coll_name].insert_one(db_obj.dict(by_alias=True))
async def set_sort(self, db: AsyncIOMotorDatabase, index: str, sort: int):
await self.update_one(db, {'_id': index}, {'$set': {'sort': sort}})
async def create_index(self, db: AsyncIOMotorDatabase):
await db[self.coll_name].create_index(
[('project_id', pymongo.DESCENDING), ('name', pymongo.DESCENDING), ('user_id', pymongo.DESCENDING)],
unique=True)
dashboard = CRUDDashboard('dashboard')

View File

@ -59,6 +59,15 @@ class DashboardMove(BaseModel):
cat: Category
class Sort(BaseModel):
dashboard_id: str
sort: int
class DashboardSort(BaseModel):
sort: List[Sort]
class DashboardCopy(BaseModel):
source_ids: List[str]
dest_project_id: str