@@ -229,7 +229,7 @@ async def assign_label_by_id(
229229 return {"message" : f"Error: { ex } " }
230230
231231@app .post ("/label/cluster/{label}" ,
232- summary = "Assign a label to a localization by cluster name" ,
232+ summary = "Assign a label to a localization by cluster name. Set the verified attribute to true (default), false, or leave off verified=true|false leave verified attribute as-is " ,
233233 status_code = status .HTTP_200_OK )
234234async def assign_label_by_cluster (
235235 label : str , model : LocClusterFilterModel , background_tasks : BackgroundTasks
@@ -261,14 +261,22 @@ async def assign_label_by_cluster(
261261
262262 # Clear the kwargs and add the media name filter
263263 kwargs .clear ()
264- kwargs ["attribute" ] = [f"cluster::{ model .cluster_name } " , "verified::False" ]
265264 if version_id :
266265 kwargs ["version" ] = [version_id ]
267- num_boxes = await get_localization_count (api , spec , ** kwargs )
266+ counts = {}
267+ for verified in ("True" , "False" ):
268+ kwargs ["attribute" ] = [f"cluster::{ model .cluster_name } " , f"verified::{ verified } " ]
269+ counts [verified ] = await get_localization_count (api , spec , ** kwargs )
270+ if model .verify is not None :
271+ kwargs ["attribute" ] = [f"cluster::{ model .cluster_name } " , f"verified::{ str (bool (model .verify ))} " ]
272+ else :
273+ kwargs ["attribute" ] = [f"cluster::{ model .cluster_name } " ]
268274
269275 if model .dry_run :
276+ num_verified = counts ["True" ]
277+ num_unverified = counts ["False" ]
270278 return {
271- "message" : f'{ num_boxes } unverified localizations in '
279+ "message" : f'{ num_unverified } unverified { num_verified } verified localizations in '
272280 f'cluster { model .cluster_name } and '
273281 f'{ model .version_name if version_id else "all versions" } in { num_media } medias'
274282 }
@@ -279,6 +287,7 @@ async def assign_label_by_cluster(
279287 return {
280288 "message" : f"Queued modification of localizations in cluster { model .cluster_name } and "
281289 f'{ model .version_name if version_id else "all versions" } to label { label } '
290+ f' and verify { model .verify if model .verify is not None else "unchanged" } '
282291 }
283292 except Exception as ex :
284293 return {"message" : f"Error: { ex } " }
@@ -401,7 +410,7 @@ async def media_count_by_media_filename(item: MediaNameFilterModelBase):
401410
402411
403412@app .delete ("/localizations/filename" ,
404- summary = "Delete localizations by media filename and filter type Includes/Equals" ,
413+ summary = "Delete localizations by media filename and filter type Includes/Equals. ONLY deletes unverified localizations " ,
405414 status_code = status .HTTP_200_OK )
406415async def localizations_by_media_filename (item : MediaNameFilterModel , background_tasks : BackgroundTasks ):
407416 model = MediaNameFilterModel (** jsonable_encoder (item )) # Convert to a model
@@ -457,7 +466,7 @@ async def localizations_by_media_filename(item: MediaNameFilterModel, background
457466 return {"message" : f"Queued deletion of localizations in medias by filename { model .media_name } " }
458467
459468@app .delete ("/localizations/filename_label" ,
460- summary = "Delete localizations by media filename Includes/Equals and label" ,
469+ summary = "Delete localizations by media filename Includes/Equals and label. ONLY deletes unverified localizations " ,
461470 status_code = status .HTTP_200_OK )
462471async def delete_localizations_by_media_filename_and_label (
463472 model : LocLabelFilterModel , background_tasks : BackgroundTasks
@@ -511,7 +520,7 @@ async def delete_localizations_by_media_filename_and_label(
511520 return {"message" : f"Error: { ex } " }
512521
513522@app .delete ("/localizations/filename_cluster" ,
514- summary = "Delete localizations by media filename Includes/Equals and cluster name" ,
523+ summary = "Delete localizations by media filename Includes/Equals and cluster name. ONLY deletes unverified localizations " ,
515524 status_code = status .HTTP_200_OK )
516525async def delete_localizations_by_media_filename_and_cluster (
517526 model : LocMediaClusterFilterModel , background_tasks : BackgroundTasks
0 commit comments