Subversion Repositories wimsdev

Rev

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

!! not allow for type=1
!if $type=1
  job=configfw
  !changeto $job.proc
!endif

!! -------------- check right for download/upload participant correction file
d1=!text select char 0123456789 in $(deadline)$(timedeadline)
d2=!text select char 0123456789 in $(soldate)$(timesoldate)
now=!text select char 0123456789 in $wims_now
now=!char 1 to 12 of $now
putworkco=0
n1=!filelist $wims_home/log/classes/$wims_class/freeworksdata/$freework/work
n1=!linecnt $n1
n2=!filelist $wims_home/log/classes/$wims_class/freeworksdata/$freework/co
n2=!linecnt $n2
!if $activetest=1 and $now>$d1 and ($n2<$n1 or $now<$d2)
  putworkco=1
!endif

!if $putworkco!=1
  error=putworknotallow
  job=configfw
  !changeto $job.proc
!endif

!! -------- check for valid student (in class)
!bound student within $ulist default $empty
!if $student=$empty
  error=putworkusernotexists
  job=configfw
  !changeto $job.proc
!endif


!! -------- test si la copie de l'etudiant existe (pas de depot de correction si pas de copie)

!readproc proc/findfile.proc $freework,$student
!if $data_0=$empty
  error=studentwithoutfw
  job=configfw
  !changeto $job.proc
!endif

!readproc adm/class/quotafree.proc proc
oldsize=0
!if $(data_0[5])!=$empty
    du=!sh du -ks $wims_home/log/classes/$wims_class/freeworksdata/$freework/co/$(data_0[5])
    du=!word 1 of $du
    oldsize=$[($du)/1024]
    delold=rm -f $wims_home/log/classes/$wims_class/freeworksdata/$freework/co/$(data_0[5])
!endif
!if $wims_deposit!=$empty and $wims_deposit!=noname.file and / notin $wims_deposit and .. notin $wims_deposit
  du=!sh du -ks $wims_home/$wims_sesdir/user-deposit
  du=!word 1 of $du
  newsize=$[($du)/1024]
  !read proc/checkfilename.proc $freework
  !if $error!=$empty
    !exit
  !else
    exten=!replace internal . by , in $newfilename
    n=!itemcnt $exten
    !if $n>=2
      exten=!item -1 of $exten
      exten=.$exten
    !else
      exten=$empty
    !endif
  !endif
  success=goodaddfile
  !if $quota_free-$newsize-$oldsize<0
    error=quota_filestudent
    !reset success
  !else
    !!mise en place du nouveau fichier (et destruction de l'ancien s'il existe)
    !sh mv $wims_home/$wims_sesdir/user-deposit $wims_home/log/classes/$wims_class/freeworksdata/$freework/co/$student$exten;\
          $delold
  !endif
!endif
!! ------------ save new score
m=!record 0 of wimshome/log/classes/$wims_class/sheets/.severity
maxscore=!word 1 of $m
!bound maxscore between 0 and 100000 default 10
key2=!positionof item $student in $ulist
!bound score$key2 between 0 and $maxscore default $empty
key=!positionof item $student in $uulist
!if $key=$empty
  list=!values 0 for v=1 to $nbscore
  list=!replace internal 0 by $empty in $list
  list=!replace item number $scoring by $(score$key2) in $list
  !appendfile wimshome/log/classes/$wims_class/.grades :$student,$(flist[$key2]) $(llist[$key2]),$list
  uulist=!append item $student to $uulist
!else
  update_content=!record $[$key+1] of wimshome/log/classes/$wims_class/.grades
  update_content=!replace item number $[$scoring+2] by $(score$key2) in $update_content
  update_field=$[$key+1]
  update_nbline=$empty
  !read adm/uprecord wimshome/log/classes/$wims_class/.grades
!endif
!reset wims_deposit
job=configfw
!changeto $job.proc