Subversion Repositories wimsdev

Rev

Rev 16801 | Rev 17206 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23 reyssat 1
# Variable calculations should be done in this file.
2
# It is read and interpreted by wims for all valid calls to the module.
2368 bpr 3
!read adm/class/classlang names.phtml
13046 bpr 4
!! number of lines in a record of a sheet
15763 guerimand 5
!set sheetrecordlimit=11
13046 bpr 6
 
10339 bpr 7
!if $job!=$empty and $job notwordof text modify
12701 bpr 8
  job1=$job
9
  !!for the icon and the title
10339 bpr 10
  !if $job=getsource
11
    job1=sheetsource
12
  !endif
13
  !if $job=prep_putsource
14
    job1=putsource
15
  !endif
10512 bpr 16
  !default name_$(job1)=$(wims_name_$job1)
17
  wims_ariane=!append line sheetadmin,1,cmd=resume to $wims_ariane
18
  !if $(name_$(job1))!=$empty or
19
    wims_ariane=!append line "$(name_$(job1))",8, to $wims_ariane
20
  !endif
10339 bpr 21
!else
22
  !set wims_ariane=!append line sheetadmin,8 to $wims_ariane
23
!endif
24
!set wims_ariane_self=no
25
 
9670 guerimand 26
scnt=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheets
27
!if $sheet>$scnt
12312 bpr 28
  wims_infoshow=yes
29
  !setdef wims_infoshow=$wims_infoshow in wimshome/sessions/$wims_session/var.stat
9670 guerimand 30
!endif
9655 guerimand 31
!if $cmd=resume
12312 bpr 32
  !bound infoshow within yes,no default $wims_infoshow
33
  wims_infoshow=$infoshow
34
  !setdef wims_infoshow=$wims_infoshow in wimshome/sessions/$wims_session/var.stat
9655 guerimand 35
!endif
36
 
11965 guerimand 37
tmp=!defof MAX_SHEETS\
11967 guerimand 38
MAX_REQUIRE\
39
DF_SEVERITY\
40
MIN_WEIGHT\
16729 guerimand 41
MAX_WEIGHT\
42
MAX_EXOS in wimshome/public_html/bases/sys/define.conf
43
!distribute line $tmp into max_sheets,require_limit,df_severity,min_weight,max_weight,max_exos
23 reyssat 44
title_limit=80
45
desc_limit=4000
46
etitle_limit=100
47
edesc_limit=400
12316 bpr 48
 
8255 bpr 49
require_limit=$[$require_limit/10]
10305 guerimand 50
wims_prefix=class user tmp n sharing sharable techvar
23 reyssat 51
srcname=wimshome/$wims_sesdir/home_sheet.src
52
wims_helper=chapter=3
53
 
1533 guerimand 54
!readproc tabletheme
23 reyssat 55
!if $wims_user!=supervisor
12312 bpr 56
  error=not_supervisor
57
  !exit
23 reyssat 58
!endif
1980 guerimand 59
!if $job=chseries
12312 bpr 60
  !changeto chseries.proc
1980 guerimand 61
!endif
11633 bpr 62
!readproc adm/levelname.phtml
1980 guerimand 63
!readproc adm/search_engine/names.$lang
64
!readproc adm/search_engine/mklist_form.proc
23 reyssat 65
 
66
today=!char 1 to 8 of $wims_now
67
thisyear=!char 1 to 4 of $today
68
 
7290 bpr 69
!if $class_expiration=$empty
12312 bpr 70
  !defread wimshome/log/classes/$wims_class/.def
71
  !if $wims_superclass!=$empty
72
    class_expiration=!defof class_expiration in wimshome/log/classes/$wims_superclass/.def
73
  !endif
23 reyssat 74
!endif
1533 guerimand 75
 
23 reyssat 76
!if $class_expiration=$empty
12312 bpr 77
  error=bad_class
78
  !exit
23 reyssat 79
!endif
80
 
81
sharers=
82
sharing1=!defof sharable_sheet in wimshome/log/classes/$wims_class/neighbors
83
!for c in $sharing1
12312 bpr 84
  d=!defof sharing_sheet in wimshome/log/classes/$c/neighbors
85
  !if $d issametext $wims_class
86
    sharers=!append item $c to $sharers
87
  !endif
23 reyssat 88
!next c
11967 guerimand 89
 
12089 guerimand 90
!if $save!=$empty
12312 bpr 91
  jquery_defined=!defof jquery_defined in themes/$wims_theme/header.phtml
92
  !if $jquery_defined=yes
11800 guerimand 93
    expmon=!char 5 to 6 of $expdate
94
    expday=!char 7 to 8 of $expdate
95
    expyear=!char 1 to 4 of $expdate
14366 guerimand 96
  !else
97
    expmon=!char 2,3 of $[abs(floor($monthexpdate))+100]
98
    expday=!char 2,3 of $[abs(floor($dayexpdate))+100]
99
    expyear=!char -4 to -1 of $[abs(floor($yearexpdate))+100000]
100
    expdate=$(expyear)$(expmonth)$(expday)
12312 bpr 101
  !endif
102
  !if $expday>=1 and $expday<=31 and $expmon>=1 and $expmon<=12 \
14335 bpr 103
      and $expyear>=$thisyear and $expyear<=$thisyear+1 \
104
      and $expyear$expmon$expday>$today \
105
      and $expyear$expmon$expday<=$class_expiration \
106
      and N notin $expmon$expday$expyear
12312 bpr 107
    expiration=$expyear$expmon$expday
108
    expdate=$expiration
109
  !else
110
    !if $expyear$expmon$expday>$class_expiration
111
      !readproc adm/date.phtml $class_expiration
112
      error=toolate
113
    !else
114
      expiration=$class_expiration
115
      expdate=$expiration
116
    !endif
117
  !endif
23 reyssat 118
!endif
12089 guerimand 119
 
8255 bpr 120
!if $sheet>$max_sheets
12312 bpr 121
  error=bad_maxsheet
122
  !exit
3062 bpr 123
!endif
124
 
125
!if $sheet<1
12312 bpr 126
  error=bad_sheet
127
  !exit
23 reyssat 128
!endif
129
# menu preparation
130
!if $job!=$empty and $job iswordof \
14335 bpr 131
    prep_activate prep_erase prep_expire prep_putsource prep_modify
12312 bpr 132
  data=!record $sheet of wimshome/log/classes/$wims_class/sheets/.sheets
15763 guerimand 133
  !distribute lines $data into active,expire,title,desc,bla,comment,attribut,exodescshow,formal_hidden_condition,indivtechvar
12387 bpr 134
  !if $modif!=$empty
135
    exo=!record $modif of wimshome/log/classes/$wims_class/sheets/.sheet$sheet
136
    !distribute lines $exo into D_,p_
137
    !read getparm $p_ exotrymax
138
  !endif
12312 bpr 139
  error=$job
7801 bpr 140
  !if $expire < $today
141
    test_expire=$expire,$today
142
  !endif
15859 guerimand 143
  !if $indivtechvar!=$empty and ($job=prep_modify or $job=prep_activate)
15763 guerimand 144
    !readproc adm/vfilter/listvarfilter.proc
145
    nb=!positionof item $indivtechvar in $tv_listcode
146
    !if $nb!=$empty
147
      don=!line $nb of $tv_listtechvar
148
      !distribute item $don into name,classid,number
149
      don=!record $number of wimshome/log/classes/$classid/.techvar
150
      listval=!line 2 of $don
15910 guerimand 151
      nbtechvalue=!itemcnt $listval
15763 guerimand 152
    !else
153
      !reset indivtechvar
154
    !endif
155
  !endif
15859 guerimand 156
  !if $job=prep_activate
16729 guerimand 157
     nb=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheet$sheet
158
     !if $nb>$max_exos
159
       error=toomanyexo
160
       !reset job
161
       !exit
162
     !endif
15859 guerimand 163
     !read adm/sheet/checkdepindiv
164
     !if $sheet isitemof $sheet_dependancy and $sheet isitemof $sheet_indivtechvar
165
        error=depindiv
166
        !reset job
167
     !endif
168
  !endif
12312 bpr 169
  !exit
23 reyssat 170
!endif
171
scnt=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheets
172
!if $job=erase and $sheet<=$scnt and $sheet>=1
12312 bpr 173
  test=
174
  !for s=$sheet to $scnt
175
    l=!record $s of wimshome/log/classes/$wims_class/sheets/.sheets
176
    l=!line 1 of $l
177
    !if $l>0
178
     test=notclean
179
    !endif
180
  !next s
181
  !if $test=$empty
182
    update_field=0
183
    !read proc/update.docindex
184
    !read update.sheet
23 reyssat 185
  !endif
16728 guerimand 186
  !read adm/sheet/writeweights
12312 bpr 187
  !restart module=home
23 reyssat 188
!endif
189
 
9679 guerimand 190
!if $job=duplicate
12312 bpr 191
  !changeto $job.proc
9679 guerimand 192
!endif
193
 
23 reyssat 194
!if $job=expire
12312 bpr 195
  !distribute item 1,2 into update_field,update_content
196
  !read update.sheet
197
  job=
23 reyssat 198
!endif
199
 
200
!if $job=hide
12312 bpr 201
  !distribute item 1,3 into update_field,update_content
202
  !read update.sheet
203
  job=
23 reyssat 204
!endif
205
 
8093 bpr 206
!if $job=reactivate
12312 bpr 207
  !distribute item 1,1 into update_field,update_content
208
  !read update.sheet
209
  job=
23 reyssat 210
!endif
211
 
212
!if $job=deactivate
12312 bpr 213
  !read var.proc.deactivate
23 reyssat 214
!else
12312 bpr 215
  confirmed=!replace word share by $ in $confirmed
216
  confirmed=!singlespace $confirmed
23 reyssat 217
!endif
218
 
219
activetest=!record $sheet of wimshome/log/classes/$wims_class/sheets/.sheets
220
a_=!line 1 of $activetest
221
a_=!trim $a_
222
expp=!line 2 of $activetest
223
!default expiration=$expp
7801 bpr 224
 
225
!if $expiration>$class_expiration or $test_expire!=$empty
12312 bpr 226
  expiration=$class_expiration
23 reyssat 227
!endif
7801 bpr 228
 
23 reyssat 229
ecnt=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheet$sheet
15767 guerimand 230
wims_listexo=!values v for v=1 to $ecnt
231
!setdef wims_listexo=$wims_listexo in wimshome/sessions/$wims_session/var.stat
1513 guerimand 232
activetest=!replace line number 3 by $ecnt in $activetest
23 reyssat 233
 
234
!if $job=putsource and $a_=0
12312 bpr 235
  source=!trim $source
236
  !writefile $srcname $source
237
  putcnt=!recordcnt $srcname
238
  !for i=1 to $putcnt
239
    s_=!record $i of $srcname
240
    n_=!linecnt $s_
241
    bad_source=$i
13046 bpr 242
    !if $n_>=5 and $n_<=$sheetrecordlimit
12312 bpr 243
      !distribute lines $s_ into di,pa,re,we,ti,de
244
      !for k in re,we,di,pa,ti,de
245
        $k=!trim $($k)
246
        w$k=!wordcnt $($k)
247
      !next k
248
      !if NaN isin $[$re]$[$we] or $[$wre*$wwe*$wdi]!=1 or $wpa>1 or $ti=$empty or\
14335 bpr 249
          .. isin $di or $re<0 or $we<0 or ($re>0 and $we=0)
12312 bpr 250
         error=bad_source
251
        !exit
252
      !endif
253
      ti=!char 1 to $etitle_limit of $ti
254
      de=!char 1 to $edesc_limit of $de
255
      source_$i=$s_
256
      last=$i
257
    !else
13046 bpr 258
      # last record may be empty
12312 bpr 259
      !if $i!=$putcnt
260
        error=bad_source
261
        !exit
262
      !endif
263
    !endif
264
  !next i
265
  !for i=1 to $last
266
    !appendfile wimshome/log/classes/$wims_class/sheets/.sheet$sheet :$(source_$i)
267
  !next i
23 reyssat 268
!endif
269
 
270
!if $activetest!=$empty
12312 bpr 271
  sheet_exist=yes
272
  !default expiration=!line 2 of $activetest
273
  activetest=!line 1 of $activetest
274
  exocnt=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheet$sheet
23 reyssat 275
!else
12312 bpr 276
  sheet_exist=no
277
  activetest=-1
278
  exocnt=0
279
  !default expiration=$class_expiration
23 reyssat 280
!endif
281
 
282
!if $job=getsource and $sheet_exist=yes
13640 obado 283
  !writefile $srcname
12312 bpr 284
  !for i=1 to $exocnt
285
    l=!record $i of wimshome/log/classes/$wims_class/sheets/.sheet$sheet
13640 obado 286
    # replace eventual html entities so it will not insert \n in textarea
287
    l=!replace internal &#13;&#10; by $ $ in $l
12312 bpr 288
    !appendfile $srcname $$:$l
289
  !next i
13640 obado 290
  !appendfile $srcname
12312 bpr 291
  !exit
23 reyssat 292
!endif
293
 
10062 guerimand 294
!readproc adm/vfilter/listvarfilter.proc
23 reyssat 295
!if $allow=yes
12312 bpr 296
  !if $tv_listname=$empty
297
    !bound allowtype within all,none,select default all
298
  !else
299
    !bound allowtype within all,none,select,techvar default all
300
  !endif
12994 guerimand 301
  !read adm/scorerestriction get
12312 bpr 302
  IPlist=$_output
303
  IPlist=!translate ,;\
23 reyssat 304
* to $    $ in $IPlist
12312 bpr 305
  IPlist=!trim $IPlist
306
  !if $allowtype=select and $IPlist=$empty and $save!=$empty
307
    allowtype=all
308
  !endif
309
  !if $allowtype=all
310
    allow_parm=
311
  !endif
312
  !if $allowtype=none
313
    allow_parm=none
314
  !endif
315
  !if $allowtype=select
316
    allow_parm=$IPlist
317
  !endif
10305 guerimand 318
 
12312 bpr 319
  !if $allowtype=techvar
320
    !readproc adm/vfilter/shexselect.proc $sheet
321
  !endif
10305 guerimand 322
!endif
11810 guerimand 323
 
11967 guerimand 324
!! --------------- get/save severity parameters
325
rec=!record 0 of wimshome/log/classes/$wims_class/sheets/.severity
326
!if $save!=$empty
12312 bpr 327
  !distribute word $df_severity into t1,t2,t3
328
  !bound weight between $min_weight and $max_weight default $t1
329
  !bound formulaA between integer 0 and 6 default $t2
330
  !bound formulaB between integer 0 and 2 default $t3
331
  nb=!linecnt $rec
13059 guerimand 332
  !! define maxscore default =10 (not general variable maybe we should ?)
333
  !if $nb=0
13060 bpr 334
    rec=10
13059 guerimand 335
  !endif
12312 bpr 336
  new=$weight $formulaA $formulaB
13058 guerimand 337
  !if $sheet>$nb-1
12312 bpr 338
    !for k=$nb+1 to $sheet+1
14335 bpr 339
      rec=!append line $df_severity to $rec
13058 guerimand 340
    !next k
12312 bpr 341
  !endif
342
  rec=!replace line number $[$sheet+1] by $new in $rec
343
  !writefile wimshome/log/classes/$wims_class/sheets/.severity $rec
11967 guerimand 344
!endif
345
rec=!line $[$sheet+1] of $rec
346
!distribute word $rec into s_weight,s_formulaA,s_formulaB
347
!default weight=$s_weight
348
!default formulaA=$s_formulaA
349
!default formulaB=$s_formulaB
350
 
10062 guerimand 351
!! ---- save modification of allow parameters
10305 guerimand 352
!if $save!=$empty
10062 guerimand 353
  !if $sharers!=$empty and $allowshare=1
16798 guerimand 354
    !if $allowtype=techvar
16801 guerimand 355
      !readproc adm/vfilter/validtechvar.proc $allowtechvar\
16798 guerimand 356
$sharers
357
      !if $output=1
358
        setclass=!items2words $wims_class,$sharers
359
      !else
360
        error=badallowshare
361
        allowshare=0
362
        setclass=$wims_class
363
      !endif
16801 guerimand 364
    !else
365
      setclass=!items2words $wims_class,$sharers
16798 guerimand 366
    !endif
10062 guerimand 367
  !else
12312 bpr 368
    setclass=$wims_class
10062 guerimand 369
  !endif
370
  !if $allow_parm=$empty
12312 bpr 371
    !sh for c in $setclass; do rm -f $wims_home/log/classes/$$c/.$sheet; done
10062 guerimand 372
  !else
16777 guerimand 373
    setclass=!words2items $setclass
12312 bpr 374
    !for c in $setclass
375
      !writefile wimshome/log/classes/$c/.$sheet $allow_parm
376
    !next c
10062 guerimand 377
  !endif
378
  wims_class_log=sheet $sheet allow $allowtype $allowshare by $wims_realuser
10305 guerimand 379
!endif
10062 guerimand 380
!! ---- end of saving
23 reyssat 381
 
10062 guerimand 382
!if $allow=$empty or $save!=$empty
383
!! --- read saving configuration for allow parameters initial time and after saving
12312 bpr 384
  !readproc adm/vfilter/shexread.proc $sheet
11810 guerimand 385
!! to distribute IPlist content into variable
12312 bpr 386
  !read adm/scorerestriction put\
11810 guerimand 387
$IPlist
10062 guerimand 388
!endif
10244 guerimand 389
old_allowtype=$allowtype
390
old_allowtechvar=$allowtechvar
10062 guerimand 391
!reset allow,save
392
!! --- end of reading
23 reyssat 393
 
394
expmon=!char 5,6 of $expiration
395
expday=!char 7,8 of $expiration
396
expyear=!char 1,2,3,4 of $expiration
397
 
398
!if $job!=text
13640 obado 399
  # remove \n from textareas
12312 bpr 400
  mod_desc=!replace internal $\
13640 obado 401
$ by $ $ in $mod_desc
12312 bpr 402
  mod_comment=!replace internal $\
13640 obado 403
$ by $ $ in $mod_comment
12312 bpr 404
  !if $title_save$desc_save=$empty
405
    rec=!record $sheet of wimshome/log/classes/$wims_class/sheets/.sheets
13831 bpr 406
    !distribute lines $rec into bidon,bidon,title_save,desc_save,prpage_save,\
15763 guerimand 407
      comment_save,attribut_save,exodescshow_save,formal_hidden_condition_save,\
408
      indivtechvar_save
15860 guerimand 409
      !bound indivtechvar_save within $empty,$tv_listlocalcode default $empty
12312 bpr 410
  !endif
411
  title=$title_save
412
  desc=$desc_save
413
  prpage=$prpage_save
414
  comment=$comment_save
13825 bpr 415
  exodescshow=$exodescshow_save
14441 guerimand 416
  !readproc adm/vfilter/convertformat.proc human\
417
$formal_hidden_condition_save
418
  hidden_condition=$output_convertformat
15763 guerimand 419
  indivtechvar=$indivtechvar_save
23 reyssat 420
!else
12312 bpr 421
  !if $title=$empty
422
    error=no_title
423
    !exit
424
  !endif
12801 obado 425
  title=!singlespace $title
426
  title=!char 1 to $title_limit of $title
427
  title=!replace internal : by &#58; in $title
428
 
12312 bpr 429
  desc=!replace internal $\
13640 obado 430
$ by $ $ in $desc
12801 obado 431
  desc=!singlespace $desc
432
  desc=!char 1 to $desc_limit of $desc
433
  desc=!replace internal : by &#58; in $desc
434
 
12312 bpr 435
  comment=!replace internal $\
13640 obado 436
$ by $ $ in $comment
12312 bpr 437
  comment=!singlespace $comment
12801 obado 438
 
16919 guerimand 439
  !! --- manage of personalized presentation of sheet page
440
  !if $prpage isitemof no,yes or $prpage=$empty
441
    !bound prpage within yes,no default no
442
  !else
443
    !! old gestion of prpage with doc link
444
    !! deprecated but keep for background compatibility
445
    prpage=!word 1 of $prpage
446
    prpage=!char 1 to 100 of $prpage
447
    !if .. isin $prpage or / notin $prpage
448
      prpage=no
12312 bpr 449
    !endif
16919 guerimand 450
    !if $prpage!=no
451
      test=!fileexists wimshome/log/classes/$wims_class/doc/$prpage.def
452
      !if $test!=yes
453
        prpage=no
454
      !endif
455
    !endif
12312 bpr 456
  !endif
16919 guerimand 457
 
14441 guerimand 458
  !if $hidden_condition!=$empty
459
    !readproc adm/vfilter/convertformat.proc formal\
460
$hidden_condition
461
    formal_hidden_condition=$output_convertformat
16195 guerimand 462
    !if $output_error!=$empty
463
      error=badtechvarname $output_error
464
    !endif
465
    !readproc adm/vfilter/convertformat.proc human\
466
$formal_hidden_condition
467
    hidden_condition=$output_convertformat
14441 guerimand 468
  !else
469
    formal_hidden_condition=$empty
470
  !endif
15763 guerimand 471
  !! indivtechvar is not modifiable when sheet is activated.
472
  !if $activetest>0
473
    rec=!record $sheet of wimshome/log/classes/$wims_class/sheets/.sheets
474
    indivtechvar=!item 10 of $rec
475
  !endif
15860 guerimand 476
  !bound indivtechvar within $empty,$tv_listlocalcode default $empty
12312 bpr 477
  !if $sheet_exist=yes
478
    !distribute lines 2\
23 reyssat 479
$expiration into update_field,update_content
12312 bpr 480
    !read update.sheet
12801 obado 481
 
12312 bpr 482
    !distribute lines 3\
23 reyssat 483
$title into update_field,update_content
12312 bpr 484
    !read update.sheet
12801 obado 485
 
12312 bpr 486
    !distribute lines 4\
23 reyssat 487
$desc into update_field,update_content
12312 bpr 488
    !read update.sheet
12801 obado 489
 
12312 bpr 490
    !distribute lines 5\
23 reyssat 491
$prpage into update_field,update_content
12312 bpr 492
    !read update.sheet
12801 obado 493
 
12312 bpr 494
    !distribute lines 6\
1969 guerimand 495
$comment into update_field,update_content
12312 bpr 496
    !read update.sheet
13825 bpr 497
 
498
    !distribute lines 7\
499
$attribut into update_field,update_content
500
    !read update.sheet
14646 bpr 501
 
13825 bpr 502
    !distribute lines 8\
503
$exodescshow into update_field,update_content
504
    !read update.sheet
14646 bpr 505
 
14441 guerimand 506
    !distribute lines 9\
507
$formal_hidden_condition into update_field,update_content
508
    !read update.sheet
509
 
15763 guerimand 510
    !if $activetest=0
511
      !distribute lines 10\
512
$indivtechvar into update_field,update_content
513
    !read update.sheet
514
 
515
    !endif
516
 
12312 bpr 517
  !else
518
    !appendfile wimshome/log/classes/$wims_class/sheets/.sheets :0\
23 reyssat 519
$expiration\
520
$title\
521
$desc\
1969 guerimand 522
$prpage\
13825 bpr 523
$comment\
524
$attribut\
14441 guerimand 525
$exodescshow\
15763 guerimand 526
$formal_hidden_condition\
15859 guerimand 527
$empty
528
    indivtechvar=$empty
12312 bpr 529
    sheet_exist=yes
530
    activetest=0
531
    sheet=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheets
532
    !writefile wimshome/log/classes/$wims_class/sheets/.sheet$sheet
14242 obado 533
    message=$name_createok
12312 bpr 534
  !endif
535
  title_save=$title
536
  desc_save=$desc
537
  prpage_save=$prpage
538
  comment_save=$comment
13825 bpr 539
  attribut_save=$attribut
540
  exodescshow_save=$exodescshow
14441 guerimand 541
  formal_hidden_condition_save=$formal_hidden_condition
15763 guerimand 542
  indivtechvar_save=$indivtechvar
23 reyssat 543
!endif
544
 
16919 guerimand 545
!if $job=prpage and $prpage_save=yes
546
  test=!fileexists wimshome/sessions/$wims_session/user-deposit
547
  !if $test=yes
548
    msg2wims_primitives=if ifval for while\
549
      reload fold ref link docform form resource calcform embed\
550
      exercise tool doc example help adm tooltip href slib\
551
      def define comment draw canvasdraw audio glossary
552
      !sh rm -f $wims_home/$wims_sesdir/sheet$(sheet).def;\
553
          $wims_home/bin/msg2wims $wims_home/$wims_sesdir/user-deposit $wims_home/$wims_sesdir/sheet$(sheet).def;\
554
          if [ -e $wims_home/$wims_sesdir/sheet$(sheet).def ]; then\
555
            mv $wims_home/$wims_sesdir/sheet$(sheet).def $wims_home/log/classes/$wims_class/sheets/sheet$(sheet).def;\
556
            mv $wims_home/$wims_sesdir/user-deposit $wims_home/log/classes/$wims_class/sheets/sheet$(sheet).src;\
557
          else\
558
            rm -f $wims_home/$wims_sesdir/user-deposit;\
559
          fi;
560
  !endif
561
!endif
562
 
23 reyssat 563
!if $job=activate and $[$activetest]=0
15859 guerimand 564
  !read adm/sheet/checkdepindiv
565
  !if $sheet isitemof $sheet_dependancy and $sheet isitemof $sheet_indivtechvar
566
    error=depindiv
567
    !reset job
568
    !exit
569
  !endif
15857 guerimand 570
  !read adm/sheet/writeweights
12312 bpr 571
  !if $test_expire!=$empty
572
    !distribute items 2,$expiration into update_field,update_content
7801 bpr 573
    !read update.sheet
574
    !reset test_expire
12312 bpr 575
  !endif
576
  !distribute item 1,1 into update_field,update_content
577
  !read update.sheet
578
  activetest=1
579
  wims_class_log=activate sheet $sheet by $wims_realuser
23 reyssat 580
!endif
581
 
13208 obado 582
!! only delete or move items when sheet has not been activated
583
!if $activetest=0
584
  # delete an item
585
  !if $job=delete and $delete>0 and $delete<=$exocnt
14105 guerimand 586
    !read adm/sheet/sheetexam.shift sheet,$sheet,,$delete
13208 obado 587
    delete=
588
    exocnt=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheet$sheet
589
  !endif
23 reyssat 590
 
14104 guerimand 591
  # move to specific position
14113 guerimand 592
  !if $job=moveto and $movetarget>=1 and $movetarget<=$[$exocnt+1] and $movesource!=$movetarget and $movesource>=1 and $movesource<=$exocnt
14105 guerimand 593
    !read adm/sheet/sheetexam.shift sheet,$sheet,$movetarget,$movesource
14104 guerimand 594
  !endif
595
 
15763 guerimand 596
  # change individualisation of sheet with a technical variable
15860 guerimand 597
  !if $job=indiv and $indivtechvar!=0 and $indivtechvar!=$empty
15763 guerimand 598
    !read indiv.proc
599
  !endif
16022 bpr 600
 
13432 bpr 601
!endif
602
 
23 reyssat 603
# modify an item
604
!if $job=modify and $modif>0 and $modif<=$exocnt
12312 bpr 605
  !if $activetest=0
606
    exo=!record $modif of wimshome/log/classes/$wims_class/sheets/.sheet$sheet
607
    !distribute lines $exo into D_,p_
13315 bpr 608
    ####
12312 bpr 609
    iniparm=$p_
12387 bpr 610
    !read getparm $iniparm exo random qnum exotrymax
12312 bpr 611
    exocnt_=!itemcnt $get_exo
13315 bpr 612
    #### common with addmodule
12387 bpr 613
    iniparm2=!replace internal & by $\
614
$ in $iniparm
615
    iniparm2_cnt=!linecnt $iniparm2
616
    new_iniparm=
617
    equal==
12312 bpr 618
    !if $get_random=0
619
      !for i=1 to $get_qnum
16037 bpr 620
        update_order=!append item $(update_ex$i) to $update_order
12312 bpr 621
      !next
622
      get_exo=$(get_exo[$update_order])
623
      !for v in $get_exo
13760 bpr 624
        new_iniparm=!append line exo=$v to $new_iniparm
12312 bpr 625
      !next
626
      !for u=1 to $iniparm2_cnt
627
        l=!line $u of $iniparm2
628
        !if exo$equal notin $l
13760 bpr 629
          new_iniparm=!append line $l to $new_iniparm
12312 bpr 630
        !endif
631
      !next
13760 bpr 632
      new_iniparm=!replace internal $\
633
$ by & in $new_iniparm
12312 bpr 634
      new_iniparm=!nospace $new_iniparm
635
      p_=$new_iniparm
7354 bpr 636
    !endif
12387 bpr 637
    !if $get_exotrymax!=$mod_exotrymax
638
      tmp=!nospace $mod_exotrymax
639
      !if exotrymax isin $p_
13315 bpr 640
        !if $tmp!=$empty
641
          p_=!replace internal exotrymax=$get_exotrymax by exotrymax=$tmp in $p_
642
        !else
643
          p_=!replace internal exotrymax=$get_exotrymax by in $p_
644
        !endif
12400 bpr 645
      !else
12387 bpr 646
        !if $tmp!=$empty
12400 bpr 647
          p_=$p_&exotrymax=$tmp
12387 bpr 648
          !reset mod_exotrymax
649
        !endif
650
      !endif
651
      p_=!nospace $p_
12400 bpr 652
      p_=!replace internal && by & in $p_
12387 bpr 653
      !reset tmp
654
    !endif
655
 
13315 bpr 656
    #####
15910 guerimand 657
    mod_indiv=!listintersection $mod_indiv and $listval
658
    !bound mod_weight between $min_weight and $max_weight default 1
12312 bpr 659
    !bound mod_require between 0 and $[10*$require_limit] default 0
15910 guerimand 660
    !if $mod_indiv!=$empty
16022 bpr 661
      nbvalue=!itemcnt $listval
15910 guerimand 662
      !distribute item $max_weight,$[10*$require_limit],$min_weight,0 into limitM_weight,limitM_require,limitm_weight,limitm_require
663
      !for type in weight,require
664
        tmp=$(mod_$type)
665
        !for k=1 to $nbvalue
666
          !bound $type$k between $(limitm_$type) and $(limitM_$type) default $tmp
667
          !if $($type$k)!=$tmp
668
            mod_$type=$(mod_$type);$(listval[$k]),$($type$k)
669
          !endif
670
        !next k
16022 bpr 671
      !next type
15910 guerimand 672
    !endif
12312 bpr 673
    mod_title=!singlespace $mod_title
674
    mod_desc=!singlespace $mod_desc
675
    mod_comment=!singlespace $mod_comment
676
    mod_title=!char 1 to $etitle_limit of $mod_title
677
    mod_desc=!char 1 to $edesc_limit of $mod_desc
678
    mod_comment=!char 1 to $edesc_limit of $mod_comment
4528 bpr 679
  !endif
12312 bpr 680
  !if $mod_feedback notsametext $empty
14646 bpr 681
    !reset mod_feedback_tmp
682
    tmpcnt=!itemcnt $(mod_feedback[;1])
683
    !for t_=1 to $tmpcnt
684
      mod_feedback_=$(mod_feedback[$t_;])
685
      mod_feedback_lim=$(mod_feedback_[2])
686
      mod_feedback_lim2=$(mod_feedback_[3])
687
      !bound mod_feedback_lim between 0 and 11 default 10
688
      !bound mod_feedback_lim2 between 0  and $mod_feedback_lim default 0
689
      mod_feedback_=!nospace $(mod_feedback_[1])
690
      mod_feedback_test=!replace = by _ in $mod_feedback_
691
      !if cmd_new notin $mod_feedback_test
692
        mod_feedback_=!nospace $mod_feedback_&cmd=new
693
      !endif
694
      !if adm/doc isin $mod_feedback_ and job_read notin $mod_feedback_test
695
        mod_feedback_=$mod_feedback_&job=read
696
      !endif
697
      mod_feedback_tmp=!append line $mod_feedback_,$mod_feedback_lim,$mod_feedback_lim2 to $mod_feedback_tmp
698
    !next
699
    mod_feedback=!lines2rows $mod_feedback_tmp
4528 bpr 700
  !endif
7290 bpr 701
 
12312 bpr 702
  exo=$modif
703
  !if $activetest=0
704
    update_content=$D_\
23 reyssat 705
$p_\
706
$mod_require\
707
$mod_weight\
708
$mod_title\
709
$mod_desc\
1969 guerimand 710
$mod_dep\
4528 bpr 711
$mod_comment\
12316 bpr 712
$mod_feedback\
15763 guerimand 713
$mod_attribut\
714
$mod_indiv
12312 bpr 715
    update_field=0
716
    !read adm/class/update.exo
4864 bpr 717
 !else
12312 bpr 718
    !distribute lines 5\
7290 bpr 719
$mod_title into update_field,update_content
12312 bpr 720
    !read adm/class/update.exo
721
    !distribute lines 6\
7290 bpr 722
$mod_desc into update_field,update_content
12312 bpr 723
    !read adm/class/update.exo
724
    !distribute lines 8\
7290 bpr 725
$mod_comment into update_field,update_content
12312 bpr 726
    !read adm/class/update.exo
727
    !distribute lines 9\
7290 bpr 728
$mod_feedback into update_field,update_content
12312 bpr 729
    !read adm/class/update.exo
12316 bpr 730
    !distribute lines 10\
731
$mod_attribut into update_field,update_content
732
    !read adm/class/update.exo
12312 bpr 733
  !endif
7290 bpr 734
 
12316 bpr 735
  !distribute items $ into mod_title,mod_desc,mod_weight,mod_require,mod_dep,\
15763 guerimand 736
    mod_comment,mod_feedback,mod_attribut,mod_indiv
23 reyssat 737
!endif
738
 
739
!if $[$activetest]=0
12312 bpr 740
  erasable=yes
741
  scnt=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheets
742
  !for s=$sheet+1 to $scnt
743
    l=!record $s of wimshome/log/classes/$wims_class/sheets/.sheets
744
    l=!line 1 of $l
745
    !if $l>0
746
      erasable=no
747
    !endif
748
  !next s
23 reyssat 749
!endif
750
 
3245 guerimand 751
!if $back=1 and $error=$empty
12312 bpr 752
  !restart module=home
7020 bpr 753
!endif