Пример #1
0
 /**
  * @action csv upload page
  * @view examresult/upload
  */
 public function action_upload()
 {
     $view = View::factory('examresult/upload')->bind('form', $form)->bind('success', $success)->bind('warning', $warning);
     $errors = array();
     if ($this->request->method() === 'POST' && $this->request->post()) {
         $examgroup_id = $this->request->post('examgroup_id');
         $exams = Model_Examgroup::get_exams($examgroup_id);
         $students = Model_Examgroup::get_students($examgroup_id);
         $csv = new Examresult_Csv($_FILES['csv_file'], $exams, $students);
         if ($csv->validate()) {
             $datasets = $csv->datasets();
             Model_Examresult::save_results($datasets);
             $success = 'Results uploaded successfully. Click <a href="%s">here</a> to view them';
             $success = sprintf($success, Url::site('examresult/edit/examgroup_id/' . $examgroup_id));
         } else {
             $errors = array('csv_file' => $csv->errors('invalid_extension'));
             $warning = $csv->errors('warning');
         }
     }
     $form = new Stickyform('examresult/upload', array('enctype' => 'multipart/form-data'), $errors);
     $form->default_data = array('examgroup_id' => '', 'csv_file' => '');
     $form->posted_data = $this->request->post();
     $examgroups = ORM::factory('examgroup')->find_all()->as_array('id', 'name');
     $form->append('Select Exam Group:', 'examgroup_id', 'select', array('options' => $examgroups, 'attributes' => array('id' => 'examgroup_id')))->append('CSV File:', 'csv_file', 'file')->append('Upload', 'upload', 'submit', array('attributes' => array('class' => 'button')))->process();
     $this->content = $view;
     Breadcrumbs::add(array('Exams', Url::site('exam')));
     Breadcrumbs::add(array('Manage Results', Url::site('examresult/upload')));
 }