Subversion Repositories wimsdev

Rev

Rev 10939 | Blame | Compare with Previous | Last modification | View Log | RSS feed

# PutExo
# Ajoute du contenu (un exercice existant) a la feuille $qsheet de la classe $qclass

#Pour commencer, on verifie la classe
!read scripts/check.class
!if $error!=$empty
  !exit
!endif

type=sheets
!read scripts/check.proc
!if $error!=$empty
  !exit
!endif

#On verifie que la feuille n'est pas "Active"
sheet_status=!line 1 of $qproperties
!ifval $sheet_status >0
  error=sheet mustn't be active
  !exit
!endif

exocnt=!recordcnt wimshome/log/classes/$qclass/sheets/.sheet$sheet_id
!if $exocnt >= $MAX_EXOS
  error=Sorry, a sheet is limited to $MAX_EXOS exercises.
  !exit
!endif

!if $data1=$empty
  error=no data found
  !exit
!endif

data1=!nonempty lines $data1
n1=!linecnt $data1
!for i=1 to $n1
  v_=$empty
  l=!line $i of $data1
  #On remplace temporairement les eventuelles virgules pour ne pas interferer avec la suite
  l2=!translate , to XTEMPX in $l
  l2=!translate = to $,$ in $l2
  n_=!item 1 of $l2
  v_=!item 2 of $l2
  nb_elem=!itemcnt $l2
  !if $nb_elem>2
  !for j=3 to $nb_elem
    courrant=!item $j of $l2
    v_=$v_=$courrant
  !next j
  !endif
  # puis on remet en place les virgules
  v_=!translate XTEMPX to $,$ in $v_
  sh_$n_=$v_
!next i


!for t in sh_module, sh_params
  !if $($t) = $empty
    error=incomplete data $t
    !exit
  !endif
!next t

!default sh_weight=1
!default sh_points=10
!default sh_title=Nouvel exercice
!default sh_description=$empty
!default sh_dep=$empty
!default sh_comment=$empty


# On remplace les eventuels codes URI (%2F, etc..) par les caracteres adequats
!read adm/urldecode $sh_module
sh_module=$url

!if $sh_module=$empty
  error=urldecode failure ! Make sure URI::URL perl module is well installed on the server.
  !exit
!endif

!appendfile wimshome/log/classes/$qclass/sheets/.sheet$qsheet \
:$sh_module\
$sh_params\
$sh_points\
$sh_weight\
$sh_title\
$sh_description\
$sh_dep\
$sh_comment\


exocnt=!recordcnt wimshome/log/classes/$qclass/sheets/.sheet$sheet_id