Subversion Repositories wimsdev

Rev

Rev 12981 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
# Add a class under the current level.
2
# Calling parameter: supervisor_account,title,...
3
 
4
!if $wims_superclass=$empty or $wims_user!=supervisor or $level=$empty
12981 bpr 5
  !exit
20 reyssat 6
!endif
7
 
8
Level_=$wims_superclass/$prog
9
Level__=wimshome/log/classes/$Level_
10
!if $prog= or $wims_class/ notin $Level_/
12981 bpr 11
  !exit
20 reyssat 12
!endif
13
userdir=wimshome/log/classes/$wims_superclass/.users
14
s_=!item 1 of $wims_read_parm
15
titles=!item 2 to -1 of $wims_read_parm
16
L=!record 0 of $Level__/icourses
17
L=!translate internal / to , in $L
18
L=!column 3 of $L
19
A=!values x for x=301 to 399
20
N=!listcomplement $L in $A
21
newclasses=!sort numeric items $N
22
avcnt=!itemcnt $newclasses
23
newcnt=!itemcnt $titles
24
 
25
!if $pass!=$empty
12981 bpr 26
  pass=!text select $char_passwd in $pass
27
  passlen=!charcnt $pass
28
  !if $passlen<$passwd_min or $passlen>$passwd_max or $pass != $pass2
29
    error=bad_password
30
    !exit
31
  !endif
20 reyssat 32
!endif
33
 
34
!if $passs!=$empty
14336 bpr 35
  passs=!text select $char_passwd in $passs
36
  passlen=!charcnt $passs
37
  !if $passlen<$passwd_min or $passlen>$passwd_max or $passs != $passs2
38
    error=bad_password
39
    !exit
40
  !endif
20 reyssat 41
!else
14336 bpr 42
  passs=!defof user_password in $Level__/supervisor
20 reyssat 43
!endif
44
 
45
!if $newclasses=$empty or $avcnt<$newcnt
14336 bpr 46
  error=icourse_full
47
  !exit
20 reyssat 48
!endif
49
 
50
1=!defof user_exists in wimshome/log/classes/$wims_superclass/.users/$s_
51
ac_su_list=
52
!if $1!=yes
14336 bpr 53
  s_=supervisor
54
  ac_su_class=
20 reyssat 55
!else
14336 bpr 56
  1=!defof user_supervisable in wimshome/log/classes/$wims_superclass/.users/$s_
57
  !if $1!=yes
58
    name=$s_
59
    error=not_supervisable
20 reyssat 60
  !exit
14336 bpr 61
  !endif
62
  ac_su_class=yes
20 reyssat 63
!endif
64
 
65
!read adm/class/userdef classes,$wims_superclass,$s_
66
userdef_save=$userdef
67
sup_save=$s_
68
class_password=
69
!bound visibility within 1,2 default 1
70
!for i=1 to $newcnt
14336 bpr 71
  userdef=$userdef_save
72
  cadd_Supervisor=$sup_save
73
  sadd_firstname=!defof user_firstname in $userdef
74
  sadd_lastname=!defof user_lastname in $userdef
75
  sadd_email=!defof user_email in $userdef
76
  cadd_email=$sadd_email
77
  cadd_superclass=$wims_superclass
78
  cadd_parent=$Level_
79
  cadd_password=$pass
80
  sadd_password=$passs
81
  cadd_secure=$sechost
82
  cadd_type=1
83
  cadd_typename=course
84
  cadd_description=!item $i of $titles
85
  ac_newclass=!item $i of $newclasses
86
  ac_su_list=!listunion $ac_su_list and $Level_/$ac_newclass
87
  !read adm/class/addclass $Level_/$ac_newclass
88
  !setdef !set class_visibility=$visibility in $Level_/$ac_newclass/.def
89
  !setdef n_sup=$Level_ in $Level__/$ac_newclass/neighbors
90
  n_sup=!defof n_sup in $Level__/neighbors
91
  n_sup=!listunion $n_sup and $Level_/$ac_newclass
92
  !setdef n_sup=$n_sup in $Level__/neighbors
93
  !read adm/class/addshare $Level_, $Level_/$ac_newclass\
94
   exo,sheet,exam,doc,vote,livret,seq
20 reyssat 95
 
96
!next i
97
 
98
!if $ac_su_class=yes
14336 bpr 99
  ac_su_list2=!defof user_supervise in $userdir/$sup_save
100
  ac_su_list=!listunion $ac_su_list and $ac_su_list2
101
  !setdef !set user_supervise=$ac_su_list in $userdir/$sup_save
20 reyssat 102
!endif
103