Subversion Repositories wimsdev

Rev

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