epm_project_management is an "Enterprise Project Management" tool to help manage "projects" in use within an "enterprise".
"Projects" are used to identify "Project" nodes on drupal.org. Things like themes and modules.
"Enterprises" are just organizations, but this tool is most likely only a valuable tool to help communicate if you have a large number of Drupal site builders, a separate security review team, and maybe your folks are distributed geographically or you have high turnover/use consultants making it hard for everyone to stay in agreement on which modules can or can't be used.
Optional steps: By default the module gathers data about the 6.x version of a module. You can change that by setting the variable
variable_set('epm_project_management_major_version', '6');
You are also encouraged to add an exposed filter to the view at /epm-project-list for the "Project purpose" vocabulary. This cannot be done in the module because vocabularies don't get consistent ID numbers.
Data is stored in a handful of tables.
So, to find the ratio of open to closed bugs of projects that are "in use":
SELECT n.title, epm.field_epm_project_shortname_value, open_bug_count / closed_bug_count FROM epm_project_management_data epm INNER JOIN node n on epm.nid = n.nid INNER JOIN flag_content fc ON fc.content_type = 'node' AND fc.content_id = n.nid INNER JOIN flags f ON fc.fid = f.fid WHERE f.name = 'epm_in_use';
You could shorten that query up a bit by first finding the flagid:
SELECT fid FROM flags f WHERE f.name = 'epm_in_use';
On a fresh installation that should be 2.
Then reduce the query:
SELECT n.title, open_bug_count / closed_bug_count FROM epm_project_management_data epm INNER JOIN node n on epm.nid = n.nid INNER JOIN flag_content fc ON fc.content_type = 'node' AND fc.content_id = n.nid WHERE fc.fid = 2;
And depending on the audience you should always add a WHERE clause for published nodes:
AND n.status = 1;
You must have allow_url_fopen enabled. If not, you may not get any data scraped from drupal.org. This problem may be hidden by the use of an @ to suppress messages in @$doc->loadHTMLFile($url);
However without that @ the parsing of files will complain loudly about every unclosed tag and improper nesting which happens too often to leave enabled.
Greg Knaddison of Growing Venture Solutions Tell me how much you love the module @greggles on Twitter. Tell me about problems or ideas in the issue queue (ideally with patches!)