-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTODO
3350 lines (2388 loc) · 155 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1----------------------------------------------------------
From Liviu Lalescu:
These are some rather technical problems, for developers, referring to some possible improvements in the generation code:
In generate.cpp, improve the stack memory for variables which are using int[MAX_DAYS_PER_WEEK][MAX_HOURS_PER_DAY]
and int[MAX_HOURS_PER_WEEK] (but be careful, I tried this and it seemed to slow down the generation.)
In the initial order, in nIncompatible, consider also teachers(students)intervalMaxDaysPerWeek, like in teacherMaxDaysPerWeek
Make students max gaps per day perfect. This is very difficult/complicated. Any bug/mistake would be critical.
2----------------------------------------------------------
From Volker Dirr:
Disable menus and shortcuts (in FET main form) if they are currently not
usable. For example: Disable teacher constraints, if there is no teacher
in the dataset. Disable space constraints if there is no room in the
dataset. (Disable means: Just make them unavailable/gray. Don't hide
them. Do it like OpenOffice.org, Firefox, etc.)
3----------------------------DONE--------------------------
From Horatiu Halmajan:
DONE since FET-5.20.0 on 27 September 2013 --> Students set max days per week
(but you can use for the moment students (set) interval max days per week). <--DONE
Max gaps constraints with weight under 100% (this is very difficult)
4----------------------------------------------------------
From Horatiu Halmajan:
Horatiu:
I met a situation: a teacher asks for maximum 2 working days, but these
days should not be consecutive.
Is there a way to implement it in .fet?
The only (manual) way I could think of, is to set the teacher as
unavailable on Tuesdays and Thursdays, thus leaving him available on
Monday, Wednesday and Friday (any two of these are unconsecutive).
Any other ideas...?
Liviu:
I have another idea: add a dummy activity for this teacher, split into 2
per
week, min n days = 2, with 100%. You just need to take care that this
teacher
has place for these dummy activities (enough slots in the day) and to
consider
these dummy activities as possible gaps, so if teacher has max gaps 2 then
make max gaps for him 0.
Horatiu:
For my case, the second idea worked perfectly, as my teacher does not accept
gaps.
I have also "played" with the first with the first idea, as it seems to be
the most un-restrictive one. It also worked. I tried it three times, and in
all three situations at least one of the dummy activities was the first or
the last activity for the teacher's day. So, there is a chance that the
teacher would end up with only one gap.
Which leads me to a suggestion: An activity end (or starts) a teacher's day.
Similar to "an activity ends students's day".
5----------------------------------------------------------
From daviodan:
I will refer to sample_Brazil_more_difficult_max_2_gaps_for_teachers.fet
1. In the FET activities dialog there exist more filters after the teacher, group, etc.
If we choose for instance the subject "Math" and we do the filtering also after the name of
the teacher, then the list of the filter should contain only the name: Bruna,Silvania,Wellington,
because only these teach Maths. In the present moment the filter contains the list of all teachers.
The same for all the other filters.
2. In the teachers' statistics dialog, when we click a teacher, there should appear in the right
in a box all the constraints for this teacher inputted by that moment.
6----------------------------------------------------------
From Volker Dirr:
for code cleanup always use the same style:
some constraint c have
c->teacher_ID
others have
c->teacher_Index
7----------------------------------------------------------
From Azu Boba (modified/updated by Liviu Lalescu):
About timetable view teachers: ... I propose is to
have fixed cell height and width so it would be easier to comprehend and
pinpoint what you see when switching between teachers.
We have a 3D table (teachers/days/hours). I propose to
add a new view named e.g. "View (day for teachers)" (of course you keep
the "View (teachers)" too). This view will be similar to "View
(teachers)" but it will have all the days as selectable tabs on the top.
The 2D table it will display below the tabs would be the Teachers/Hours
view for the day selected. The buttons and functionality will be the
same as in the case of "View (teachers)". ...
The best part though is that with this
new View you will be able to better comprehend/modify the schedule in a
day by day base...
You might also want to consider adding an additional flag when locking
an activity. This flag might be called "Save data and timetable flag"
and would be set when an activity is locked automatically during the
"Save data+timetable as..." procedure. Why? Mainly, because when you
want to unlock e.g. a specific day in a "Save data+timetable as..."
saved timetable you do not want to unlock all the activities of the day;
you want unlocked only the ones that were locked by the "Save
data+timetable as..." process. There are activities that the schedule
creator manually locked them before FET generated the table (e.g. a
specific lesson needs to happen only on a specific day and time). By
selecting and unlocking a whole day as things are now you unlock these
activities too! This means that if the schedule creator doesn't pay
enough attention he might mistakenly create a schedule with activities
set at undesired hours. The solution I propose to this is to toggle
between locked/unlocked only the activities that have the "Save data and
timetable flag" set. To unlock the manually locked ones the user would
have to do it in a different/manual way (see the paragraph below about
the editable "Details" box) or even better be asked with a message box
if he wants to unlock the manually locked activities too.
I also mentioned that in order to remove a teacher from a specific day
(because he is ill or on a leave) I have to go to "View (teachers)" and
pinpoint all the activities assigned to the teacher for this day
(checking their IDs from the "Details" text box and then writing them
down in notepad). Then I close this view and go to the "Activities"
list, find the specific activities and uncheck "Active" for them. This
is a little annoying and a prone to errors procedure especially if there
are more than one teachers missing. What I thought as a solution for
this has to do with the "Details" text box on the "View (teachers)". It
would be great if it wasn't just a simple text box but an editable
interface for every changeable value. What I have in mind is to split
the "Details" into two parts; the upper part would include all the non
editable values while the lower part all the editable ones. Right now
for me, only the "Active" and "locked time" values are worth of being
editable, so simple check boxes would suffice but someone else might
want other values editable too (e.g. Total number of students, duration)
or new values worth being editable might be added in the future, so it's
a good thing to have.
Last but not least (and certainly the most difficult modification) it
would be great if you could drag and drop activities in the "View
(teachers)" and "View (day for teachers)" GUIs. Of course by doing so
you create conflicts and this will need handling. But I think all the
before mentioned changes are enough work for you now and I need to think
this a little more to come up with a viable solution.
8----------------------------------------------------------
From Marco Barsotti:
The only thing that I would like to find in a future version of FET is the
ability 1) to find when a combination of constraints is impossible to
respect. 2) to recognize which constraints generate a bottleneck, where FET
stand by searching the little hole where to pass and go on, placing
activities.
9----------------------------------------------------------
From Saad (on forum):
Manual improvements of the timetable.
10---------------------------------------------------------
From Volker Dirr:
Change remove redundant to deactivate redundant.
11---------------------------------------------------------
From Volker Dirr
I got reports from a user that he had trouble to find the correct
output files today, because there were so many files in the directory.
just maybe:
maybe write only the index file into the result directory. then make 3
subdirectories. one subdirectory with all html files, one with all xml
files and one with all csv files. so we don't need the export menu
anymore, because it is exported always by default and the directory is a
little bit more tidy.
12---------------------------------------------------------
From Volker Dirr
We have:
1. category: 3-4 classes
2. category: 5 courses
3. category: 4 religions (always same time, so i didn't enter it)
4. category: several working groups (after noon lesson, so i add them
manualy)
Now have a closer look:
4 classes * 5 courses * 4 religion is already 80 subgroubs.
so if i also add working groups (lets say 5, but there are more!)
then we have total 400 subgroups.
that is stupid, because i have only around 100 students in a year!
i think in that case it is wise to enter data not in groups, add
students
individual.
that is like high school do it.
- add a year.
- add groups (NOT with split year, but same names)
- add a group ALL STUDENTS.
- add subgroup with all students names into ALL STUDENTS.
- now we need a table to every year:
- horizontal are the division names (must not be group names, but
can)
- vertical must be the student names
- every cell is a bool checkbox
no the timetablemaker can check every single student. of yourse by
checking the studentsname must be added as subgroup into that group.
13-------------------------DONE----------------------------
From Maciej Deorowicz:
DONE --> Possibility to disable contraint without removing it.
Such 'Active' checkbox like on activities dialog. <--DONE
14---------------------------------------------------------
From more users:
Multiple processor - split multiple timetable generation on multiple processors
15---------------------------------------------------------
From Volker Dirr
how about displaying "minimum home
room hours" and maybe also "maximum special room hours" in the teacher
statistics? because a timetable maker (maybe) need that for his
planning.
16---------------------------------------------------------
From Danail Traichev:
You see, this division in subgroups is very complicated - to understand
and to add by hand. And at the end you came with a lot of subgroups that
have only formal sense, for the algorithm, but are visible in dialogs,
in the final chart and everywhere. It should not be like this. One will
have to divide years in wizard-like dialog, with questions:
1. How many classes you have for this year?
2. Define courses for which students from this year study together
3. Which of these curses start at same time. Group them by this criteria
4. Define from which classes came students for these courses. Whole
class is caming, or only part of it? Where other part goes - have rest,
or has another activity, and if yes - which one?
5. Define teacher that is teaching in every course.
This is a draft, but some wizard like this will save *a lot of*
mistakes, and will make program much more user friendly. Then you can
add internal groups, but not show them to users, or at least show if
they set some option. Show them only groups and subgroups that they need
to put in activities, and show these same in final html output.
This is my opinion of user in trouble :-)
Second set:
1. Ability to select more than one constraint and delete it, or set its
weight
2. Ability to disable all informative and warning messages, or to display
them in status bar or in another log window.
3. Option to remember last focused control in dialogs - very useful if
you want by keyboard to open many constraints and change their weight
4. Constraint "longest gap is n hours"
5. A way to save last generated timetable and reopen it again (for example
for printing it with different html level, or for viewing it.
6. Ability to show free teachers for every position in students and
teachers timetable - very useful if you want to find somebody to replace you
17---------------------------------------------------------
From my80s:
also in program we have
a matrix with days x hours = n x n
if this is allocated from some activity it should get error in
precomputing in real time
if we put another activity 100% in same cell
that would take less time to find mistakes
18---------------------------------------------------------
From my80s:
export as odt (OpenOffice.org) table (spreadsheet)
19---------------------------------------------------------
From Danail Traichev:
If you make it how it is now with years, groups and subgroups, it will not
be complicated for entering and even will not need change in most
constraint dialogs. What I mean - define "groups of subjects", and allow
"group of subjects" name to be used in every place where subject can be
used. Much like it is now with student sets - both student years, groups
and subgroups are placed in one control and added from one place.
But of course, I don't know how this will fit with FET internals. And FET
is fine even without this. It simple will make entering constraints a bit
easy. The other posibility is if every activity constraint dialog has a
posibility to select multiple activities, and to filter them by "subject
group", or at least by "selected subjects". That will make entering
constraints like in my case easy.
20---------------------------------------------------------
From Volker Dirr:
maybe it's possible to do Form::setLayoutDirection(Form::LeftToRight) only to the filename or language in menu.
(bracket bug in Arabic translation)
21---------------------------------------------------------
From Volker Dirr:
I saw at Les's timetable, that he called hour==period.
also at wikipedia it´s called period. (see School_timetables chapter, terminology)
I am not sure about that. in German we have the also the word "periode",
but we don´t use it for timetables. we say hour.
but maybe that´s just colloquial language. this colloquial language is ok,
because the schools have 1 schoolhour (45 minutes) or 2 schoolhours (90
minutes).
but maybe it´s better to use also the word periode, because by this
schools with 60 minutes activities (2 periods) and 90 minutes activities
(3 periods) don´t get trouble with the word hour (because it entrap /
ensnare /
inveigle so write 1 hour and 1,5 hour. but "hour" is an integer values!
but on the other hand people (maybe) will not understand immediately the
word period.
so maybe we should write "period (hour)".
22---------------------------------------------------------
From Volker Dirr:
maybe change "current constaint" into "description", "constraint
information", "description of the selected constraint", ... (very very low
priority, maybe one day)
23---------------------------------------------------------
From Volker Dirr, regarding translation:
1. maybe it's better to be more exact. example: phrases "min hour" better "min hour per day"
2. sometimes the english version isn't always the same.
sometimes you wrote "add current activity"
sometimes you wrote "add activity"
sometimes you wrote "add current"
sometimes you wrote "add"
i think it should always be the same.
also sentence like: "You have to know that this constraint ..."
should only be: "This contraint ..."
3. maybe "start" should be "generate" in the generateform.
4. - if you wrote one or more sentences, please always end with ., ! or ?.
- sometimes you wrote "students subgroups", i think you just need to write
"subgroups", because teachers have no subgroups.
- all "add", "modify", and "remove", "close" phrases should only contain
this word. no more words like "current" or "group". maybe wrote them with
QObject, because nearly every dialog have this 4 phrases.
5. i think we should think and write a small definition note for english
phrases.
it looks like in a few times this terms are not always used same/correct:
hour
duration
period
lesson
activity
when we write a small definition note, then we have to care about this:
words must also be correct for schools that don't use "hours" as one time
hour.
in Germany one school hour is 45 minutes. but that's no problem. we use the
same words for that.
but i remember a letter, a user wrote that he has 60
minutes hours and 90 minutes hours. so he defined 30 minutes "hours" and
set duration == 2 or duration == 3 to the activities.
so the definition and use of hour, duration, period and lesson must also
match to this.
please let us first a small definition not for this terms:
hour, duration, periode, lesson, activity
this will help if we add new or modify old english phrases and it will
also help translators.
6. maybe: no brackets in "view (students)", "view (teachers)", and "view
(rooms)".
7. and it looks like we shouldn't use the word "lesson".
in the most phases it's better to replace "lessons" by "subactivities"
8. that is also why i already asked you to change english translations,
because some phrases can be shorten.
for example all sentences with "you", "current" or "that mean" can be
shorten (in english and german).
example:
"If you insert current group to current year, that means that some years
share the same group (overlap)"
shorten version:
"Some years share this group if it's inserted."
9. and a maybe other thing. example:
view in fet-mainform.
there is "Time contraints (techers)".
and in this folder is for example "Teachers max gaps per Week".
i recommend to write just "Max gaps per Week".
Reason:
- it's shorter
- it's clear that it "teachers" contraint, because it´s in that folder
the English version looks fine, because you are always possible to write
first "teachers". (except on min days between activities. You
are not able to write Activities first.)
In German translation it is much more difficult the write "teacher" always
first. even including the word teacher is a much longer phrases than in
english. it will be much easier and nice, if we don't write teacher here.
maybe the same problem in other languages.
24-------------------------DONE----------------------------
From Volker Dirr:
DONE ---> how about this:
if you go to data->activities
the you have 4 different filters where you can choose something.
for example i choose filter subject "DE". now can see all "DE" activities
at the left side. so it is ok like it is, or i see a missing one. if i see
a missing one, then of course i want to add a subject "DE". so this
subject should be default if i press add.
so the function should have four parameters (the four filters),
defaultsetting in the data->activities->add screen should have be the
filters of data->activities. <--- DONE
25---------------------------------------------------------
From Volker Dirr:
For multiple generation:
Maybe add a checkbox "shutdown after job is done".
26---------------------------------------------------------
(see also entry #194)
From Volker Dirr:
long time goal: code cover planning.
27--------------------------------------------------------
From bmlahcen13:
for that i advice to start thinking from now to
- enhance the UI
- use Database
- add web client
- use UML models
and also for the structure, use "int id", this will
enhance both runtime and will reduce the storage,
because in the FET xml files, for example to store and
activity, you have to write again the name of the
subject, teacher, students and also the day and time
slot in a solution. the same happens in time and space
constraints, these 3 entities represent a big
percentage of the size of the file, so you use int IDs
and not names you will certainly gain a lot of space
and also a better execution time, i know, as you said,
that the internal structure uses int id but for
loading and saving xml files and searching, the usage
of strings delays them.
Liviu: maybe it would be better to compress the input file
28--------------------------------------------------------
From more users:
Improve the user interface - add help and wizard.
29--------------------------------------------------------
From Michael Towers:
What about a rewrite of the front end in a scripting language - e.g. Python? It might speed
development and help debugging. It could also make maintenance of the code easier.
Is there some way of doing "interactive" timetable development? The human would make
suggestions, or place some items, run the program, maybe move a few things around, run the
program again ...
A clear and clean interface to your engine as an entity separate from the
input/output might be useful.
It seems to me, it should be possible (but of course only after a lot of work!) to have
a beautiful manual timetable editor (which can also print the various timetables, and
perhaps save the data sets and results in a database) with an interface to an automatic
timetable scheduler which can be used to speed up the work."
30--------------------------------------------------------
From TheStar:
A constraint to think about is that some activities, and I suspect 'normal school management'
talks about teachers as in "One teacher per x students".
In the HSC year here, it's about one teacher per 26 students (or something like that).
At a recent excursion, it was one teacher per 10 students. Hope that helps :)
Liviu Lalescu: Of course, you can add each student. I could have implemented this solution.
But I doubt that the user has such patience.
You could always autogenerate the students...
"Quick-Build Students"
[Properties]
[Number]
(Build)
And it will generate students with name: AutoGen-11231, ID: 11231, and the like.
The user could then 'select' groups of these students... and... (Just an idea)
31--------------------------------------------------------
From Abdul Hadi Kamel:
Do you have a plan in mind to upgrade the existing fet from standalone
application to a client-server/web-based database oriented type of
application in the future. This is because the current fet is quite limited
especially in terms of timetable data which cannot be keyed-in /view s
amongs several users at the same time. This will cause hardship because the
people involved in making the class timetable in universities normally
consist of several key persons from different departments. Using standalone
application by several persons sometimes make data consolidation process
among departments become difficult and error-prone
I think it will be better if the FET can support a single timetable data
repository (using client-server model) in a database that can be input/view
by several users simultaneously.
32---------------------------------------------------------
From Volker Dirr:
If you think that other people don't like this default constaint how about
making a menu "default settings". there you can add "language" and my
default wish. maybe there are other parameters, that can be set in this
settings. I guess that there a people who want set duration to 2 or 4 by
default.
33---------------------------------------------------------
From kdsayang
I would like to see FET generate the time table in
1. certain amount of time for each time table
2. with some setting about the remaining weight soft conflicts
3. generate multiple variants
For example
(A) rules are
(i) the user select to generate 10 minutes time limit for each time table
(ii) user set 0 for remaining weight soft conflicts
(iii) the user select 10 variants
the outcome
(B)
(i) the time table finished and it has generate 10 time table that concur with 0 remaining soft conflicts for each time table
(ii) the time table finish and it only manage to get 5 variants from 0 remaining weight soft conflicts
(iii) the time table finish BUT it don't manage to generate any variants with 0 remaining weight soft conflicts
refer to (B)(iii)
the user can change
(i) longer run time to generate time table (with crossing finger) hehe... Others setting is not change
(ii) longer run time to generate time table with increasing value for remaining soft conflicts (0.5, 1.0, 1.5 etc)
As you can see in timetable --> generate multiple variants, features in (A)(i) and (A)(iii) are already there. I hope that you
can figure it out on how to implement the feature in (A)(ii). It would be marvelous.
34---------------------------------------------------------
From kdsayang
If a user want to add "an activity have a set of preferred rooms", the user will need to click one
by one to add right???... So, I would like to suggest that we group them like when user want to add
an "activity". There (activity), we can select by years, groups and subgroup for students. Instead of
clicking all the student groups in years 1, user can just click year 1 to include them all into students....
For example for rooms (room group then room subgroup)
HALL
Hall A
Hall B
Hall C
TUTORIAL
A-A1
A-A2
B-A1
COMPUTER LAB
Lab 1
Lab 2
Lab 3
So when user want to add "an activity have a set of preferred rooms" for all the tutorial room, instead
of clicking 20 tutorial room one by one, user just click the group that is Tutorial. Easy right???
35---------------------------------------------------------
From kdsayang
What I meant is in Data --> Time Constraints --> Teacher Time Constraints --> A Teachers not available time,
1. If you double clicked Afida,
2. It will show Afida not available time right.
3. Then if you want to change Sambilan not available time by choosing Teacher drop down menu, nothing happen. In fact, It still shows Afida not available time.
4. So, if you want to change Sambilan not available time, you have to clicked Cancel button first,
5. then double clicked Sambilan.
6. Now you can see that Sambilan not available time is updated.
My suggestion is that It will be better If FET can update to Sambilan from Afida in Step no 3.
36---------------------------------------------------------
From kdsayang
I have some other suggestion.
1. It will be GREAT if FET can be turn to tree structure. We can show/hide the structure
2. In the tree structure, we can use the copy, cut and paste to edit the subject, activities, etc in the tree structure
37---------------------------------------------------------
From kdsayang
If I want to change many teacher not available time, I need to add one by one although the teacher not available time is the SAME.
So, I suggest that you can add a set of teachers not available time. Same as rooms not available time feature.
38---------------------------------------------------------
From kdsayang
On current version, there is no group for subject and teacher. It is quite annoying if you have to look for certain subject X and teacher Y in that list. When the list grows bigger (let say 100), it's kinda hard because you have to find that lecture and subject in that 100 lists. Although the sorting is a good way to find the subject and teacher, IMHO maybe we can make groups in that teacher and subject section
For example I want to find teacher X and subject X. Teacher X is a teacher that teach Diploma IT student. So, I just search that teacher in Diploma IT group rather than searching 100 other list. Same as subject X.
This feature is needed if my/our/your university/school is a big one where teacher and subject are hundreds.
39---------------------------------------------------------
From Zsolt Udvari
We've created a timetable but the rooms aren't. So we do it by hand.
How can I change in FET the rooms simpler in a generated timetable?
The times are locked.
It would be the most simplier when I open e.g. the teachers timetable,
click on a activities and I can add room to this.
Liviu:
I'm sorry, but you'll have to add manually constraints activity preferred
room for each of the activities.
I am not sure I understood correctly the problem, if not, please excuse me
and explain more detailed.
Yes, imho you understand my problem. I hoped that there is a simpler
solution. So, maybe in the next releases would be nice: when a
timetable is generated, user can changes/sets the rooms (only the
activities without rooms of course) from the timetable (Timetable ->
Show teachers/students): you select an activity, you click a button
with "Assign room" and choose a room.
40---------------------------------------------------------
From Naji
Hopefully, FET's team can enhanced it to be able to export the xml data to database, that will facilitates the
output of the data and enables programmers to engage it with their programs.
41---------------------------------------------------------
From Massimo Mancini
This is a request for a new feature...
For Teachers and Subjects I like to use a brief description (BD), a code, and I optionally convert it to corresponding long description (LD) in the generated timetables (I refer to my current timetable procedures). So I need to define two new fields. Example:
Theacher: MANC, MANCINI
Subjects: MAT, MATEMATICA
I think that this can be achieved without any change to current interface, simply using the format above. Of course I want use the BD only in defining activities and when I have to specify subject and Teacher.
I wish to output the brief (only BD) or complete (LD) timetables
42---------------------------------------------------------
From jaspal
INSTRUCTION FOR ALLOTMENT OF SUBSITUTION/ ARANGEMENT PERIODS
On a particular day, faculty can be on leave, or may be busy with some
other work hence unable to take the assigned classes. Thus, the classes
taken by those faculty members are to be assigned to some other faculty
members.
Facility of keeping track of back log periods due to absence or
unavailability are to be recorded year and group wise in the software.
Also extra periods taken by the faculty has to be recorded year and group
wise.
43---------------------------------------------------------
From Bingen
For the internal organization of my school, it's convenient to have a general timetable for each
group, A and B, and our timetabling software gives it. But as you observed, the footnote legend
style it's not probably the best, as it's a little bit difficult to understand. I think in FET a good
solution could be to be able to define a group of activities for a group (for example A, or even the whole
year A and B), and then subdivide this group of activities in many subactivities, each of them
with its own teacher and classroom (I have read the term "subactivity" in the manual, but I
can't find a definition of it, nor find it in FET menus). So a group would be attending many
activities at a time, which is not possible right now in FET. Maybe if it represents a structural
problem FET could define internally subgroups, but being transparent for the user. This activity
group should have a user defined name to identify (for example "Optative 1"). And then inside,
each subactivity would have the real subject ("French language", "Arts", etc.). In this way the
user would avoid to define such a great number of subgoups, and in the teacher's timetable
everything would appear right and clear, with no reference to the activity group, just to his own
subactivity, and with information of room besides of the group (opposed to the pseudoactivity
solution to book the room).
In the group timetable, the common activities would appear as always, and the others would appear
with the activity group name. Then parallel timetables with blanks in the common activities and
one of the subactivities for the rest could be printed . So we would need as much timetables as
the maximum number of subactivities of the largest activity group. Maybe the subactivities could
be diplayed in couples to avoid many timetables, as it happens now with group timetables and
"same day+hour" activities.
These parallel timetables could be hanged up on the classroom board, and, of course, each pupil
should know which of the subactivities has to attend. I think this display should be clearer than
the footnote legend style. I don't know if I have explained it clear enough, but if not I could
send a spreadsheet with an example.
Also, with this solution, if no activity group are defined all works as before, so we would avoid
the problem commented by Liviu of people not needing it.
44-------DONE since FET-5.19.0-(10 January 2013)-----------
From Zsolt Udvari:
DONE --> command line version which needs no X server <--DONE
45---------------------------------------------------------
From Massimo Mancini:
SUGGESTION BY: Massimo Mancini
WHERE: add activity form
WHAT: a check box to lock the total duration of activity
WHY: to introduce an automatic check and alert on the sum of durations of
single subactivities (currently the total duration reflect always the sum,
so if you alter the single duration, FET recompute the total, this can be
what you want or maybe not)
WHEN: all new future are always ASAP :-D (the programmer says...)
FURTHER DEVELOPMENTS: a templates system for automatic generation of activity based
on year and subjects expected for a class of that year (normal italian
situation, abroad I don't know ;-)
46---------------------------------------------------------
From Bingen:
- In my school the timetable is divided in morning (from 8:00 to 14:30h) and afternoon (15:00 to 17:00h). In the morning there's a break from 11:00 to 11:30h.
I have defined this break as an hour of the timetable, but not allowing activities for any set of students in this slot. The reason is to plan the surveillance
of the teachers in this slot. There must be always 2 teachers looking after the pupils during this period, so I define activities without students.
The problem is that if a teacher does not have surveillance at break time, it should not count as a gap. If I define this slot as break in "Misc time constraints"
then I can not define the surveillance activities.
- We try that all the teachers work maximum 2 afternoons per week. This has been easy to define with "All teachers work in an hourly interval max days per week".
But we try also that teachers who work two days per week in the afternoon to have a free morning. I don't know how to define this situation.
47---------------------------------------------------------
From T. Renganathan:
2) You can give a provision for the user to perform his own sorting of years,
teachers, etc., for e.g., using dragging and dropping.
3) You can include a provision for multiple selection of subjects, teachers,
activities, etc., for example using Ctrl or Shift key. This will especially be useful for deleting
multiple entries.
48---------------------------------------------------------
From Volker Dirr:
Volker:
if i am in FET->Data->Subjects
i can't see at the right side all constraints.
in my latest samplefiles for example the "a set of subactivities has a
set
of preferd time slots" is missing to that subject.
also in FET->Data->Activity Tags are not all constraints displayed.
Liviu:
Yes, I know, because these are related to activities. I chose not to show them.
Volker:
please add in TODO. i think this is a nice feature we should not forgot.
Liviu:
I thought about your proposal. I think it cannot be done and I know the reasons why I didn't do that:
a constraint activities preferred starting times has subject "" or specified. If it is "", then it is for
all subjects. So, I should write all constraints of this type with subject "" for each subject. But this
is not correct. A constraint might have a teacher who doesn't have this subject.
49---------------------------------------------------------
From Volker Dirr:
by the way we should add a new tests before generating a timetable:
if 2 activities are grouped, then turn of min n day constraint of that
activities.
if 2 activities are consecutive, turn of min n day.
if 2 activitives have same starting time, turn of min n day.
or the opposite, bedending on what has a higher weight.
maybe instead of turning of maybe just warn the user that this two
constraints are not acceptable at the same time and tell him he should
care about that problem first of all (by removing or reducing weight to
0%).
50---------------------------------------------------------
From Les W. Johnstone
Hi Liviu,
I'm into the thick of it again scheduling...
now working on two different schools...
Sacred Heart College is not a problem since they use a five day blocked
schedule. Saint John's College though is a slightly different problem...
They have a five day AB schedule...
which means I entered two activity groups... one for week one and one for
week two and used different activity tags... w1 and w2 to keep things
separate, with specific rules of placement of w1 in Week1 and w2 in week
2...
However, your spacing feature doesn't work ... not on more than five
days.... not sure it would be possible to extend your logic or not... (what
do you think?)
The other thing I've noticed is a bit of an annoyance concerning
constraints... when you are trying to get a schedule to work you push in
constraints however, on slight modification of activities (concerning
resources etc.) sometimes, what was once soluble becomes insoluble.
Usually this means you have to relax constraints in order to get the
schedule soluble... some (most) can be set to a 0% weight which means they
are ineffective.. then later you can turn them on again... however, some
rules are only acceptable at 100%... which means you need to drop them from
the constraint set...
but the constraint may be important and be forgotten to reimplement...
could you set an active/inactive flag for constraints like you have for
activities... so it can later be reimplemented?
51---------------------------------------------------------
From Chafik Graiguer:
Liviu:
There is no easy way to remove a component.
Chafik Graiguer:
well
to re-use last year .fet file,
what about
-removing all activities at once, so Data keeps only subjects, teachers and groups ?
or
- removing all teachers from all activities (because teachers dont teach the same groups every year)
or
- removing all groups from all activities
Liviu:
I just looked in the sources and it seems that in statistics I only count active activities. Please verify that, though.
Chafik Graiguer:
yes !
and I spend nealy ONE hour counting periods for teacher Eng1!!
in Statistics, teacher Eng1 has only 20 hours
in Data ---> activities, I count 21 hours :-)) for him
finaly, I realised that I has deactivted one hour component by mistake
so, is it possible to add this line into activity window:
Quote:
Activity:
Teacher=fr4
Subject=fr
Students=2Lg -1
Id=1
Activity group id=1
Duration=1
Total duration=5
Total active: XX
Active: yes
Total number of students=0
-----------addition:
Chafik Graiguer:
- removing all groups from all activities
sorry, removing groups does not make sense, because, activities should keep group's information
Groups have the same set of activities every year
So the most important is:
-removing all activities at once, so Data keeps only subjects, teachers and groups ?
but this is not so good, as we will lost time and space constraints related to those activities
So, the best of the best is:
- removing all teachers from all activities (because teachers don't teach the same groups every year)
so we can re-assign new teachers to groups
52---------------------------------------------------------
From Massimo Mancini:
Consider this:
1. I inspect the activities of a teacher (via filter on teacher)
2. I see the lack of an activity (or I delete one or more filtered
activities because I want redefine them)
3. I push the add buttom... why the subjects aren't
only those that teacher teach?
A more general question... why not associate in advance the teacher with
his students and with the subject he teaches? In this way I could obtain some
type of automatic filter.
If I add an activities of mines I select MANC but MANC teach MAT in GEO_1B,
GEO_2B, GEO_3B and IGE_1A. The program should be aware of this.
53---------------------------------------------------------
From Massimo Mancini:
When I review generated timetable with view (teachers) menu option I can lock/unlock
the placed activities and this is ok. But why I cannot do the same for
empty cell? The meaning of locking an empty cell should be to add/modify a
Teacher not available constraint or something that have the
same effect... so a new generation leaves those positions untouched.
A I said I would to lock/unlock some students or some teacher and
recalculate the rest.
54---------------------------------------------------------
From Frans Cilliers:
About campuses: What I thought is the following. Currently you have min
gaps between buildings and maximum building changes per day. If this can
also be done for campuses, for example minimum gaps between campuses for
teachers. (An extra constraint but it will probably be to difficult as
you mentioned)
55---------------------------------------------------------
From K:
Maybe you remember my post from April (many teachers – many groups). Since
than in our team we’ve been trying to adapt our internal solutions to use
FET (it is really your great success).
We tried to use FET to solve timetable for a pretty big plan and by the
way we had to solve a few problems and got some experiences as an
end-users. Maybe it would be interesting also for you.
...
The third problem was to export data from the program we use for planning
(a database application) to FET and than import data back. I pre-assumed I must
enter data to the FET automatically as the number of activities and
constraints is too high to handle them manually. Also a plan generated by
FET had to be automatically imported to our database. I used FET
procedures to import teachers, students and rooms. I also tried to use
FET import procedure for activities too but I had a problem with IDs. FET
generate its own ids but I needed to use my own ones to keep link between
data in the database with those in the FET so finally I decided to
generate input file instead. Fortunately FET doesn’t change ids and
generate perfect XML file with generated plan and
thanks to known ids I could import data from FET to our database with no
problem.
The next point. Due to number of constraints we have in our database I
used similar procedure to generate a part of FET input file with teacher
time constraints and room time constraints. Hence I have a question.
Would it be possible to include file path into FET input file to keep
data in a couple of separate files as working with 100 000 lines file is
not fun?
We prepared the whole procedure for timetabling with FET. First we
planned (in the database program) activities for VIPs manually. To use FET
we also had to put into the timetable all activities where students from
one group could choose one activity from a several ones (languages and
some lectures) at the same time. That is why in the input files are so
many “permanently locked” activities and activities with many groups and
only 10 students to avoid conflicts with room capability (I used
<Activity_Tag>UL to mark them). Together with these activities we locked
a room by preferred_room constraint. After that I included prepared data
to the FET input file and after all we started to generate
the plan. Fortunately FET is smart enough to find mistakes in locked
activities (room and time conflicts) so than we removed conflicts for
already planned activities.
By the way – during reading the input file I noticed the error
that rises when the number between tags:
<Number_of_Not_Available_Times>NUMBER</Number_of_Not_Available_Times>
was not exactly the same as the number of constraints in the file. Of
course it is not a bug. It never happens if user use FET to input