Fixed moderation queue not properly handling new states
authorAlexander Ebert <ebert@woltlab.com>
Sun, 2 Nov 2014 14:38:41 +0000 (15:38 +0100)
committerAlexander Ebert <ebert@woltlab.com>
Sun, 2 Nov 2014 14:38:41 +0000 (15:38 +0100)
Fixes #1836

wcfsetup/install/files/lib/data/moderation/queue/ModerationQueueAction.class.php
wcfsetup/install/files/lib/system/moderation/queue/ModerationQueueManager.class.php

index 8345d1dba38923ffc434be34f893f4c8c5867bfe..ab8ef634fe4446d8583f66878935ebb5ca06b0f7 100644 (file)
@@ -104,7 +104,7 @@ class ModerationQueueAction extends AbstractDatabaseObjectAction {
                
                $queueList = new ViewableModerationQueueList();
                $queueList->getConditionBuilder()->add("moderation_queue.objectTypeID IN (?)", array($objectTypeIDs));
-               $queueList->getConditionBuilder()->add("moderation_queue.status <> ?", array(ModerationQueue::STATUS_DONE));
+               $queueList->getConditionBuilder()->add("moderation_queue.status IN (?)", array(array(ModerationQueue::STATUS_OUTSTANDING, ModerationQueue::STATUS_PROCESSING)));
                $queueList->sqlOrderBy = 'moderation_queue.lastChangeTime DESC';
                $queueList->sqlLimit = 5;
                $queueList->loadUserProfiles = true;
index 27a209096f1ade723324bccab4fc89c2005bbea5..4ec7d9dd22571157cb10ed814da960a4d7a8da03 100644 (file)
@@ -243,19 +243,18 @@ class ModerationQueueManager extends SingletonFactory {
                        }
                        
                        // count outstanding and assigned queues
+                       $conditions = new PreparedStatementConditionBuilder();
+                       $conditions->add("moderation_queue_to_user.userID = ?", array(WCF::getUser()->userID));
+                       $conditions->add("moderation_queue_to_user.isAffected = ?", array(1));
+                       $conditions->add("moderation_queue.status IN (?)", array(array(ModerationQueue::STATUS_OUTSTANDING, ModerationQueue::STATUS_PROCESSING)));
+                       
                        $sql = "SELECT          COUNT(*) AS count
                                FROM            wcf".WCF_N."_moderation_queue_to_user moderation_queue_to_user
                                LEFT JOIN       wcf".WCF_N."_moderation_queue moderation_queue
                                ON              (moderation_queue.queueID = moderation_queue_to_user.queueID)
-                               WHERE           moderation_queue_to_user.userID = ?
-                                               AND moderation_queue_to_user.isAffected = ?
-                                               AND moderation_queue.status <> ?";
+                               ".$conditions;
                        $statement = WCF::getDB()->prepareStatement($sql);
-                       $statement->execute(array(
-                               WCF::getUser()->userID,
-                               1,
-                               ModerationQueue::STATUS_DONE
-                       ));
+                       $statement->execute($conditions->getParameters());
                        $row = $statement->fetchArray();
                        $count = $row['count'];