diff --git a/apps/api/app/community_review.py b/apps/api/app/community_review.py index 74da105..d580652 100644 --- a/apps/api/app/community_review.py +++ b/apps/api/app/community_review.py @@ -61,13 +61,16 @@ def suggest_aliases(session: Session, observation: ExternalObservation) -> tuple return (fish_alias.fish if fish_alias else None, waterbody_alias.waterbody if waterbody_alias else None) -def reject_observation(session: Session, observation: ExternalObservation, *, reason: str) -> ExternalObservation: +def reject_observation( + session: Session, observation: ExternalObservation, *, reason: str, commit: bool = True, +) -> ExternalObservation: if observation.status == "published": raise ExternalReviewError("published observation cannot be rejected") observation.status = "rejected" observation.review_note = reason observation.reviewed_at = datetime.now(timezone.utc) - session.commit() + if commit: + session.commit() return observation diff --git a/apps/api/app/routers/admin.py b/apps/api/app/routers/admin.py index 416ea56..9473577 100644 --- a/apps/api/app/routers/admin.py +++ b/apps/api/app/routers/admin.py @@ -388,7 +388,8 @@ def admin_reject_external_observations_bulk(payload: ExternalObservationBulkDeci raise HTTPException(status_code=409, detail="one or more observations changed; reload the queue") for item in observations: item.moderation_version += 1 - reject_observation(db, item, reason=payload.reason) + reject_observation(db, item, reason=payload.reason, commit=False) + db.commit() return ExternalObservationBulkResult(updated=len(observations))