[Fusionforge-commits] r8042 - trunk/gforge/cronjobs
Roland Mas
lolando at libremir.placard.fr.eu.org
Sun Aug 30 16:11:04 CEST 2009
Author: lolando
Date: 2009-08-30 16:11:04 +0200 (Sun, 30 Aug 2009)
New Revision: 8042
Modified:
trunk/gforge/cronjobs/check_stale_tracker_items.php
trunk/gforge/cronjobs/massmail.php
trunk/gforge/cronjobs/send_pending_items_mail.php
trunk/gforge/cronjobs/stats_projects.inc
Log:
A few migrations to db_query_params()
Modified: trunk/gforge/cronjobs/check_stale_tracker_items.php
===================================================================
--- trunk/gforge/cronjobs/check_stale_tracker_items.php 2009-08-27 14:11:31 UTC (rev 8041)
+++ trunk/gforge/cronjobs/check_stale_tracker_items.php 2009-08-30 14:11:04 UTC (rev 8042)
@@ -34,19 +34,24 @@
require $gfcommon.'include/cron_utils.php';
if ($sys_database_type == 'mysql') {
- $sql = 'UPDATE artifact NATURAL JOIN artifact_group_list SET status_id = 2
- WHERE (status_timeout + close_date) < now() AND status_id = 4';
+ $res = db_query_mysql ('UPDATE artifact NATURAL JOIN artifact_group_list SET status_id = 2
+ WHERE (status_timeout + close_date) < now() AND status_id = 4');
} else {
- $sql = 'UPDATE artifact SET status_id= 2
+ $res = db_query_params ('UPDATE artifact SET status_id = 2
WHERE artifact_id IN (
SELECT artifact_id
FROM artifact a NATURAL JOIN artifact_group_list agl
- WHERE (agl.status_timeout + a.close_date) < '.time().'
- AND a.status_id=4);';
+ WHERE (agl.status_timeout + a.close_date) < $1
+ AND a.status_id=4)',
+ array (time()));
}
-$res = db_query($sql);
cron_entry(2,db_error());
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
?>
Modified: trunk/gforge/cronjobs/massmail.php
===================================================================
--- trunk/gforge/cronjobs/massmail.php 2009-08-27 14:11:31 UTC (rev 8041)
+++ trunk/gforge/cronjobs/massmail.php 2009-08-30 14:11:04 UTC (rev 8042)
@@ -84,10 +84,10 @@
util_send_message(
"$sys_admin_email",
"ATT: Problems with massmail cron script",
- "This is automatically generated message from\n"
- ."the mass mailing cron script of $sys_name\n"
- ."installation. There was error querying massmail_queue\n"
- ."database table. Please take appropriate actions.\n"
+ "This is automatically generated message from\n
+the mass mailing cron script of $sys_name\n
+installation. There was error querying massmail_queue\n
+database table. Please take appropriate actions.\n"
);
}
m_exit();
@@ -127,9 +127,9 @@
// If no more users left, we've finished with this mailing
if ($users_res && db_numrows($users_res)==0) {
- db_query("UPDATE massmail_queue
- SET failed_date=0,finished_date='".time()."'
- WHERE id='$mail_id'");
+ db_query_params ('UPDATE massmail_queue SET failed_date=0,finished_date=$1 WHERE id=$2',
+ array(time(),
+ $mail_id));
m_exit();
}
@@ -158,14 +158,11 @@
sleep($SLEEP);
}
-$sql="UPDATE massmail_queue
- SET failed_date=0,
- last_userid='$last_userid',
- finished_date='".time()."'
- WHERE id='$mail_id'";
+db_query_params ('UPDATE massmail_queue SET failed_date=0, last_userid=$1, finished_date=$2 WHERE id=$3',
+ array($last_userid,
+ time (),
+ $mail_id));
-db_query($sql);
-
if (db_error()) {
$err .= $sql.db_error();
}
Modified: trunk/gforge/cronjobs/send_pending_items_mail.php
===================================================================
--- trunk/gforge/cronjobs/send_pending_items_mail.php 2009-08-27 14:11:31 UTC (rev 8041)
+++ trunk/gforge/cronjobs/send_pending_items_mail.php 2009-08-30 14:11:04 UTC (rev 8042)
@@ -54,8 +54,8 @@
$time = time();
/* first we check the tasks from the project_manager */
- $sql='select project_task.project_task_id, project_task.group_project_id, project_group_list.group_project_id, group_id, project_task.summary,project_task.created_by, project_task.status_id, project_task_vw.user_name, project_task_vw.status_name, project_task_vw.percent_complete from project_task, project_group_list natural join project_task_vw where project_task.end_date >0 and project_task.end_date<'.$time.' and project_task.group_project_id=project_group_list.group_project_id and project_task.status_id=1;';
- $res = db_query($sql);
+ $res = db_query_params ('SELECT project_task.project_task_id, project_task.group_project_id, project_group_list.group_project_id, group_id, project_task.summary,project_task.created_by, project_task.status_id, project_task_vw.user_name, project_task_vw.status_name, project_task_vw.percent_complete FROM project_task, project_group_list NATURAL JOIN project_task_vw WHERE project_task.end_date > 0 AND project_task.end_date < $1 AND project_task.group_project_id=project_group_list.group_project_id AND project_task.status_id=1;',
+ array($time));
for($i = 0; $i < db_numrows($res); $i++) {
$summary= db_result($res,$i,'summary');
$status_name=db_result($res,$i,'status_name');
@@ -63,8 +63,11 @@
$project_task_id=db_result($res,$i,'project_task_id');
$hyperlink=util_make_url('/pm/task.php?func=detailtask&project_task_id='.db_result($res,$i,"project_task_id").'&group_id='.db_result($res,$i,"group_id")
.'&group_project_id='.db_result($res,$i,"group_project_id"));
- $sql="select * from users where users.status='A' and user_id in (".db_result($res,$i,"created_by").", (select assigned_to_id from project_assigned_to where project_task_id=".db_result($res,$i,"project_task_id")."))";
- $userres=db_query($sql);
+
+ $userres = db_query_params ('SELECT * FROM users WHERE users.status=$1 AND (user_id = $2 OR user_id IN (SELECT assigned_to_id FROM project_assigned_to WHERE project_task_id = $3))',
+ array ('A',
+ db_result($res,$i,"created_by"),
+ db_result($res,$i,"project_task_id")));
/* now, for each user, send the mail */
for ($usercount=0;$usercount<db_numrows($userres);$usercount++){
$mailto=db_result($userres,$usercount,"email");
@@ -89,8 +92,8 @@
function send_pending_tracker_items_mail(){
/* first, get all the items that are considered overdue */
$time = time();
- $sql = 'SELECT artifact_id, submitted_by, group_id, assigned_to, summary, details, description, assigned_realname, submitted_realname, status_name, category_name, group_name, group_artifact_id, open_date FROM artifact_vw a NATURAL JOIN artifact_group_list agl WHERE (agl.due_period+a.open_date) < '.$time.' AND a.status_id=1';
- $res=db_query($sql);
+ $res = db_query_params ('SELECT artifact_id, submitted_by, group_id, assigned_to, summary, details, description, assigned_realname, submitted_realname, status_name, category_name, group_name, group_artifact_id, open_date FROM artifact_vw a NATURAL JOIN artifact_group_list agl WHERE (agl.due_period+a.open_date) < $1 AND a.status_id=1',
+ array($time));
for ($tmp=0; $tmp<db_numrows($res); $tmp++) {
$realopendate=date(_('Y-m-d H:i'), db_result($res,$tmp,'open_date'));
@@ -104,8 +107,8 @@
$opendate=db_result($res,$tmp,"open_date");
/* now, get all the users */
- $sql2='select * from users where user_id in '.$users.' and user_id>100';
- $userres=db_query($sql2);
+ $userres = db_query_params ('SELECT * FROM users WHERE user_id = ANY ($1) AND user_id > 100',
+ array(db_int_array_to_any_clause ($users)));
for ($usercount=0;$usercount<db_numrows($userres);$usercount++){
$mailto=db_result($userres,$usercount,"email");
$language=db_result($userres,$usercount,"language");
@@ -128,5 +131,9 @@
cron_entry(19,db_error());
}
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
?>
Modified: trunk/gforge/cronjobs/stats_projects.inc
===================================================================
--- trunk/gforge/cronjobs/stats_projects.inc 2009-08-27 14:11:31 UTC (rev 8041)
+++ trunk/gforge/cronjobs/stats_projects.inc 2009-08-30 14:11:04 UTC (rev 8042)
@@ -35,25 +35,17 @@
# echo "Stats_project: $datetime::$day_begin::$day_end::".date('Ymd',$day_begin)."::".date('Ymd',$day_end)."--> $i\n";
- db_query("DELETE FROM stats_project WHERE month='$year$month' AND day='$day'");
+ db_query_params ('DELETE FROM stats_project WHERE month=$1 AND day=$2',
+ array ("$year$month",
+ $day));
-$sql="INSERT INTO stats_project ";
if ($sys_database_type == "mysql") {
-
- $sql.="
-SELECT
+ db_query_mysql ("INSERT INTO stats_project
+SELECT
'$year$month' AS month,
'$day' AS day,
-mess.* FROM (";
- } else {
- $sql="
-SELECT
-'$year$month'::int AS month,
-'$day'::int AS day,
-* FROM (";
- }
- $sql .= "
-SELECT
+mess.* FROM (
+SELECT
groups.group_id,
r.count AS release_count,
fmcount.count AS msg_posted,
@@ -78,35 +70,35 @@
LEFT JOIN (
SELECT group_id,COUNT(release_id) AS count
FROM frs_release,frs_package
- WHERE
- frs_release.release_date > '$day_begin'
- AND frs_release.release_date < '$day_end'
+ WHERE
+ frs_release.release_date > '$day_begin'
+ AND frs_release.release_date < '$day_end'
AND frs_release.package_id = frs_package.package_id
- GROUP BY group_id
+ GROUP BY group_id
) r USING (group_id)
--
-- Create tmp table of groups that had any forum posts
--
-LEFT JOIN (
+LEFT JOIN (
SELECT forum_group_list.group_id,COUNT(forum.msg_id) AS count
FROM forum_group_list, forum
- WHERE
- forum_group_list.group_forum_id = forum.group_forum_id
- AND forum.post_date > '$day_begin'
- AND forum.post_date < '$day_end'
+ WHERE
+ forum_group_list.group_forum_id = forum.group_forum_id
+ AND forum.post_date > '$day_begin'
+ AND forum.post_date < '$day_end'
GROUP BY forum_group_list.group_id
) fmcount USING (group_id)
--
-- Create tmp table of groups and unique posters to forums
--
-LEFT JOIN (
+LEFT JOIN (
SELECT forum_group_list.group_id,COUNT( DISTINCT(forum.posted_by) ) AS count
FROM forum_group_list, forum
- WHERE
- forum_group_list.group_forum_id = forum.group_forum_id
- AND forum.post_date > '$day_begin'
+ WHERE
+ forum_group_list.group_forum_id = forum.group_forum_id
+ AND forum.post_date > '$day_begin'
AND forum.post_date < '$day_end'
GROUP BY group_id
) fucount USING (group_id)
@@ -225,10 +217,10 @@
-- Create tmp table of groups that opened tasks
--
LEFT JOIN (
- SELECT pgl.group_id,count(pt.project_task_id) AS count
+ SELECT pgl.group_id,count(pt.project_task_id) AS count
FROM project_group_list pgl, project_task pt
- WHERE
- pgl.group_project_id=pt.group_project_id
+ WHERE
+ pgl.group_project_id=pt.group_project_id
AND pt.start_date > '$day_begin'
AND pt.start_date < '$day_end'
GROUP BY pgl.group_id
@@ -238,10 +230,10 @@
-- Create tmp table of groups that closed tasks
--
LEFT JOIN (
- SELECT pgl.group_id,count(pt.project_task_id) AS count
+ SELECT pgl.group_id,count(pt.project_task_id) AS count
FROM project_group_list pgl, project_task pt
- WHERE
- pgl.group_project_id=pt.group_project_id
+ WHERE
+ pgl.group_project_id=pt.group_project_id
AND pt.end_date > '$day_begin'
AND pt.end_date < '$day_end'
GROUP BY pgl.group_id
@@ -253,8 +245,8 @@
LEFT JOIN (
SELECT group_id,COUNT(job_id) AS count
FROM people_job
- WHERE
- post_date > '$day_begin'
+ WHERE
+ post_date > '$day_begin'
AND post_date < '$day_end'
GROUP BY group_id
) helpr USING (group_id)
@@ -265,7 +257,7 @@
-- We really only want the rows that have any content
--
WHERE
-release_count > 0
+release_count > 0
OR msg_posted > 0
OR msg_uniq_auth > 0
OR bugs_opened > 0
@@ -278,14 +270,260 @@
OR artifacts_closed > 0
OR tasks_opened > 0
OR tasks_closed > 0
-OR help_requests > 0;";
+OR help_requests > 0;");
+ } else {
- db_query($sql);
- //echo $sql;
+ db_query_params ('INSERT INTO stats_project
+SELECT
+'$1'::int AS month,
+'$2'::int AS day,
+* FROM (
+SELECT
+ groups.group_id,
+ r.count AS release_count,
+ fmcount.count AS msg_posted,
+ fucount.count AS msg_uniq_auth,
+ obug.count AS bugs_opened,
+ cbug.count AS bugs_closed,
+ osupport.count AS support_opened,
+ csupport.count AS support_closed,
+ opatches.count AS patches_opened,
+ cpatches.count AS patches_closed,
+ oartifact.count AS artifacts_opened,
+ cartifact.count AS artifacts_closed,
+ otask.count AS tasks_opened,
+ ctask.count AS tasks_closed,
+ helpr.count AS help_requests
+
+FROM groups
+
+--
+-- Create tmp table of groups that made any releases
+--
+LEFT JOIN (
+ SELECT group_id,COUNT(release_id) AS count
+ FROM frs_release,frs_package
+ WHERE
+ frs_release.release_date > $3
+ AND frs_release.release_date < $4
+ AND frs_release.package_id = frs_package.package_id
+ GROUP BY group_id
+ ) r USING (group_id)
+
+--
+-- Create tmp table of groups that had any forum posts
+--
+LEFT JOIN (
+ SELECT forum_group_list.group_id,COUNT(forum.msg_id) AS count
+ FROM forum_group_list, forum
+ WHERE
+ forum_group_list.group_forum_id = forum.group_forum_id
+ AND forum.post_date > $3
+ AND forum.post_date < $4
+ GROUP BY forum_group_list.group_id
+ ) fmcount USING (group_id)
+
+--
+-- Create tmp table of groups and unique posters to forums
+--
+LEFT JOIN (
+ SELECT forum_group_list.group_id,COUNT( DISTINCT(forum.posted_by) ) AS count
+ FROM forum_group_list, forum
+ WHERE
+ forum_group_list.group_forum_id = forum.group_forum_id
+ AND forum.post_date > $3
+ AND forum.post_date < $4
+ GROUP BY group_id
+ ) fucount USING (group_id)
+
+--
+-- Create tmp table of groups and opened bugs
+--
+LEFT JOIN (
+ SELECT agl.group_id,count(*) AS count
+ FROM artifact_group_list agl,artifact a
+ WHERE
+ a.open_date > $3
+ AND a.open_date < $4
+ AND a.group_artifact_id=agl.group_artifact_id
+ AND agl.datatype=$5
+ GROUP BY agl.group_id
+ ) obug USING (group_id)
+
+--
+-- Create tmp table of groups and closed bugs
+--
+LEFT JOIN (
+ SELECT agl.group_id,count(*) AS count
+ FROM artifact_group_list agl,artifact a
+ WHERE
+ a.close_date > $3
+ AND a.close_date < $4
+ AND a.group_artifact_id=agl.group_artifact_id
+ AND agl.datatype=$6
+ GROUP BY agl.group_id
+ ) cbug USING (group_id)
+
+--
+-- Create tmp table of groups and opened support
+--
+LEFT JOIN (
+ SELECT agl.group_id,count(*) AS count
+ FROM artifact_group_list agl,artifact a
+ WHERE
+ a.open_date > $3
+ AND a.open_date < $4
+ AND a.group_artifact_id=agl.group_artifact_id
+ AND agl.datatype=$7
+ GROUP BY agl.group_id
+ ) osupport USING (group_id)
+
+--
+-- Create tmp table of groups and closed support
+--
+LEFT JOIN (
+ SELECT agl.group_id,count(*) AS count
+ FROM artifact_group_list agl,artifact a
+ WHERE
+ a.close_date > $3
+ AND a.close_date < $4
+ AND a.group_artifact_id=agl.group_artifact_id
+ AND agl.datatype=$8
+ GROUP BY agl.group_id
+ ) csupport USING (group_id)
+
+--
+-- Create tmp table of groups and opened patches
+--
+LEFT JOIN (
+ SELECT agl.group_id,count(*) AS count
+ FROM artifact_group_list agl,artifact a
+ WHERE
+ a.open_date > $3
+ AND a.open_date < $4
+ AND a.group_artifact_id=agl.group_artifact_id
+ AND agl.datatype=$9
+ GROUP BY agl.group_id
+ ) opatches USING (group_id)
+
+--
+-- Create tmp table of groups and closed patches
+--
+LEFT JOIN (
+ SELECT agl.group_id,count(*) AS count
+ FROM artifact_group_list agl,artifact a
+ WHERE
+ a.close_date > $3
+ AND a.close_date < $4
+ AND a.group_artifact_id=agl.group_artifact_id
+ AND agl.datatype=$10
+ GROUP BY agl.group_id
+ ) cpatches USING (group_id)
+
+--
+-- Create tmp table of groups and opened total artifacts
+--
+LEFT JOIN (
+ SELECT agl.group_id,count(*) AS count
+ FROM artifact_group_list agl,artifact a
+ WHERE
+ a.open_date > $3
+ AND a.open_date < $4
+ AND a.group_artifact_id=agl.group_artifact_id
+ GROUP BY agl.group_id
+ ) oartifact USING (group_id)
+
+--
+-- Create tmp table of groups and closed total artifacts
+--
+LEFT JOIN (
+ SELECT agl.group_id,count(*) AS count
+ FROM artifact_group_list agl,artifact a
+ WHERE
+ a.close_date > $3
+ AND a.close_date < $4
+ AND a.group_artifact_id=agl.group_artifact_id
+ GROUP BY agl.group_id
+ ) cartifact USING (group_id)
+
+--
+-- Create tmp table of groups that opened tasks
+--
+LEFT JOIN (
+ SELECT pgl.group_id,count(pt.project_task_id) AS count
+ FROM project_group_list pgl, project_task pt
+ WHERE
+ pgl.group_project_id=pt.group_project_id
+ AND pt.start_date > $3
+ AND pt.start_date < $4
+ GROUP BY pgl.group_id
+ ) otask USING (group_id)
+
+--
+-- Create tmp table of groups that closed tasks
+--
+LEFT JOIN (
+ SELECT pgl.group_id,count(pt.project_task_id) AS count
+ FROM project_group_list pgl, project_task pt
+ WHERE
+ pgl.group_project_id=pt.group_project_id
+ AND pt.end_date > $3
+ AND pt.end_date < $4
+ GROUP BY pgl.group_id
+ ) ctask USING (group_id)
+
+--
+-- Create tmp table of groups that closed tasks
+--
+LEFT JOIN (
+ SELECT group_id,COUNT(job_id) AS count
+ FROM people_job
+ WHERE
+ post_date > $3
+ AND post_date < $4
+ GROUP BY group_id
+ ) helpr USING (group_id)
+
+) mess
+
+--
+-- We really only want the rows that have any content
+--
+WHERE
+release_count > 0
+OR msg_posted > 0
+OR msg_uniq_auth > 0
+OR bugs_opened > 0
+OR bugs_closed > 0
+OR support_opened > 0
+OR support_closed > 0
+OR patches_opened > 0
+OR patches_closed > 0
+OR artifacts_opened > 0
+OR artifacts_closed > 0
+OR tasks_opened > 0
+OR tasks_closed > 0
+OR help_requests > 0;',
+ array("$year$month",
+ $day,
+ $day_begin,
+ $day_end,
+ '1',
+ '1',
+ '2',
+ '2',
+ '3',
+ '3'));
+
echo db_error();
db_commit();
}
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
?>
More information about the Fusionforge-commits
mailing list