vargha commited on
Commit
ebf7d39
Β·
1 Parent(s): 624ba32

fixing batching for loading data

Browse files
Files changed (1) hide show
  1. components/review_dashboard_page.py +28 -14
components/review_dashboard_page.py CHANGED
@@ -479,10 +479,17 @@ class ReviewDashboardPage:
479
  gr.update(value="❌ Reject") # Reset reject button text
480
  )
481
 
 
 
 
 
 
 
 
482
  def navigate_and_load_fn(items, current_idx, direction, session):
483
  """Combined navigation and loading function"""
484
  if not items:
485
- return items, 0
486
 
487
  # Navigate
488
  if direction == "next":
@@ -492,13 +499,15 @@ class ReviewDashboardPage:
492
  if should_load_more:
493
  log.info(f"User reached end of loaded items ({new_idx}/{len(items)}), will load more items")
494
  # Load more items
495
- updated_items = load_more_items_fn(items, session, current_batch_size=10)
496
- return updated_items, new_idx
 
 
497
  else:
498
- return items, new_idx
499
  else: # prev
500
  new_idx = max(current_idx - 1, 0)
501
- return items, new_idx
502
 
503
  def save_validation_fn(items, idx, session, approved: bool, rejection_reason: str = ""):
504
  if not items or idx >= len(items):
@@ -615,7 +624,7 @@ class ReviewDashboardPage:
615
  username = session.get("username")
616
 
617
  if not user_id or not username:
618
- return items # Return existing items if no user session
619
 
620
  # Find target annotator
621
  target_annotator = None
@@ -625,12 +634,17 @@ class ReviewDashboardPage:
625
  break
626
 
627
  if not target_annotator:
628
- return items
629
 
630
  with get_db() as db:
631
  target_annotator_obj = db.query(Annotator).filter_by(name=target_annotator).first()
632
  if not target_annotator_obj:
633
- return items
 
 
 
 
 
634
 
635
  # Load next batch starting from where we left off
636
  offset = len(items)
@@ -670,7 +684,7 @@ class ReviewDashboardPage:
670
  # Combine with existing items
671
  all_items = items + new_items
672
  log.info(f"Loaded {len(new_items)} more items, total now: {len(all_items)}")
673
- return all_items
674
 
675
  # Output definitions
676
  review_display_outputs = [
@@ -715,7 +729,7 @@ class ReviewDashboardPage:
715
  ).then(
716
  fn=lambda items, idx, session, dir=direction: navigate_and_load_fn(items, idx, dir, session),
717
  inputs=[self.items_state, self.idx_state, session_state],
718
- outputs=[self.items_state, self.idx_state]
719
  ).then(
720
  fn=show_current_review_item_fn,
721
  inputs=[self.items_state, self.idx_state, session_state],
@@ -751,7 +765,7 @@ class ReviewDashboardPage:
751
  ).then(
752
  fn=lambda items, idx, session: navigate_and_load_fn(items, idx, "next", session),
753
  inputs=[self.items_state, self.idx_state, session_state],
754
- outputs=[self.items_state, self.idx_state]
755
  ).then(
756
  fn=show_current_review_item_fn,
757
  inputs=[self.items_state, self.idx_state, session_state],
@@ -772,9 +786,9 @@ class ReviewDashboardPage:
772
  inputs=[self.items_state, self.idx_state, session_state, self.rejection_mode_active],
773
  outputs=[self.header.progress_display]
774
  ).then(
775
- fn=lambda items, idx, session, rejection_mode: navigate_and_load_fn(items, idx, "next", session) if not rejection_mode else (items, idx),
776
  inputs=[self.items_state, self.idx_state, session_state, self.rejection_mode_active],
777
- outputs=[self.items_state, self.idx_state]
778
  ).then(
779
  fn=lambda items, idx, session, rejection_mode: show_current_review_item_fn(items, idx, session) if not rejection_mode else (
780
  str(items[idx]["tts_id"]) if items and idx < len(items) else "",
@@ -802,7 +816,7 @@ class ReviewDashboardPage:
802
  self.btn_skip.click(
803
  fn=lambda items, idx, session: navigate_and_load_fn(items, idx, "next", session),
804
  inputs=[self.items_state, self.idx_state, session_state],
805
- outputs=[self.items_state, self.idx_state]
806
  ).then(
807
  fn=show_current_review_item_fn,
808
  inputs=[self.items_state, self.idx_state, session_state],
 
479
  gr.update(value="❌ Reject") # Reset reject button text
480
  )
481
 
482
+ def update_review_info_fn(items, total_count):
483
+ """Update the review info banner with current loaded items count"""
484
+ if items:
485
+ return f"πŸ” **Phase 2 Review Mode** - Reviewing assigned annotations. Loaded {len(items)} of {total_count} total items."
486
+ else:
487
+ return f"πŸ” **Phase 2 Review Mode** - No annotations found for review."
488
+
489
  def navigate_and_load_fn(items, current_idx, direction, session):
490
  """Combined navigation and loading function"""
491
  if not items:
492
+ return items, 0, ""
493
 
494
  # Navigate
495
  if direction == "next":
 
499
  if should_load_more:
500
  log.info(f"User reached end of loaded items ({new_idx}/{len(items)}), will load more items")
501
  # Load more items
502
+ updated_items, total_count = load_more_items_fn(items, session, current_batch_size=10)
503
+ # Update review info with new count
504
+ review_info = update_review_info_fn(updated_items, total_count)
505
+ return updated_items, new_idx, review_info
506
  else:
507
+ return items, new_idx, "" # No review info update needed
508
  else: # prev
509
  new_idx = max(current_idx - 1, 0)
510
+ return items, new_idx, "" # No review info update needed
511
 
512
  def save_validation_fn(items, idx, session, approved: bool, rejection_reason: str = ""):
513
  if not items or idx >= len(items):
 
624
  username = session.get("username")
625
 
626
  if not user_id or not username:
627
+ return items, 0 # Return existing items if no user session
628
 
629
  # Find target annotator
630
  target_annotator = None
 
634
  break
635
 
636
  if not target_annotator:
637
+ return items, 0
638
 
639
  with get_db() as db:
640
  target_annotator_obj = db.query(Annotator).filter_by(name=target_annotator).first()
641
  if not target_annotator_obj:
642
+ return items, 0
643
+
644
+ # Get total count for updated review info
645
+ total_count = db.query(Annotation).filter(
646
+ Annotation.annotator_id == target_annotator_obj.id
647
+ ).count()
648
 
649
  # Load next batch starting from where we left off
650
  offset = len(items)
 
684
  # Combine with existing items
685
  all_items = items + new_items
686
  log.info(f"Loaded {len(new_items)} more items, total now: {len(all_items)}")
687
+ return all_items, total_count
688
 
689
  # Output definitions
690
  review_display_outputs = [
 
729
  ).then(
730
  fn=lambda items, idx, session, dir=direction: navigate_and_load_fn(items, idx, dir, session),
731
  inputs=[self.items_state, self.idx_state, session_state],
732
+ outputs=[self.items_state, self.idx_state, self.review_info]
733
  ).then(
734
  fn=show_current_review_item_fn,
735
  inputs=[self.items_state, self.idx_state, session_state],
 
765
  ).then(
766
  fn=lambda items, idx, session: navigate_and_load_fn(items, idx, "next", session),
767
  inputs=[self.items_state, self.idx_state, session_state],
768
+ outputs=[self.items_state, self.idx_state, self.review_info]
769
  ).then(
770
  fn=show_current_review_item_fn,
771
  inputs=[self.items_state, self.idx_state, session_state],
 
786
  inputs=[self.items_state, self.idx_state, session_state, self.rejection_mode_active],
787
  outputs=[self.header.progress_display]
788
  ).then(
789
+ fn=lambda items, idx, session, rejection_mode: navigate_and_load_fn(items, idx, "next", session) if not rejection_mode else (items, idx, ""),
790
  inputs=[self.items_state, self.idx_state, session_state, self.rejection_mode_active],
791
+ outputs=[self.items_state, self.idx_state, self.review_info]
792
  ).then(
793
  fn=lambda items, idx, session, rejection_mode: show_current_review_item_fn(items, idx, session) if not rejection_mode else (
794
  str(items[idx]["tts_id"]) if items and idx < len(items) else "",
 
816
  self.btn_skip.click(
817
  fn=lambda items, idx, session: navigate_and_load_fn(items, idx, "next", session),
818
  inputs=[self.items_state, self.idx_state, session_state],
819
+ outputs=[self.items_state, self.idx_state, self.review_info]
820
  ).then(
821
  fn=show_current_review_item_fn,
822
  inputs=[self.items_state, self.idx_state, session_state],