Subversion Repositories wimsdev

Rev

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

!if $wims_show_stat!=yes
  error=nostat
  notallowed=1
  !exit
!endif
!! ------- get date for using new ccsum script (separate activity in a groupement/portal)
newccsum=!record 0 of wimshome/log/ccaccount/newccsum
!default newccsum=0
classtype=!defof class_type in wimshome/log/classes/$wims_class/.def
!if $classtype=1 and $class_creation<$newccsum
  statclass=$wims_superclass
!else
  statclass=$wims_class
!endif
!if $wims_user!=supervisor
  user=$wims_user
!else
  !if $ulist=$empty
    !! --- check for list of user
    nbuser=!recordcnt wimshome/log/classes/$wims_class/.userlist
    !reset ulist,flist,llist,uulist
    !for i=1 to $nbuser
      u_=!record $i of wimshome/log/classes/$wims_class/.userlist
      !distribute item $u_ into l_,f_,n_
      ulist=!append item $n_ to $ulist
      flist=!append item $f_ to $flist
      llist=!append item $l_ to $llist
    !next i
  !endif
  !bound user within $ulist,$empty default $empty
!endif

job_title=!nosubst $name_workingtime
!if $user=$empty
  !exit
!endif

!read wimshome/log/classes/$wims_class/.def
older=!sh date +%Y%m%d -d "1 year ago";
date=$[max($class_creation,$older)]
now=!char 1 to 8 of $wims_now
!readproc adm/calendar.proc prevday $now
enddate=$[min($class_expiration,$output)]
mois=!char 5 to 6 of $date
!readproc adm/calendar.proc whatday $date
dnum=!word 1 of $output
!readproc adm/calendar.proc endmonth $date
wnum=$[ceil(($output-(7-$dnum+1))/7)+1]
test=!fileexists wimshome/sessions/$wims_session/$user.st
!if $test!=yes
  !if $statclass!=$wims_class
    !sh if [ -e $wims_home/log/ccaccount/$statclass/$user ]; then\
             awk -F" " 'BEGIN {d=0;v=0} substr($$1,1,8)<$newccsum {if (substr($$1,1,8)==d){v+=$$2} else {if (d!=0) print ":"d","v;d=substr($$1,1,8);v=$$2}} END{if (d!=0) print ":"d","v}' $wims_home/log/ccaccount/$statclass/$user > $wims_home/sessions/$wims_session/$user.st;\
        fi
  !endif
  !sh if [ -e $wims_home/log/ccaccount/$wims_class/$user ]; then\
             awk -F" " 'BEGIN {d=0;v=0} {if (substr($$1,1,8)==d) {v+=$$2} else {if (d!=0) print ":"d","v;d=substr($$1,1,8);v=$$2}} END{if (d!=0) print ":"d","v}' $wims_home/log/ccaccount/$wims_class/$user >> $wims_home/sessions/$wims_session/$user.st;\
           fi
!endif
nbactivity=!recordcnt wimshome/sessions/$wims_session/$user.st
!if $nbactivity>0
  cpta=0
  activity=0,0
  !while $cpta<$nbactivity and $(activity[1])<$date
    !increase cpta
    activity=!record $cpta of wimshome/sessions/$wims_session/$user.st
  !endwhile  
!else
  !exit
!endif
!! ----- first item is color for 0 activity (maybe zone number and color can be paramétrizable ?)
ltcolor=white,red,yellow,orange,green
!! ------ time for each zone
utime=$class_utime
!default utime=15

!! make data for the student
!reset data,lt_month
!while $date<$enddate
  !increase wcount
  !if $wcount=1
    lt_month=!append line $wnum,$mois to $lt_month           
  !endif
  !reset ligne
  !for k=1 to 7
    !ifval $k=$dnum and $date<$enddate
      !if $(activity[1])=$date
        col=$[min(ceil($(activity[2])/$utime),4)+1]
        ligne=!append item $col $date $(activity[2]) to $ligne
        !increase cpta
        !if $cpta<=$nbactivity
          activity=!record $cpta of wimshome/sessions/$wims_session/$user.st
        !endif
      !else
        ligne=!append item 1 $date to $ligne
      !endif
      !readproc adm/calendar.proc nextday $date
      date=$output
      month=!char 5 to 6 of $date
      !if $dnum=7
        dnum=1
      !else
        !increase dnum
      !endif
      !ifval $month!=$mois
        wcount=0
        mois=$month
        !readproc adm/calendar.proc endmonth $date
        wnum=$[ceil(($output-(7-$dnum+1))/7)+1]
        !if $dnum!=1
          flag=$dnum
          !reset dnum
        !endif
      !endif
    !else
      ligne=!append item . to $ligne
      !if $flag!=$empty
        dnum=$flag
        !reset flag
      !endif
    !endif
  !next k
  data=!append line $ligne to $data
!endwhile
nb_dtl=!linecnt $data