From: Jason Woofenden Date: Wed, 17 Dec 2008 20:36:14 +0000 (-0500) Subject: set ord span for production, sets ord properly for tasks entering the queue. X-Git-Url: https://jasonwoof.com/gitweb/?p=contractor-progress.git;a=commitdiff_plain;h=753eb74e35f2bc1c06b6a1e1c8214cee1fca61cd set ord span for production, sets ord properly for tasks entering the queue. Specifically entering the queue because: new record with state=TASK_QUEUE (currently from contractor entering a tiny job w/o approval) contractor setting a tiny price Note: this was already commited: clicking 'approve price' --- diff --git a/tasks.php b/tasks.php index 128023a..e4a8b50 100644 --- a/tasks.php +++ b/tasks.php @@ -168,7 +168,7 @@ function tasks_display_main() { } } -define('MAX_PRIORITY', 20); +define('MAX_PRIORITY', 2000000000); define('MIN_PRIORITY', 0); define('MID_PRIORITY', floor((MAX_PRIORITY - MIN_PRIORITY) / 2)); @@ -206,7 +206,6 @@ function prioritize_task($id, $change) { list($client_id, $ord) = $row; switch($change) { case 'top': - message('top'); list($highest_id, $highest_ord) = db_get_row('tasks', 'id,ord', 'where client_id=%i && state=%i order by ord desc limit 1', $client_id, TASK_QUEUED); if($highest_id == $id) { message('Already highest priority'); @@ -343,7 +342,8 @@ function tasks_edit_main() { message("Error: can't approve a task entered by/for another client."); return './'; } - db_update('tasks', 'state', TASK_QUEUED, 'where id=%i', $id); + $ord = new_lowest_priority($owner); + db_update('tasks', 'state,ord', TASK_QUEUED, $ord, 'where id=%i', $id); message('Price approved.'); return './'; } @@ -394,6 +394,7 @@ function tasks_edit_main() { if(isset($_REQUEST['title'])) { list($title, $url, $description, $price) = tasks_get_fields(); + $queuing = false; # FIXME if(isset($_REQUEST['save_draft'])) { @@ -406,6 +407,7 @@ function tasks_edit_main() { $tiny_agreement = db_get_value('people', 'tiny_agreement', 'where id=%i', $client_id); if($price <= $tiny_agreement) { $state = TASK_QUEUED; + $queuing = true; } else { $state = TASK_NEEDS_GO_AHEAD; } @@ -422,11 +424,18 @@ function tasks_edit_main() { if("you're happy with the POSTed values") { # if you change this change the one above if($edit_id) { + $tables = 'title,url,description,state'; + $values = array($title, $url, $description, $state); if(isset($_REQUEST['price']) && logged_in_as_contractor()) { - db_update('tasks', 'title,url,description,state,price', $title, $url, $description, $state, $price, 'where id=%i', $edit_id); - } else { - db_update('tasks', 'title,url,description,state', $title, $url, $description, $state, 'where id=%i', $edit_id); + $tables .= ',price'; + array_push($values, $price); + } + if($queuing) { + $client_id = db_get_value('tasks', 'client_id', 'where id=%i', $edit_id); + $tables .= ',ord'; + array_push($values, new_lowest_priority($client_id)); } + db_update('tasks', $tables, $values, 'where id=%i', $edit_id); message('Task updated.'); } else { # new task @@ -438,7 +447,11 @@ function tasks_edit_main() { # if client entered the task, no price is set $price = 0; } - $ord = new_lowest_priority($client_id); + if($state == TASK_QUEUED) { + $ord = new_lowest_priority($client_id); + } else { + $ord = 0; + } db_insert('tasks', 'client_id,title,url,description,state,paid,price,ord', $client_id, $title, $url, $description, $state, $paid, $price, $ord); message('Task saved.'); }