- tr.assessment(v-for="(assessment,i) in assessmentArray" :class="{idle:!assessment.active}"
- @click.left="actionAssessment(i)" @contextmenu.prevent="deleteAssessment(assessment)")
- td {{ assessment.name }}
- td {{ assessment.mode }}
- td {{ assessment.questions.reduce( (a,b) => { return b.active ? a+1 : a; }, 0) }}
- td {{ assessment.time }}
- if teacher
- h4.title(@click="toggleDisplay('grades')") Grades
- .card(v-show="display=='grades'")
- .center-align
- button.on-left.waves-effect.waves-light.btn(@click="gradeSettings()") Settings
- a#download.hide(href="#" ref="download")
- button.waves-effect.waves-light.btn(@click="download") Download
- ul.tabs.tabs-fixed-width
- li.tab
- a(href="#group0") All
- li.tab(v-for="group in groupList()")
- a(:href="groupId(group,'#')") G.{{ group }}
- table.result(:id="groupId(group)" v-for="group in [0].concat(groupList())" @click="showDetails(group)")
- thead
- tr
- th Number
- th Name
- th Final
- tbody
- tr.grade(v-for="student in studentList(group)")
- td {{ student.number }}
- td {{ student.name }}
- td grade...
- //td {{ grades[student.number].final }}
- tr.stats
- td(colspan="4") Stats: range= stdev= mean=
- if teacher
- .row(v-show="mode=='edit'")
- .col.s12.m10.offset-m1
- h4 {{ assessment.name }}
- .card
- .center-align
- button.waves-effect.waves-light.btn.on-left(@click="materialOpenModal('assessmentSettings')") Settings
- button.waves-effect.waves-light.btn.on-left(@click="materialOpenModal('assessmentEdit')") Content
- button.waves-effect.waves-light.btn(@click="redirect(assessment.name)") View
- #questionList
- .introduction(v-html="assessment.introduction")
- .question(v-for="(question,i) in assessment.questions" :class="{questionInactive:!question.active}")
- .wording(v-html="question.wording")
- .option(v-for="(option,j) in question.options" :class="{choiceCorrect:question.answer.includes(j)}" v-html="option")
- p
- input(:id="checkBoxFixedId(i)" type="checkbox" v-model="question.fixed")
- label.on-left(:for="checkBoxFixedId(i)") Fixed
- input(:id="checkBoxActiveId(i)" type="checkbox" v-model="question.active")
- label(:for="checkBoxActiveId(i)") Active
- .conclusion(v-html="assessment.conclusion")
- .center-align
- button.waves-effect.waves-light.btn.on-left(@click="mode='view'") Cancel
- button.waves-effect.waves-light.btn(@click="updateAssessment") Send
+ tr.evaluation(v-for="(evaluation,i) in evaluationArray" :class="{idle:!evaluation.active}"
+ @click.left="actionEvaluation(i)" @contextmenu.prevent="deleteEvaluation(evaluation)")
+ td {{ evaluation.name }}
+ td {{ evaluation.mode }}
+ td {{ evaluation.questions.length }}
+ if teacher
+ div(v-show="evaluationIndex >= 0")
+ h4 {{ evaluation.name }}
+ .card(v-show="mode=='view'")
+ .center-align
+ button.waves-effect.waves-light.btn.on-left(@click="mode='edit'") Edit
+ button.waves-effect.waves-light.btn(@click="redirect(evaluation.name)") View
+ div
+ .introduction(v-html="evaluation.introduction")
+ statements(:questions="evaluation.questions" :answers="evaluation.answers" :display="'solution'")
+ .card(v-show="mode=='edit'")
+ form(@submit.prevent)
+ p
+ input#active(type="checkbox" v-model="evaluation.active")
+ label(for="active") evaluation is active
+ div
+ h4 Questions mode:
+ span(title="Exam mode, secured (class only): students cannot lose focus or exit fullscreen")
+ input#secure(name="status" type="radio" value="secure" v-model="evaluation.mode")
+ label(for="secure") secure
+ span(title="Exam mode, watched (class only): teachers are notified when students lose focus or resize window")
+ input#watch(name="status" type="radio" value="watch" v-model="evaluation.mode")
+ label(for="watch") watch
+ span(title="Exam mode, unwatched: students can browse the web freely")
+ input#exam(name="status" type="radio" value="exam" v-model="evaluation.mode")
+ label(for="exam") exam
+ span(title="Questions list open to the world (useful mode after an exam, or for a 'questions bank'")
+ input#open(name="status" type="radio" value="open" v-model="evaluation.mode")
+ label(for="open") open
+ p
+ input#fixed(type="checkbox" v-model="evaluation.fixed")
+ label(for="fixed") Fixed questions order
+ div
+ h4 Display type:
+ span(title="Show only one question at a time (with potential sub-questions)")
+ input#displayOne(name="display" type="radio" value="one" v-model="evaluation.display")
+ label(for="displayOne") one
+ span(title="Always show all questions (with an optional navigator)")
+ input#displayAll(name="display" type="radio" value="all" v-model="evaluation.display")
+ label(for="displayAll") all
+ .input-field
+ input#time(type="number" v-model.number="evaluation.time")
+ label(for="time") Time (minutes)
+ .input-field
+ textarea#introduction.materialize-textarea(v-model="evaluation.introduction")
+ label(for="introduction") Introduction
+ .input-field
+ textarea#evaluationEdition.materialize-textarea(v-model="questionsText")
+ label(for="evaluationEdition") evaluation in text format
+ .center-align
+ button.waves-effect.waves-light.btn.on-left(@click="updateEvaluation()") Send
+ button.waves-effect.waves-light.btn(@click="mode='view'") Cancel