File: addcourse

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 (128 lines) | stat: -rw-r--r-- 3,883 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128

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

!distribute item $wims_read_parm into ac_prog, ac_class
!if $ac_prog= or $ac_class= or \
  $wims_class/ notin $wims_superclass/$ac_prog/ $wims_superclass/$ac_class/
  !exit
!endif
ac_Level=$wims_superclass
ac_Level_=wimshome/log/classes/$ac_Level
ac_course=!translate internal / to , in $ac_prog
ac_course=!item -1 of $ac_course
userdir=wimshome/log/classes/$wims_superclass/.users
course_sup=!defof class_Supervisor in $ac_Level_/$ac_prog/.def
suptest=
!if $course_sup!=supervisor and $course_sup!=$empty
  suptest=!defof user_exists in wimshome/log/classes/$wims_superclass/.users/$course_sup
!endif
!if $suptest!=yes
  course_sup=supervisor
!endif
sup_=$course_sup
course_sup=

ac_tt=
test=!defof class_defined in $ac_Level_/$ac_class/$ac_course/.def
ac_style=!defof class_progstyle in $ac_Level_/$ac_prog/.def
!if $test=yes
  test=!defof class_ocourses in $ac_Level_/$ac_class/.def
  !if $ac_class/$ac_course notin $test and mandatory notwordof $ac_style
    !for ac_tt in b,c,d,e,f,g,h,i,j
      test=!defof class_defined in $ac_Level_/$ac_class/$ac_course$ac_tt/.def
      !if $test!=yes
        ac_course=$ac_course$ac_tt
        !goto recourse
      !endif
    !next ac_tt
     error=course_full
    !exit
  !endif
  error=addcourse_already
  !exit
!endif
:recourse

1=!defof user_exists in $userdir/$sup_
!if $1!=yes
  s_=supervisor
!else
  1=!defof user_supervisable in $userdir/$sup_
  !if $1!=yes
    name=$sup_
    error=not_supervisable
    !exit
  !endif
  slist=!defof user_supervise in $userdir/$sup_
  slist=!listunion $slist and $ac_Level/$ac_class/$ac_course
  !setdef !set user_supervise=$slist in $userdir/$sup_
!endif

!readdef $ac_Level_/$ac_prog/.def
cadd_dc=!defof class_description in $ac_Level_/$ac_class/.def
cadd_dc=!word 1 of $cadd_dc
!for t in supervisor Supervisor, email, password, expiration, level
  cadd_$t=$(class_$t)
!next t
cadd_secure=$sechost
!default cadd_secure=$class_secure
cadd_description=$cadd_dc-$class_description
!if $ac_tt!=$empty
  cadd_description=$cadd_description-$ac_tt
!endif
class_password=
cadd_password=
cadd_superclass=$wims_superclass
cadd_parent=$wims_superclass/$ac_class
cadd_type=1
cadd_typename=course
!readdef $ac_Level_/$ac_prog/supervisor
!for t in lastname, firstname, password, email
  sadd_$t=$(user_$t)
!next t

!if $passs!=$empty
  c=!char 1 of $passs
  !if $c=*
    passs=!text select */$char_passwd in $passs
  !else
    passs=!text select $char_passwd in $passs
  !endif
  passlen=!charcnt $passs
  !if $passlen<$passwd_min or $passlen>$passwd_max or $passs != $passs2
    error=bad_password
    !exit
  !endif
  sadd_password=$passs
!endif

!read adm/class/addclass $ac_Level/$ac_class/$ac_course

!setdef n_part=$ac_Level/$ac_class\
n_sup=$ac_Level/$ac_class,$ac_Level/$ac_prog in $ac_Level_/$ac_class/$ac_course/neighbors
ac_n=!defof n_part\
n_sup in $ac_Level_/$ac_class/neighbors
!distribute lines $ac_n into n_part, n_sup
n_part=!listunion $n_part and $ac_Level/$ac_class/$ac_course
n_sup =!listunion $n_sup  and $ac_Level/$ac_class/$ac_course
!setdef n_part=$n_part\
n_sup=$n_sup in $ac_Level_/$ac_class/neighbors

n_sup=!defof n_sup in $ac_Level_/$ac_prog/neighbors
n_sup=!listunion $n_sup and $ac_Level/$ac_class/$ac_course
!setdef n_sup=$n_sup in $ac_Level_/$ac_prog/neighbors
!read adm/class/addshare $ac_Level/$ac_prog, $ac_Level/$ac_class/$ac_course\
  exo,sheet,exam,doc,vote,livret,seq,freework

ac_style=!defof class_progstyle in $ac_Level_/$ac_prog/.def
!if mandatory iswordof $ac_style
  ocourses=!defof class_ocourses in $ac_Level_/$ac_class/.def
  ocourses=!listunion $ocourses and $ac_class/$ac_course
  !setdef !set class_ocourses=$ocourses in $ac_Level_/$ac_class/.def
  !sh cd $wims_home/log/classes/$ac_Level/$ac_class/$ac_course\
  rm -f .userlist\
  ln -s ../.userlist .
!endif