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 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898
|
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----------------------------------------------------------
From Horatiu Halmajan:
Students set max days per week (but you can use for the moment students (set) interval max days per week).
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 teache 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 enetr 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---------------------------------------------------------
From Maciej Deorowicz:
Possibility to disable contraint without removing it.
Such 'Active' checkbox like on activities dialog.
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 "peridode",
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---------------------------------------------------------
From Volker Dirr:
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.
25---------------------------------------------------------
From Volker Dirr:
For multiple generation:
Maybe add a checkbox "shutdown after job is done".
26---------------------------------------------------------
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
defautt 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---------------------------------------------------------
From Zsolt Udvari:
command line version which needs no X server
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 opposit, 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
constraints. But it forced me to count constraints during generating data
and shows that program is rather “sensitive”.
The first hint for other users is to start with minimum number of
constraints and if FET would generate the plan than thinking about adding
the next ones. In TODO file I found the suggestion of “possibility to
disable constraint without removing it. Such 'Active' checkbox like on
activities dialog”. I admit – it would be nice. Moreover finding a good
plan is just like using 10 knobs increasing one constraint and decreasing
the other so fast access to the constraints window is crucial. I suggest
to put “Time constraints” and “Room constraints” buttons also in the main
menu (or creating any other shortcuts) as these constraints are rather
deep in the menu.
The next suggestion is to change the interface for some constraints
(particularly wherever there is a long list). For instance for the
constraint Max day for a teacher per week if we have many teachers a
simple table like:
| Teacher Name | Max days|
| teacher 1 | n |
| teacher n | |
with a button “Save all changes” would be great. Now we have to enter
value for every teacher one by one in separate windows.
After setting constraints we tried to generate the next version of the
plan. We added more and more constraints (for instance WOLNE – dump
activities - free day for student or increasing max day for teacher) and
I was really surprised when FET coped with that. It took from about 1,5
minutes (almost no constraint) to over 20 minutes (with many constraints).
With too many constrains after
about 10 minutes when I saw no change in the number of placed activities
(neither up nor down) I cut simulation, removed some constraints and
started it over.
The second hint is not to change too many constraints in one simulation
as it may lead to impossible timetable and than it is difficult to say
which particular constraint was too much.
Of course there is a lot of work to do. For instance even when two
consecutive activities are placed at one day (the same group and the same
teacher) sometimes there are placed at different rooms what would force
them to needless changing room. I guess that FET is focused on fulfilling
constrains but not on optimizing timetable. Sometimes simple changing of
two activities makes plan better both for students and teachers. I think
that manually improving generated plan is faster than creating many many
more constraints and repeating simulations. And this is the third hint.
56---------------------------------------------------------
From Chafik Graiguer:
When a user click on Data ---> activities
he is presented with a list of all activities because filter fields are empty
all activities are listed based on Activity Id
Now, is it possible to a add sort feature like this
Sort by:
Teachers
Students
Duration
Subject
Act Id
So for example, if you select teachers, all activities will be listed alphapetically in a ascendent order
57---------------------------------------------------------
From Massimo Mancini:
In advanced lock/unlock I would lock/unlock on teachers basis (with pick up
the teacher from list of teachers) or on students groups basis (always from
a list) The lists are mentained from subsequent generations and saved with
data.
58---------------------------------------------------------
From Massimo Mancini:
I have another suggestion: an history file where you record all the actions
of the timetabler and theirs effects. If the history was visible in a a frame
in the View timetable forms, I would see scroll the messages without interruption
and with the opportunity to review them (please don't answer that is too
complicated... you can use a tab widget, a tab for the current situation
another for history... the right answer is: GREAT! I add it in TODO! ;-))).
In general an history file should be a great thing and the base for
undo/rollup features.
59---------------------------------------------------------
From George Milliotis:
I propose the ability to sort constraints by:
1. Type [so single ones - ones that you can't add twice - go to the top]
2. ID of activity
3. room / day
and so on
This could also be done for activities. If I add two activities for the
same subject, why do I need to have one at the bottom (id 200) and the
other at the top (id 5)?
BTW, I haven't used the menu once since I got this new version. I like
the basic concept of the shortcuts. If the dialogs were not modal I'd be
opening all sorts of windows and working much faster. If I could HIDE
buttons selectively I'd even be able to get the secretaries to do the
schedule and save ALL my time.
60--------------------------------------------------------
From Frans:
I refer to the Data menu, space constraints and say students, set of home rooms and then add.
In this box I select the students and then the individual venues.
If I for example already defined an activity tag for Large rooms, I want to add the activity tag
instead of the individual venues.
Now that I think again I doubt if it will be possible, because FET has to make a distiction between
general activity tags and "room" activity tags as the room activity tags must also appear in the rooms
list so that it can be selected. How will FET know this.
61--------------------------------------------------------
From Volker Dirr:
an other useful feature is:
modifying in settings the default min days constraint (for add activity).
because we nearly always use 100%, not 95%.
modifing later all to 100% isn't the best, because there are a few
activities with min n day = 0%.
62---------------------------------------------------------
From Frans:
I came across the following:
Let say one define the number of FET hours per day as 11. Now I enter preffered starting slots, not available constraints etc. and set the timetable.
Next I change the number of FET hours per day from 11 to 10 and try to generate again. A timetable is now impossible.
In changing the number FET hours from 11 to 10 the constraints were not automatically adjusted. I must now go to each constraint and change. Sometimes I had to remove the constraint and re-enter.
I just want to know it it must be like that or if FET cannot change the constraints automatically.
63---------------------------------------------------------
From Volker Dirr:
Our timetablemaker played a bit with FET. he done several changes in the
dataset, sadly he used the FET file with locked activities.
he tried to generated, but of course it failed, because of the changes in
dataset, but locked times/rooms.
Of course easy to solve, just remove all locking constraint.
I tried with the unlock all activities feature, but it was not possible,
because FET complains it must be generated first. but why? can't we unlock
even it is not generated?
(yes, i know i can remove constraints manualy. i just mean: unlocking a
special day and unlocking all activities is possible, even if table is not
generated.)
64---------------------------------------------------------
From aliponte:
An activity tag can be assigned the property not to count the underlying activities.
Please consider also this flag to affect the constraints with "days". A pseudo activity should not increase the number of days (if it is the only
activity of a day). A pseudo activity should be "invisible" for all countings concerning constraints, and for countings concerning statistics (teachers, students, subjects).
65---------------------------------------------------------
From aliponte:
There are many suggestions from FET users to improve FET's UI. It will be nearly impossible to find a UI that meets everybody's needs, I know. But let me just present, what was confusing me for a while. Maybe I'm not the only one.
Dialog "Modify activity":
Changing the state of the check box "Active" does not change the active/passive state of all subactivities that belong to the same activity. It affects only the single subactivity that shows in the tab (= the one that has been highlighted bevor the dialog was opened). If I want to activate the whole activity I have to click through all of the tabs. (It took some time until I understood this.)
Since there are two dialogs, one for activities and one for subactivities the (novice) user does not expect the possibility of editing individual subactivity properties in the activities dialog (because individual activation and individual duration of subactivities can be chosen in the subactivities dialog).
By the way, is it really necessary to have two dialogs? I could imagine a check box "subactivity only" in a common dialog for both, activities and subactivities. This would make this comment obsolete.
66---------------------------------------------------------
From Chafik Graiguer:
-Min hours daily with an activity tag (to count real activities only leaving pseudo activities out of count)
-Min hours continuously with an activity tag
67---------------------------------------------------------
From Gert Veltink:
I would be very pleased, if in a future version it would be possible to specify the number of students for an activity as an extra column in the activities.csv.
Rationale: I mainly use FET for planning examinations. In this setting the number of calculated participants and actual participants differs significantly, because students have to repeat examinations or do not register for examinations.
68---------------------------------------------------------
From Mr Robo:
In the Time tab, Break button, leading to the dialog to set up break times... At the moment, I set up one break time constraint that has morning breaks and lunch breaks combined.
If I set up two (one for break and one for lunch) and I could attach a label that would be displayed in the unavailable slots in the finished timetable, such as 'Break' or 'Lunch', it would save me having to edit each Student, Teacher and Room timetable before they can be printed, etc. It's quite manual at the moment because '-X-' is used throughout and I can't do a global search and replace.
69---------------------------------------------------------
From George Miliotis:
About the "Years", "Groups", "Subgroups" check boxes in add/modify activity and
modify subactivity dialogs:
I'd be more interested in FET actually remembering these settings
globally (not even per form) for each session, no need to actually store
to disk.
70---------------------------------------------------------
From Frans (on forum):
Frans:
I came across the following, it is possible that you know about this:
I generate a timetable with constraints such as minimum hours daily for a students set
Next from the data, students, groups or subgroup menu I deactivate all activities for one group. This group has the constraint minimum hours.
I generate again and then Fet- gives an error message and stops, namely you have too little activities to respect the constraint minimum hours ....
In other words I must go to minimum hours and delete the constraint. It is not deactivated automatically.
As said I do not know if it must be like this. Other constraints such as same starting time are automatically de-acticted.
Liviu:
It is normal to be like that, because it is hard to take care of such constraints, and because you don't deactivate a students set, but a set of activities. The constraint min hours daily is for a students set, not for a set of activities.
Frans:
I understand what you say, but I am not talking about deactivating activities. In my case however I had to deactivate a complete studens set and this one can only do from the data menu. In other words everything for a students set must be deactivated.
Studens go out to work in private practice for a few months. During that period they are not on campus and everythig must therefore be deactivated as another students set takes their place and must be scheduled.
If it was possible to deactivate everything only when one uses the data menu.
Liviu:
Yes, you are right in a way, but there are many problems which may appear if I do like you say, and the things are complicated.
For instance, user deactivates a students set's activities, then activates only one activity for this user. Or if there is an activity with more students sets, of which some are deactivated and some are activated. Or there might be a global constraint min hours daily for all students.
The perfect approach might be to add a flag to each teacher, subject, activity tag, students set -> active or not active.
It would be kind of tedious and difficult to change now, as it was not designed from the beginning.
71---------------------------------------------------------
From Jason (on guestbook):
Ask for new feature:
- Auto generated after allow user to manual adjust timetable (Drag and Drop in view timetable)
72---------------------------------------------------------
From Zsolt Udvari (on forum):
If I de-activity all activities of a whole year (student set), FET will not ignore "min hours daily" constraint.
So I've two suggestion immedi:
- when FET checks this (and similar) constraints, would tolerate this
- can deactivite the students set (and related activities, constraints, etc.)
73---------------------------------------------------------
From Zsolt Udvari (on forum):
It would be nice when can filter in activities list by "no teacher" and "no students".
74---------------------------------------------------------
From Zsolt Udvari (on forum):
It would be nice when can pair teachers with his/her subjects and can filter in the activity dialog.
So, what do I think? I'm teaching Math and Physics. So to my name can add these subjects and when I add a new activity and select Literature, my name will not shown, only those teachers who teaches Literature.
75---------------------------------------------------------
From Chafik Graiguer (on forum):
Clone activities or constraints:
Is it possible to clone activities for one student set to another?
Last year, Year 1S had 3 student sets
Now Two new student sets have been added
Student sets from same year have same activities and of course same time constraints
So how it is possible to do an activities Clone from 1S03 to both 1S04 and 1S05 with or without assigned teachers ?
76---------------------------------------------------------
From Zsolt Udvari (on forum):
Default settings per subject:
Is there any chance to make it? In my school the all "English" subject is 4 per week (and there are more similar subjects). So it would be nice, when I don't should set these settings (activities per week, tags).
77---------------------------------------------------------
From Chafik Graiguer (on forum):
Save button on Activity Planing Window:
For users working with activity planning window, they will probably spend most of the time on it
But this window is lacking a save button, so users have to close it from time to time to get access to FET main window to save work
Can a save button be added to activity planning window?
78---------------------------------------------------------
From Chafik Graiguer (on forum):
About constraint min gaps between a set of activities:
Now, how about applying this contraint globally? I mean every activities with subject (or tag) Math sould be 2 hours apart from an activity with subject (or tag) Physics?
Entering all activities, one by one is tedious
How it is easy/possible to add: min gaps between a set of activites with a tag?
or better:
Min gaps between two subjects/tag
79---------------------------------------------------------
From Chafik Graiguer (on forum):
Filter for modify multiple constraints at once:
In the min days between activities window
there is an option for: Modify multiple constraints at once
Is it possible to add a standard filter: teacher, student set, subject, tag ?
So I can multi-change only those activities with a given subject or teacher... etc?
80---------------------------------------------------------
From Chafik Graiguer (on forum):
Filter teachers:
Students are easily filtered because they are grouped using years then groups
So at Students set not available time window, we can, for example, apply unvailability to only one year, thus affecting groups under that year
We can also apply unvailability to group, thus affecting Subgroups under that group.
Unfortunately , teachers are treated either indivdually or totally (constraints for ALL teachers): ONE or ALL
Zsolt Udvari already wrote:
Quote:
It would be nice when can pair teachers with his/her subjects and can filter in the activity dialog.
So, what do I think? I'm teaching Math and Phisycs. So to my name can add these subjects and when I add a new activity and select Literature, my name will not shown, only those teachers who teaches Literature.
So it would be very practical, less time consuming, to treat teachers per groups based on
- Home subject
or
- any other artificial tag like :
-part_time_teachers,
- team teachers,
-..etc
81---------------------------------------------------------
From Chafik Graiguer (on forum):
More statistics after generation:
FET has a stastics menu
What about adding statistics after generation accessible from statistics menu
(for teachers and students sets as well)
- Total free days
- Total working days
- Total gaps
Because the quality of a timetable depends on overall total of free days and gap
82---------------------------------------------------------
From Valdo (on forum):
Conclusion: he has many teachers, and almost all should have max 2 gaps per week, with 2 exceptions, who may have more gaps. He
does not want to add manually that many constraints. So, he suggests that FET should add constraints for all teachers,
with a selected number of max gaps per week, and then the user can modify each one by hand.
83---------------------------------------------------------
From Massimo Mancini:
1. Constraint not available time slots for a teacher
2. I put a name in filter and I see there's any constraint of this kind on
that teacher
3. Then I press Add. I expect the teacher field filled with the name I used in
filter... but currently FET propose always the first teacher in list.
84---------------------------------------------------------
From Massimo Mancini and Chafik Graiguer:
Consider this:
1. the max num of hours for day is 5 for ALL teachers, the max num for teacher X is 3: this
works
2. the max num of hours for day is 4 for ALL teachers, the max num for teacher X is 5: this
NOT works as expected. FET simply refuse the exception. The exception does
not override the global in any case.
I remember we discussed this "strange" logic (imho an exception is an
exception and always override a global condition) last year, it seems that
the workaround is to manage this scenario using only individual constraints
(isn't it?), very tedious. If so I suggest a button in the form of global
constraint to automatically generate all the individual constraints one
needs.
From Chafik Graiguer (same subject):
My suggestion was not only about adding a teacher one by one
It is about get rid of double menu entries
For example, for Teachers and students, and for every constaint, FET has double entry like this:
-Max days per week for a teacher
-Max days per week for all teachers
-Min days per week for a teacher
-Main days per week for all teachers
...etc
My idea is to make a single entry for any constraint like this :
-Max days per week for teacher (s)
-Min days per week for teacher (s)
This has another advantage:
user will be presented by a window like described in my screenshot, where he can press Add all button
Now suppose, like user X, that I have 50 teachers or 50 student sets
I can easily add them all into Min days per week =5
then on the right pan double click on 5 teachers to deselect them before clicking Add constraint
Then add another Min days per week =3 for those 5 teachers !!
If we have tags for teachers (and rooms) it will even more easier
This concept is already used in FET in two places:
- Set all available, set all not available
- subject has a set of prefered rooms
85---------------------------------------------------------
From Massimo Mancini:
Consider the form that lists the constraint "teacher non available":
change the line format from DESC CONSTRAINT + TEACHER'S NAME to
TEACHER+CONSTRAINT or, better, codify description of constraint using some string of
fixed size like so:
HTNA - NAME .....
I know the problem of translation (you may omit the description at all, it is
useful only when you display ALL constraints), but I think that a code is less boring
than a long and incomplete description repeated at beginning of all lines.
86---------------------------------------------------------
From Andres Chandia (on forum):
Is there a way to tag teachers, for different purposes like, a group of teachers can only work in the morning, or an activity can only be given by a
teacher of certain group, etc.
87---------------------------------------------------------
From Massimo Mancini:
a problem that we discussed in the past is about the description of
constraints (specially in the list of constraints or in the list of
conflicts): they are too long.
You must well understand that the unlucky timetable maker need to see the
troubles at a glance: reading long sentences with absolutely redundant
parts is very difficult and time consuming.
This is a problem in english but the solution can be achieved also and only in
translations... (a buon intenditor...;-)
So in the following you will find an example of that I think is a good list.
Of course is only my opinion. But, trust me, is a useful one
----- NOW --------------------------------------------------
Conflitti lievi totali: 13.7
Elenco dei conflitti leggeri (in ordine decrescente):
Vincolo di tempo infranto Numero minimo di giorni tra attività: l'attività con id= 290 (I:PANS, M:FRA, S:AMM_1 B) è in conflitto con l'attività con id= 289 (I:PANS, M:FRA, S:AMM_1 B), essendo 1 giorni troppo vicine, nei giorni Martedì e Martedì, incremento dei conflitti= 0.99. Le attività sono collocate consecutive nell'orario, perchè hai scelto questa opzione nel caso che esse capitassero nello stesso giorno
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante DIRU il giorno Mercoledì durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante GADO il giorno Sabato durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante MALG il giorno Sabato durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante MESS il giorno Sabato durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante OSIO il giorno Lunedì durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante POLE il giorno Venerdì durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante PULI il giorno Mercoledì durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante RAPE il giorno Sabato durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo numero massimo 4 ore consecutive infranto per l'insegnante xAZ1 il giorno Sabato durata=5. Questo incrementa la conflittualità di 0.99
Vincolo di tempo infranto Numero minimo di giorni tra attività: l'attività con id= 416 (I:LUCH, M:DIR, S:IGE_2 C) è in conflitto con l'attività con id= 415 (I:LUCH, M:DIR, S:IGE_2 C), essendo 1 giorni troppo vicine, nei giorni Sabato e Sabato, incremento dei conflitti= 0.95. Le attività sono collocate consecutive nell'orario, perchè hai scelto questa opzione nel caso che esse capitassero nello stesso giorno
Vincolo di tempo infranto Numero minimo di giorni tra attività: l'attività con id= 521 (I:LUZZ, M:EAZ, S:IGE_5 A) è in conflitto con l'attività con id= 517 (I:LUZZ, M:EAZ, S:IGE_5 A), essendo 1 giorni troppo vicine, nei giorni Martedì e Martedì, incremento dei conflitti= 0.95. Le attività sono collocate consecutive nell'orario, perchè hai scelto questa opzione nel caso che esse capitassero nello stesso giorno
Vincolo di tempo infranto Numero minimo di giorni tra attività: l'attività con id= 617 (I:xAZ2, M:EAZ, S:IGE_3 B) è in conflitto con l'attività con id= 615 (I:xAZ2, M:EAZ, S:IGE_3 B), essendo 1 giorni troppo vicine, nei giorni Sabato e Sabato, incremento dei conflitti= 0.95. Le attività sono collocate consecutive nell'orario, perchè hai scelto questa opzione nel caso che esse capitassero nello stesso giorno
Vincolo di tempo infranto Numero minimo di giorni tra attività: l'attività con id= 718 (I:CARU, M:COS_DIS, S:GEO_3 A) è in conflitto con l'attività con id= 715 (I:CARU, M:COS_DIS, ChA:info4, S:GEO_3 A), essendo 1 giorni troppo vicine, nei giorni Sabato e Sabato, incremento dei conflitti= 0.95. Le attività sono collocate consecutive nell'orario, perchè hai scelto questa opzione nel caso che esse capitassero nello stesso giorno
----TOMORROW I HOPE ()IMHO)-------------------------------------------------
Conflitti lievi totali: 13.7
Elenco dei conflitti leggeri (in ordine decrescente):
VT: Num.min.gg, tra attiv.: AttID= 290 (I:PANS, M:FRA, S:AMM_1 B) vs. AttID= 289 (I:PANS, M:FRA, S:AMM_1 B): +1 Mar -Mar : +0.99
VT: Num.max. 4 h consec. : DIRU : Mer : 5 : +0.99
VT: Num.max. 4 h consec. : GADO : Sab : 5 : +0.99
VT: Num.max. 4 h consec. : MALG : Sab : 5 : +0.99
VT: Num.max. 4 h consec. : MESS : Sab : 5 : +0.99
VT: Num.max. 4 h consec. : OSIO : Lun : 5 : +0.99
VT: Num.max. 4 h consec. : POLE : Ven : 5 : +0.99
VT: Num.max. 4 h consec. : PULI : Mer : 5 : +0.99
VT: Num.max. 4 h consec. : RAPE : Sab : 5 : +0.99
VT: Num.max. 4 h consec. : xAZ1 : Sab : 5 : +0.99
VT: Num.min.gg, tra attiv.: id.416 (I:LUCH, M:DIR, S:IGE_2 C) / id.415 (I:LUCH, M:DIR, S:IGE_2 C): +1 Sab-Sab : +0.95
VT: Num.min.gg, tra attiv.: id.521 (I:LUZZ, M:EAZ, S:IGE_5 A) / id.517 (I:LUZZ, M:EAZ, S:IGE_5 A): +1 Mar-Mar : +0.95
VT: Num.min.gg, tra attiv.: id.617 (I:xAZ2, M:EAZ, S:IGE_3 B) / id.615 (I:xAZ2, M:EAZ, S:IGE_3 B): +1 Sab-Sab : +0.95
VT: Num.min.gg, tra attiv.: id.718 (I:CARU, M:COS_DIS, S:GEO_3 A) / id.715 (I:CARU, M:COS_DIS, ChA:info4, S:GEO_3 A): +1 Sab-Sab : +0.95
88---------------------------------------------------------
From Volker Dirr:
students set max gaps per week
and
students set begins early
need a filter/checkbox show only O year O group O subgroup
because there are so many students (subgroups) and it is useful to add
that counstraints for lower years. but the list is so long, so it is very
difficult to find the years.
that filter is also useful for students set not available.
89---------------------------------------------------------
From Paolo (on forum):
Well, for me it would be very very (very) important thinking over the constraints while fet is working.
So i ask, kindly, if it is possible getting a print function of all constraints (at least of time constraints).
Liviu: A temporary solution would be to open two FET programs simultaneously :-)
90---------------------------------------------------------
From daviodan:
Possibility to edit the timetable after generation, drag-drop of activities.
91---------------------------------------------------------
From Yush Yuen:
Sometimes we have 3 teachers available to teach the same "kind" of
class. For example, Teacher A, B C may teach either one of Math for
7A, 7B, and 7C. It is possible that one combination may yield a
timetable that is easier than another. So, it would be nice if we can
have an option to generate "alternative" scenarios with the different
combination.
A possible way to do that may be:
- adding a "teachers-activities pool" dialogue.
- activities of the same pool may swap teacher
- each pool may be enabled or disabled at timetable generating time
(you may not need all combination all the time)
- all generation time, make an option for "generating alternatives"
and save each alternative in a different folder or something
Or:
- activities are created without teachers
- adding a "teacher can teach: activity tag" dialogue
- at generation time, teachers are assigned to activities based on
which teacher has the right "teacher can teach tag"
Or, another way of doing this (perhaps a more elegant way) is to make
a "preferred teacher" constraint like the preferred room constraint.
However, also add an "same room/teacher" option. That is, room/teacher
may be selected from list of preferred rooms/teachers, however, the
same room/teachers must be assigned to the same activities.
92---------------------------------------------------------
From Silver (on forum):
Constraint "Min gaps between activites in the day for teacher".
I mean like this :
when I select Min gaps = 2
Saturday: activity - gap - gap - activity - gap - gap - activity
93---------------------------------------------------------
From George Miliotis (on forum):
I think the ability to renumber the IDs of the activities starting from a specific ID would be very useful in other XML-related work, too.
An advanced option: "renumber activities" with a dialog asking for "new lowest ID" would be ideal for these merge-split issues.
In this case we could renumber the first FET file from 1, the second from 1000, then copy paste directly into the XML file.
This would get all rules and activities, wouldn't it?
But maybe we could use XSL for this.
94---------------------------------------------------------
From aang (on forum):
I have a problem though in the formatting of the html files and consequently the printing. Now, an activity will be printed with six subgroups on the timetable
making it unusually wide(or tall) and the subgroup names do not actually reflect the student set that should be displayed e.g Mwaniki-CRE-4 E BIOCRE1, 4 E PHYCRE1,
4 W BIOCRE1, 4 W PHYCRE1, 4 N BIOCRE1, 4 N PHYCRE1, 4 S BIOCRE1, 4 S PHYCRE1
instead of Mwaniki-CRE-4 CRE1 or Mwaniki-CRE-4. This means i edit the timetable manually after every generation to make this changes. I suggest adding a displayname
tag to the activity which defaults to the current display name (without the activityID) and using this to determine what is displayed for the activity.
The other thing is can i get a subject color propagated to the entire activity td so that i can color the timetable depending on the subject only.
So that every activity of the Subject will have one color and not just the subject span only while the student set, location and teacher spans remain uncolored.
Lastly, for activities with same starting time is it possible to have the in one column/row so that the number of rows/columns is fixed to the either the number
of days or lessons (depending on the selected timetable). This way it is easier to print.
95---------------------------------------------------------
From Volker Dirr:
Activities preferred times constraints need also need "duration".
(because many schools allow activities with duration 2 only at special
times. by this new feature it will be very easy to add (just one
constraint - instead of adding a tag to every activity with duration 2).
96---------------------------------------------------------
From liquid (on forum):
Consider a split activity 2/5 - 1/5 - 1/5 - 1/5. FET places my 2 hour activity part in the same room. However in case of soft conflict when FET cannot place other 3 hours separately, it places them consecutively but not in the same room.
I might agree with FET in some cases when it cannot do desired split but if FET must join some activities consecutively let it do this in the same room. How to tell it to do in such way in case of soft conflict?
97---------------------------------------------------------
From liquid (on forum):
Based on what I experience while creating not an easy timetable I would do suggest to enable more categories than 3. Max number of categories I need years to split to is 7. I do it manually at the moment but it is time and mind consuming. I know it might seem unusual however requirements for the timetable are indeed real not theoretical.
Liviu: Too many categories might slow down the generation and consume too much memory (there will be many empty subgroups). Anyway, anybody can consider as many categories as needed, by adding groups/subgroups manually or using another program to generate the .fet XML file.
liquid: I'd like to mention something that might be worth to consider. As we said earlier we can always make our own division of the year to groups and subgroups which are going to be most suitable to one's needs. It would be good to have the possibility to delete unused (empty) subgroups from all groups. Now, FET kindly informs us that a subgroup belongs to another group and you have to delete it again and again from every other group.
98---------------------------------------------------------
From Juan Marcos Filgueira Gomis:
One question, the update dialog shows buttons '&No' and '&Yes' that I
couldn't find in fet_gl.ts. How could I translate them?
Liviu: These strings are in the Qt translation. It is a bit difficult to manage also the Qt translations.
(we need some other files, qt_gl.ts, which complicate things). I'll think of some solution maybe in the future.
99---------------------------------------------------------
From Yush Yuen (in collaboration with Liviu Lalescu):
Feature: Allow user to customize the initial order of activities for the
generation.
Benefit: Usually, a few activity converge to be "more difficult" toward the
end of the generation. It might be beneficial (unproven) to put those
activity earlier rather then later. Also, I can force some "important"
activities to be completed first, and some "unimportant" ones to be
completed later.
Suggested solution: Add a "generate order" text box in the add/modify
activity form. Values to be taken are 0-100%. The percentile represent what
percentile out of all the activities should this one be placed. 0 = default
(according to the original order)
Of course, there could be a dedicated form just to manage generation order.
Another solution: add some special activity tags, like: order##1, order##2, etc.
Each activity can have one of this special tags, and those with order##1 will be
placed before those with order##2 and greater orders.
Even better: default order for each activity is 0, then order##1, 2 and so on will
be after them, and order##-1, -2 and so on will be before them
(-2 before -1 before 0 before 1 before 2).
It would be nice if you can make it an "advance feature", so user can turn
on or off the feature. It's useful for cases where I have added a lot of
custom put order, then want to see how it work with or without it. Probably
a setting check/uncheck under the menu.
100---------------------------------------------------------
From Chafik Graiguer (on forum):
I spent much time striving to solve an impossible timetable
I wonder if FET can automatically report it impossible then abort
-First case: a teacher having only 5 hours per week: 1+1+1+2 (Min days between activities=1)
With Min hours per day for teachers = 2
This lead for an impossible timetable, but FET desperately trying to solve it for hours and hours
-Second case:
A teacher has 15 hours
With a maximum of 4 hours per day, given a 6 days week, this would allow him 1 free day or even 2 free days (4+4+4+4)
But activities were split in a rather strange fashion
Group G1: 3+3
Group G2: 2+2+2+3 (Min days between activities = 1)
Activities from G1 alone would occupy him for 2 days
Then come activities form G2 which require additional 4 days
Total is 6 days !!
I set Max days per week = 5
This leads to yet another impossible timetable
My question: can FET automatically report it impossible then abort?
101---------------------------------------------------------
From drew:
Actually the biggest problem was with teacher T1, who was mistakenly scheduled for 7 activities with activity AT1. But, there are only 6 timeslots available for AT1. FET needs a way to detect and report on this kind of error. This is not the first time I made that kind of mistake.
After I deactivated activity id 1, a problem with teacher T2's not available times. Instead of marking him not available for the first two AT1 time slots on Saturday afternoon. After I relaxed it to him just being not available for the 1st time slot FET was able to create a schedule.
I'm not sure how you in on T2's not available time slot as the cause of the problem. I think you need to try to find a way to automate that process and generate warnings about which constraints need to be relaxed.
The problem with activity id 2 was a variation on this problem. T2 had 5 activities for tag AT1, AT1 has 6 preferred time slots, but T2 was unavailable for 2 of them.
You do similar checking for student groups which have too many activities for the available time slots
102---------------------------------------------------------
From Christian Kemmer:
I have another suggestion which would make things easier for me.
When defining time constraints for activities, I can choose a group of students, let's say "year 05". But no activity belongs to this group, because all activities belong to subgroups of that group, let's say "class 05A" or "class 05B". So choosing a group in those dialogs has no effect for me.
What I really want to do is to define constraints for some activities that all belong to subgroups of a special group, for example all lessons in a certain subject of all classes in "year 05". I cannot use the "choose group"-combo-box at the moment, but I have to use the "subject" or "teacher" combo-boxes. If I use subject, I also get a lot of activities from other years, if I use teacher, I also get those other activities, and I have to change the teacher for each activity I am searching for.
My suggestion is that there is a checkbox "show subgroups of group" with the following effect:
If I choose a group and activate that checkbox, all subgroups of that group are also shown.
So if I choose "year 05" and subject "physics", all activities with subject "physics" in all subgroups like "class 05A", "class 05B", ... of group "year 05" are shown.
If I only choose the group and activate that checkbox while leaving the other comboboxes blank, all activities of all subgroups of that group are shown.
103---------------------------------------------------------
From Silver (on forum):
He needs a constraint to ensure that all activities of each teacher are hosted in different rooms (for exam scheduling).
104---------------------------------------------------------
From Davide G. M. Salvetti (on forum):
Would it be possible to sort on comments the activities list (like sorting the constraints)?
105---------------------------------------------------------
From Davide G. M. Salvetti (on forum):
I wonder if it's sensible to write a .fet file with all placed activities time and space constraints spelled out (i.e., just like the usual
_data_and_timetable.fet, where each activity is (non permanently) blocked in time and space) even when FET gets interrupted, rather than only
if it completes succesfully. I think it could be useful, because that file could then be reused as a start, maybe manually deleting or adding
some constraint.
106---------------------------------------------------------
From Silver (on forum):
He needs "teachers_rooms.html" in the statistics folder, he thinks it would be useful for the examination timetable.
107---------------------------------------------------------
From Horatiu Halmajan:
He suggests the possibility of selecting more constraints in the all time/space constraints dialogs and
de(activate) them in a single operation.
108---------------------------------------------------------
From skinkone (on forum):
What I realized is that FET won't allocate your students for you, so I will do that by hand. I can only suspect that such a problem increases the
complexity exponentially. However, if you are thinking of going down this road in future developments, I would vote in favor of having such a
feature where students can have "tag preferences". The user would set "minimum or maximum number of tags a student group must have". This would
then be an optimization problem to try to get the most students with their preferences. Essentially FET would form student groups as an output
rather than as an input.
109---------------------------------------------------------
From Jonathan Block (on forum):
It would be nice to have a fourth dimension.
Explanation from Liviu Lalescu: He considers students (1), teachers (2) and rooms (3) as three dimensions. He would like to allocate activities
to teachers (4) (and these teachers should be the fourth dimension, different in concept from the second dimension, but similar to the third dimension).
110---------------------------------------------------------
From Liviu Lalescu:
Possibility (check box, default checked) of safe saving for File/Save and Save as. Maybe even for Timetable/Save data and timetable as.
Safe saving means: create a temporary file (make sure it is truncated), write the data to it, remove the original file and rename the temporary file to the original file.
111---------------------------------------------------------
From kdrosos (bug report on forum):
When working with dual screen, i.e. one extra screen is connected to the main computer, and when choosing the "A teacher's not available time" in the "Teachers" tab under the "Time" tab I had moved the pop up window in the second display.
I chose the teacher that I wanted to work with, and the new window that I specify the free time of the teacher was kept in the main display.
I finished my work, without re-moving all windows to the main display.
After a while, and when I had only one display, I tried to chose again the "A teacher's not available time" but the pop up window did not appeared.
I connected the second display, chose again the "A teacher's not available time" and the window appeared in the second display.
The window in which the free time for a teacher is specified, which I had it in the main display, could be opened from choosing "ALL" (under the "Time" tab) and selecting the desired teacher.
Thus, I imagine that there might be a bug in the handling of multiple screens. Maybe some preferences of the FET do not refresh when changing from dual screen to single screen display.
Liviu: Maybe a solution would be in restoring geometry, to test if the geometry would be on an invalid screen, and correct this (add a better test than "if(rect.isValid())" in function "restoreFETDialogGeometry(...)" in file centerwidgetonscreen.cpp).
112---------------------------------------------------------
From murad:
Create please, in QComboBox, auto-complete. With a large number of students and teachers it is very difficult to find the necessary students or teachers.
113---------------------------------------------------------
From kdrosos:
In FET there is "School's name", where the school' s name appears in the final .html files.
Maybe the text "School's name" can be parametric and thus to allow changing to "Department's name" or "Institution's name" etc.
This can also allow a "School's name field" as:
"Faculty of FET: Department of FET"
Liviu's note: I think that kdrosos refers to the Greek FET. In the English FET, the string is "Institution name".
114---------------------------------------------------------
From Volker Dirr:
Implement constraint "Activity needs several rooms". (I am not 100% sure if it is enough to have a constraint that adds all selected rooms to a
single activity or if it is also needed to get only some rooms from (a larger) selection. So maybe all current "roomS" constraints "just" need an
option "number of used rooms from the selection". Currently it is always 1. It is needed to increase this number.)
115---------------------------------------------------------
From nouvakis:
I've seen that with html files you save a "xxx_data_and_timetable.fet" file.
In this xml file, you save
<Time_Constraints_List> element which contains many <ConstraintActivityPreferredStartingTime>.
These <ConstraintActivityPreferredStartingTime> elements are the generated timetable data (Activity_Id, Preferred_Day, Preferred_Hour).
So, you could add an option (for example autosave) saving each generated timetable with a unique name (for example name_year_month_day_hour_minute.fet)
This file could easily be loaded from a user just to be able to preview the generated timetable inside FET.
116---------------------------------------------------------
From nouvakis:
I would like to suggest an extra optional field to entities of FET program.
For example:
Teachers_List: name, [id]
Students_List: name, [id]
Subjects_List: name, [id]
Hours_List: Name, [id]
Days_List: Name, [id]
etc
When someone (like me) would like to import FET generated timetable data to another program,
there should be a more accurate way to associate an FET entity with my database records beside the name ...
If you add the id field (as an optional field) there should be no problem to users already using FET ...
117---------------------------------------------------------
From mma:
When adding a constraint, a useful feature would be to check if an identical constraint exists already, and thus not adding the constraint. I just tried to add the same constraint repeatedly (just kept pressing 'Add'), and it kept adding. When there are many constraints it can be difficult to keep track of them all.
Removing identical constraints reduces the clutter, and perhaps also speeds up the timetable generation?
118---------------------------------------------------------
From k1aas:
The new printing feature in 5.17.0 is very nice. Here are a few requests:
1. I can't find a selection to center the text in the boxes. It would be nice to have the text displayed as on the screen in the 'View students/teachers timetable'.
2. Schedules are much easier to read if they are colour-coded. How about a range of selectable colours per teacher or per subject, and having these colours then inserted in the print file? See my attachment.
Klaas
Answer by Volker Dirr, on the first point:
1. It's already included in the FET sources. Sadly it is a Qt bug.
119---------------------------------------------------------
From Yush Yuen:
For printing: It would nice if I can specify a custom css file for the style.
120---------------------------------------------------------
From Yush Yuen:
I find that while the fixed max-room contraint works well, I notice
something with my situation:
I have a teacher, teacher A, uses room A and teaches year 6 classes. Unlike
the more senior years, which are heavily blocked (lots of constraints with
activities with same start time), year 6 classes are pretty free floating.
Therefore, the year 6 classes always appear at the end of the order of
allocation.
I have included room A as one of the available rooms for the preferred room
list for another teacher. room A is almost always chosen. But the problem
is, teacher A and room A become very difficult toward the end of the
allocation. My timetable has about 1280 activities, and most of the year 6
classes are toward the end of the list. The generation always got stuck
toward the end, like 1250, with teacher A not being able to get the right
allocation.
I don't think this is a bug. This is easily solved by removing room A from
the preferredRooms list for that other teacher. But I just want to point
that out to you.
Answer Liviu Lalescu:
I could improve the algorithm to take care of situations like that. So
it will know that in room A there can be only one type of activity
(one type of look-ahead). Or that in room A there can be only teacher A
(another type of look-ahead). But there are contrary reasons:
1) Will make other timetables slower, by the additional look-ahead.
2) Each look-ahead is to be avoided, because of possible new critical
bugs and general slowdown. There are many look-aheads in FET, but they
are necessary and not very time-consuming.
3) The user is advised to help FET towards a solution. The user needs
to collaborate with FET. (Of course, not necessarily us. We want to
push its limits :-)
4) This is the most important reason. Say I solve this problem for a
single preferred room for teacher A. But this is not everything. A user
may invent two preferred rooms for teacher A and go into the same
situation, which now becomes more complicated to manage. I cannot
forecast all situations similar to yours.
Please tell me what you think, I might need to treat situation like
these - I am still thinking. Because I did many look-aheads which are
necessary.
|