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 |