Subversion Repositories wimsdev

Rev

Rev 16777 | Rev 16801 | 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
355
      !readproc adm/vfilter/$validtechvar.proc $allowtechvar\
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
364
    !endif
12312 bpr 365
    setclass=!items2words $wims_class,$sharers
10062 guerimand 366
  !else
12312 bpr 367
    setclass=$wims_class
10062 guerimand 368
  !endif
369
  !if $allow_parm=$empty
12312 bpr 370
    !sh for c in $setclass; do rm -f $wims_home/log/classes/$$c/.$sheet; done
10062 guerimand 371
  !else
16777 guerimand 372
    setclass=!words2items $setclass
12312 bpr 373
    !for c in $setclass
374
      !writefile wimshome/log/classes/$c/.$sheet $allow_parm
375
    !next c
10062 guerimand 376
  !endif
377
  wims_class_log=sheet $sheet allow $allowtype $allowshare by $wims_realuser
10305 guerimand 378
!endif
10062 guerimand 379
!! ---- end of saving
23 reyssat 380
 
10062 guerimand 381
!if $allow=$empty or $save!=$empty
382
!! --- read saving configuration for allow parameters initial time and after saving
12312 bpr 383
  !readproc adm/vfilter/shexread.proc $sheet
11810 guerimand 384
!! to distribute IPlist content into variable
12312 bpr 385
  !read adm/scorerestriction put\
11810 guerimand 386
$IPlist
10062 guerimand 387
!endif
10244 guerimand 388
old_allowtype=$allowtype
389
old_allowtechvar=$allowtechvar
10062 guerimand 390
!reset allow,save
391
!! --- end of reading
23 reyssat 392
 
393
expmon=!char 5,6 of $expiration
394
expday=!char 7,8 of $expiration
395
expyear=!char 1,2,3,4 of $expiration
396
 
397
!if $job!=text
13640 obado 398
  # remove \n from textareas
12312 bpr 399
  mod_desc=!replace internal $\
13640 obado 400
$ by $ $ in $mod_desc
12312 bpr 401
  mod_comment=!replace internal $\
13640 obado 402
$ by $ $ in $mod_comment
12312 bpr 403
  !if $title_save$desc_save=$empty
404
    rec=!record $sheet of wimshome/log/classes/$wims_class/sheets/.sheets
13831 bpr 405
    !distribute lines $rec into bidon,bidon,title_save,desc_save,prpage_save,\
15763 guerimand 406
      comment_save,attribut_save,exodescshow_save,formal_hidden_condition_save,\
407
      indivtechvar_save
15860 guerimand 408
      !bound indivtechvar_save within $empty,$tv_listlocalcode default $empty
12312 bpr 409
  !endif
410
  title=$title_save
411
  desc=$desc_save
412
  prpage=$prpage_save
413
  comment=$comment_save
13825 bpr 414
  exodescshow=$exodescshow_save
14441 guerimand 415
  !readproc adm/vfilter/convertformat.proc human\
416
$formal_hidden_condition_save
417
  hidden_condition=$output_convertformat
15763 guerimand 418
  indivtechvar=$indivtechvar_save
23 reyssat 419
!else
12312 bpr 420
  !if $title=$empty
421
    error=no_title
422
    !exit
423
  !endif
12801 obado 424
  title=!singlespace $title
425
  title=!char 1 to $title_limit of $title
426
  title=!replace internal : by &#58; in $title
427
 
12312 bpr 428
  desc=!replace internal $\
13640 obado 429
$ by $ $ in $desc
12801 obado 430
  desc=!singlespace $desc
431
  desc=!char 1 to $desc_limit of $desc
432
  desc=!replace internal : by &#58; in $desc
433
 
12312 bpr 434
  comment=!replace internal $\
13640 obado 435
$ by $ $ in $comment
12312 bpr 436
  comment=!singlespace $comment
12801 obado 437
 
12312 bpr 438
  prpage=!word 1 of $prpage
439
  prpage=!char 1 to 100 of $prpage
440
  !if .. isin $prpage or / notin $prpage
441
    prpage=
23 reyssat 442
  !endif
12312 bpr 443
  !if $prpage!=$empty
444
    test=!defof titb in wimshome/log/classes/$wims_class/doc/$prpage.def
445
    !if $test=$empty
446
      prpage=
447
    !endif
448
  !endif
14441 guerimand 449
  !if $hidden_condition!=$empty
450
    !readproc adm/vfilter/convertformat.proc formal\
451
$hidden_condition
452
    formal_hidden_condition=$output_convertformat
16195 guerimand 453
    !if $output_error!=$empty
454
      error=badtechvarname $output_error
455
    !endif
456
    !readproc adm/vfilter/convertformat.proc human\
457
$formal_hidden_condition
458
    hidden_condition=$output_convertformat
14441 guerimand 459
  !else
460
    formal_hidden_condition=$empty
461
  !endif
15763 guerimand 462
  !! indivtechvar is not modifiable when sheet is activated.
463
  !if $activetest>0
464
    rec=!record $sheet of wimshome/log/classes/$wims_class/sheets/.sheets
465
    indivtechvar=!item 10 of $rec
466
  !endif
15860 guerimand 467
  !bound indivtechvar within $empty,$tv_listlocalcode default $empty
12312 bpr 468
  !if $sheet_exist=yes
469
    !distribute lines 2\
23 reyssat 470
$expiration into update_field,update_content
12312 bpr 471
    !read update.sheet
12801 obado 472
 
12312 bpr 473
    !distribute lines 3\
23 reyssat 474
$title into update_field,update_content
12312 bpr 475
    !read update.sheet
12801 obado 476
 
12312 bpr 477
    !distribute lines 4\
23 reyssat 478
$desc into update_field,update_content
12312 bpr 479
    !read update.sheet
12801 obado 480
 
12312 bpr 481
    !distribute lines 5\
23 reyssat 482
$prpage into update_field,update_content
12312 bpr 483
    !read update.sheet
12801 obado 484
 
12312 bpr 485
    !distribute lines 6\
1969 guerimand 486
$comment into update_field,update_content
12312 bpr 487
    !read update.sheet
13825 bpr 488
 
489
    !distribute lines 7\
490
$attribut into update_field,update_content
491
    !read update.sheet
14646 bpr 492
 
13825 bpr 493
    !distribute lines 8\
494
$exodescshow into update_field,update_content
495
    !read update.sheet
14646 bpr 496
 
14441 guerimand 497
    !distribute lines 9\
498
$formal_hidden_condition into update_field,update_content
499
    !read update.sheet
500
 
15763 guerimand 501
    !if $activetest=0
502
      !distribute lines 10\
503
$indivtechvar into update_field,update_content
504
    !read update.sheet
505
 
506
    !endif
507
 
12312 bpr 508
  !else
509
    !appendfile wimshome/log/classes/$wims_class/sheets/.sheets :0\
23 reyssat 510
$expiration\
511
$title\
512
$desc\
1969 guerimand 513
$prpage\
13825 bpr 514
$comment\
515
$attribut\
14441 guerimand 516
$exodescshow\
15763 guerimand 517
$formal_hidden_condition\
15859 guerimand 518
$empty
519
    indivtechvar=$empty
12312 bpr 520
    sheet_exist=yes
521
    activetest=0
522
    sheet=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheets
523
    !writefile wimshome/log/classes/$wims_class/sheets/.sheet$sheet
14242 obado 524
    message=$name_createok
12312 bpr 525
  !endif
526
  title_save=$title
527
  desc_save=$desc
528
  prpage_save=$prpage
529
  comment_save=$comment
13825 bpr 530
  attribut_save=$attribut
531
  exodescshow_save=$exodescshow
14441 guerimand 532
  formal_hidden_condition_save=$formal_hidden_condition
15763 guerimand 533
  indivtechvar_save=$indivtechvar
23 reyssat 534
!endif
535
 
536
!if $job=activate and $[$activetest]=0
15859 guerimand 537
  !read adm/sheet/checkdepindiv
538
  !if $sheet isitemof $sheet_dependancy and $sheet isitemof $sheet_indivtechvar
539
    error=depindiv
540
    !reset job
541
    !exit
542
  !endif
15857 guerimand 543
  !read adm/sheet/writeweights
12312 bpr 544
  !if $test_expire!=$empty
545
    !distribute items 2,$expiration into update_field,update_content
7801 bpr 546
    !read update.sheet
547
    !reset test_expire
12312 bpr 548
  !endif
549
  !distribute item 1,1 into update_field,update_content
550
  !read update.sheet
551
  activetest=1
552
  wims_class_log=activate sheet $sheet by $wims_realuser
23 reyssat 553
!endif
554
 
13208 obado 555
!! only delete or move items when sheet has not been activated
556
!if $activetest=0
557
  # delete an item
558
  !if $job=delete and $delete>0 and $delete<=$exocnt
14105 guerimand 559
    !read adm/sheet/sheetexam.shift sheet,$sheet,,$delete
13208 obado 560
    delete=
561
    exocnt=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheet$sheet
562
  !endif
23 reyssat 563
 
14104 guerimand 564
  # move to specific position
14113 guerimand 565
  !if $job=moveto and $movetarget>=1 and $movetarget<=$[$exocnt+1] and $movesource!=$movetarget and $movesource>=1 and $movesource<=$exocnt
14105 guerimand 566
    !read adm/sheet/sheetexam.shift sheet,$sheet,$movetarget,$movesource
14104 guerimand 567
  !endif
568
 
15763 guerimand 569
  # change individualisation of sheet with a technical variable
15860 guerimand 570
  !if $job=indiv and $indivtechvar!=0 and $indivtechvar!=$empty
15763 guerimand 571
    !read indiv.proc
572
  !endif
16022 bpr 573
 
13432 bpr 574
!endif
575
 
23 reyssat 576
# modify an item
577
!if $job=modify and $modif>0 and $modif<=$exocnt
12312 bpr 578
  !if $activetest=0
579
    exo=!record $modif of wimshome/log/classes/$wims_class/sheets/.sheet$sheet
580
    !distribute lines $exo into D_,p_
13315 bpr 581
    ####
12312 bpr 582
    iniparm=$p_
12387 bpr 583
    !read getparm $iniparm exo random qnum exotrymax
12312 bpr 584
    exocnt_=!itemcnt $get_exo
13315 bpr 585
    #### common with addmodule
12387 bpr 586
    iniparm2=!replace internal & by $\
587
$ in $iniparm
588
    iniparm2_cnt=!linecnt $iniparm2
589
    new_iniparm=
590
    equal==
12312 bpr 591
    !if $get_random=0
592
      !for i=1 to $get_qnum
16037 bpr 593
        update_order=!append item $(update_ex$i) to $update_order
12312 bpr 594
      !next
595
      get_exo=$(get_exo[$update_order])
596
      !for v in $get_exo
13760 bpr 597
        new_iniparm=!append line exo=$v to $new_iniparm
12312 bpr 598
      !next
599
      !for u=1 to $iniparm2_cnt
600
        l=!line $u of $iniparm2
601
        !if exo$equal notin $l
13760 bpr 602
          new_iniparm=!append line $l to $new_iniparm
12312 bpr 603
        !endif
604
      !next
13760 bpr 605
      new_iniparm=!replace internal $\
606
$ by & in $new_iniparm
12312 bpr 607
      new_iniparm=!nospace $new_iniparm
608
      p_=$new_iniparm
7354 bpr 609
    !endif
12387 bpr 610
    !if $get_exotrymax!=$mod_exotrymax
611
      tmp=!nospace $mod_exotrymax
612
      !if exotrymax isin $p_
13315 bpr 613
        !if $tmp!=$empty
614
          p_=!replace internal exotrymax=$get_exotrymax by exotrymax=$tmp in $p_
615
        !else
616
          p_=!replace internal exotrymax=$get_exotrymax by in $p_
617
        !endif
12400 bpr 618
      !else
12387 bpr 619
        !if $tmp!=$empty
12400 bpr 620
          p_=$p_&exotrymax=$tmp
12387 bpr 621
          !reset mod_exotrymax
622
        !endif
623
      !endif
624
      p_=!nospace $p_
12400 bpr 625
      p_=!replace internal && by & in $p_
12387 bpr 626
      !reset tmp
627
    !endif
628
 
13315 bpr 629
    #####
15910 guerimand 630
    mod_indiv=!listintersection $mod_indiv and $listval
631
    !bound mod_weight between $min_weight and $max_weight default 1
12312 bpr 632
    !bound mod_require between 0 and $[10*$require_limit] default 0
15910 guerimand 633
    !if $mod_indiv!=$empty
16022 bpr 634
      nbvalue=!itemcnt $listval
15910 guerimand 635
      !distribute item $max_weight,$[10*$require_limit],$min_weight,0 into limitM_weight,limitM_require,limitm_weight,limitm_require
636
      !for type in weight,require
637
        tmp=$(mod_$type)
638
        !for k=1 to $nbvalue
639
          !bound $type$k between $(limitm_$type) and $(limitM_$type) default $tmp
640
          !if $($type$k)!=$tmp
641
            mod_$type=$(mod_$type);$(listval[$k]),$($type$k)
642
          !endif
643
        !next k
16022 bpr 644
      !next type
15910 guerimand 645
    !endif
12312 bpr 646
    mod_title=!singlespace $mod_title
647
    mod_desc=!singlespace $mod_desc
648
    mod_comment=!singlespace $mod_comment
649
    mod_title=!char 1 to $etitle_limit of $mod_title
650
    mod_desc=!char 1 to $edesc_limit of $mod_desc
651
    mod_comment=!char 1 to $edesc_limit of $mod_comment
4528 bpr 652
  !endif
12312 bpr 653
  !if $mod_feedback notsametext $empty
14646 bpr 654
    !reset mod_feedback_tmp
655
    tmpcnt=!itemcnt $(mod_feedback[;1])
656
    !for t_=1 to $tmpcnt
657
      mod_feedback_=$(mod_feedback[$t_;])
658
      mod_feedback_lim=$(mod_feedback_[2])
659
      mod_feedback_lim2=$(mod_feedback_[3])
660
      !bound mod_feedback_lim between 0 and 11 default 10
661
      !bound mod_feedback_lim2 between 0  and $mod_feedback_lim default 0
662
      mod_feedback_=!nospace $(mod_feedback_[1])
663
      mod_feedback_test=!replace = by _ in $mod_feedback_
664
      !if cmd_new notin $mod_feedback_test
665
        mod_feedback_=!nospace $mod_feedback_&cmd=new
666
      !endif
667
      !if adm/doc isin $mod_feedback_ and job_read notin $mod_feedback_test
668
        mod_feedback_=$mod_feedback_&job=read
669
      !endif
670
      mod_feedback_tmp=!append line $mod_feedback_,$mod_feedback_lim,$mod_feedback_lim2 to $mod_feedback_tmp
671
    !next
672
    mod_feedback=!lines2rows $mod_feedback_tmp
4528 bpr 673
  !endif
7290 bpr 674
 
12312 bpr 675
  exo=$modif
676
  !if $activetest=0
677
    update_content=$D_\
23 reyssat 678
$p_\
679
$mod_require\
680
$mod_weight\
681
$mod_title\
682
$mod_desc\
1969 guerimand 683
$mod_dep\
4528 bpr 684
$mod_comment\
12316 bpr 685
$mod_feedback\
15763 guerimand 686
$mod_attribut\
687
$mod_indiv
12312 bpr 688
    update_field=0
689
    !read adm/class/update.exo
4864 bpr 690
 !else
12312 bpr 691
    !distribute lines 5\
7290 bpr 692
$mod_title into update_field,update_content
12312 bpr 693
    !read adm/class/update.exo
694
    !distribute lines 6\
7290 bpr 695
$mod_desc into update_field,update_content
12312 bpr 696
    !read adm/class/update.exo
697
    !distribute lines 8\
7290 bpr 698
$mod_comment into update_field,update_content
12312 bpr 699
    !read adm/class/update.exo
700
    !distribute lines 9\
7290 bpr 701
$mod_feedback into update_field,update_content
12312 bpr 702
    !read adm/class/update.exo
12316 bpr 703
    !distribute lines 10\
704
$mod_attribut into update_field,update_content
705
    !read adm/class/update.exo
12312 bpr 706
  !endif
7290 bpr 707
 
12316 bpr 708
  !distribute items $ into mod_title,mod_desc,mod_weight,mod_require,mod_dep,\
15763 guerimand 709
    mod_comment,mod_feedback,mod_attribut,mod_indiv
23 reyssat 710
!endif
711
 
712
!if $[$activetest]=0
12312 bpr 713
  erasable=yes
714
  scnt=!recordcnt wimshome/log/classes/$wims_class/sheets/.sheets
715
  !for s=$sheet+1 to $scnt
716
    l=!record $s of wimshome/log/classes/$wims_class/sheets/.sheets
717
    l=!line 1 of $l
718
    !if $l>0
719
      erasable=no
720
    !endif
721
  !next s
23 reyssat 722
!endif
723
 
3245 guerimand 724
!if $back=1 and $error=$empty
12312 bpr 725
  !restart module=home
7020 bpr 726
!endif