Subversion Repositories wimsdev

Rev

Rev 8311 | Rev 9719 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed


checkuser=!translate / to $ $ in $checkuser
!read adm/class/userisinclass ,$checkuser
!if yes notin $script_reply
 error=bad_usercls
 !reset job,checkuser
 !exit
!endif
!read adm/class/userdef classes,$wims_class,$checkuser
!readdef $userdef
!if $user_exists != yes
 error=bad_user
 !exit
!endif

maxexo=0
!for k in $activexams
 tmp=!recordcnt wimshome/log/classes/$wims_class/exams/.exam$k
 maxexo=$[max($maxexo,$tmp)]
!next k
logdir=$wims_home/log/classes/$wims_class/examlog/$checkuser
!if $checksession=$empty
 checksessions=!sh if [ -d $logdir ]; then cd $logdir; ls; fi
 checksessions=!words2items $checksessions
 !for ses in $checksessions
  exo=!sh cd $wims_home/log/classes/$wims_class/examlog/$checkuser/$ses; ls
  exo$ses=!words2items $exo
  exo=!words2lines $exo
  exo=!translate . to , in $exo
  exom=!column 1 of $exo
  exom=!listuniq $exom
  exam$ses=$exom
  !for xm in $exom
   exot=!select $exo where column 1 = $xm
   exot=!column 2 of $exot
   exo$(ses)$xm=!sort numeric items $exot
  !next xm
 !next i
 !if $checksessions=$empty
  !exit
 !endif
 sc=!record 0 of wimshome/log/classes/$wims_class/score/$checkuser.exam
 n=!linecnt $sc
 tses=
 !for i=1 to $n
  l=!line $i of $sc
  !distribute words $l into e_,s_,t__,T_,i_,S_,t_
  score$(S_)$e_=$s_
  !if $s_ issametext 00
   tses=!append item $S_ to $tses
   start$(S_)$e_=$t_
   dur$(S_)$e_=$T_
  !endif
  !if $t__ issametext -1
    duree$(S_)$e_=!exec pari divrem($T_ - $(dur$(S_)$e_),60)~
  !endif
 !next i
 checksessions=!listintersect $tses and $checksessions
 !exit
!endif

exos=!sh if [ -d $logdir/$checksession ]; then cd $logdir/$checksession; ls; fi
exos=!words2items $exos
logfile=classes/$wims_class/examlog/$checkuser/$checksession/$checkexo

!if _check isin $session
 !read adm/class/exocheck
!endif