Subversion Repositories wimsdev

Rev

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

Rev Author Line No. Line
5181 guerimand 1
!read adm/language lang/names.phtml
2433 bpr 2
 
10284 bpr 3
!if $wims_developer!=$empty
4
  !set wims_ariane_self=no
5
  !set wims_ariane=!append line modtool,1,module=adm/modtool&job=flist&modreq=$catmodule\
6
  to $wims_ariane
7
!endif
8
 
666 bpr 9
wims_helper=chapter=4&open=4_oef#oef
10
wims_form_method=post
3699 bpr 11
wims_nw=existing catmodule catmodule1 newone oef_fname level vsave \
14335 bpr 12
  delete deltitle mode realtest deffile wims_noexport \
13
  empty wims_module_log class_header
666 bpr 14
wims_nr=wims_sesrandom
15
wims_trustfile=oef/embed.phtml oef/special.phtml oef/togetfile.proc
16
slib/circuits/draw slib/circuits/drawcomp slib/circuits/range\
17
slib/circuits/comppos
8368 bpr 18
answerlim=!defof MAX_OEFREPLIES in wimshome/public_html/bases/sys/define.conf
19
choicelim=!defof MAX_OEFCHOICES in wimshome/public_html/bases/sys/define.conf
20
!distribute item 10,40 into condlim,promptlim
666 bpr 21
!bound mode within raw,file,model default $
22
!read tabletheme
23
!if $wims_user!=$empty or $wims_developer!=$empty
13581 bpr 24
  !default oef_author=!trim $wims_firstname $wims_lastname
25
  !default oef_email=$wims_email
26
  !if $wims_developer!=$empty
27
    !read adm/getdeveloper
28
    !default oef_author=$dv_name
29
    !default oef_email=$dv_email
666 bpr 30
  !endif
13581 bpr 31
  !if $newone=1
32
    existing=
33
    newone=
34
  !endif
35
  !if (..devel/ notin ..$catmodule or $wims_developer=$empty) and \
14335 bpr 36
      $existing!=$empty and $wims_user!=supervisor \
37
      and ..*/$wims_user. notin ..*/$existing
13581 bpr 38
    existing=
39
  !endif
40
  !if $existing!=$empty and $level=$empty
41
    !if $catmodule!=$empty
42
      !if ..devel/ isin ..$catmodule and ($wims_developer= or \
14335 bpr 43
        ..devel/$wims_developer notin ..$catmodule)
13581 bpr 44
        !goto nonexist
45
      !endif
46
    !if .. isin $catmodule or ..adm/ isin ..$catmodule or \
14335 bpr 47
        ..classes/ isin ..$catmodule
13581 bpr 48
      !goto nonexist
49
    !endif
50
  !endif
666 bpr 51
  src=!mexec catexisting.sh $existing
52
  !if $src!=$empty
13581 bpr 53
    mode=raw
54
    level=1
666 bpr 55
  !else
13581 bpr 56
    :nonexist
57
    error=not_exist
58
    del=$existing
59
    existing=
60
    !exit
61
    !endif
666 bpr 62
  !endif
63
!else
13581 bpr 64
  existing=
666 bpr 65
!endif
66
 
67
!if $cmd=help
13581 bpr 68
  !if $realtest=yes
69
    !!variable for ariane
70
    !set ariane_title=$$wims_name_createxo
71
    !set wims_ariane=!append line backcreatexo,1,module=adm/createxo&cmd=resume&realtest=no\
10258 bpr 72
testexo,1,module=$module&cmd=resume\
73
to $wims_ariane
13581 bpr 74
    !changeto oef/var.proc
10258 bpr 75
 !else
13581 bpr 76
    !set wims_ariane=!append line resume,1,module=$module&cmd=resume\
10258 bpr 77
to $wims_ariane
13581 bpr 78
    !if $modtoolhelp!=yes
79
      !!trouble with mhelp=%2Cmhelp (coming from ,mhelp)
80
      !if $special_parm!=$empty and ($special_parm notwordof mhelp help and mhelp notin $special_parm)
81
        !set wims_ariane=!append line back2 $$wims_name_help,1,cmd=help\
10258 bpr 82
 to $wims_ariane
13581 bpr 83
      !endif
84
    !endif
85
  !endif
86
  !if $modtoolhelp=yes
10355 bpr 87
    !distribute items no,no, into wims_ariane_home,wims_ariane_self,wims_ariane
13581 bpr 88
  !endif
89
  !exit
666 bpr 90
!endif
10355 bpr 91
!if $modtoolhelp=yes
92
  !distribute items no,no, into wims_ariane_home,wims_ariane_self,wims_ariane
93
!endif
666 bpr 94
!if $delete!=$empty
13581 bpr 95
  !if $wims_class==$empty
96
    error=not_class
97
    !exit
98
  !endif
99
  !if $wims_user!=supervisor
100
    error=not_supervisor
101
    !exit
102
  !endif
103
  del=!word 1 of $delete
104
  delete=
105
  deleted=!mexec delexo.sh $del
106
  !if $deleted=$empty
107
    error=not_exist
108
  !else
109
    wims_module_log=delete $wims_class/$del
110
  !endif
666 bpr 111
  !exit
112
!endif
113
 
10179 bpr 114
!if $level notwordof 2 and ($realtest!=no and $realtest!=$empty)
115
  !set wims_ariane=!append line backcreatexo,1,cmd=resume&realtest=no\
116
  to $wims_ariane
117
!endif
118
!if $level iswordof 6
119
  !set wims_ariane=!append line backcreatexo,1,cmd=reply&level=3\
120
  to $wims_ariane
121
!endif
666 bpr 122
!if $mode=model and $model!=$empty
13581 bpr 123
  model=!text select abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 in $model
124
  !sh cp -f $wims_home/public_html/scripts/model/$lang/src/$model.oef $wims_home/sessions/$wims_session/user-deposit\
125
    cp -f $wims_home/sessions/$wims_session/user-deposit $wims_home/sessions/$wims_session/submit.oef
126
  !if $level=3 and $realtest=yes
127
    !mexec makedef.sh
128
  !endif
129
  !reset status
130
  model=
666 bpr 131
!endif
132
 
133
!if $level=2 and $mode=model
13581 bpr 134
  !read model/cut.proc
135
  !if $cnt<6 or $sps=$empty or $parms=$empty or $desc=$empty or\
14335 bpr 136
      $model_type=$empty or statementrec=$empty
13581 bpr 137
    mode=
138
    !goto nomodel
139
  !endif
140
  !set wims_ariane=!append line modellist,1,cmd=reply&level=1&mode=model\
10179 bpr 141
to $wims_ariane
666 bpr 142
!endif
143
 
144
!if $level=2 and $mode=$empty
10179 bpr 145
  !set wims_ariane=!append line normalmode,1,cmd=reply&level=1\
146
to $wims_ariane
13581 bpr 147
  !read model/cut.proc
148
  !if $cnt>=6 and $sps!=$empty and $parms!=$empty and $desc!=$empty and\
14335 bpr 149
      $model_type!=$empty and statementrec>1
13581 bpr 150
    mode=model
151
    rawinp=
152
  !endif
666 bpr 153
!endif
154
 
155
:nomodel
156
!if $level=3 and $realtest=yes
13627 bpr 157
  oef_test=yes
13581 bpr 158
  !changeto oef/var.proc
666 bpr 159
!else
13627 bpr 160
  !if $realtest=no
13581 bpr 161
    question=
162
    hint=
163
    solution=
164
    status=
165
    varcnt=0
166
    replycnt=0
167
    choicecnt=0
168
    score=
169
    !if $mode=model
170
      !for i=1 to 100
171
        reply$i=
172
      !next i
173
    !endif model
174
  !endif realtest
175
  !reset status realtest retest
3699 bpr 176
!endif level=3
666 bpr 177
 
178
!if $rawinp!=$empty
13581 bpr 179
  mode=raw
180
  level=1
181
  rawinp=
666 bpr 182
!endif
183
 
184
!if $mode=raw and $level<=2
13581 bpr 185
  modeltest=!recordcnt wimshome/sessions/$wims_session/submit.oef
186
  !if $modeltest>6
187
    modeltest=!record 0 of wimshome/sessions/$wims_session/submit.oef
188
    modeltest=!getopt type in $modeltest
189
    !if $modeltest!=$empty
190
      modeltest=yes
191
      !sh cd $wims_home/sessions/$wims_session\
192
        [ -s user-deposit ] || cp -f submit.oef user-deposit
193
    !endif
666 bpr 194
  !endif
195
!endif
196
 
197
!bound oef_format within tex,html default html
198
!bound oef_answercnt between integer 0 and $answerlim default 1
199
!bound oef_choicecnt between integer 0 and $choicelim default 0
200
!bound oef_condcnt   between integer 0 and $condlim   default 0
201
!bound oef_precision within 100,1000,10000,100000,1000000 default 10000
202
!bound oef_computeanswer within yes,no default no
3699 bpr 203
!bound level between integer 0 and 7 default 0
666 bpr 204
!if $level=6 and $wims_user!=supervisor
13581 bpr 205
  level=1
666 bpr 206
!endif
207
 
208
!for i in l,r
13581 bpr 209
  oef_range$i=!trim $(oef_range$i)
210
  !if $(oef_range$i)!=$empty
211
    oef_range$i=$[$(oef_range$i)]
212
    !if NaN isin $(oef_range$i)] or Inf isin $(oef_range$i)
213
      oef_range$i=
214
    !endif
666 bpr 215
  !endif
216
!next i
217
!default oef_rangel=-5
218
!default oef_ranger=5
219
!if $oef_rangel=$oef_ranger
13581 bpr 220
  oef_rangel=-5
221
  oef_ranger=5
666 bpr 222
!endif
223
!if $oef_rangel>$oef_ranger
13581 bpr 224
  range=$oef_rangel
225
  oef_rangel=$oef_ranger
226
  oef_ranger=$range
666 bpr 227
!endif
228
 
229
!if $level>1 and $mode=$empty
13581 bpr 230
  oef_title=!trim $oef_title
231
  !if $oef_title=$empty and $level>1
232
   error=no_title
233
   !exit
234
  !endif
235
  # !if $oef_answercnt+$oef_choicecnt<=0
236
  #  error=no_answer
237
  #  !exit
238
  # !endif
666 bpr 239
!endif
3699 bpr 240
!if $level=7 and $wims_developer!=$empty
241
  !reset file_name_src
242
   list_mod=!sh ls $wims_home/public_html/modules/devel/$wims_developer
243
   list_mod=!words2items $list_mod
244
   list_mod_oef=
245
   !for a in $list_mod
8368 bpr 246
     category = !module category devel/$wims_developer/$a
3699 bpr 247
    !if oef isin $category
248
       list_mod_oef=!append item $a to $list_mod_oef
249
    !endif
250
   !next
251
   !if $list_mod_oef=$empty
252
     error = $error oefempty
253
   !endif
254
!endif
666 bpr 255
 
256
!if $level=3
13581 bpr 257
  !if $mode=$empty
258
    header=\language{$lang}\
666 bpr 259
\range{$oef_rangel..$oef_ranger}
13581 bpr 260
    !for i in author,email,computeanswer,format,precision
261
      oef_$i=!trim $(oef_$i)
262
      !if $(oef_$i)!=$empty
263
        header=!append line \$i{$(oef_$i)} to $header
264
      !endif
265
    !next i
266
    oef_statement=!trim $oef_statement
267
    !if $oef_statement=$empty
268
      error=no_statement
269
      !exit
270
    !endif
271
    answers=
272
    !for i=1 to $oef_answercnt
273
      ansprompt$i=!trim $(ansprompt$i)
274
      prompt=!char 1 to $promptlim of $(ansprompt$i)
275
      ansgood$i=!trim $(ansgood$i)
276
      !if $prompt!=$empty and $(ansgood$i)!=$empty
277
        !default anstype$i=default
278
        answers=!append line \answer{$prompt}{$(ansgood$i)}{type=$(anstype$i)} to $answers
279
      !endif
280
    !next i
281
    replycnt=!linecnt $answers
282
    choices=
283
    !for i=1 to $oef_choicecnt
284
      choiprompt$i=!trim $(choiprompt$i)
285
      prompt=!char 1 to $promptlim of $(choiprompt$i)
286
      choigood$i=!trim $(choigood$i)
287
      choibad$i=!trim $(choibad$i)
288
      !if $prompt!=$empty and $(choigood$i)!=$empty and $(choibad$i)!=$empty
289
        choices=!append line \choice{$prompt}{$(choigood$i)}{$(choibad$i)} to $choices
290
      !endif
291
    !next i
292
    choicecnt=!linecnt $choices
293
    conditions=
294
    !for i=1 to $oef_condcnt
295
      cn=!trim $(Condname$i)
296
      ct=!trim $(Condtest$i)
297
      !if $cn!=$empty and $ct!=$empty
298
        conditions=!append line \condition{$cn}{$ct} to $conditions
299
      !endif
300
    !next i
301
    #  !ifval $replycnt+$choicecnt=0
302
    #   error=no_reply2
303
    #   !exit
304
    #  !endif
305
    oef_hint=!trim $oef_hint
306
    !if $oef_hint!=$empty
307
      hints=\hint{$oef_hint}
308
    !endif
309
    oef_solution=!trim $oef_solution
310
    !if $oef_solution!=$empty
311
      solutions=\solution{$oef_solution}
312
    !endif
313
    source=!mexec makedef.sh
314
  !else
315
    !if $mode=model
316
      !read model/cutback.proc
317
    !endif
318
    !mexec makedef.sh
319
  !endif mode=$empty
320
  status=waiting
321
  oef2wims_out=!record 0 of wimshome/$wims_sesdir/oef2wims.out
322
  !if ERROR iswordof $oef2wims_out
323
    :diagerror
324
    test=!line 1 of $oef2wims_out
325
    !if ERROR notin $test
326
      oef2wims_out=!line 2 to -1 of $oef2wims_out
327
    !endif
328
    error=def_fail
329
    !exit
666 bpr 330
  !endif
13581 bpr 331
  replycnt=
332
  choicecnt=
333
  varcnt=
334
  !read wimshome/$wims_sesdir/submit.def
335
  !if $replycnt=$empty or $choicecnt=$empty or $varcnt=$empty
336
    !goto diagerror
337
    !exit
666 bpr 338
  !endif
13581 bpr 339
  title=!trim $title
340
  !if $title=$empty
341
    error=empty_title
342
    !exit
666 bpr 343
  !endif
13581 bpr 344
  oef_fname=
345
  titlen=!charcnt $title
346
  !for i=1 to $titlen
347
    c=!char $i of $title
348
    !if $c isin 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_
349
      oef_fname=$oef_fname$c
350
    !endif
351
  !next i
352
  oef_fname=!char 1 to 14 of $oef_fname
353
  !if $wims_user!=$empty and $wims_user!=supervisor
354
    oef_fname=$wims_user.$oef_fname
666 bpr 355
  !endif
356
!endif
357
 
358
!if $level=4 and $wims_user!=$empty
13581 bpr 359
  regout=!mexec regclass.sh
360
  reg1=!word 1 of $regout
361
  !if $reg1=success
362
    fnamebase=!word 2 of $regout
363
    existing=$fnamebase
364
    success=1
666 bpr 365
  !else
13581 bpr 366
    error=!word 2 of $regout
367
    !if $error!=already
368
      !exit
369
    !else
370
      error=
371
      already=yes
372
    !endif
666 bpr 373
  !endif
13581 bpr 374
  !if $wims_user!=supervisor and ..devel/ notin ..$catmodule
375
    prefix=$wims_user.
376
  !else
377
    prefix=
378
  !endif
666 bpr 379
 wims_module_log=Regclass $wims_class $mode $prefix$oef_title
380
!endif
381
 
3699 bpr 382
!if $level=4
13581 bpr 383
  !if $catmodule1 !=
384
    catmodule=devel/$wims_developer/$catmodule1
385
    !reset catmodule1
386
  !endif
8368 bpr 387
 
13581 bpr 388
  existing_new=!replace internal .oef by in $file_name_src
389
  !set existing_new=!text select ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_1234567890 in $existing_new
390
  !if $existing_new != $empty
391
   existing=$existing_new
392
  !endif
3699 bpr 393
!endif
666 bpr 394
!if $level=4 and $wims_developer!=$empty and ..devel/ isin ..$catmodule and \
3699 bpr 395
   .. notin $catmodule $existing
13581 bpr 396
  wims_exec_error=
397
  !sh cp $wims_home/sessions/$wims_session/submit.oef modules/$catmodule/src/$existing.oef\
666 bpr 398
    cd modules/$catmodule; src2def
13581 bpr 399
  test_image=!sh ls $wims_home/sessions/$wims_session/getfile/oefimg 2>/dev/null
400
  !if $test_image!=$empty
401
    !reset test_common
402
    test_common=!defof common_images in wimshome/public_html/modules/$catmodule/var.proc
403
    !if $test_common!=$empty
404
      !if $test_common notwordof no yes
405
        wims_exec_error=!append word imagedir=$test_common to $wims_exec_error
406
      !else
407
        !if $test_common iswordof no or $test_common=$empty
408
          im_dir=images/$existing
409
        !else
410
          im_dir=images
411
        !endif
412
        !sh mkdir -p modules/$catmodule/$im_dir ;\
413
        cp $wims_home/sessions/$wims_session/getfile/oefimg/* modules/$catmodule/$im_dir
414
      !endif
4644 bpr 415
    !endif
416
  !endif
13581 bpr 417
  !reset test_image
418
  !reset already regout prefix
419
  !if $wims_exec_error=$empty
420
    reg1=success
421
    regout=$existing
422
  !else
423
    reg1=fail
424
  !endif
425
  wims_module_log=Regdev $catmodule $existing
426
  !goto l4end
666 bpr 427
!endif
428
 
429
!if ($level=4 and $wims_user=$empty) or $level=5
13581 bpr 430
  regout=!mexec regpub.sh
431
  reg1=!word 1 of $regout
432
  !if $reg1=success
433
    fnamebase=!word 2 of $regout
434
  !else
435
    error=!word 2 of $regout
436
    !exit
437
  !endif
438
  wims_module_log=Regpub $mode $oef_title
666 bpr 439
!endif
440
 
441
:l4end
442
!if $level=6
14981 obado 443
  !readproc adm/class/quotafree.proc proc
13581 bpr 444
  !if $wims_deposit!=$empty and .. notin $wims_deposit and / notin $wims_deposit
14981 obado 445
    !if $quota_free>1
446
      !sh cd $wims_home/$wims_sesdir\
14335 bpr 447
      mkdir -p getfile/oefimg\
448
      mv user-deposit getfile/oefimg/$wims_deposit\
449
      cp oefdeposit user-deposit 2>/dev/null
13581 bpr 450
    !endif
451
    imgfname=$wims_deposit
452
    wims_deposit=
14981 obado 453
  !else
13581 bpr 454
    !sh cd $wims_home/$wims_sesdir\
14335 bpr 455
      if [ -f user-deposit ]; then cp user-deposit oefdeposit; fi
13581 bpr 456
    !if $delfile!=$empty and .. notin $delfile
457
      !sh rm -f $wims_home/$wims_sesdir/getfile/oefimg/$delfile
458
    !endif
666 bpr 459
  !endif
13581 bpr 460
  imglist=!filelist $wims_home/$wims_sesdir/getfile/oefimg
461
  imglist=!words2items $imglist
666 bpr 462
!endif