File: userprop.proc

package info (click to toggle)
wims 2%3A4.29a%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 185,704 kB
  • sloc: xml: 366,687; javascript: 120,570; ansic: 62,341; java: 62,170; sh: 7,744; perl: 3,937; yacc: 3,217; cpp: 1,915; lex: 1,805; makefile: 1,084; lisp: 914; pascal: 601; python: 520; php: 318; asm: 7
file content (65 lines) | stat: -rw-r--r-- 1,760 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
nblisttechvar=!linecnt $tv_listtechvar
v=!values v for v=1 to $nblisttechvar
listglobal=!listcomplement $tv_listlocal in $v


!reset user_exists,$lttechvarid
!readproc adm/class/userdef classes,$wims_class,$user
!read $userdef
!if $user_exists!=yes
  error=baduser
  job=userlist
  !reset user,tc_abandon,tc_set
  !changeto $job.proc
!endif

!if $tv_listlocal=$empty
  error=nolocalvartech
  job=userlist
  !reset user,tc_abandon,tc_set
  !changeto $job.proc
!endif

t=!nonempty item $sheet_usedindivtechvar
!if $t!=$empty
  msg_info=activsheetindiv
!endif
# check of local techvar list of values
!for k in $tv_listlocal
  don=!line $k of $tv_listtechvar
  !distribute item $don into name,cls,num_$k
  id_$k=!item $k of $tv_listcode
  tmp=!record $(num_$k) of wimshome/log/classes/$wims_class/.techvar
  tmp=!line 2 of $tmp
  ltprompt_$k=$name_empty,$tmp
  ltval_$k=_EMPTY_,$tmp
  old_$k=$(user_techvar_$(id_$k))
  !bound old_$k within $(ltval_$k) default _EMPTY_
!next k

!if $tc_abandon!=$empty
  !reset tc_abandon,tc_set,user
  job=userlist
  !changeto $job.proc
  !exit
!endif

!if $tc_set!=$empty
  # check validity of new value for techvar
  wdon=$empty
  !for k in $tv_listlocal
    !bound techval$(num_$k) within $(ltval_$k) default $(old_$k)
    wdon=!append line !set user_techvar_$(id_$k)=$(techval$(num_$k)) to $wdon
    !if $(techval$(num_$k))!=$(old_$k)
      classlog=!append item ($(id_$k);$(old_$k);$(techval$(num_$k))) to $classlog
    !endif
    old_$k=$(techval$(num_$k))
  !next k
  !if $classlog!=$empty
    wdon=!replace internal _EMPTY_ by $empty in $wdon
    !setdef $wdon in $userdef
    wims_class_log=techvar change $user $classlog
    !sh rm -f $wims_home/log/classes/$wims_class/score/$(user).bin;
  !endif
  !reset tc_set
!endif