CODE MERGE - MARK CALCULATION COMPLETE : RV

This commit is contained in:
venkateswaran ubuntu 2023-10-13 16:57:53 +05:30
commit 23963dd4de
6 changed files with 97 additions and 84 deletions

View File

@ -1,7 +1,7 @@
function QuestionPaperPreview(jsonData){
// The provided JSON data
// console.log(jsonData)
function convertToLatex(text, mathstatus) {
// Parse mathstatus into a boolean
const mathStatusBoolean = JSON.parse(mathstatus);
@ -67,10 +67,10 @@ function GroupQuestion(question, questionIndex, depth) {
questionPaper += `${question.group_title}`;
questionPaper += `${question.group_description}`;
const nestedQuestions = question.questions;
// Process nested questions in the same way
nestedQuestions.forEach((nestedQuestion) => {
processQuestion(nestedQuestion, questionIndex, depth);
// processQuestion(nestedQuestion, questionIndex, depth);
CheakQnType(nestedQuestion,questionIndex,depth);
});
}

View File

@ -546,8 +546,14 @@
<!-- nave pane -->
<script src="nav_pane.js"></script>
<!-- Main.js its used to trigger auto save when system online -->
<script src="main.js"></script>
<script src="checkParent.js"></script>
<script>
var sidebarWrapper = document.getElementById("questionPaper");
@ -648,11 +654,13 @@ function loadXML(xmlFileName) {
} else{
decodeData = data;
}
resolve(data);
xml2json(data);
// json2nav();
// clearSidebarWrapper();
// navpane();
}
});
});
@ -1090,6 +1098,7 @@ $('#'+Section_Marks_raw_Id).keyup(function() {
//Function for Create a New Question Group
function addQuestionGroup(idObj)
{
const QuestionGroup_UUID = uuidv4();
//set default values
@ -1104,6 +1113,7 @@ function addQuestionGroup(idObj)
}
else if(idObj.hasOwnProperty('add_question_group_id'))
{
// console.log(idObj.add_question_group_id);
question_group_id = idObj.add_question_group_id;
}
@ -1125,7 +1135,6 @@ function addQuestionGroup(idObj)
localStorage.setItem('QuestionGroupId', QuestionGroup_ID)
var sectionRandomID = localStorage.getItem('sectionId');
addQuestionGroup +=
`<div draggable='true' class="draggable-group hidedrag" id="draggedGroup_${QuestionGroup_ID}">
<i id="collapseSubSection_${QuestionGroup_ID}" aria-hidden="true" style=" font-size: 24px; margin-right: 9px; margin-top: 25px;"></i>
@ -1216,6 +1225,7 @@ function addQuestionGroup(idObj)
}
else if(add_question_group_id)
{
var formContainer = document.getElementById(add_question_group_id);
formContainer.insertAdjacentHTML('beforeend', addQuestionGroup);
}
@ -1327,74 +1337,7 @@ function addQuestionGroup(idObj)
}
//mark calculation in QuestionGroup
// var Question_Group_Marks_Field = 'Question_Group_Marks_Id_' + QuestionGroup_ID;
// var sectionRandomID = localStorage.getItem('sectionId');
// var Section_Attempt_Any_raw_Id = 'Section_Attempt_Any_Id_' + sectionRandomID;
// var Section_Marks_raw_Id = 'Section_Marks_Id_' + sectionRandomID;
// var InMarkValue = $('#'+Section_Marks_raw_Id).val();
// var Question_Attempt_Any_Fields = 'Question_Attempt_Any_Id_'+ QuestionGroup_ID;
// var QGinputValue = $('#'+Section_Attempt_Any_raw_Id).val();
// if(QGinputValue == ""){
// $('#'+Question_Group_Marks_Field).prop("disabled", false);
// }else{
// $('#'+Question_Group_Marks_Field).prop("disabled", true);
// $('#'+Question_Group_Marks_Field).val(InMarkValue);
// }
// $('#'+Section_Attempt_Any_raw_Id).keyup(function() {
// var inputValue = $(this).val();
// var Question_Attempt_Any_Fields_values = $('#'+Question_Attempt_Any_Fields).val();
// console.log(Question_Attempt_Any_Fields_values);
// if(Question_Attempt_Any_Fields_values == "")
// {
// if(inputValue == ""){
// $('#'+Question_Group_Marks_Field).prop("disabled", false);
// // alert('enable');
// }else{
// $('#'+Question_Group_Marks_Field).prop("disabled", true);
// // alert('disabled');
// }
// }
// json2nav();
// });
// $('#'+Section_Marks_raw_Id).keyup(function() {
// var MarksinputValue = $(this).val();
// if(MarksinputValue !== ""){
// $('#'+Question_Group_Marks_Field).val(MarksinputValue);
// }else{
// $('#'+Question_Group_Marks_Field).val("");
// }
// });
// $('#'+Question_Attempt_Any_Fields).keyup(function() {
// var inputValue = $(this).val();
// if(inputValue == ""){
// $('#'+Question_Group_Marks_Field).prop("disabled", true);
// // alert('disabled');
// }else{
// $('#'+Question_Group_Marks_Field).prop("disabled", false);
// // alert('enable');
// }
// json2nav();
// });
//end of mark calculation in Choice Question
var question_groupid = 'subSection_title_text_'+ QuestionGroup_ID;
var inputElement = document.getElementById(question_groupid);
@ -1426,11 +1369,44 @@ clearSidebarWrapper();
navpane();
markCalculation()
// start the find Parent count and Remove the Fivth Question Group list
const value = localStorage.getItem('JSON_FOR_NAV')
const parsedValue = JSON.parse(value);
const questionGroupId =question_groupid;
const classes = findParent(parsedValue, questionGroupId); //this line goto checkParent.js and give the Parent count
let originalString = questionGroupId;
let substringToRemove = "subSection_title_text_";
let modifiedString = originalString.replace(substringToRemove, '');
// let finalString = "QuestionGroupButtons_" + modifiedString;
let finalString ="draggedGroup_" +modifiedString;
var element = document.getElementById(`${finalString}`);
if (classes < 5) {
console.log("Div not found.");
} else {
const Swal = require('sweetalert2');
Swal.fire({
title: 'Alert!!!',
text: 'Only Four Question Groups allowed.',
icon: 'info',
confirmButtonText: 'OK'
});
element.parentNode.removeChild(element);
console.log("Div removed successfully.");
}
// end of find QG level script
}
//Function for Create a New Choice Question in the Section and Question Group
function groupQuestion( question_id = false, section_id = false , group_question_area_id = false, questionTitle = false, questionDescription = false, questionSubType = false, mathEnabled = false, Choice = false, questionAreaId = false, questionGroupId = false, questionRandomNo = false, QuestionGroupRandomNo = false, questionMarks = false, questionUUID = false, group_question_marks = false, group_question_uuid = false, questionDisplayMarks = false, group_question_Display_Marks = false)
{
// console.log('===========================================================================================================================================')
// console.log("group_question_area_id : "+group_question_area_id, 'questionGroupId : '+ questionGroupId, 'questionAreaId : '+questionAreaId)
// console.log('===========================================================================================================================================')
// console.log(
// 'question_id : '+question_id,
@ -2183,6 +2159,10 @@ function addNewChoice(NewaddChoiceAreaId = false , choiceName = false, choiceDes
//Function for Create a New Text Question in the Section and Question Group
function textQuestion(question_id = false, section_id = false, group_question_area_id = false, questionTitle = false, questionDescription = false, questionSubType = false, mathEnabled = false, questionGroupId = false, questionAreaId = false, questionRandomNo = false, QuestionGroupRandomNo = false, questionMarks = false, questionUUID = false, group_question_marks = false, group_question_uuid = false, questionDisplayMarks = false, group_question_Display_Marks = false)
{
// console.log('===========================================================================================================================================')
// console.log("group_question_area_id : "+group_question_area_id, 'questionGroupId : '+ questionGroupId, 'questionAreaId : '+questionAreaId)
// console.log('===========================================================================================================================================')
const Text_Question_UUID = uuidv4();
var textQuestion = "";
@ -2603,7 +2583,6 @@ function MultiLevelQuestionGroup(e)
//Function for Add a Text and Choice Question in the Section Question Area
function addNewQuestions(e, type)
{
clone_id_time = e.target.id;
var clone_id = clone_id_time.split("_")[1];
var section_id = 'question_area_'+clone_id;
@ -2618,7 +2597,6 @@ function addNewQuestions(e, type)
//Function For Add a Group Question in the Section Question Area
function addNewGroupQuestions(e, type)
{
clone_id_time = e.target.id;
var clone_id = clone_id_time.split("_")[1];
var group_question_area_id = 'group_question_area_'+clone_id;

25
checkParent.js Normal file
View File

@ -0,0 +1,25 @@
function findParent(jsonData, targetId) {
function findParentChild(data, id, parentClasses, idKey) {
for (let i = 0; i < data.length; i++) {
const section = data[i];
if (section[idKey] === id) {
parentClasses.push(i);
// const childClassCount = (section.questions && section.questions.length > 0) ? section.questions.length : 0;
return parentClasses.length - 1
} else if (section.questions) {
const newParentClasses = parentClasses.slice(); // Create a shallow copy of parentClasses array
newParentClasses.push(i);
const childClass = findParentChild(section.questions, id, newParentClasses, idKey);
if (childClass) {
return childClass; // If childClass is found, return it
}
}
}
return null;
}
let result = findParentChild(jsonData.sections, targetId, [], "question_group_id");
return result;
}

View File

@ -20,6 +20,8 @@ function jsonToHtml(jsonData) {
else
{
var title = jsonData.question_paper_title;
console.log(title)
console.log("TItle")
var description = jsonData.question_paper_description;
var question_Paper_uuid = jsonData.attributes.Id;
var max_marks = jsonData.attributes.MaxMarks;
@ -83,6 +85,7 @@ function jsonToHtml(jsonData) {
if(questionType == 'text')
{
textQuestion(false, false, false, questionTitle, questionDescription, questionSubType, mathEnabled, questionAreaId, false, questionRandomNo, false, questionMarks, questionUUID, false, false, questionDisplayMarks, false);
}
else if (questionType == 'group')

View File

@ -2,7 +2,7 @@
function xml2json(xmlData) {
// console.clear();
console.log('xml to json converstion');
console.log(xmlData);
// console.log(xmlData);
function getAttributesOfXMLNode(node)
{
@ -122,8 +122,9 @@ jsonObj['sections'] = [];
sectionsList = xmlDoc.getElementsByTagName("Items")[0].childNodes;
console.log(sectionsList);
console.log('no of sections:'+sectionsList.length);
//return false;
for (let i = 0; i < (sectionsList.length) ;i++) {
for (let i = 0; i < sectionsList.length ;i++) {
var tempObj = {};
console.log('Section :' + i + '-' + sectionsList[i].childNodes[0]);
@ -164,9 +165,10 @@ jsonObj['sections'] = [];
var jsonData = JSON.stringify(jsonObj);
console.log('Xml to Json Conversion ');
console.log(jsonData);
// console.log(jsonData);
// console.log(jsonObj);
jsonToHtml(jsonObj);
// console.log(jsonToHtml(jsonObj))
}

View File

@ -2,7 +2,7 @@
function xml2json(xmlData) {
// console.clear();
console.log('xml to json converstion');
console.log(xmlData);
// console.log(xmlData);
function getAttributesOfXMLNode(node)
{
@ -34,8 +34,8 @@ function getQuestionsNodes(questionNode,type)
questionObj['is_math_enabled'] = questionNode.childNodes[4].firstChild.nodeValue;
}
else
{
else
{
questionObj['question'] = questionNode.childNodes[0].firstChild.nodeValue;
questionObj['question_description'] = (questionNode.childNodes[1].firstChild !== null? questionNode.childNodes[1].firstChild.nodeValue : "");
questionObj['question_type'] = 'group';
@ -69,7 +69,6 @@ function getQuestionsNodes(questionNode,type)
function getQuestionGroupNodes(questionGroup)
{
var questionGroupObj = {};
questionGroupObj['group_title'] = questionGroup.childNodes[0].firstChild.nodeValue;
questionGroupObj['group_description'] = (questionGroup.childNodes[1].firstChild !== null ? questionGroup.childNodes[1].firstChild.nodeValue : "");
questionGroupObj['group_marks'] = questionGroup.childNodes[2].firstChild.nodeValue;
@ -84,7 +83,6 @@ function getQuestionGroupNodes(questionGroup)
{
var questionType = questionList[q].getAttribute("xsi:type");
// console.log(questionType);
if(questionType == 'DescriptiveQuestion')
{
questionGroupObj['questions'].push(getQuestionsNodes(questionList[q],1));
@ -93,6 +91,10 @@ function getQuestionGroupNodes(questionGroup)
{
questionGroupObj['questions'].push(getQuestionsNodes(questionList[q],2));
}
else
{
questionGroupObj['questions'].push(getQuestionGroupNodes(questionList[q]));
}
}
return questionGroupObj;
@ -133,7 +135,8 @@ jsonObj['sections'] = [];
//handle questions
var questionList = sectionsList[i].childNodes[5].childNodes;
// console.log('No of quetions:' + questionList.length);
console.log(questionList);
// console.log("Question List")
// console.log(questionList);
for(let j = 0; j < questionList.length ;j++)
{
//check weather quesiotn or question grup
@ -159,7 +162,9 @@ jsonObj['sections'] = [];
var jsonData = JSON.stringify(jsonObj);
localStorage.setItem('pjsonData', jsonData );
// console.log(jsonData);
QuestionPaperPreview(jsonObj);
}