Subversion Repositories wimsdev

Rev

Blame | Last modification | View Log | RSS feed

!! process control page for student and type=4

!if $activetest!=1 and $activetest!=2
  error=badallows
  emptypage=yes
  !exit
!endif

!read tabletheme

nbexo=!recordcnt wimshome/log/classes/$wims_class/freeworks/.freework$freework

d1=!text select char 0123456789 in $(deadline)$(timedeadline)
d2=!text select char 0123456789 in $wims_now
d2=!char 1 to 12 of $d2
d3=!text select char 0123456789 in $(soldate)$(timesoldate)
!reset toolate
!if $d2>$d1
  toolate=yes
!endif

!if $job2=directexo and $toolate!=yes
  !bound exonum between 1 and $nbexo default $empty
  !if $exonum=$empty
    error=exolog-noexo
    !reset job2
  !else
    test=!fileexists wimshome/log/classes/$wims_class/freeworksdata/$freework/work/$wims_user.$exolog
    !if $test=yes
      error=exolog-exoexists
      !reset job2
    !else
      data=!record $exonum of wimshome/log/classes/$wims_class/freeworks/.freework$freework
      !distribute line $data into mod,cl,ti,desc
      !restart module=$(mod)&cmd=new&wims_freework=$(freework),$exonum&intro_expert=yes&intro_sol=0&$cl
    !endif
  !endif
!endif


!if $sizelimitfile>0 and $activetest>=1
  !readproc proc/findfile4.proc $freework,$wims_user
!if $activetest=1
  !readproc adm/class/quotafree.proc proc
  oldsize=0
  !if $data_0!=$empty
    du=!sh du -ks $wims_home/log/classes/$wims_class/freeworksdata/$freework/work/$(data_0[2])
    du=!word 1 of $du
    oldsize=$[($du)/1024]
    delold=rm -f $wims_home/log/classes/$wims_class/freeworksdata/$freework/work/$(data_0[2])
    test=!fileexists wimshome/sessions/$wims_session/getfile/freeworksdata/work$freework-$(data_0[2])
    !if $test=yes
      delold=$delold;\
             rm -f $wims_home/sessions/$wims_session/getfile/freeworksdata/work$freework-$(data_0[2])
    !endif
  !endif
  !if $toolate!=yes and $wims_deposit!=$empty 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]
    !ifval $newsize>0.25*$sizelimitfile
      error=badstudentfilesize
      !exit
    !endif
    !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 et du lien de telechargement)
      !sh mv $wims_home/$wims_sesdir/user-deposit $wims_home/log/classes/$wims_class/freeworksdata/$freework/work/$(wims_user)-work$exten;\
          $delold
    !endif
    !readproc proc/findfile4.proc $freework,$wims_user
  !endif
  !! ------ make download link for work and co if don't exists
  !if $data_0!=$empty
    !reset m
    !if $codownload=1 and $(data_0[5])!=$empty
      test=!fileexists wimshome/sessions/$wims_session/getfile/freeworksdata/workco$freework-$(data_0[5])
      !if $test!=yes
        m=ln -s $wims_home/log/classes/$wims_class/freeworksdata/$freework/co/$(data_0[5]) workco$freework-$(data_0[5]);
      !endif
    !endif
    test=!fileexists wimshome/sessions/$wims_session/getfile/freeworksdata/work$freework-$(data_0[2])
    !if $test!=yes
      t=ln -s $wims_home/log/classes/$wims_class/freeworksdata/$freework/work/$(data_0[2]) work$freework-$(data_0[2]);
      m=!append line $t to $m
    !endif
    !if $m!=$empty
      !sh cd $wims_home/sessions/$wims_session/getfile/freeworksdata/;\
          $m
    !endif
  !endif
  !! ---- end make...
!endif
!endif