Hi,
I have a MySQL database containing all my HighSchool data (teachers, students, classes etc...). I would like to export those data using PHP into an XML file readable by FET.
I may have missed the obvious as I never did this but is there somewhere a tutorial on how to do so? Or maybe at least a description of what the XML file structure should look like?
Thank you in advance,
Hello,
Unfortunately, the .fet XML format is undocumented. You may take some examples and examine them, for this purpose. Ask here on the forum if you have questions.
Alternatively, you might want to examine the function Rules::read(...) from the file src/engine/rules.cpp. But it contains many old/obsolete tags and is not easy to read.
Okay thanks a lot for your fast answer! I think I should be okay with these files!
I now have another question, which may be off topic but is it possible to make a timetable over a year? For instance for next year starting in September and ending in July, with hollydays and everything?
I guess it's not how I works, but what would you recommend to get such a timetable as it's what I need to create?
And also would it be possible to have it fully automatic using a script executing commands lines on a server instead of the desktop UI? And if so is there a documentation about this?
Quote from: s.lanore on July 08, 2016, 10:25:35 AM
I now have another question, which may be off topic but is it possible to make a timetable over a year? For instance for next year starting in September and ending in July, with hollydays and everything?
I guess it's not how I works, but what would you recommend to get such a timetable as it's what I need to create?
You can increase the number of days per "week" in the source and recompile. The maximum now is 35. I guess you can increase it to 365 and the timetable might still work. But I never tested such a big value. You need to redefine the variable MAX_DAYS_PER_WEEK in src/engine/timetable_defs.h and recompile FET. Then you define the weekdays in the .fet file and don't open the days per week dialog, because it will not work.
Quote
And also would it be possible to have it fully automatic using a script executing commands lines on a server instead of the desktop UI? And if so is there a documentation about this?
Please use the fet-cl(.exe) executable file near fet(.exe). Run it without parameters and it will say the help. Or read the usage in the README.
Basically, something like "fet-cl --inputfile=data.fet".
Okay, I will try that. Thank you.
I have another question :
I can have a max daily hour for a subject. I saw that i should use an activity tag but I can't make it work. I am probably doing something wrong :
My tag :
<Activity_Tags_List><Activity_Tag>
<Name>Max_Hour_Daily</Name>
</Activity_Tag></Activity_Tags_List>
My Activity :
<Activity>
<Activity_Tag>Max_Hour_Daily</Activity_Tag>
<Id>4</Id>
<Teacher>BALLET Adeline</Teacher>
<Subject>Physiologie</Subject>
<Students>BTS Diététique</Students>
<Duration>13</Duration>
<Active>true</Active>
<Activity_Group_Id>0</Activity_Group_Id>
</Activity>
My Constraint :
<ConstraintStudentsSetActivityTagMaxHoursDaily>
<Weight_Percentage>100</Weight_Percentage>
<Maximum_Hours_Daily>6</Maximum_Hours_Daily>
<Students>BTS Diététique</Students>
<Activity_Tag>Max_Hour_Daily</Activity_Tag>
<Active>true</Active>
<Comments></Comments>
</ConstraintStudentsSetActivityTagMaxHoursDaily>
The file seems okay, when I try to generate the timetable I get a warning about the activity tag and it then fails with the error "Please check the constraints related to the activity below, which might be impossible to schedule"
I tried to set the max hour to 24 and it doesn't change anything.
What am I doing wrong?
Thank you,
You set an activity with duration 13 (at one day!) and set a constraint that the activity is only allowed to have max 6 hours. That is impossible.
i guess the 13 hours in the activity is incorrect, because you didn't split it. please check how a split activity look like.
Okay it makes sense. Thank you
Tho I'm still a bit confused. I have a subject that has to be taught for 6,5 hours a week. (13 half hour)
The max hour a day is 3. (so it has to be taught over 3 days). But it doesn't matter how long which class is. It can be for instance 2, 2, 2.5 or 3,2,1.5.
From what I understand I have to split the activity in 3 myself and tell how long which should last? or can FET do it? Because I'm editing the input file by hand.
You could add for instance an activity split into 4 subactivities per "week": 2, 2, 1.5, 1. Then you could either:
1) Use the constraint activity tag max 3 hours daily and the constraint min days between activities will have weight 0% and consecutive if same day = true;
or
2) Use custom constraints min days between activities: for all 4 components, 0%, consecutive if same day = true, and another one, 100%, for the first three components.
Important: note that FET will never place more than two components from the same split activity into the same day if consecutive if same day is true.
yes and also no.
you need to split yourself.
fet can't split for you.
but fet can merge for you.
if you use min day constraint with less then 100% you can check the consecutive flag. FET will merge that activities then.
be careful:
if you add a min day constraints with 3 or more activities, then max 2 activities will be consecutive at a single day.
so it won't be clever to split into 1+1+1+1+1+1+1+1+1+1+1+1
you should split in less parts. you also should avoid 1 hour alone. (because it is just 0.5 h)
so maybe something like this (just a small pseudo code, you must code much more detailed):
if(maxDuration>1){
solution=1 with maxDuartion
for(int duration=1; duration<=maxDuartion; duration++){
calculate number of parts;
if(number of parts>days per week) continue;
if(last part == 1) continue;
solution= (compare number of parts)
}
}
Hello,
I have another question. It's probably a really simple one but it's a bit confusing to me.
I have a group of students (BTS Diététique 2) that has some subjects in smaller groups. (Groupe 1, Groupe 2, Groupe 3).
So I don't want activities with BTS Diététique 2 to happen at the same time as the smaller groups. But I want the activities of the smaller groups to be able to happen at the same time.
Maybe a better question is : is it possible to have subgroups activities happening at the same time?
I hope it's clear enough..
i guess you also have got student names in your database?!
the student names (or better the ID, because it must be unique) are the subgroups!
fet can see with the subgroups if it is possible to place the activities at the same time or not.
As the attached file proves, it is of course possible. Please let me know.
Okay it makes sense. In that case I may have an issue.
When I create subgroups to respect my needs the generation suddenly takes a very long time. (left it running for 15min), while it was taking just a few secs before. Do yu think it's normal?
Here is my input file, maybe you can spot something?
looks like you didn't understood how to do the years/groups/subgroups.
Example:
Student A is in BTS Dieteique and selected Group 1 TC 1er annee.
Student B is also in BTS Dieteique but selected Group 2 TC 1er annee.
Then you need to do this:
add a group "BTS Dieteique" with subgroup A and B.
add a group "Group 1 TC 1er annee" with subgroup A.
add a group "Group 2 TC 1er annee" with subgroup B.
Please see the attached impossible file. It is a simplification of your file. You can try to see the problems on it.
Simeon Marlene is teaching the subgroups activities. Thus, these activities cannot be simultaneous.
PS: You consider wrongly the .fet file. Please see for instance the German subactivities constraints file to see how a split activity looks like. The activity group id is the id of the first component, not zero. Zero is for not split activities.
First of all, thank you very much ! I made all the changes and all the constraints are now working.
I now have another question : I made my generation over two weeks because I have some courses that happen once every two weeks.
My issue is that for the others it's now over two weeks too. For instance if a subject is taught 6h a week, which is 12h every two weeks. We can have a week with 0h and the other one with 12h which i don't want.
What would be the best approache to fix this?
Thanks again !
Please see this: http://lalescu.ro/liviu/fet/forum/index.php?topic=351.msg1977#msg1977 if you want the timetable for the first week identical with the timetable for the second week regarding weekly activities.
Also, consider adding constraints activities preferred time slots, first week allowed for some activities, and second week allowed for the other activities, if you don't need exactly identical two weeks.
I was adding constraints activities preferred time slots for first and second week tag. I don't need identical two weeks so it should me good enough. Thank you