From e37faa0008df38088a55932786955e68ee1f955f Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Mon, 9 Mar 2009 07:28:19 +0000 Subject: More tasks cleanup. Don't join through to the users table; that won't work in embedded mode. Instead, add Tasks_Model::owner() that calls user::lookup() and refer to the object directly in the view. Add Admin_Maintenance:remove_finished_tasks() so that we can easily do old task cleanup. Hide Running / Finished sections if there aren't any running or finished tasks. --- core/controllers/admin_maintenance.php | 11 +++++++---- core/models/task.php | 6 +++++- core/views/admin_maintenance.html.php | 9 +++++++-- 3 files changed, 19 insertions(+), 7 deletions(-) (limited to 'core') diff --git a/core/controllers/admin_maintenance.php b/core/controllers/admin_maintenance.php index c98251bc..80403906 100644 --- a/core/controllers/admin_maintenance.php +++ b/core/controllers/admin_maintenance.php @@ -42,12 +42,8 @@ class Admin_Maintenance_Controller extends Admin_Controller { $view->content = new View("admin_maintenance.html"); $view->content->task_definitions = task::get_definitions("admin"); $view->content->running_tasks = ORM::factory("task") - ->select("tasks.*", "users.name as user_name") - ->join("users", "tasks.owner_id", "users.id") ->where("done", 0)->orderby("updated", "DESC")->find_all(); $view->content->finished_tasks = ORM::factory("task") - ->select("tasks.*", "users.name as user_name") - ->join("users", "tasks.owner_id", "users.id") ->where("done", 1)->orderby("updated", "DESC")->find_all(); $view->content->csrf = access::csrf_token(); print $view; @@ -119,6 +115,13 @@ class Admin_Maintenance_Controller extends Admin_Controller { url::redirect("admin/maintenance"); } + public function remove_finished_tasks() { + access::verify_csrf(); + Database::instance()->delete("tasks", array("done" => 1)); + message::success(t("All finished tasks removed")); + url::redirect("admin/maintenance"); + } + /** * Run a task. This will trigger the task to do a small amount of work, then it will report * back with status on the task. diff --git a/core/models/task.php b/core/models/task.php index 85713419..0255a6ad 100644 --- a/core/models/task.php +++ b/core/models/task.php @@ -34,7 +34,7 @@ class Task_Model extends ORM { return parent::__get($column); } } - + public function get($key, $default=null) { $context = unserialize($this->context); if (array_key_exists($key, $context)) { @@ -56,4 +56,8 @@ class Task_Model extends ORM { } return parent::save(); } + + public function owner() { + return user::lookup($this->owner_id); + } } \ No newline at end of file diff --git a/core/views/admin_maintenance.html.php b/core/views/admin_maintenance.html.php index 2570dcee..e3afb9f5 100644 --- a/core/views/admin_maintenance.html.php +++ b/core/views/admin_maintenance.html.php @@ -38,6 +38,7 @@ + count()): ?>

@@ -86,7 +87,7 @@ status ?> - user_name ?> + owner()->name ?> state == "stalled"): ?> @@ -102,9 +103,12 @@
+ + count()): ?>

+ "> @@ -148,7 +152,7 @@ status ?>
- user_name ?> + owner()->name ?> done): ?> @@ -168,4 +172,5 @@
+ -- cgit v1.2.3