Rev 9963 | Blame | Compare with Previous | Last modification | View Log | RSS feed
# AddExam
# permet d'ajouter un examen dans la classe qclass
!read scripts/check.class
!if $error!=$empty
!exit
!endif
#################################
FORMAT OF THE /exams/.exams INDEX FILE :
#:EXAM STATUS
#EXPIRATION DATE
#DURATION & ALLOWED_ATTEMPTS
#EXAM TITLE
#EXAM DESCRIPTION
#CUT Hours
##################################
#FORMAT of an /exams/.examN File :
#:WEIGHT
#IDSCHEET.IDEXO
#TITLE_EXO
#DEPENDENCES
#autogen
#################################
# Format of an /.E(n) FILE (Opening restrictions for exam n )
# # - open for simulation
# empty - open for all
# none - closed for all
# IP/Hours/Both - open for IP and/or hours defined
######################################################
examcnt=!recordcnt wimshome/log/classes/$qclass/exams/.exams
!if $examcnt >= $MAX_EXAMS
error= error : The number of exams is limited to $MAX_EXAMS. You may not create exam #$[$examcnt+1].
!exit
!endif
data1=!nonempty lines $data1
n1=!linecnt $data1
!for i=1 to $n1
l=!line $i of $data1
l=!translate = to $\
$ in $l
!distribute lines $l into n_,v_
exam_$n_=$v_
!next i
exam_creation=!char 1 to 8 of $wims_now
exam_creation=!eval $exam_creation
!default exam_expiration=$[$exam_creation+10000]
!if NaN isin $exam_duration or $exam_duration<1
#le nombre d'essais autorises doit etre un nombre >0 sinon on laisse la valeur actuelle
exam_duration=$empty
!endif
!default exam_duration=60
!if NaN isin $exam_attempts or $exam_attempts<1
#le nombre d'essais autorises doit etre un nombre >0 sinon on laisse la valeur actuelle
exam_attempts=$empty
!endif
!default exam_attempts=1
list1=.,..,.exams,.require,.weight,.eseverity
list2=!listfile -a $wims_home/log/classes/$qclass/exams
list2=!lines2items $list2
list2=!listcomplement $list1 in $list2
nb=!itemcnt $list2
!increase nb
!default exam_title=Examen #$nb
!default exam_description= Vous êtes dans l'examen $nb.
!default exam_cut_hours=$empty
!default exam_opening=$empty
#Si le fichier .exams n'existe pas, appendfile le cree.
!appendfile wimshome/log/classes/$qclass/exams/.exams \
:0\
$exam_expiration\
$exam_duration $exam_attempts\
$exam_title\
$exam_description\
$exam_cut_hours
examcnt=!recordcnt wimshome/log/classes/$qclass/exams/.exams
!if $examcnt!=$nb
error= error in exam count ($examcnt records / $nb files)
!exit
!endif
!writefile wimshome/log/classes/$qclass/exams/.exam$examcnt
!writefile wimshome/log/classes/$qclass/.E$examcnt $exam_opening
exam_id=$examcnt