Rev 3261 | Rev 9689 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
# AddSheet
# permet d'ajouter une feuille vide à la classe qclass
!read scripts/check.class
!if $error!=$empty
!exit
!endif
#### RAPPEL : ################
## FORMAT of the /sheets/.sheets INDEX file :
#:SHEET STATUS
#EXPIRATION DATE
#SHEET TITLE
#SHEET DESCRIPTION
#######################
## FORMAT of a /sheets/.sheetN file :
#:MODULE (classes/$lang if it is an exercice of the class)
#PARAMS
#EXO REQUIRED POINTS
#EXO WEIGHT
#EXO TITLE
#EXO DESCRIPTION
#################################
list1=.,..,.sheets,.require,.weight,.severity
list2=!listfile -a $wims_home/log/classes/$qclass/sheets
list2=!lines2items $list2
list2=!listcomplement $list1 in $list2
n=!itemcnt $list2
!increase n
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_
sh_$n_=$v_
!next i
sh_creation=!char 1 to 8 of $wims_now
sh_creation=!eval $sh_creation
## Ici par defaut je place la date d'expiration de la feuille a creation+1an.
## On pourrait aussi mettre simplement la meme date d'expiration que la classe
!default sh_expiration=$[$sh_creation+10000]
!default sh_title=Feuille d'exercices #$n
!default sh_description=Feuille d'exercices #$n
!default sh_sheetmode=0
############# contenu de la nouvelle feuille ##############################
## Par défaut, le contenu de la feuille est vide, autrement c'est une ligne
## dont les points-virgules seront interprétés comme des retours à la ligne
## les signes = sont interdits, il faut les remplacer par %3D
## la structure du contenu n'est pas vérifiée, c'est à vos risques et périls !
###########################################################################
!default sh_contents=
sh_contents=!translate ; to $\
$ in $sh_contents
sh_contents=!translate @ to = in $sh_contents
!appendfile wimshome/log/classes/$qclass/sheets/.sheets \
:$sh_sheetmode\
$sh_expiration\
$sh_title\
$sh_description\
sheetcnt=!recordcnt wimshome/log/classes/$qclass/sheets/.sheets
!if $sheetcnt!=$n
error= error in sheet count ($sheetcnt records / $n files)
!exit
!endif
!writefile wimshome/log/classes/$qclass/sheets/.sheet$sheetcnt $sh_contents
wims_sheet=$n