Subversion Repositories wimsdev

Rev

Rev 10736 | Rev 14335 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 10736 Rev 12479
Line 1... Line 1...
1
!if $vote_status!=1
1
!if $vote_status!=1
2
 error=bad_vote
2
  error=bad_vote
3
 job=home
3
  job=home
4
 !changeto home.proc
4
  !changeto home.proc
5
!endif
5
!endif
6
 
6
 
7
!readdef $userfile
7
!readdef $userfile
8
!if $(user_vote_$Vote)=$empty and $(user_vote_$vote)!=$empty
8
!if $(user_vote_$Vote)=$empty and $(user_vote_$vote)!=$empty
9
    user_vote_$Vote=$(user_vote_$vote)
9
  user_vote_$Vote=$(user_vote_$vote)
10
!endif
10
!endif
11
 
11
 
12
# pour un questionnaire tracé ou anonyme on interdit de
12
# pour un questionnaire tracé ou anonyme on interdit de
13
# modifier son vote.
13
# modifier son vote.
14
 
14
 
15
!if $vote_option!=nominative and $(user_vote_$Vote)!=$empty
15
!if $vote_option!=nominative and $(user_vote_$Vote)!=$empty
16
 error=already_voted
16
  error=already_voted
17
 !exit
17
  !exit
18
!endif
18
!endif
19
 
19
 
20
!readdef $votedir/$vote.votes
20
!readdef $votedir/$vote.votes
21
 
21
 
22
!readdef $votedir/$vote.comments
22
!readdef $votedir/$vote.comments
Line 24... Line 24...
24
noprint=yes
24
noprint=yes
25
!reset parmcnt
25
!reset parmcnt
26
!readproc $votedir/$vote.def
26
!readproc $votedir/$vote.def
27
voteset=
27
voteset=
28
!if $(user_vote_$Vote)=$empty
28
!if $(user_vote_$Vote)=$empty
29
 !advance vcnt
29
  !advance vcnt
30
 voteset=vcnt=$vcnt
30
  voteset=vcnt=$vcnt
31
!endif
31
!endif
32
 
32
 
33
# on récupère le nombre de votes déjà exprimés
33
# on récupère le nombre de votes déjà exprimés
34
nbvotes=$vcnt
34
nbvotes=$vcnt
35
 
35
 
36
!for t=1 to $parmcnt
36
!for t=1 to $parmcnt
37
 !if $(vote_description[$t;2])=textarea
37
  !if $(vote_description[$t;2])=textarea
38
  !if $vote_option!=nominative
38
    !if $vote_option!=nominative
39
    tt = !singlespace $(parm$t)
39
      tt = !singlespace $(parm$t)
40
    tt = !char 1 to $limit_textarea of $tt
40
      tt = !char 1 to $limit_textarea of $tt
41
    !appendfile $votedir/$(vote)_$t.comments :$tt
41
      !appendfile $votedir/$(vote)_$t.comments :$tt
-
 
42
    !endif
-
 
43
  !else
-
 
44
    !for k=0 to $(choices$t)
-
 
45
      vc_$k=$(vcnt_$(t)_$k)
-
 
46
    !next k
-
 
47
    tmp=!values v for v=1 to $(choices$t)
-
 
48
    parm$t=!nospace $(parm$t)
-
 
49
    parm$t=!listintersect $(parm$t) and $tmp
-
 
50
    !for k in $(parm$t)
-
 
51
      !default vc_$k=0
-
 
52
      !advance vc_$k
-
 
53
    !next k
-
 
54
    old=!item $t of $(user_vote_$Vote)
-
 
55
    old=!words2items $old
-
 
56
    !for v in $old
-
 
57
      vc_$v=$[max(0,$(vc_$v)-1)]
-
 
58
    !next v
-
 
59
    !for k=0 to $(choices$t)
-
 
60
      !default vc_$k=0
-
 
61
      !if $(vc_$k) != $(vcnt_$(t)_$k)
-
 
62
        voteset=!append line vcnt_$(t)_$k=$(vc_$k) to $voteset
-
 
63
      !endif
-
 
64
    !next k
42
  !endif
65
  !endif
43
 !else
-
 
44
  !for k=0 to $(choices$t)
-
 
45
   vc_$k=$(vcnt_$(t)_$k)
-
 
46
  !next k
-
 
47
  tmp=!values v for v=1 to $(choices$t)
-
 
48
  parm$t=!nospace $(parm$t)
-
 
49
  parm$t=!listintersect $(parm$t) and $tmp
-
 
50
  !for k in $(parm$t)
-
 
51
   !default vc_$k=0
-
 
52
   !advance vc_$k
-
 
53
  !next k
-
 
54
  old=!item $t of $(user_vote_$Vote)
-
 
55
  old=!words2items $old
-
 
56
  !for v in $old
-
 
57
   vc_$v=$[max(0,$(vc_$v)-1)]
-
 
58
  !next v
-
 
59
  !for k=0 to $(choices$t)
-
 
60
   !default vc_$k=0
-
 
61
   !if $(vc_$k) != $(vcnt_$(t)_$k)
-
 
62
    voteset=!append line vcnt_$(t)_$k=$(vc_$k) to $voteset
-
 
63
   !endif
-
 
64
  !next k
-
 
65
 !endif
-
 
66
!next t
66
!next t
67
 
67
 
68
 
68
 
69
# paramcnt: nombre de questions
69
# paramcnt: nombre de questions
70
 
70
 
71
 
71
 
72
!if $vote_option=anonymous
72
!if $vote_option=anonymous
73
 user_vote_$Vote=yes
73
  user_vote_$Vote=yes
74
!else
74
!else
75
  # nouvelle option pour le tracage des reponses.
75
  # nouvelle option pour le tracage des reponses.
76
  # on ne garde pas le nom du votant mais on lui donne un numéro qui
76
  # on ne garde pas le nom du votant mais on lui donne un numéro qui
77
  # est égal au nombre de votes exprimés.
77
  # est égal au nombre de votes exprimés.
78
  #
78
  #
Line 84... Line 84...
84
  # la partie du fichier obtenu est de la forme vote
84
  # la partie du fichier obtenu est de la forme vote
85
  option=$empty
85
  option=$empty
86
 
86
 
87
  !if $vote_option iswordof nominative
87
  !if $vote_option iswordof nominative
88
    option=$wims_class/$wims_user
88
    option=$wims_class/$wims_user
89
  !else
89
  !else
90
    option=$nbvotes
90
    option=$nbvotes
91
  !endif
91
  !endif
92
 
92
 
93
 tt=$empty
93
  tt=$empty
94
 !for t=1 to $parmcnt
94
  !for t=1 to $parmcnt
95
  !if $(vote_description[$t;2])!=textarea
95
    !if $(vote_description[$t;2])!=textarea
96
   !if $vote_option=nominative
96
      !if $vote_option=nominative
97
    !! erase old vote. allowed only with vote_option=nominative
97
        !! erase old vote. allowed only with vote_option=nominative
98
    old=!item $t of $(user_vote_$Vote)
98
        old=!item $t of $(user_vote_$Vote)
99
    old=!words2items $old
99
        old=!words2items $old
100
    !for v in $old
100
        !for v in $old
101
     vv=!replace item $option by $ in $(votes_$(t)_$v)
101
          vv=!replace item $option by $ in $(votes_$(t)_$v)
102
     vv=!nonempty items $vv
102
          vv=!nonempty items $vv
103
     voteset=!append line votes_$(t)_$v=$vv to $voteset
103
          voteset=!append line votes_$(t)_$v=$vv to $voteset
104
     votes_$(t)_$v=$vv
104
          votes_$(t)_$v=$vv
105
    !next v
105
        !next v
106
   !endif
106
      !endif
107
   tmp=!items2words $(parm$t)
107
      tmp=!items2words $(parm$t)
108
   tt=!append item $tmp to $tt
108
      tt=!append item $tmp to $tt
109
   !for v in $(parm$t)
109
      !for v in $(parm$t)
110
    vv=!append item $option to $(votes_$(t)_$(v))
110
        vv=!append item $option to $(votes_$(t)_$(v))
111
    voteset=!append line votes_$(t)_$v=$vv to $voteset
111
        voteset=!append line votes_$(t)_$v=$vv to $voteset
-
 
112
      !next v
-
 
113
    !else
-
 
114
      tt=!append item 0 to $tt
-
 
115
    !endif
112
   !next v
116
  !next t
-
 
117
  !if $vote_option=trace
-
 
118
    user_vote_$Vote=yes
113
  !else
119
  !else
114
   tt=!append item 0 to $tt
120
    user_vote_$Vote=$tt
115
  !endif
121
  !endif
116
 !next t
-
 
117
 !if $vote_option=trace
-
 
118
  user_vote_$Vote=yes
-
 
119
 !else
-
 
120
  user_vote_$Vote=$tt
-
 
121
 !endif
-
 
122
!endif
122
!endif
123
 
123
 
124
!setdef !set user_vote_$Vote=$(user_vote_$Vote) in $userfile
124
!setdef !set user_vote_$Vote=$(user_vote_$Vote) in $userfile
125
!if $voteset!=$empty
125
!if $voteset!=$empty
126
 !setdef $voteset in $votedir/$vote.votes
126
  !setdef $voteset in $votedir/$vote.votes
127
!endif
127
!endif
128
 
128
 
129
!! --------------------------
129
!! --------------------------
130
!! these lines are writing the variable user_techvar_ttt in the user file when
130
!! these lines are writing the variable user_techvar_ttt in the user file when
131
!!\uservar{ttt, ....}
131
!!\uservar{ttt, ....}
132
 
132
 
133
 
133
 
134
ccc=!itemcnt $uvcnt
134
ccc=!itemcnt $uvcnt
135
!if $ccc>0
135
!if $ccc>0
136
 !readproc adm/vfilter/listvarfilter.proc
136
  !readproc adm/vfilter/listvarfilter.proc
137
 !for i=1 to $ccc
137
  !for i=1 to $ccc
138
  uvc=!item $i of $uvcnt
138
    uvc=!item $i of $uvcnt
139
  uvn=!item $i of $uvname
139
    uvn=!item $i of $uvname
140
!! no registery if the technical variable is not already defined
140
    !! no registery if the technical variable is not already defined
141
  !if $uvn isitemof $tv_listlocalcode
141
    !if $uvn isitemof $tv_listlocalcode
142
      uvv=!line $i of $uvval
142
      uvv=!line $i of $uvval
143
      uvv=!item $(parm$uvc)+1 of $uvv
143
      uvv=!item $(parm$uvc)+1 of $uvv
144
!! check if the value exists for this technical variable (only defined values can be save in user .def file)
144
      !! check if the value exists for this technical variable (only defined values can be save in user .def file)
145
      po=!positionof item $uvn in $tv_listcode
145
      po=!positionof item $uvn in $tv_listcode
146
      don=!line $po of $tv_listtechvar
146
      don=!line $po of $tv_listtechvar
147
      !distribute item $don into name,classid,number
147
      !distribute item $don into name,classid,number
148
      don=!record $number of wimshome/log/classes/$wims_class/.techvar
148
      don=!record $number of wimshome/log/classes/$wims_class/.techvar
149
      don=!line 2 of $don
149
      don=!line 2 of $don
150
      !if $uvv notitemof $don
150
      !if $uvv notitemof $don
151
	uvv=$empty
151
	      uvv=$empty
152
      !endif
152
      !endif
153
      classid=!replace internal / by _ in $classid
153
      classid=!replace internal / by _ in $classid
154
      !setdef !set user_techvar_$(uvn)=$uvv in $userfile
154
      !setdef !set user_techvar_$(uvn)=$uvv in $userfile
155
  !endif
155
    !endif
156
 !next i
156
  !next i
157
!endif
157
!endif
158
!! -------------------------------------------
158
!! -------------------------------------------
159
 
159
 
160
!restart module=adm/vote&job=read&vote=$vote
160
!restart module=adm/vote&job=read&vote=$vote
161
 
-