Subversion Repositories wimsdev

Rev

Rev 17098 | Rev 17149 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
17070 guerimand 1
!! -------- check user
2
user=$wims_user
3
clsfile=wimshome/log/classes/$wims_class/swork/averagescore
4
Clsfile=$wims_home/log/classes/$wims_class/swork/averagescore
5
ufile=wimshome/log/classes/$wims_class/swork/averagescore.$user
6
Ufile=$wims_home/log/classes/$wims_class/swork/averagescore.$user
7
time1=!record 0 of $ufile
17097 guerimand 8
time1=!line 1 of $time1
17070 guerimand 9
!distribute word $time1 into time1,majdate,bl
10
!default time1=0
17145 guerimand 11
test=!fileexists $ufile
12
!if $test=yes and ($[$wims_nowseconds-$time1]<3600*$swork_refreshtiming or ($swork_allowrefresh=1 and $refresh!=1))
17070 guerimand 13
  !exit
14
!endif
15
time2=!record 0 of $clsfile
16
time2=!word 1 of $time2
17
!default time2=0
18
!if $[$wims_nowseconds-$time2]<3600
19
  userlist=$user
20
!else
21
  !reset userlist
22
  !for k=1 to $nbuser
23
    d=!record $k of wimshome/log/classes/$wims_class/.userlist
24
    userlist=!append item $(d[3]) to $userlist
25
  !next k
26
  !writefile $clsfile $wims_nowseconds $wims_now
27
  time2=yes
28
!endif
29
!writefile $ufile $wims_nowseconds $wims_now 100000
30
majdate=$wims_now
31
nbuser=!recordcnt wimshome/log/classes/$wims_class/.userlist
32
!for sh=1 to $nbsheet
17097 guerimand 33
  dtsh=!record $sh of wimshome/log/classes/$wims_class/sheets/.sheets
17070 guerimand 34
  stat=!line 1 of $dtsh
35
  !if $stat!=0
36
    nbexo=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheet$sh
37
    average=!values 0 for v=1 to $nbexo
38
    max=$average
17097 guerimand 39
    lsev=!line $[$sh+1] of $severity
17070 guerimand 40
    !distribute word $lsev into swei,rule,indic
17097 guerimand 41
    formula=!item $rule of $formulas
17070 guerimand 42
    wei=!getscoreweight user=$user sheet=$sh
43
    wei=!words2items $wei
44
    totwei=!replace internal , by + in $wei
45
    totwei=$[$totwei]
46
    !reset useraverage
47
    !for dtu in $userlist
17097 guerimand 48
      lq=!getscoremean user=$dtu sheet=$sh
17070 guerimand 49
      !if $indic=0
50
        li=!getscore user=$dtu sheet=$sh
51
      !else
52
        !if $indic=1
17097 guerimand 53
          li=!getscorebest user=$dtu sheet=$sh
17070 guerimand 54
        !else
55
          li=!getscorelevel user=$dtu sheet=$sh
56
        !endif
57
      !endif
58
      !!calcul du score pour chaque exo
59
      !reset lave lmax
60
      !for k=1 to $nbexo
61
        ewei=!word $k of $wei
62
        elq=!word $k of $lq
63
        eli=!word $k of $li
17097 guerimand 64
        ave=!replace internal I by $[$eli/10] in $formula
65
        ave=!replace internal Q by $[$elq/10] in $ave
66
        ave=$[rint($ave*1000)]
17070 guerimand 67
        !if $dtu=$user
68
          useraverage=!append item $ave to $useraverage
69
        !endif
70
        lmax=!append item $[max($ave,$(max[$k]))] to $lmax
71
        ave=$[$(ave)+$(average[$k])]
72
        lave=!append item $ave to $lave
73
      !next k
74
      average=$lave
75
      max=$lmax
76
    !next dtu
77
    !reset tmp tmp2
78
    !if $time2!=yes
79
      tmp=!record $sh of $clsfile
80
    !endif
81
    !for k=1 to $nbexo
82
      !if $time2=yes
17097 guerimand 83
        ave=$[rint($(average[$k])/$nbuser)]
84
        m=$[rint($(max[$k]))]
17070 guerimand 85
        tmp=!append line $sh $k $ave $m to $tmp
86
      !else
87
        ave=!line $k of $tmp
88
        m=!word 4 of $ave
89
        ave=!word 3 of $ave
90
      !endif
91
      !if $(wei[$k])!=0 and $swei!=0
17097 guerimand 92
        val=$[rint($ave - $(useraverage[$k]))]
93
        val=$[rint($val * $swei * $(wei[$k])/$totwei )]   
94
        !if $val<=0
17070 guerimand 95
          val=-1000
96
        !endif
97
      !else
98
        !if $swei!=0
99
          val=$[-10000*$swei]
100
        !else
101
          val=-10000
102
        !endif
103
      !endif
17097 guerimand 104
      m2=$[rint($m-$(useraverage[$k]))]
105
      !appendfile $ufile :$sh $k $val $m2 $ave $m
17070 guerimand 106
    !next k
107
    !if $time2=yes
108
      !appendfile $clsfile :$tmp
109
    !endif
110
  !else
111
    !if $time2=yes
112
      !appendfile $clsfile : 
113
    !endif
114
  !endif
115
!next sh
116
 
117
!sh sort -n -r -k 3 -k 4 $Ufile > $wims_home/sessions/$wimss_session/tmp.swork;\
118
    mv -f $wims_home/sessions/$wimss_session/tmp.swork $Ufile
119