Subversion Repositories wimsdev

Rev

Rev 15913 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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