Subversion Repositories wimsdev

Rev

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 &ecirc;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