Subversion Repositories wimsdev

Rev

Rev 17097 | Go to most recent revision | Details | Last modification | View Log | RSS feed

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