Date and time management; converted gradebook to UTC - Chamilo - CT#696

skala
Guillaume Viguier 16 years ago
parent 42bf3f3f17
commit 428c2f6fd2
  1. 4
      main/gradebook/gradebook.php
  2. 4
      main/gradebook/gradebook_add_eval.php
  3. 3
      main/gradebook/gradebook_add_link.php
  4. 3
      main/gradebook/gradebook_add_user.php
  5. 3
      main/gradebook/gradebook_edit_eval.php
  6. 3
      main/gradebook/gradebook_edit_link.php
  7. 8
      main/gradebook/gradebook_result.class.php
  8. 39
      main/gradebook/gradebook_showlog_eval.php
  9. 47
      main/gradebook/gradebook_showlog_link.php
  10. 8
      main/gradebook/gradebook_view_result.php
  11. 8
      main/gradebook/index.php
  12. 2
      main/gradebook/lib/be.inc.php
  13. 24
      main/gradebook/lib/be/abstractlink.class.php
  14. 2
      main/gradebook/lib/be/category.class.php
  15. 6
      main/gradebook/lib/be/evallink.class.php
  16. 39
      main/gradebook/lib/be/evaluation.class.php
  17. 2
      main/gradebook/lib/be/gradebookitem.class.php
  18. 27
      main/gradebook/lib/be/result.class.php
  19. 5
      main/gradebook/lib/fe/evalform.class.php
  20. 6
      main/gradebook/lib/fe/exportgradebook.php
  21. 5
      main/gradebook/lib/gradebook_functions.inc.php
  22. 4
      main/gradebook/user_stats.php
  23. 20
      main/install/migrate-db-1.8.6.2-1.8.7-pre.sql
  24. 33
      main/install/update-db-1.8.6.2-1.8.7.inc.php

@ -534,7 +534,7 @@ if (!empty($keyword)) {
$pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');
$pdf->ezSetMargins(30, 30, 50, 30);
$pdf->ezSetY(810);
$pdf->ezText(get_lang('FlatView').' ('. date('j/n/Y g:i') .')',12,array('justification'=>'center'));
$pdf->ezText(get_lang('FlatView').' ('. api_convert_and_format_date(null, DATE_FORMAT_SHORT) . ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT) .')',12,array('justification'=>'center'));
$pdf->line(50,790,550,790);
$pdf->line(50,40,550,40);
$pdf->ezSetY(750);
@ -565,7 +565,7 @@ if (!empty($keyword)) {
$stud_ln = $user['lastname'];
$certif_text = sprintf(get_lang('CertificateWCertifiesStudentXFinishedCourseYWithGradeZ'),$organization_name,$stud_fn.' '.$stud_ln,$category[0]->get_name(),$scorecourse_display);
$certif_text = str_replace("\\n","\n",$certif_text);
$date = date('d/m/Y',time());
$date = api_convert_and_format_date(null, DATE_FORMAT_SHORT);
$pdf= new Cezpdf('a4','landscape');
$pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');

@ -53,8 +53,6 @@ if ($form->validate()) {
}
$eval->set_category_id($values['hid_category_id']);
$eval->set_weight($values['weight']);
//converts the date back to unix timestamp format
$eval->set_date(strtotime($values['date']));
$eval->set_max($values['max']);
if (empty ($values['visible'])) {
$visible = 0;
@ -92,4 +90,4 @@ if ($evaladd->get_course_code() == null) {
Display :: display_normal_message(get_lang('CourseIndependentEvaluation'),false);
}
$form->display();
Display :: display_footer();
Display :: display_footer();

@ -88,7 +88,6 @@ if (isset($_GET['typeselected']) && $_GET['typeselected'] != '0') {
if ($link->needs_max()) {
$link->set_max($addvalues['max']);
}
$link->set_date(strtotime($addvalues['date']));
if ($link->needs_name_and_description()) {
$link->set_description($addvalues['description']);
@ -143,4 +142,4 @@ if (isset ($typeform)) {
if (isset ($addform)) {
$addform->display();
}
Display :: display_footer();
Display :: display_footer();

@ -41,7 +41,6 @@ if ( isset($_POST['submit_button']) ) {
$result= new Result();
$result->set_user_id($user_id);
$result->set_evaluation_id($_GET['selecteval']);
$result->set_date(time());
$result->add();
}
}
@ -71,4 +70,4 @@ DisplayGradebook :: display_header_result($evaluation[0], null, 0,0);
echo '<div class="main">';
echo $add_user_form->toHtml();
echo '</div>';
Display :: display_footer();
Display :: display_footer();

@ -43,7 +43,6 @@ if ($form->validate()) {
$eval->set_course_code($values['hid_course_code']);
$eval->set_category_id($values['hid_category_id']);
$eval->set_weight($values['weight']);
$eval->set_date(strtotime($values['date']));
$eval->set_max($values['max']);
if (empty ($values['visible'])) {
$visible = 0;
@ -62,4 +61,4 @@ $interbreadcrumb[] = array (
));
Display :: display_header(get_lang('EditEvaluation'));
$form->display();
Display :: display_footer();
Display :: display_footer();

@ -52,7 +52,6 @@ $form = new LinkAddEditForm(LinkAddEditForm :: TYPE_EDIT,
if ($form->validate()) {
$values = $form->exportValues();
$link->set_weight($values['weight']);
$link->set_date(strtotime($values['date']));
$link->set_visible(empty ($values['visible']) ? 0 : 1);
$link->save();
@ -83,4 +82,4 @@ $interbreadcrumb[] = array (
Display :: display_header(get_lang('EditLink'));
$form->display();
Display :: display_footer();
Display :: display_footer();

@ -200,9 +200,9 @@ class GradeBookResult
*/
public function exportCompleteReportCSV($dato) {
//$this->_getGradeBookReporting($document_path,$user_id);
$filename = 'gradebook_results_'.date('YmdGis').'.csv';
$filename = 'gradebook_results_'.gmdate('YmdGis').'.csv';
if (!empty($user_id)) {
$filename = 'gradebook_results_user_'.$user_id.'_'.date('YmdGis').'.csv';
$filename = 'gradebook_results_user_'.$user_id.'_'.gmdate('YmdGis').'.csv';
}
$data = '';
//build the results
@ -250,14 +250,14 @@ class GradeBookResult
* @return boolean False on error
*/
public function exportCompleteReportXLS($data) {
$filename = 'gradebook_results_user_'.date('YmdGis').'.xls';
$filename = 'gradebook_results_user_'.gmdate('YmdGis').'.xls';
//build the results
require_once(api_get_path(LIBRARY_PATH).'pear/Spreadsheet_Excel_Writer/Writer.php');
$workbook = new Spreadsheet_Excel_Writer();
$workbook ->setTempDir(api_get_path(SYS_ARCHIVE_PATH));
$workbook->send($filename);
$worksheet =& $workbook->addWorksheet('Report '.date('YmdGis'));
$worksheet =& $workbook->addWorksheet('Report '.gmdate('YmdGis'));
$line = 0;
$column = 0; //skip the first column (row titles)
//headers

@ -49,46 +49,13 @@ echo '<div class="clear"></div>';
echo '<div class="actions">';
api_display_tool_title(get_lang('GradebookQualifyLog'));
echo '</div>';
/*
$t_linkeval_log = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINKEVAL_LOG);
$t_user= Database :: get_main_table(TABLE_MAIN_USER);
$evaledit = Evaluation :: load($_GET['visiblelog']);
$sql="SELECT le.name,le.description,le.date_log,le.weight,le.visible,le.type,us.username from ".$t_linkeval_log." le inner join ".$t_user." us on le.user_id_log=us.user_id where id_linkeval_log=".$evaledit[0]->get_id()." and type='evaluation';";
$result=Database::query($sql);
echo '<table width="100%" border="0" >';
echo '<tr>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('GradebookNameLog').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('GradebookDescriptionLog').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('Date').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('Weight').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('GradebookVisibilityLog').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('ResourceType').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('GradebookWhoChangedItLog').'</strong></td>';
echo '</tr>';
while($row=Database::fetch_array($result)) {
echo '<tr>';
echo '<td align="center" Class="gradebook-table-body">'.$row[0].'</td>';
echo '<td align="center" class="gradebook-table-body">'.$row[1].'</td>';
echo '<td align="center" class="gradebook-table-body">'.date('d-m-Y H:i:s',$row[2]).'</td>';
echo '<td align="center" class="gradebook-table-body">'.$row[3].'</td>';
if (1 == $row[4]) {
$visib=get_lang('GradebookVisible');
} else {
$visib=get_lang('GradebookInvisible');
}
echo '<td align="center" Class="gradebook-table-body">'.$visib.'</td>';
echo '<td align="center" class="gradebook-table-body">'.$row[5].'</td>';
echo '<td align="center" class="gradebook-table-body">'.$row[6].'</td>';
echo '</tr>';
}
echo '</table>';*/
$t_linkeval_log = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINKEVAL_LOG);
$t_user= Database :: get_main_table(TABLE_MAIN_USER);
$visible_log=Security::remove_XSS($_GET['visiblelog']);
$evaledit = Evaluation :: load($visible_log);
$sql="SELECT le.name,le.description,le.weight,le.visible,le.type,le.date_log,us.username from ".$t_linkeval_log." le inner join ".$t_user." us on le.user_id_log=us.user_id where id_linkeval_log=".$evaledit[0]->get_id()." and type='evaluation';";
$sql="SELECT le.name,le.description,le.weight,le.visible,le.type,le.created_at,us.username from ".$t_linkeval_log." le inner join ".$t_user." us on le.user_id_log=us.user_id where id_linkeval_log=".$evaledit[0]->get_id()." and type='evaluation';";
$result=Database::query($sql);
$list_info=array();
while ($row=Database::fetch_row($result)) {
@ -96,7 +63,7 @@ while ($row=Database::fetch_row($result)) {
}
foreach($list_info as $key => $info_log) {
$list_info[$key][5]=($info_log[5]) ? date('d-m-Y H:i:s',$info_log[5]) : '0000-00-00 00:00:00';
$list_info[$key][5]=($info_log[5]) ? api_convert_and_format_date($info_log[5]) : 'N/A';
$list_info[$key][3]=($info_log[3]==1) ? get_lang('GradebookVisible') : get_lang('GradebookInvisible');
}
@ -113,4 +80,4 @@ $table->set_header(5, get_lang('Date'));
$table->set_header(6, get_lang('GradebookWhoChangedItLog'));
$table->display();
Display :: display_footer();
Display :: display_footer();

@ -49,53 +49,12 @@ echo '<div class="clear"></div>';
echo '<div class="actions">';
api_display_tool_title(get_lang('GradebookQualifyLog'));
echo '</div>';
/*
$t_user= Database :: get_main_table(TABLE_MAIN_USER);
$t_link_log = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINKEVAL_LOG);
$evaledit = EvalLink :: load($_GET['visiblelink']);
$sql="SELECT lk.name,lk.description,lk.date_log,lk.weight,lk.visible,lk.type,us.username from ".$t_link_log." lk inner join ".$t_user." us on lk.user_id_log=us.user_id where lk.id_linkeval_log=".$evaledit[0]->get_id()." and lk.type='link';";
$result=Database::query($sql);
echo '<table width="100%" border="0" >';
echo '<tr>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('GradebookNameLog').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('GradebookDescriptionLog').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('Date').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('Weight').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('GradebookVisibilityLog').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('ResourceType').'</strong></td>';
echo '<td align="center" class="gradebook-table-header"><strong>'.get_lang('GradebookWhoChangedItLog').'</strong></td>';
echo '</tr>';
while($row=Database::fetch_array($result)){
if ('0000-00-00 00:00:00'!=$row[2]) {
$date_log=date('d-m-Y H:i:s',$row[2]);
} else {
$date_log='0000-00-00 00:00:00';
}
echo '<tr>';
echo '<td align="center" Class="gradebook-table-body">'.$row[0].'</td>';
echo '<td align="center" Class="gradebook-table-body">'.$row[1].'</td>';
echo '<td align="center" Class="gradebook-table-body">'.$date_log.'</td>';
echo '<td align="center" Class="gradebook-table-body">'.$row[3].'</td>';
if (1 == $row[4]) {
$visib=get_lang('GradebookVisible');
} else {
$visib=get_lang('GradebookInvisible');
}
echo '<td align="center" Class="gradebook-table-body">'.$visib.'</td>';
echo '<td align="center" Class="gradebook-table-body">'.$row[5].'</td>';
echo '<td align="center" Class="gradebook-table-body">'.$row[6].'</td>';
echo '</tr>';
}
echo '</table>';
*/
$t_user = Database :: get_main_table(TABLE_MAIN_USER);
$t_link_log = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINKEVAL_LOG);
$visible_link=Security::remove_XSS($_GET['visiblelink']);
$evaledit = EvalLink :: load($visible_link);
$sql="SELECT lk.name,lk.description,lk.weight,lk.visible,lk.type,lk.date_log,us.username from ".$t_link_log." lk inner join ".$t_user." us on lk.user_id_log=us.user_id where lk.id_linkeval_log=".$evaledit[0]->get_id()." and lk.type='link';";
$sql="SELECT lk.name,lk.description,lk.weight,lk.visible,lk.type,lk.created_at,us.username from ".$t_link_log." lk inner join ".$t_user." us on lk.user_id_log=us.user_id where lk.id_linkeval_log=".$evaledit[0]->get_id()." and lk.type='link';";
$result=Database::query($sql);
$list_info=array();
while ($row=Database::fetch_row($result)) {
@ -103,7 +62,7 @@ while ($row=Database::fetch_row($result)) {
}
foreach($list_info as $key => $info_log) {
$list_info[$key][5]=($info_log[5]) ? date('d-m-Y H:i:s',$info_log[5]) : '0000-00-00 00:00:00';
$list_info[$key][5]=($info_log[5]) ? api_convert_and_format_date($info_log[5]) : 'N/A';
$list_info[$key][3]=($info_log[3]==1) ? get_lang('GradebookVisible') : get_lang('GradebookInvisible');
}
@ -121,4 +80,4 @@ $table->set_header(5, get_lang('Date'));
$table->set_header(6, get_lang('GradebookWhoChangedItLog'));
$table->display();
Display :: display_footer();
Display :: display_footer();

@ -161,9 +161,9 @@ if (isset ($_GET['import'])) {
$result->set_score($importedresult['score']);
}
if (!empty ($importedresult['date'])) {
$result->set_date(strtotime($importedresult['date']));
$result->set_date(api_get_utc_datetime($importedresult['date']));
} else {
$result->set_date(time());
$result->set_date(api_get_utc_datetime());
}
$result->set_evaluation_id($_GET['selecteval']);
$result->add();
@ -199,7 +199,7 @@ if (!$export_result_form->validate()) {
if ($export_result_form->validate()) {
$export= $export_result_form->exportValues();
$file_type= $export['file_type'];
$filename= 'export_results_' . date('Y-m-d_H-i-s');
$filename= 'export_results_' . gmdate('Y-m-d_H-i-s');
$results= Result :: load(null, null, Security::remove_XSS($_GET['selecteval']));
$data= array (); //when file type is csv, add a header to the output file
if ($file_type == 'csv') {
@ -295,7 +295,7 @@ if ($export_result_form->validate()) {
$data['lastname']= $userinfo['lastname'];
$data['firstname']= $userinfo['firstname'];
$data['score']= $result->get_score();
$data['date'] = api_convert_and_format_date($result->get_date(), "%d/%m/%Y %R");
$data['date'] = api_format_date($result->get_date(), "%d/%m/%Y %R");
$alldata[]= $data;
}
switch ($file_type) {

@ -37,7 +37,6 @@ if (isset($_GET['cidReq'])) {
} else {
$this_section = SECTION_MYGRADEBOOK;
}
require_once 'lib/be.inc.php';
require_once 'lib/scoredisplay.class.php';
require_once 'lib/gradebook_functions.inc.php';
@ -49,6 +48,7 @@ require_once 'lib/fe/gradebooktable.class.php';
require_once 'lib/fe/displaygradebook.php';
require_once 'lib/fe/userform.class.php';
require_once api_get_path(LIBRARY_PATH).'ezpdf/class.ezpdf.php';
$htmlHeadXtra[] = '<script src="../inc/lib/javascript/jquery.js" type="text/javascript" language="javascript"></script>'; //jQuery
$htmlHeadXtra[] = '<script type="text/javascript">
$(document).ready( function() {
@ -607,7 +607,7 @@ if (isset ($_GET['studentoverview'])) {
$pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');
$pdf->ezSetMargins(30, 30, 50, 30);
$pdf->ezSetY(810);
$pdf->ezText(get_lang('FlatView').' ('. date('j/n/Y g:i') .')',12,array('justification'=>'center'));
$pdf->ezText(get_lang('FlatView').' ('. api_convert_and_format_date(null, DATE_FORMAT_SHORT). ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT) .')',12,array('justification'=>'center'));
$pdf->line(50,790,550,790);
$pdf->line(50,40,550,40);
$pdf->ezSetY(750);
@ -640,7 +640,7 @@ if (isset ($_GET['studentoverview'])) {
$stud_ln = $user['lastname'];
$certif_text = sprintf(get_lang('CertificateWCertifiesStudentXFinishedCourseYWithGradeZ'),$organization_name,$stud_fn.' '.$stud_ln,$category[0]->get_name(),$scorecourse_display);
$certif_text = str_replace("\\n","\n",$certif_text);
$date = date('d/m/Y',time());
$date = api_convert_and_format_date(null, DATE_FORMAT_SHORT);
$pdf= new Cezpdf('a4','landscape');
$pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');
@ -856,4 +856,4 @@ else
{
$gradebooktable->display();
}
Display :: display_footer();
Display :: display_footer();

@ -29,4 +29,4 @@ require_once ('be/category.class.php');
require_once ('be/evaluation.class.php');
require_once ('be/result.class.php');
require_once ('be/linkfactory.class.php'); // this contains the include declarations
// to all link classes
// to all link classes

@ -41,7 +41,7 @@ abstract class AbstractLink implements GradebookItem
protected $user_id;
protected $course_code;
protected $category;
protected $link_date;
protected $created_at;
protected $weight;
protected $visible;
protected $session_id;
@ -78,7 +78,7 @@ abstract class AbstractLink implements GradebookItem
}
public function get_date() {
return $this->link_date;
return $this->created_at;
}
public function get_weight() {
@ -114,7 +114,7 @@ abstract class AbstractLink implements GradebookItem
}
public function set_date ($date) {
$this->link_date = $date;
$this->created_at = $date;
}
public function set_weight ($weight) {
@ -133,7 +133,7 @@ abstract class AbstractLink implements GradebookItem
*/
public function load ($id = null, $type = null, $ref_id = null, $user_id = null, $course_code = null, $category_id = null, $visible = null) {
$tbl_grade_links = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
$sql='SELECT id,type,ref_id,user_id,course_code,category_id,date,weight,visible FROM '.$tbl_grade_links;
$sql='SELECT id,type,ref_id,user_id,course_code,category_id,created_at,weight,visible FROM '.$tbl_grade_links;
$paramcount = 0;
if (isset ($id)) {
$sql.= ' WHERE id = '.$id;
@ -203,7 +203,7 @@ abstract class AbstractLink implements GradebookItem
$link->set_user_id($data['user_id']);
$link->set_course_code($data['course_code']);
$link->set_category_id($data['category_id']);
$link->set_date(api_get_local_time($data['date']));
$link->set_date(api_get_local_time($data['created_at']));
$link->set_weight($data['weight']);
$link->set_visible($data['visible']);
$links[]=$link;
@ -228,8 +228,7 @@ abstract class AbstractLink implements GradebookItem
$row_testing=Database::fetch_array($result_testing);
if ($row_testing[0]==0) {
$sql = 'INSERT INTO '.$tbl_grade_links.' (type,ref_id,user_id,course_code,category_id,weight,visible';
if (isset($this->link_date)) { $sql .= ',date';}
$sql = 'INSERT INTO '.$tbl_grade_links.' (type,ref_id,user_id,course_code,category_id,weight,visible,created_at';
$sql .= ') VALUES ('
.$this->get_type()
.','.$this->get_ref_id()
@ -237,9 +236,9 @@ abstract class AbstractLink implements GradebookItem
.",'".$this->get_course_code()."'"
.','.$this->get_category_id()
.','.$this->get_weight()
.','.$this->is_visible();
if (isset($this->link_date)) {$sql .= ','.'"'.$date_current=strtotime(date('Y-m-d H:i:s',time())).'"';}
$sql .= ")";
.','.$this->is_visible()
.",'".api_get_utc_datetime()."')";
echo $sql;
Database::query($sql);
$this->set_id(Database::insert_id());
}
@ -271,9 +270,8 @@ abstract class AbstractLink implements GradebookItem
public function add_link_log($idevaluation) {
$tbl_grade_linkeval_log = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINKEVAL_LOG);
$dateobject=AbstractLink::load ($idevaluation,null,null,null,null);
$current_date_server=strtotime(date('Y-m-d H:i:s',time()));
$current_date_server=api_get_utc_datetime();
$arreval=get_object_vars($dateobject[0]);
//var_dump($arreval);
$description_log=isset($arreval['description'])?$arreval['description']:'';
if (isset($_POST['name_link'])) {
$name_log=isset($_POST['name_link'])?Security::remove_XSS($_POST['name_link']):$arreval['course_code'];
@ -283,7 +281,7 @@ abstract class AbstractLink implements GradebookItem
$name_log=$arreval['course_code'];
}
//error_log($name_log);
$sql="INSERT INTO ".$tbl_grade_linkeval_log."(id_linkeval_log,name,description,date_log,weight,visible,type,user_id_log)VALUES('".Database::escape_string($arreval['id'])."','".Database::escape_string($name_log)."','".Database::escape_string($description_log)."','".Database::escape_string($current_date_server)."','".Database::escape_string($arreval['weight'])."','".Database::escape_string($arreval['visible'])."','Link',".api_get_user_id().")";
$sql="INSERT INTO ".$tbl_grade_linkeval_log."(id_linkeval_log,name,description,created_at,weight,visible,type,user_id_log)VALUES('".Database::escape_string($arreval['id'])."','".Database::escape_string($name_log)."','".Database::escape_string($description_log)."','".$current_date_server."','".Database::escape_string($arreval['weight'])."','".Database::escape_string($arreval['visible'])."','Link',".api_get_user_id().")";
Database::query($sql);
}

@ -1138,4 +1138,4 @@ class Category implements GradebookItem
}
return $foundcats;
}
}
}

@ -133,7 +133,7 @@ abstract class EvalLink extends AbstractLink
}
// Functions overriding non-trivial implementations from AbstractLink
public function set_date ($date) {
$this->link_date = $date;
$this->created_at = $date;
if ($this->is_valid_link()) {
$this->evaluation->set_date($date);
}
@ -168,7 +168,7 @@ abstract class EvalLink extends AbstractLink
} else {
$eval = new Evaluation();
$eval->set_category_id(-1);
$eval->set_date(time()); // these values will be changed
$eval->set_date(api_get_utc_datetime()); // these values will be changed
$eval->set_weight(0); // when the link setter
$eval->set_visible(0); // is called
$eval->set_id(-1); // a 'real' id will be set when eval is added to db
@ -181,4 +181,4 @@ abstract class EvalLink extends AbstractLink
}
return $this->evaluation;
}
}
}

@ -38,7 +38,7 @@ class Evaluation implements GradebookItem
private $user_id;
private $course_code;
private $category;
private $eval_date;
private $created_at;
private $weight;
private $eval_max;
private $visible;
@ -75,7 +75,7 @@ class Evaluation implements GradebookItem
}
public function get_date() {
return $this->eval_date;
return $this->created_at;
}
public function get_weight() {
@ -115,7 +115,7 @@ class Evaluation implements GradebookItem
}
public function set_date ($date) {
$this->eval_date = $date;
$this->created_at = $date;
}
public function set_weight ($weight) {
@ -144,7 +144,7 @@ class Evaluation implements GradebookItem
public function load ($id = null, $user_id = null, $course_code = null, $category_id = null, $visible = null)
{
$tbl_grade_evaluations = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_EVALUATION);
$sql='SELECT id,name,description,user_id,course_code,category_id,date,weight,max,visible FROM '.$tbl_grade_evaluations;
$sql='SELECT id,name,description,user_id,course_code,category_id,created_at,weight,max,visible FROM '.$tbl_grade_evaluations;
$paramcount = 0;
if (isset ($id)) {
$sql.= ' WHERE id = '.$id;
@ -191,7 +191,7 @@ class Evaluation implements GradebookItem
$eval->set_user_id($data['user_id']);
$eval->set_course_code($data['course_code']);
$eval->set_category_id($data['category_id']);
$eval->set_date(api_get_local_time($data['date']));
$eval->set_date(api_get_local_time($data['created_at']));
$eval->set_weight($data['weight']);
$eval->set_max($data['max']);
$eval->set_visible($data['visible']);
@ -219,9 +219,7 @@ class Evaluation implements GradebookItem
if (isset($this->category)) {
$sql .= ',category_id';
}
if (isset($this->eval_date)) {
$sql .= ',date';
}
$sql .= ',created_at';
$sql .= ") VALUES ('".Database::escape_string(Security::remove_XSS($this->get_name()))."'"
.','.$this->get_user_id()
.','.$this->get_weight()
@ -236,9 +234,7 @@ class Evaluation implements GradebookItem
if (isset($this->category)) {
$sql .= ','.$this->get_category_id();
}
//if (isset($this->eval_date)) {
$sql .= ','.strtotime(date('Y-m-d H:i:s',time()));
//}
$sql .= ", '".api_get_utc_datetime()."'";
$sql .= ")";
Database::query($sql);
$this->set_id(Database::insert_id());
@ -259,8 +255,8 @@ class Evaluation implements GradebookItem
$sql_eval='SELECT weight from '.$tbl_grade_evaluations.' WHERE id='.$arreval['id'];
$rs=Database::query($sql_eval);
$row_old_weight=Database::fetch_array($rs,'ASSOC');
$current_date=strtotime(date('Y-m-d H:i:s',time()));
$sql="INSERT INTO ".$tbl_grade_linkeval_log."(id_linkeval_log,name,description,date_log,weight,visible,type,user_id_log)VALUES('".Database::escape_string($arreval['id'])."','".Database::escape_string($arreval['name'])."','".Database::escape_string($arreval['description'])."','".Database::escape_string($current_date)."','".Database::escape_string($row_old_weight['weight'])."','".Database::escape_string($arreval['visible'])."','evaluation',".api_get_user_id().")";
$current_date=api_get_utc_datetime();
$sql="INSERT INTO ".$tbl_grade_linkeval_log."(id_linkeval_log,name,description,created_at,weight,visible,type,user_id_log)VALUES('".Database::escape_string($arreval['id'])."','".Database::escape_string($arreval['name'])."','".Database::escape_string($arreval['description'])."','".$current_date."','".Database::escape_string($row_old_weight['weight'])."','".Database::escape_string($arreval['visible'])."','evaluation',".api_get_user_id().")";
Database::query($sql);
}
}
@ -370,23 +366,6 @@ class Evaluation implements GradebookItem
return ($number[0] != 0);
}
/**
* Does this evaluation have any results for a student ?
*/
/* - not used anywhere (yet ?)
public function has_results_for_student($stud_id)
{
$tbl_grade_results = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_RESULT);
$sql="SELECT count(id) AS number FROM ".$tbl_grade_results
." WHERE evaluation_id = ".$this->id." AND user_id = ".$stud_id;
$result = Database::query($sql);
$number=Database::fetch_row($result);
return ($number[0] != 0);
}
*/
/**
* Delete all results for this evaluation
*/

@ -42,4 +42,4 @@ interface GradebookItem
public function calc_score($stud_id = null);
}
}

@ -35,13 +35,13 @@ class Result
private $id;
private $user_id;
private $evaluation;
private $creation_date;
private $created_at;
private $score;
// CONSTRUCTORS
function Result() {
$this->creation_date = time();
$this->created_at = api_get_utc_datetime();
}
// GETTERS AND SETTERS
@ -59,7 +59,7 @@ class Result
}
public function get_date() {
return $this->creation_date;
return $this->created_at;
}
public function get_score() {
@ -79,7 +79,7 @@ class Result
}
public function set_date ($creation_date) {
$this->creation_date = $creation_date;
$this->created_at = $creation_date;
}
public function set_score ($score) {
@ -119,14 +119,14 @@ class Result
$list_user_course_list[]=$row_course_rel_user;
}
$current_date=time();
$current_date=api_get_utc_datetime();
for ($i=0;$i<count($list_user_course_list);$i++) {
$sql_verified='SELECT COUNT(*) AS count FROM '.$tbl_grade_results.' WHERE user_id="'.(int)($list_user_course_list[$i]['user_id']).'" AND evaluation_id="'.Database::escape_string($evaluation_id).'";';
//$my_status_in_course=CourseManager::get_user_in_course_status($list_user_course_list[$i]['user_id'], api_get_course_id());
$res_verified=Database::query($sql_verified);
$info_verified=Database::result($res_verified,0,0);
if ($info_verified==0) {
$sql_insert='INSERT INTO '.$tbl_grade_results.'(user_id,evaluation_id,date,score) values ("'.Database::escape_string($list_user_course_list[$i]['user_id']).'","'.Database::escape_string($evaluation_id).'","'.$current_date.'",0);';
$sql_insert='INSERT INTO '.$tbl_grade_results.'(user_id,evaluation_id,created_at,score) values ("'.Database::escape_string($list_user_course_list[$i]['user_id']).'","'.Database::escape_string($evaluation_id).'","'.$current_date.'",0);';
$res_insert=Database::query($sql_insert);
}
}
@ -134,7 +134,7 @@ class Result
}
}
$sql='SELECT id,user_id,evaluation_id,date,score FROM '.$tbl_grade_results;
$sql='SELECT id,user_id,evaluation_id,created_at,score FROM '.$tbl_grade_results;
$paramcount = 0;
if (!empty ($id)) {
$sql.= ' WHERE id = '.Database::escape_string($id);
@ -162,7 +162,7 @@ class Result
$res->set_id($data['id']);
$res->set_user_id($data['user_id']);
$res->set_evaluation_id($data['evaluation_id']);
$res->set_date($data['date']);
$res->set_date(api_get_local_time($data['created_at']));
$res->set_score($data['score']);
$allres[]=$res;
}
@ -173,11 +173,11 @@ class Result
* Insert this result into the database
*/
public function add() {
if (isset($this->user_id) && isset($this->evaluation) && isset($this->creation_date) ) {
if (isset($this->user_id) && isset($this->evaluation) ) {
$tbl_grade_results = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_RESULT);
$sql = 'INSERT INTO '.$tbl_grade_results
.' (user_id, evaluation_id,
date';
created_at';
if (isset($this->score)) {
$sql .= ',score';
}
@ -208,14 +208,13 @@ class Result
$arr=get_object_vars($arr_result[0]);
$sql = 'INSERT INTO '.$tbl_grade_results_log
.' (id_result,user_id, evaluation_id,
date_log';
.' (id_result,user_id, evaluation_id,created_at';
if (isset($arr['score'])) {
$sql .= ',score';
}
$sql .= ') VALUES
('.(int)$arr['id'].','.(int)$arr['user_id'].', '.(int)$arr['evaluation']
.', '.$arr['creation_date'];
.", '".api_get_utc_datetime()."'";
if (isset($arr['score'])) {
$sql .= ', '.$arr['score'];
}
@ -254,4 +253,4 @@ class Result
$sql = 'DELETE FROM '.$tbl_grade_results.' WHERE id = '.$this->id;
Database::query($sql);
}
}
}

@ -288,7 +288,7 @@ class EvalForm extends FormValidator
*/
protected function build_add_form() {
$this->setDefaults(array (
'hid_user_id' => $this->evaluation_object->get_user_id(), 'hid_category_id' => $this->evaluation_object->get_category_id(), 'hid_course_code' => $this->evaluation_object->get_course_code(), 'date' => time()));
'hid_user_id' => $this->evaluation_object->get_user_id(), 'hid_category_id' => $this->evaluation_object->get_category_id(), 'hid_course_code' => $this->evaluation_object->get_course_code(), 'created_at' => api_get_utc_datetime()));
$this->build_basic_form(0);
if ($this->evaluation_object->get_course_code() == null) {
$this->addElement('checkbox', 'adduser', get_lang('AddUserToEval'));
@ -302,7 +302,7 @@ class EvalForm extends FormValidator
*/
protected function build_editing_form() {
$this->setDefaults(array (
'hid_id' => $this->evaluation_object->get_id(), 'name' => $this->evaluation_object->get_name(), 'description' => $this->evaluation_object->get_description(), 'hid_user_id' => $this->evaluation_object->get_user_id(), 'hid_course_code' => $this->evaluation_object->get_course_code(), 'hid_category_id' => $this->evaluation_object->get_category_id(), 'date' => api_strtotime($this->evaluation_object->get_date()), 'weight' => $this->evaluation_object->get_weight(), 'max' => $this->evaluation_object->get_max(), 'visible' => $this->evaluation_object->is_visible()));
'hid_id' => $this->evaluation_object->get_id(), 'name' => $this->evaluation_object->get_name(), 'description' => $this->evaluation_object->get_description(), 'hid_user_id' => $this->evaluation_object->get_user_id(), 'hid_course_code' => $this->evaluation_object->get_course_code(), 'hid_category_id' => $this->evaluation_object->get_category_id(), 'created_at' => api_get_utc_datetime($this->evaluation_object->get_date()), 'weight' => $this->evaluation_object->get_weight(), 'max' => $this->evaluation_object->get_max(), 'visible' => $this->evaluation_object->is_visible()));
$id_current=isset($this->id)?$this->id :null;
$this->addElement('hidden', 'hid_id',$id_current);
$this->build_basic_form(1);
@ -352,7 +352,6 @@ class EvalForm extends FormValidator
'maxlength' => '4'
));
}
/*$this->add_datepicker('date', get_lang('DateEval'));*/
$this->addElement('textarea', 'description', get_lang('Description'), array (
'rows' => '3',
'cols' => '34'

@ -81,7 +81,7 @@ a:active {text-decoration: none; font-weight : bold; color : black;}
<body><div id="main">';
$printdata .= '<h2>'.$view.' : '.$coursename.'</h2>';
$printdata .= '<h3>'.get_lang('Date').' : '.date('j/n/Y g:i').'</h3>';
$printdata .= '<h3>'.get_lang('Date').' : '.api_convert_and_format_date(null, DATE_FORMAT_SHORT). ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT).'</h3>';
$printdata .= '<table border="1" width="90%" cellspacing="1" cellpadding="1">';
foreach ($header_names as $header) {
$printdata .= '<th>'.$header.'</th>';
@ -110,7 +110,7 @@ function export_pdf($pdf,$newarray,$header_names,$format) {
$pdf->ezSetCmMargins(0,0,0,0);
$pdf->ezSetY(($format=='portrait')?'820':'570');
$pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');
$pdf->ezText(get_lang('FlatView').' ('. date('j/n/Y g:i') .')',12,array('justification'=>'center'));
$pdf->ezText(get_lang('FlatView').' ('. api_convert_and_format_date(null, DATE_FORMAT_SHORT). ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT) .')',12,array('justification'=>'center'));
if ($format=='portrait') {
$pdf->line(40,790,540,790);
$pdf->line(40,40,540,40);
@ -122,4 +122,4 @@ function export_pdf($pdf,$newarray,$header_names,$format) {
$pdf->ezTable($newarray,$header_names,'',array('showHeadings'=>1,'shaded'=>1,'showLines'=>1,'rowGap'=>3,'width'=>(($format=='portrait')?'500':'750')));
$pdf->ezStream();
}
}

@ -106,9 +106,6 @@ function add_resource_to_course_gradebook($course_code, $resource_type, $resourc
if ($link->needs_max()) {
$link->set_max($max);
}
if (isset($date)) {
$link->set_date($date);
}
if ($link->needs_name_and_description()) {
$link->set_description($resource_description);
}
@ -413,4 +410,4 @@ function parse_xml_data($file) {
xml_parse($parser, file_get_contents($file));
xml_parser_free($parser);
return $users;
}
}

@ -73,7 +73,7 @@ if (isset ($_GET['exportpdf'])) {
$pdf->ezSetY(810);
$userinfo = get_user_info_from_id($my_user_id);
$pdf->ezText(get_lang('Results').' : '.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).' ('. date('j/n/Y g:i') .')', 12, array('justification'=>'center'));
$pdf->ezText(get_lang('Results').' : '.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).' ('. api_convert_and_format_date(null, DATE_FORMAT_SHORT). ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT) .')', 12, array('justification'=>'center'));
$pdf->line(50,790,550,790);
$pdf->line(50,40,550,40);
@ -118,4 +118,4 @@ Display :: display_header(get_lang('ResultsPerUser'));
DisplayGradebook :: display_header_user(Security::remove_XSS($_GET['userid']));
echo $actions;
$user_table->display();
Display :: display_footer();
Display :: display_footer();

@ -41,6 +41,26 @@ ALTER TABLE user_field_options CHANGE tms tms DATETIME NOT NULL default '0000-00
ALTER TABLE user_field_values CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
ALTER TABLE access_url CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
ALTER TABLE gradebook_certificate CHANGE date_certificate created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
ALTER TABLE gradebook_evaluation ADD COLUMN created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
UPDATE gradebook_evaluation SET created_at = FROM_UNIXTIME(date);
ALTER TABLE gradebook_evaluation DROP date;
ALTER TABLE gradebook_link ADD COLUMN created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
UPDATE gradebook_link SET created_at = FROM_UNIXTIME(date);
ALTER TABLE gradebook_link DROP date;
ALTER TABLE gradebook_linkeval_log ADD COLUMN created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
UPDATE gradebook_linkeval_log SET created_at = FROM_UNIXTIME(date_log);
ALTER TABLE gradebook_linkeval_log DROP date_log;
ALTER TABLE gradebook_result ADD COLUMN created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
UPDATE gradebook_result SET created_at = FROM_UNIXTIME(date);
ALTER TABLE gradebook_result DROP date;
ALTER TABLE gradebook_result_log CHANGE date_log created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
INSERT INTO user_field(field_type, field_variable, field_display_text, field_visible, field_changeable) VALUES(11, 'timezone', 'Timezone', 0, 0);
INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('course_create_active_tools','attendances','checkbox','Tools','true','CourseCreateActiveToolsTitle','CourseCreateActiveToolsComment',NULL,'Attendances', 0);

@ -115,7 +115,38 @@ if (defined('SYSTEM_INSTALLATION')) {
}
}
}
//
// Converting dates and times to UTC using the default timezone of PHP
// Converting gradebook dates and times
$timezone = date_default_timezone_get();
// Calculating the offset
$dateTimeZoneCurrent = new DateTimeZone($timezone);
$dateTimeUTC = new DateTime("now", new DateTimeZone('UTC'));
$timeOffsetSeconds = $dateTimeZoneCurrent->getOffset($dateTimeUTC);
$timeOffsetHours = $timeOffsetSeconds / 3600;
$timeOffsetString = "";
if($timeOffsetHours < 0) {
$timeOffsetString .= "-";
$timeOffsetHours = abs($timeOffsetHours);
} else {
$timeOffsetString .= "+";
}
if($timeOffsetHours < 10) {
$timeOffsetString .= "0";
}
$timeOffsetString .= "$timeOffsetHours";
$timeOffsetString .= ":00";
// Executing the queries to convert everything
$queries[] = "UPDATE gradebook_certificate SET created_at = CONVERT_TZ(created_at, '".$timeOffsetString."', '+00:00');";
$queries[] = "UPDATE gradebook_evaluation SET created_at = CONVERT_TZ(created_at, '".$timeOffsetString."', '+00:00');";
$queries[] = "UPDATE gradebook_link SET created_at = CONVERT_TZ(created_at, '".$timeOffsetString."', '+00:00');";
$queries[] = "UPDATE gradebook_linkeval_log SET created_at = CONVERT_TZ(created_at, '".$timeOffsetString."', '+00:00');";
$queries[] = "UPDATE gradebook_result SET created_at = CONVERT_TZ(created_at, '".$timeOffsetString."', '+00:00');";
$queries[] = "UPDATE gradebook_result_log SET created_at = CONVERT_TZ(created_at, '".$timeOffsetString."', '+00:00');";
foreach($queries as $query) {
Database::query($query);
}
// Get the stats queries list (s_q_list)
// Get the stats queries list (s_q_list)

Loading…
Cancel
Save