Skip to content

Commit 1edd38d

Browse files
committed
Merge reports print essay questions
1 parent 884bbce commit 1edd38d

File tree

8 files changed

+8
-123
lines changed

8 files changed

+8
-123
lines changed

create-link.bat

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/classes/PersistCtrl.php

Lines changed: 0 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -705,82 +705,6 @@ public function reportQuizEssayAnswers($courseId, $cmId, $groupId, $studentId, $
705705
$vars['studentid'] = $studentId;
706706
}
707707

708-
$query = "select * from
709-
(select ". $this->sql_uniqueid() ." uniqueId, t1.id course_id, t1.shortname course_name, t2.id cmid, t3.id quiz_id,
710-
t3.name quiz_name, t6.id user_id, t6.firstname first_name, t6.lastname last_name, ". $this->mysqlConn->sql_concat('t6.firstname', "' '", 't6.lastname')." fullname,
711-
t6.email, t4.attempt, t4.timefinish attemp_timestamp,
712-
(select t5_2.value from
713-
mdl_question_attempts t5
714-
inner join mdl_question_attempt_steps t5_1 on t5.id = t5_1.questionattemptid
715-
inner join mdl_question_attempt_step_data t5_2 on t5_1.id = t5_2.attemptstepid and t5_2.name = 'answer'
716-
inner join mdl_qtype_essay_options as t5_3 on t5.questionid = t5_3.questionid
717-
where t5.questionusageid = t4.uniqueid
718-
order by t5_1.sequencenumber desc limit 1) answer
719-
from {course} t1
720-
inner join {course_modules} t2 on t1.id= t2.course
721-
inner join {modules} t2_1 on t2.module = t2_1.id
722-
inner join {quiz} t3 on t2.instance = t3.id
723-
inner join {quiz_attempts} t4 on t4.quiz = t3.id
724-
inner join {user} t6 on t4.userid = t6.id and t6.deleted = 0 and t6.suspended = 0
725-
left join {groups_members} t6_1 on t6.id = t6_1.userid
726-
left join {groups} t6_2 on t6_1.groupid = t6_2.id
727-
where t2_1.name = 'quiz' and t2.id = :cmid and t1.id = :courseid and $groupStmt and $studentStmt
728-
order by last_name asc, first_name asc, attempt desc) as tab
729-
where answer is not null";
730-
731-
$tmp = $this->getRecordsSQL($query, $vars);
732-
733-
$result = array();
734-
735-
if(count($tmp) == 0){
736-
return $result;
737-
}
738-
739-
foreach($tmp as $item){
740-
//$output = preg_replace('/\s\s+/',' ',$input);
741-
742-
$answer = html_entity_decode($item->answer);
743-
$answer = str_replace( '<', ' <', $item->answer );
744-
//$answer = str_replace( '-', '', $item->answer );
745-
$answer = strip_tags( $answer );
746-
//$item->nbWords = str_word_count($answer);
747-
//$item->nbWords = preg_match_all('/\pL+[^\']/u', $answer, $matches);
748-
$item->nbWords = preg_match_all('/\pL+/u', $answer, $matches);
749-
750-
/*echo "<pre>";
751-
var_dump($matches);
752-
die();*/
753-
754-
if($onlyLastTry){
755-
if(!isset($result[$item->userId])){
756-
$result[$item->userId] = $item;
757-
}
758-
}
759-
else{
760-
$result[] = $item;
761-
}
762-
}
763-
764-
return array_values($result);
765-
}
766-
767-
public function reportQuizEssayAnswers2($courseId, $cmId, $groupId, $studentId, $onlyLastTry = false){
768-
$vars = array();
769-
$vars['cmid'] = $cmId;
770-
$vars['courseid'] = $courseId;
771-
772-
$groupStmt = "1";
773-
if($groupId > 0){
774-
$groupStmt = " t6_2.id = :groupid";
775-
$vars['groupid'] = $groupId;
776-
}
777-
778-
$studentStmt = "1";
779-
if($studentId > 0){
780-
$studentStmt = " t6.id = :studentid";
781-
$vars['studentid'] = $studentId;
782-
}
783-
784708
$onlyLastTryStmt = "1";
785709
if($onlyLastTry){
786710
$onlyLastTryStmt = " t4.attempt = (SELECT MAX(sub_t4.attempt) FROM mdl_quiz_attempts as sub_t4 WHERE sub_t4.quiz = t3.id AND sub_t4.userid = t6.id)";

src/classes/WebApi.php

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -432,33 +432,6 @@ public function reportQuizEssayAnswers($request){
432432
return new WebApiResult(false, false, $ex->GetMessage());
433433
}
434434
}
435-
436-
public function reportQuizEssayAnswers2($request){
437-
try{
438-
$courseId = clean_param($request['courseId'], PARAM_INT);
439-
$groupId = clean_param($request['groupId'], PARAM_INT);
440-
$cmId = clean_param($request['cmId'], PARAM_INT);
441-
$studentId = clean_param($request['studentId'], PARAM_INT);
442-
$onlyLastTry = (clean_param($request['onlyLastTry'], PARAM_INT) == 1 ? true : false);
443-
444-
$extraData = new stdClass();
445-
$extraData->documentTitle = clean_param($request['documentTitle'], PARAM_RAW);
446-
$extraData->supervisorName = clean_param($request['supervisorName'], PARAM_RAW);
447-
448-
$this->canUserAccess('a', $courseId);
449-
450-
$data = PersistCtrl::getInstance()->reportQuizEssayAnswers2($courseId, $cmId, $groupId, $studentId, $onlyLastTry);
451-
452-
$pdfWritter = new ReportQuizEssayAnswersPdf();
453-
$pdfWritter->SetDataset($data, $extraData);
454-
$pdfWritter->PrintOut('I');
455-
456-
return new WebApiResult(true);
457-
}
458-
catch(Exception $ex){
459-
return new WebApiResult(false, false, $ex->GetMessage());
460-
}
461-
}
462435
/**
463436
* This function generates a report of used tags
464437
*

src/react/build/index.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/react/build/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "recit_dashboard",
3-
"version": "v2.0.0-stable",
3+
"version": "2.0.1-stable",
44
"description": "RÉCIT Dashboard",
55
"main": "index.js",
66
"scripts": {

src/react/src/views/reports/ReportQuiz.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,6 @@ export class ReportQuiz extends Component{
205205
<a href={`${Options.getGateway(true)}&service=reportQuiz&courseId=${this.props.options.course.id}&groupId=${this.props.options.group.id}&cmId=${this.props.options.cm.id}&output=csv`} target='_blank'>{i18n.get_string('downloadcsv')}</a>
206206
<span className='ml-3 mr-3'>|</span>
207207
<Button className='p-0' variant='link' onClick={() => this.onShowModal(true, 'reportQuizEssayAnswers')}>{i18n.get_string('printessayquestions')}</Button>
208-
<span className='ml-3 mr-3'>|</span>
209-
<Button className='p-0' variant='link' onClick={() => this.onShowModal(true, 'reportQuizEssayAnswers2')}>{i18n.get_string('printessayquestions') + ' 2'}</Button>
210208
</div>
211209
<PrintEssayQuestionModal show={this.state.printEssayQuestionModal} options={this.props.options} extraOptions={this.state.data} onClose={() => this.onShowModal(false)}/>
212210
</div>;
@@ -385,8 +383,8 @@ class PrintEssayQuestionModal extends Component{
385383
documentTitle: this.state.data.documentTitle,
386384
supervisorName: this.state.data.supervisorName,
387385
onlyLastTry: (this.props.extraOptions.onlyLastTry ? '1' : '0'),
388-
}
389-
386+
}
387+
390388
$glVars.webApi.reportQuizEssayAnswers(data);
391389
}
392390

src/version.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
*/
2424
defined('MOODLE_INTERNAL') || die();
2525

26-
$plugin->version = 2025013000; // The current module version (Date: YYYYMMDDXX)
27-
$plugin->release = 'v2.0.0-stable';
26+
$plugin->version = 2025013001; // The current module version (Date: YYYYMMDDXX)
27+
$plugin->release = 'v2.0.1-stable';
2828
$plugin->supported = [405, 405]; // Moodle 3.9.x, 3.10.x and 3.11.x are supported.
2929
$plugin->requires = 2024071200.00; // Moodle 4.5.0
3030
$plugin->component = 'local_recitdashboard'; // Full name of the plugin (used for diagnostics)

0 commit comments

Comments
 (0)