mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-08-07 03:11:15 +03:00
Add ability to mark review items as unreviewed (#20446)
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
* new body param * use new body param in endpoint * explicitly use new param in frontend endpoint * use reviewsegment as type instead of list of strings * add toggle function to mark as unreviewed when all selected are reviewed * i18n * fix tests
This commit is contained in:
@@ -4,3 +4,5 @@ from pydantic import BaseModel, conlist, constr
|
||||
class ReviewModifyMultipleBody(BaseModel):
|
||||
# List of string with at least one element and each element with at least one char
|
||||
ids: conlist(constr(min_length=1), min_length=1)
|
||||
# Whether to mark items as reviewed (True) or unreviewed (False)
|
||||
reviewed: bool = True
|
||||
|
||||
+10
-5
@@ -435,22 +435,27 @@ async def set_multiple_reviewed(
|
||||
UserReviewStatus.user_id == user_id,
|
||||
UserReviewStatus.review_segment == review_id,
|
||||
)
|
||||
# If it exists and isn’t reviewed, update it
|
||||
if not review_status.has_been_reviewed:
|
||||
review_status.has_been_reviewed = True
|
||||
# Update based on the reviewed parameter
|
||||
if review_status.has_been_reviewed != body.reviewed:
|
||||
review_status.has_been_reviewed = body.reviewed
|
||||
review_status.save()
|
||||
except DoesNotExist:
|
||||
try:
|
||||
UserReviewStatus.create(
|
||||
user_id=user_id,
|
||||
review_segment=ReviewSegment.get(id=review_id),
|
||||
has_been_reviewed=True,
|
||||
has_been_reviewed=body.reviewed,
|
||||
)
|
||||
except (DoesNotExist, IntegrityError):
|
||||
pass
|
||||
|
||||
return JSONResponse(
|
||||
content=({"success": True, "message": "Reviewed multiple items"}),
|
||||
content=(
|
||||
{
|
||||
"success": True,
|
||||
"message": f"Marked multiple items as {'reviewed' if body.reviewed else 'unreviewed'}",
|
||||
}
|
||||
),
|
||||
status_code=200,
|
||||
)
|
||||
|
||||
|
||||
@@ -416,7 +416,7 @@ class TestHttpReview(BaseTestHttp):
|
||||
assert response.status_code == 200
|
||||
response = response.json()
|
||||
assert response["success"] == True
|
||||
assert response["message"] == "Reviewed multiple items"
|
||||
assert response["message"] == "Marked multiple items as reviewed"
|
||||
# Verify that in DB the review segment was not changed
|
||||
with self.assertRaises(DoesNotExist):
|
||||
UserReviewStatus.get(
|
||||
@@ -433,7 +433,7 @@ class TestHttpReview(BaseTestHttp):
|
||||
assert response.status_code == 200
|
||||
response_json = response.json()
|
||||
assert response_json["success"] == True
|
||||
assert response_json["message"] == "Reviewed multiple items"
|
||||
assert response_json["message"] == "Marked multiple items as reviewed"
|
||||
# Verify UserReviewStatus was created
|
||||
user_review = UserReviewStatus.get(
|
||||
UserReviewStatus.user_id == self.user_id,
|
||||
|
||||
Reference in New Issue
Block a user