@@ -41,8 +41,9 @@ class TaskRole(Enum):
41
41
42
42
class ActiveTreeSizeRow (pydantic .BaseModel ):
43
43
message_tree_id : UUID
44
- tree_size : int
45
44
goal_tree_size : int
45
+ tree_size : int
46
+ awaiting_review : Optional [int ]
46
47
47
48
@property
48
49
def remaining_messages (self ) -> int :
@@ -625,8 +626,8 @@ def check_condition_for_ranking_state(self, message_tree_id: UUID) -> bool:
625
626
626
627
# check if desired tree size has been reached and all nodes have been reviewed
627
628
tree_size = self .query_tree_size (message_tree_id )
628
- if tree_size .remaining_messages > 0 :
629
- logger .debug (f"False { tree_size .remaining_messages = } " )
629
+ if tree_size .remaining_messages > 0 or tree_size . awaiting_review > 0 :
630
+ logger .debug (f"False { tree_size .remaining_messages = } , { tree_size . awaiting_review = } " )
630
631
return False
631
632
632
633
self ._enter_state (mts , message_tree_state .State .RANKING )
@@ -884,18 +885,21 @@ def query_extendible_trees(self, lang: str) -> list[ActiveTreeSizeRow]:
884
885
def query_tree_size (self , message_tree_id : UUID ) -> ActiveTreeSizeRow :
885
886
"""Returns the number of reviewed not deleted messages in the message tree."""
886
887
888
+ required_reviews = settings .tree_manager .num_reviews_reply
887
889
qry = (
888
890
self .db .query (
889
891
MessageTreeState .message_tree_id .label ("message_tree_id" ),
890
892
MessageTreeState .goal_tree_size .label ("goal_tree_size" ),
891
- func .count (Message .id ).label ("tree_size" ),
893
+ func .count (Message .id ).filter (Message .review_result ).label ("tree_size" ),
894
+ func .count (Message .id )
895
+ .filter (not_ (Message .review_result ), Message .review_count < required_reviews )
896
+ .label ("awaiting_review" ),
892
897
)
893
898
.select_from (MessageTreeState )
894
899
.outerjoin (Message , MessageTreeState .message_tree_id == Message .message_tree_id )
895
900
.filter (
896
901
MessageTreeState .active ,
897
902
not_ (Message .deleted ),
898
- Message .review_result ,
899
903
MessageTreeState .message_tree_id == message_tree_id ,
900
904
)
901
905
.group_by (MessageTreeState .message_tree_id , MessageTreeState .goal_tree_size )
@@ -1207,6 +1211,7 @@ def purge_user(self, user_id: UUID, ban: bool = True) -> None:
1207
1211
sql_purge_user = """
1208
1212
DELETE FROM journal WHERE user_id = :user_id;
1209
1213
DELETE FROM message_reaction WHERE user_id = :user_id;
1214
+ DELETE FROM message_emoji WHERE user_id = :user_id;
1210
1215
DELETE FROM task WHERE user_id = :user_id;
1211
1216
DELETE FROM message WHERE user_id = :user_id;
1212
1217
DELETE FROM user_stats WHERE user_id = :user_id;
0 commit comments