feat: 增加菜地图片
This commit is contained in:
31
.idea/workspace.xml
generated
31
.idea/workspace.xml
generated
@@ -5,30 +5,9 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="92592c29-2276-4c2c-bd45-9ab94e25491d" name="Changes" comment="">
|
<list default="true" id="92592c29-2276-4c2c-bd45-9ab94e25491d" name="Changes" comment="">
|
||||||
<change afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/schemas/patch.py" beforeDir="false" afterPath="$PROJECT_DIR$/schemas/patch.py" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/service/patch_service.py" beforeDir="false" afterPath="$PROJECT_DIR$/service/patch_service.py" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/.idea/patch-service.iml" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/config/database.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/config/rustfs.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/models/base.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/models/patch.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/requirements.txt" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/routers/__init__.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/routers/crop.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/routers/file.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/routers/patch.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/routers/record.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/schemas/patch.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/service/crop_service.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/service/file_service.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/service/patch_service.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/service/record_service.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/test_main.http" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/utils/common.py" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -111,7 +90,7 @@
|
|||||||
<option name="number" value="Default" />
|
<option name="number" value="Default" />
|
||||||
<option name="presentableId" value="Default" />
|
<option name="presentableId" value="Default" />
|
||||||
<updated>1788917189828</updated>
|
<updated>1788917189828</updated>
|
||||||
<workItem from="1788917190899" duration="17315000" />
|
<workItem from="1788917190899" duration="18264000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
@@ -119,6 +98,6 @@
|
|||||||
<option name="version" value="3" />
|
<option name="version" value="3" />
|
||||||
</component>
|
</component>
|
||||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||||
<SUITE FILE_PATH="coverage/patch_service$patch_service.coverage" NAME="patch-service Coverage Results" MODIFIED="1788950175309" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
|
<SUITE FILE_PATH="coverage/patch_service$patch_service.coverage" NAME="patch-service Coverage Results" MODIFIED="1788951341519" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -29,6 +29,7 @@ class CropUpdate(BaseModel):
|
|||||||
|
|
||||||
class CropResponse(CropCreate):
|
class CropResponse(CropCreate):
|
||||||
id: int
|
id: int
|
||||||
|
images: Optional[list[str]] = None
|
||||||
|
|
||||||
model_config = {
|
model_config = {
|
||||||
"from_attributes": True
|
"from_attributes": True
|
||||||
|
|||||||
@@ -21,13 +21,27 @@ def get_patches(db: Session) -> list[PatchResponse]:
|
|||||||
crop = db.execute(
|
crop = db.execute(
|
||||||
select(Crops).where(Crops.patch_id == p.id)
|
select(Crops).where(Crops.patch_id == p.id)
|
||||||
).scalar_one_or_none()
|
).scalar_one_or_none()
|
||||||
|
|
||||||
data = PatchResponse.model_validate(p)
|
data = PatchResponse.model_validate(p)
|
||||||
data.crop = CropResponse.from_orm(crop) if crop else None
|
|
||||||
|
if crop:
|
||||||
|
latest_record = db.execute(
|
||||||
|
select(Records)
|
||||||
|
.where(Records.crop_id == crop.id)
|
||||||
|
.order_by(Records.date.desc())
|
||||||
|
.limit(1)
|
||||||
|
).scalar_one_or_none()
|
||||||
|
|
||||||
|
crop_data = CropResponse.from_orm(crop)
|
||||||
|
crop_data.images = latest_record.images if latest_record else []
|
||||||
|
data.crop = crop_data
|
||||||
|
else:
|
||||||
|
data.crop = None
|
||||||
|
|
||||||
result.append(data)
|
result.append(data)
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def get_patch(db: Session, patch_id: int) -> PatchResponse | None:
|
def get_patch(db: Session, patch_id: int) -> PatchResponse | None:
|
||||||
patch = db.execute(
|
patch = db.execute(
|
||||||
select(Patches).where(Patches.id == patch_id)
|
select(Patches).where(Patches.id == patch_id)
|
||||||
|
|||||||
Reference in New Issue
Block a user