cvs diff: Diffing drupalorg_project
Index: drupalorg_project/drupalorg_project.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/drupalorg/drupalorg_project/drupalorg_project.module,v
retrieving revision 1.44
diff -u -p -r1.44 drupalorg_project.module
--- drupalorg_project/drupalorg_project.module	8 Nov 2010 18:03:02 -0000	1.44
+++ drupalorg_project/drupalorg_project.module	2 Dec 2010 12:26:51 -0000
@@ -7,9 +7,14 @@
  */
  
 /**
- * Release node ids for issues we're currently tracking (Drupal 7).
+ * Drupal core compatibility term ID for issues we're tracking (7.x).
  */
-define('DRUPALORG_ISSUE_RIDS', '156281');
+define('DRUPALORG_CORE_VERSION_TID', '103');
+
+/**
+ * Drupal core compatibility term name for issues we're tracking (7.x).
+ */
+define('DRUPALORG_CORE_VERSION_NAME', '7.x');
 
 /**
  * The CVS user role. Added to users with a CVS account.
@@ -135,15 +140,29 @@ function drupalorg_project_cron() {
 // == Issue counter ============================================================
 
 /**
- * Pulls issue counts for various issue queues on drupal.org.
+ * Count number of issues in various issue queues on drupal.org.
+ *
+ * This function only counts issues for core releases that we're currently
+ * tracking.
  *
- * Summarize issue counts for different types of issues for DRUPALORG_ISSUE_RIDS releases.
+ * @see drupalorg_project_bingo_block_output()
+ * @see DRUPALORG_CORE_VERSION_TID
+ * @see DRUPALORG_CORE_VERSION_NAME
  */
 function drupalorg_project_issue_counts() {
-  $issue_counts['Pending bugs'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND  pid = 3060 AND category = 'bug' AND sid = 1 AND priority IN (1,2,4) AND rid IN (". DRUPALORG_ISSUE_RIDS .")"));
-  $issue_counts['Critical issues'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND  pid = 3060 AND category IN ('bug', 'task') AND sid IN (1,8,13,14) AND priority = 1 AND rid IN (". DRUPALORG_ISSUE_RIDS .")"));
-  $issue_counts['Patch queue'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND  pid = 3060 AND sid IN (8,13,14) AND rid IN (". DRUPALORG_ISSUE_RIDS .")"));
-  $issue_counts['Patches to review'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND  pid = 3060 AND sid IN (8) AND rid IN (". DRUPALORG_ISSUE_RIDS .")"));
+  $issue_rids = array();
+  /// @todo Further optimize this if/when {node}.status is denormalized into
+  /// {project_release_nodes}.
+  $query = db_query("SELECT prn.nid FROM {project_release_nodes} prn INNER JOIN {node} n ON prn.nid = n.nid WHERE prn.pid = 3060 AND prn.version_api_tid = %d AND n.status = 1", DRUPALORG_CORE_VERSION_TID);
+  while ($release = db_fetch_object($query)) {
+    $issue_rids[] = $release->nid;
+  }
+  $issue_rid_placeholders = db_placeholders($issue_rids);
+
+  $issue_counts['Pending bugs'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND pid = 3060 AND category = 'bug' AND sid = 1 AND priority IN (1,2,4) AND rid IN ($issue_rid_placeholders)"), $issue_rids);
+  $issue_counts['Critical issues'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND pid = 3060 AND category IN ('bug', 'task') AND sid IN (1,8,13,14) AND priority = 1 AND rid IN ($issue_rid_placeholders)"), $issue_rids);
+  $issue_counts['Patch queue'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND pid = 3060 AND sid IN (8,13,14) AND rid IN ($issue_rid_placeholders)"), $issue_rids);
+  $issue_counts['Patches to review'] = db_result(db_query("SELECT COUNT(*) FROM {project_issues} pi INNER JOIN {node} n ON pi.nid = n.nid WHERE n.status = 1 AND pid = 3060 AND sid IN (8) AND rid IN ($issue_rid_placeholders)"), $issue_rids);
   variable_set('drupalorg_project_issue_counts', $issue_counts);
 }
 
@@ -640,7 +659,6 @@ function drupalorg_project_bingo_block_o
   $counts_queue = $counts['Patch queue'];
   $counts_review = $counts['Patches to review'];
 
-  $versions = array_map('trim', explode(',', DRUPALORG_ISSUE_RIDS));
   $links = array(
     l('Community initiatives', 'community-initiatives'),
     array(
@@ -650,7 +668,7 @@ function drupalorg_project_bingo_block_o
         drupalorg_project_issue_link(
           $counts_pending .' Pending bugs (D7)',
           array(
-            'version' => $versions,
+            'version' => array(DRUPALORG_CORE_VERSION_NAME),
             'status' => array(1),
             'priorities' => array(1, 2, 4),
             'categories' => array('bug'),
@@ -659,7 +677,7 @@ function drupalorg_project_bingo_block_o
         drupalorg_project_issue_link(
           $counts_critical .' Critical issues (D7)',
           array(
-            'version' => $versions,
+            'version' => array(DRUPALORG_CORE_VERSION_NAME),
             'status' => array(1, 8, 13, 14),
             'priorities' => array(1),
             'categories' => array('bug', 'task'),
@@ -668,35 +686,35 @@ function drupalorg_project_bingo_block_o
         drupalorg_project_issue_link(
           $counts_queue .' Patch queue (D7)',
           array(
-            'version' => $versions,
+            'version' => array(DRUPALORG_CORE_VERSION_NAME),
             'status' => array(8, 13, 14),
           )
         ),
         drupalorg_project_issue_link(
           $counts_review .' Patches to review (D7)',
           array(
-            'version' => $versions,
+            'version' => array(DRUPALORG_CORE_VERSION_NAME),
             'status' => array(8, 14),
           )
         ),
         drupalorg_project_issue_link(
           'Performance issues (D7)',
           array(
-            'version' => array('7.x'),
+            'version' => array(DRUPALORG_CORE_VERSION_NAME),
             'issue_tags' => 'Performance',
           )
         ),
         drupalorg_project_issue_link(
           'Usability issues (D7)',
           array(
-            'version' => array('7.x'),
+            'version' => array(DRUPALORG_CORE_VERSION_NAME),
             'issue_tags' => 'Usability, d7ux',
           )
         ),
         drupalorg_project_issue_link(
           'Accessibility issues (D7)',
           array(
-            'version' => array('7.x'),
+            'version' => array(DRUPALORG_CORE_VERSION_NAME),
             'issue_tags' => 'accessibility',
           )
         ),
