feat: 支持研究素材删除并统一 Semi 表格
This commit is contained in:
@@ -76,11 +76,12 @@ class Assets:
|
||||
ResearchAsset.id == asset_id,
|
||||
ResearchAsset.version == body.version,
|
||||
ResearchAsset.kind == body.kind,
|
||||
ResearchAsset.archived.is_(False),
|
||||
)
|
||||
.values(version=body.version + 1, name=content["name"], updated_at=now())
|
||||
)
|
||||
if changed.rowcount != 1:
|
||||
raise HTTPException(409, "素材已变化,保留草稿并读取最新版本")
|
||||
raise HTTPException(409, "素材已变化或已删除,保留草稿并读取最新版本")
|
||||
version = body.version + 1
|
||||
else:
|
||||
asset_id, version = uid(), 1
|
||||
@@ -100,11 +101,15 @@ class Assets:
|
||||
async def archive(self, asset_id, version):
|
||||
result = await self.db.execute(
|
||||
update(ResearchAsset)
|
||||
.where(ResearchAsset.id == asset_id, ResearchAsset.version == version)
|
||||
.where(
|
||||
ResearchAsset.id == asset_id,
|
||||
ResearchAsset.version == version,
|
||||
ResearchAsset.archived.is_(False),
|
||||
)
|
||||
.values(archived=True, version=ResearchAsset.version + 1, updated_at=now())
|
||||
)
|
||||
if result.rowcount != 1:
|
||||
raise HTTPException(409, "素材已变化或不存在")
|
||||
raise HTTPException(409, "素材已变化、已删除或不存在,请刷新后重试")
|
||||
# Archiving is itself a revision; old references remain resolvable.
|
||||
previous = await self.db.get(ResearchRevision, (asset_id, version))
|
||||
self.db.add(
|
||||
|
||||
Reference in New Issue
Block a user