appdb/ include/appData.php include/downloadurl ...

WineHQ wineowner at wine.codeweavers.com
Sat Jun 9 10:44:46 CDT 2007


ChangeSet ID:	31164
CVSROOT:	/opt/cvs-commit
Module name:	appdb
Changes by:	wineowner at winehq.org	2007/06/09 10:44:46

Modified files:
	include        : appData.php downloadurl.php version_queue.php 
	tables         : appdb_tables.sql 

Log message:
	Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
	Fix app/version rejection. Version queue requeue wasn't requeueing its downloadurl, downloadurl
	class was missing objectManager functionality. Rejected appData wasn't being accounted for.

Patch: http://cvs.winehq.org/patch.py?id=31164

Old revision  New revision  Changes     Path
 1.21          1.22          +32 -2      appdb/include/appData.php
 1.16          1.17          +21 -2      appdb/include/downloadurl.php
 1.11          1.12          +8 -1       appdb/include/version_queue.php
 1.32          1.33          +1 -1       appdb/tables/appdb_tables.sql

Index: appdb/include/appData.php
diff -u -p appdb/include/appData.php:1.21 appdb/include/appData.php:1.22
--- appdb/include/appData.php:1.21	9 Jun 2007 15:44:46 -0000
+++ appdb/include/appData.php	9 Jun 2007 15:44:46 -0000
@@ -52,6 +52,34 @@ class appData
         return $hResult;
     }
 
+    function reQueue()
+    {
+        if(!$this->canEdit())
+            return FALSE;
+
+        $sQuery = "UPDATE appData SET queued = '?' WHERE id = '?'";
+        $hResult = query_parameters($sQuery, "true", $this->iId);
+
+        if(!$hResult)
+            return FALSE;
+        else
+            return TRUE;
+    }
+
+    function reject()
+    {
+        if(!$this->canEdit())
+            return FALSE;
+
+        $sQuery = "UPDATE appData SET queued = '?' WHERE id = '?'";
+        $hResult = query_parameters($sQuery, "rejected", $this->iId);
+
+        if(!$hResult)
+            return FALSE;
+        else
+            return TRUE;
+    }
+
     function update($bSilent = FALSE)
     {
         if(!$this->canEdit())
@@ -122,7 +150,7 @@ class appData
     }
 
     /* Get appData for a given version/application, optionally filter by type */
-    function getData($iId, $sType, $bIsVersion = TRUE, $bQueued = FALSE)
+    function getData($iId, $sType, $bIsVersion = TRUE, $bQueued = FALSE, $bRejected = FALSE)
     {
         $iAppId = 0;
         $iVersionId = 0;
@@ -132,9 +160,11 @@ class appData
         else
             $iAppId = $iId;
 
+        $sQueued = objectManager::getQueueString($bQueued, $bRejected);
+
         $hResult = query_parameters("SELECT * FROM appData WHERE appId = '?' AND
             versionId = '?' AND TYPE = '?' AND queued = '?'",
-                $iAppId, $iVersionId, $sType, $bQueued ? "true" : "false");
+                $iAppId, $iVersionId, $sType, $sQueued);
 
         if(!$hResult || !mysql_num_rows($hResult))
             return FALSE;
Index: appdb/include/downloadurl.php
diff -u -p appdb/include/downloadurl.php:1.16 appdb/include/downloadurl.php:1.17
--- appdb/include/downloadurl.php:1.16	9 Jun 2007 15:44:46 -0000
+++ appdb/include/downloadurl.php	9 Jun 2007 15:44:46 -0000
@@ -244,8 +244,13 @@ class downloadurl
             $sDownloadUrlDescription = $aValues["sDownloadUrlDescription"];
         } else if($iVersionId)
         {
-            if($hResult = appData::getData($iVersionId, "downloadurl",
-                                           TRUE, TRUE))
+            /* This illustrates the importance of converting downloadurl completely
+               to the objectManager model.  If we don't get  a match searching for
+               a queued entry, try finding a rejected one. */
+            if(($hResult = appData::getData($iVersionId, "downloadurl",
+                                           TRUE, TRUE, FALSE)) ||
+               $hResult = appData::getData($iVersionId, "downloadurl",
+                                           TRUE, TRUE, TRUE))
             {
                 $oRow = mysql_fetch_object($hResult);
                 $sDownloadUrlUrl = $oRow->url;
@@ -370,6 +375,20 @@ class downloadurl
         return TRUE;
     }
 
+    function reQueue()
+    {
+        $oAppData = new AppData($this->iId);
+
+        return $oAppData->reQueue();
+    }
+
+    function reject()
+    {
+        $oAppData = new AppData($this->iId);
+
+        return $oAppData->reject();
+    }
+
     function objectGetEntries($bQueued, $bRejected, $iRows = 0, $iStart = 0)
     {
         return appData::objectGetEntries($bQueued, $bRejected, $iRows, $iStart,
Index: appdb/include/version_queue.php
diff -u -p appdb/include/version_queue.php:1.11 appdb/include/version_queue.php:1.12
--- appdb/include/version_queue.php:1.11	9 Jun 2007 15:44:46 -0000
+++ appdb/include/version_queue.php	9 Jun 2007 15:44:46 -0000
@@ -16,7 +16,13 @@ class version_queue
         {
             $iTestingId = testData::getNewestTestIdFromVersionId($iVersionId,
                                                                  $this->oVersion->sQueued);
-            if($hResult = appData::getData($iVersionId, "downloadurl", TRUE, TRUE))
+            /* This illustrates the importance of converting downloadurl completely
+               to the objectManager model.  If we don't get  a match searching for
+               a queued entry, try finding a rejected one. */
+            if(($hResult = appData::getData($iVersionId, "downloadurl",
+                                           TRUE, TRUE, FALSE)) ||
+               $hResult = appData::getData($iVersionId, "downloadurl",
+                                           TRUE, TRUE, TRUE))
             {
                 if($oRow = mysql_fetch_object($hResult))
                     $iDownloadUrlId = $oRow->id;
@@ -46,6 +52,7 @@ class version_queue
     {
         $this->oVersion->reQueue();
         $this->oTestDataQueue->reQueue();
+        $this->oDownloadUrl->reQueue();
     }
 
     function reject()
Index: appdb/tables/appdb_tables.sql
diff -u -p appdb/tables/appdb_tables.sql:1.32 appdb/tables/appdb_tables.sql:1.33
--- appdb/tables/appdb_tables.sql:1.32	9 Jun 2007 15:44:46 -0000
+++ appdb/tables/appdb_tables.sql	9 Jun 2007 15:44:46 -0000
@@ -140,7 +140,7 @@ create table appData (
 	url	          varchar(255) default NULL,
 	submitTime    timestamp(14) NOT NULL,
 	submitterId   int(11) NOT NULL default '0',
-	queued        enum('true','false') NOT NULL default 'false',
+	queued        enum('true','false','rejected') NOT NULL default 'false',
 	KEY id (id),
 	KEY versionId (versionId)
 );



More information about the wine-cvs mailing list