Subversion Repositories wimsdev

Rev

Rev 1553 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

# Add a class under the current level.
# Calling parameter: supervisor_account,title,...

!if $wims_superclass=$empty or $wims_user!=supervisor or $level=$empty
  !exit
!endif

Level_=$wims_superclass/$prog
Level__=wimshome/log/classes/$Level_
!if $prog= or $wims_class/ notin $Level_/
  !exit
!endif
userdir=wimshome/log/classes/$wims_superclass/.users
s_=!item 1 of $wims_read_parm
titles=!item 2 to -1 of $wims_read_parm
L=!record 0 of $Level__/icourses
L=!translate internal / to , in $L
L=!column 3 of $L
A=!values x for x=301 to 399
N=!listcomplement $L in $A
newclasses=!sort numeric items $N
avcnt=!itemcnt $newclasses
newcnt=!itemcnt $titles

!if $pass!=$empty
  pass=!text select $char_passwd in $pass
  passlen=!charcnt $pass
  !if $passlen<$passwd_min or $passlen>$passwd_max or $pass != $pass2
    error=bad_password
    !exit
  !endif
!endif

!if $passs!=$empty
 passs=!text select $char_passwd in $passs
 passlen=!charcnt $passs
 !if $passlen<$passwd_min or $passlen>$passwd_max or $passs != $passs2
  error=bad_password
  !exit
 !endif
!else
 passs=!defof user_password in $Level__/supervisor
!endif

!if $newclasses=$empty or $avcnt<$newcnt
 error=icourse_full
 !exit
!endif

1=!defof user_exists in wimshome/log/classes/$wims_superclass/.users/$s_
ac_su_list=
!if $1!=yes
 s_=supervisor
 ac_su_class=
!else
 1=!defof user_supervisable in wimshome/log/classes/$wims_superclass/.users/$s_
 !if $1!=yes
  name=$s_
  error=not_supervisable
  !exit
 !endif
 ac_su_class=yes
!endif

!read adm/class/userdef classes,$wims_superclass,$s_
userdef_save=$userdef
sup_save=$s_
class_password=
!bound visibility within 1,2 default 1
!for i=1 to $newcnt
 userdef=$userdef_save
 cadd_Supervisor=$sup_save
 sadd_firstname=!defof user_firstname in $userdef
 sadd_lastname=!defof user_lastname in $userdef
 sadd_email=!defof user_email in $userdef
 cadd_email=$sadd_email
 cadd_superclass=$wims_superclass
 cadd_parent=$Level_
 cadd_password=$pass
 sadd_password=$passs
 cadd_secure=$sechost
 cadd_type=1
 cadd_typename=course
 cadd_description=!item $i of $titles
 ac_newclass=!item $i of $newclasses
 ac_su_list=!listunion $ac_su_list and $Level_/$ac_newclass
 !read adm/class/addclass $Level_/$ac_newclass
 !setdef !set class_visibility=$visibility in $Level_/$ac_newclass/.def
 !setdef n_sup=$Level_ in $Level__/$ac_newclass/neighbors
 n_sup=!defof n_sup in $Level__/neighbors
 n_sup=!listunion $n_sup and $Level_/$ac_newclass
 !setdef n_sup=$n_sup in $Level__/neighbors
 !read adm/class/addshare $Level_, $Level_/$ac_newclass\
        exo,sheet,exam,doc,vote,livret,seq

!next i

!if $ac_su_class=yes
 ac_su_list2=!defof user_supervise in $userdir/$sup_save
 ac_su_list=!listunion $ac_su_list and $ac_su_list2
 !setdef !set user_supervise=$ac_su_list in $userdir/$sup_save
!endif