Ignore:
Timestamp:
03/19/10 18:29:25 (2 years ago)
Author:
wefgef
Message:

Added task ratings functionality and changed the task edit related pages UI.

  • Replaced all the edit links in a task page with a single edit link.
  • All the task related edit pages are grouped together using tabs.
  • Created a task ratings page
  • Included a script to create/update necessary database tables.

REVIEW URL http://reviewboard.infoarena.ro/r/140/

Includes changes from http://reviewboard.infoarena.ro/r/137/

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/controllers/task.php

    r1106 r1111  
    44require_once(IA_ROOT_DIR . "common/task.php"); 
    55require_once(IA_ROOT_DIR . "common/tags.php"); 
     6require_once(IA_ROOT_DIR . "common/task_rating.php"); 
    67 
    78// Displays form to either create a new task or edit an existing one. 
     
    162163            mem_cache_delete("task-authors-by-id:".$new_task["id"]); 
    163164 
    164             flash("Task-ul a fost modificat cu succes."); 
    165             redirect(url_task_edit($task_id)); 
     165            flash("Parametrii au fost salvati cu succes!"); 
     166            redirect(url_task_edit($task_id, 'task-edit-params')); 
    166167        } else { 
    167168            flash_error("Sunt erori in datele introduse."); 
     
    171172    // Create view. 
    172173    $view = array(); 
    173     $view['title'] = $task_id; 
     174    $view['title'] = 'Editeaza parametrii pentru problema '.$task['title']; 
    174175    $view['page_name'] = url_task_edit($task_id); 
    175176    $view['task_id'] = $task_id; 
     
    224225            log_assert(task_create($task, $task_params, remote_ip_info())); 
    225226            flash("Un nou task a fost creeat, acum poti sa-l editezi"); 
    226             redirect(url_task_edit($task['id'])); 
     227            redirect(url_task_edit($task['id'], 'task-edit-params')); 
    227228        } 
    228229    } 
     
    268269} 
    269270 
     271// Edit ratings for a task 
     272function controller_task_ratings($task_id) { 
     273    // Validate task id 
     274    if (!is_task_id($task_id)) { 
     275        flash_error("Problema inexistenta"); 
     276        redirect(url_home()); 
     277    } 
     278 
     279    // Get task 
     280    $task = task_get($task_id); 
     281    if (!$task) { 
     282        falsh_error("Problema inexistenta"); 
     283        redirect(url_home()); 
     284    } 
     285 
     286    // Security check 
     287    identity_require('task-edit-ratings', $task); 
     288    $user_id = identity_get_user_id(); 
     289 
     290    // Form stuff 
     291    $ratings = array(); 
     292    $errors = array(); 
     293 
     294    if (request_is_post()) { 
     295        $rating_fields = array('idea', 'theory', 'coding'); 
     296 
     297        foreach ($rating_fields as $rating_field) { 
     298            $rating_value = request($rating_field); 
     299 
     300            if (!task_is_rating_value($rating_value)) { 
     301                flash_error("Datele introduse nu sunt valide!"); 
     302                redirect(url_task_edit($task_id, 'task-edit-ratings')); 
     303            } 
     304 
     305            $ratings[$rating_field] = $rating_value; 
     306        } 
     307 
     308        task_rating_add($task_id, $user_id, $ratings); 
     309 
     310        flash("Ratingurile au fost salvate cu succes!"); 
     311        redirect(url_task_edit($task_id, 'task-edit-ratings')); 
     312    } 
     313 
     314    $ratings = task_rating_get($task_id, $user_id); 
     315 
     316    $view['title'] = "Editeaza ratingurile pentru problema " . $task['title']; 
     317    $view['task_id'] = $task_id; 
     318    $view['form_values'] = $ratings; 
     319    $view['form_errors'] = $errors; 
     320 
     321    execute_view_die('views/task_rating_edit.php', $view); 
     322} 
     323 
    270324// Tag a task 
    271325function controller_task_tag($task_id) { 
     
    289343        if (!is_array($algorithm_tags_id)) { 
    290344            flash_error("Datele trimise sunt invalide. Raporteaza aceasta problema unui admin."); 
    291             redirect(url_task_edit_tags($task_id)); 
     345            redirect(url_task_edit($task_id, 'task-edit-tags')); 
    292346        } 
    293347 
     
    295349            if (!is_tag_id($tag_id)) { 
    296350                flash_error("Datele trimise sunt invalide. Raporteaza aceasta problema unui admin."); 
    297                 redirect(url_task_edit_tags($task_id)); 
     351                redirect(url_task_edit($task_id, 'task-edit-tags')); 
    298352            } 
    299353        } 
     
    308362        if ($count != count($algorithm_tags_id)) { 
    309363            flash_error("Datele trimise sunt invalide. Raporteaza aceasta problema unui admin."); 
    310             redirect(url_task_edit_tags($task_id)); 
     364            redirect(url_task_edit($task_id, 'task-edit-tags')); 
    311365        } 
    312366 
    313367        task_update_tags($task_id, $method_tags_id, $algorithm_tags_id); 
    314         flash("Tagurile au fost salvate cu succes"); 
     368        flash("Tagurile au fost salvate cu succes!"); 
     369        redirect(url_task_edit($task_id, 'task-edit-tags')); 
    315370    } 
    316371 
Note: See TracChangeset for help on using the changeset viewer.