Subversion Repositories wimsdev

Rev

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

# ModSheet
# Modifie la feuille $qsheet

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

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

data1=!nonempty lines $data1

n=!linecnt $data1
nbdefs=0

listfile=wimshome/log/classes/$qclass/exams/.exams
examcnt=!recordcnt $listfile
listexos=wimshome/log/classes/$qclass/sheets/.sheet$qsheet
exocnt=!recordcnt $listexos

!for i=1 to $n
  l=!line $i of $data1
  l=!translate = to $\
$ in $l
  !distribute lines $l into name_,value_
  name_=!word 1 of $name_
  !! remove leading, ending and multiples spaces
  value_=!trim $value_
  value_=!singlespace $value_

  nbtot=!itemcnt $sheetdefs

  !for numfield=1 to $nbtot
    defcur=!item $numfield of $sheetdefs
    !if $name_ = $defcur
      !if $defcur issametext status
        ####################
        # il faudrait verifier qu'il n'y a aucune note sur cette feuille avant de la repasser en preparation. si c'est le cas, il faut basculer les notes en question du dossier /score vers /noscore avec les options "deact noscore" en plus.
        ###################

        # Le statut d'une feuille est forcement >=0 et <4
            !ifval $value_<0 or $value_>=4
              error=bad status ($value_)
              !exit
        !endif

        #attention : avant de definir le statut a 0, il faut verifier qu'aucun examen ne fait appel a cette feuille
        !ifval $value_=0
        #cas ou on desactive une feuille
          !for x=1 to $examcnt
            qexam=$x

            !read scripts/listlinks.proc
                !if $nblink>0
                  error=Some exercices($nblink) in this sheet($qsheet) are in an exam($qexam).You can't deactiv this sheet.
                  !exit
            !endif
          !next x
          wims_class_log=Deactivate sheet $qsheet by $wims_realuser

        !else
        #cas ou on active une feuille
          !if $exocnt<1
            error=you can't active an empty sheet
            !exit
          !endif
          !read adm/sheet/writeweights
          wims_class_log=activate sheet $qsheet by $wims_realuser
        !endif
      !endif
      !advance nbdefs
      update_field=$numfield
      update_content=$value_
      !read scripts/update.proc
    !endif
  !next numfield
!next i

!if $nbdefs<1
 error=nothing done
 !exit
!endif

type=sheets
!read scripts/build_index.proc

Generated by GNU Enscript 1.6.5.90.