JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
log when tasks are tested, and show testing date and completion date (when applicable...
authorJason Woofenden <jason283@herkamire.com>
Fri, 13 Feb 2009 19:20:28 +0000 (14:20 -0500)
committerJason Woofenden <jason283@herkamire.com>
Fri, 13 Feb 2009 19:20:28 +0000 (14:20 -0500)
tasks.html
tasks.php
tasks.sql

index c70a568..cf845df 100644 (file)
@@ -15,7 +15,7 @@
 
   <p><strong>Title</strong>: ~title.html~</p>
 
 
   <p><strong>Title</strong>: ~title.html~</p>
 
-  <p><strong>Status</strong>: ~state.html~</p>
+  <p><strong>Status</strong>: ~state.html~<!--~finished_at_section start~--> (finished on ~finished_at.mmddyyyy~)<!--~end~--><!--~tested_at_section start~--> (tested on ~tested_at.mmddyyyy~)<!--~end~--></p>
 
   <p><strong>URL</strong>: <a target="_new" href="~url.attr~">~url.html~</a></p>
 
 
   <p><strong>URL</strong>: <a target="_new" href="~url.attr~">~url.html~</a></p>
 
index dd4ad15..7966987 100644 (file)
--- a/tasks.php
+++ b/tasks.php
@@ -31,14 +31,6 @@ function description_has_fixmes($description) {
        return (strpos($description, 'FIXME') !== false);
 }
 
        return (strpos($description, 'FIXME') !== false);
 }
 
-# encode as html, make it display newlines and leading spaces
-function enc_htmlbrtab($str) {
-       $str = enc_htmlbr($str);
-       $space_to_nbsp = create_function('$matches', 'return str_repeat(\'&nbsp;\', strlen($matches[0]) * 2);');
-       $str = preg_replace_callback("|^ *|m", $space_to_nbsp, $str);
-       return $str;
-}
-
 function tasks_get_fields() {
        $title = format_oneline($_REQUEST['title']);
        $url = format_oneline($_REQUEST['url']);
 function tasks_get_fields() {
        $title = format_oneline($_REQUEST['title']);
        $url = format_oneline($_REQUEST['url']);
@@ -84,18 +76,26 @@ function tasks_display_main() {
        $task_id = format_int($_REQUEST['tasks_id']);;
        $client_id = logged_in();
        if(logged_in_as_contractor()) {
        $task_id = format_int($_REQUEST['tasks_id']);;
        $client_id = logged_in();
        if(logged_in_as_contractor()) {
-               $row = db_get_row('tasks', 'title,url,description,state,price,client_id,paid', 'where id=%i', $task_id);
+               $row = db_get_row('tasks', 'title,url,description,state,price,client_id,paid,finished_at,tested_at', 'where id=%i', $task_id);
        } else {
        } else {
-               $row = db_get_row('tasks', 'title,url,description,state,price,client_id,paid', 'where id=%i && client_id=%i', $task_id, $client_id);
+               $row = db_get_row('tasks', 'title,url,description,state,price,client_id,paid,finished_at,tested_at', 'where id=%i && client_id=%i', $task_id, $client_id);
        }
        if($row) {
        }
        if($row) {
-               list($title, $url, $description, $state, $price, $owner_id, $paid) = $row;
+               list($title, $url, $description, $state, $price, $owner_id, $paid, $finished_at, $tested_at) = $row;
                tem_set('task_id', $task_id);
                tem_set('title', $title);
                tem_set('url', $url);
                tem_set('description', $description);
                tem_set('state', task_state_pretty($state));
                tem_set('price', $price);
                tem_set('task_id', $task_id);
                tem_set('title', $title);
                tem_set('url', $url);
                tem_set('description', $description);
                tem_set('state', task_state_pretty($state));
                tem_set('price', $price);
+               if($finished_at) {
+                       tem_set('finished_at', $finished_at);
+                       tem_show('finished_at_section');
+               }
+               if($tested_at) {
+                       tem_set('tested_at', $tested_at);
+                       tem_show('tested_at_section');
+               }
                if($state == TASK_BUG) {
                        tem_show('bug_title');
                } else {
                if($state == TASK_BUG) {
                        tem_show('bug_title');
                } else {
@@ -381,7 +381,7 @@ function tasks_edit_main() {
                        message("Error: can't test a task entered by/for another client.");
                        return './';
                }
                        message("Error: can't test a task entered by/for another client.");
                        return './';
                }
-               db_update('tasks', 'state', TASK_FINISHED, 'where id=%i', $id);
+               db_update('tasks', 'state,tested_at', TASK_FINISHED, date('Y-m-d'), 'where id=%i', $id);
                message('Task marked as finished.');
                # FIXME also mark it as paid if client's balance can cover it
                return './';
                message('Task marked as finished.');
                # FIXME also mark it as paid if client's balance can cover it
                return './';
index 4306c57..788771c 100644 (file)
--- a/tasks.sql
+++ b/tasks.sql
@@ -3,6 +3,7 @@ create table tasks (
     id int unique auto_increment,
     client_id int not null default 0,
     finished_at varchar(20) not null default "",
     id int unique auto_increment,
     client_id int not null default 0,
     finished_at varchar(20) not null default "",
+    tested_at varchar(20) not null default "",
     price varchar(20) not null default "",
     ord int not null default 0,
     title varchar(200) not null default "",
     price varchar(20) not null default "",
     ord int not null default 0,
     title varchar(200) not null default "",