Hallo!
Der Aktivitätenplanungsdialog ist ein nützliches Werkzeug und verschafft mit einen guten Überblick.
Ich habe gesehen, dass es die Möglichkeit gibt, über die Aktion "Tausche Lehrer", einen anderen Lehrer der Lehrveranstaltung zuzuordnen.
Dabei übernimmt der neue Lehrer die gleiche Aktivitätenaufteilung von der Klasse (und vom Vorgängerlehrer).
Ich habe das Problem, dass viele meiner Lehrer die Aktivitäten in unterschiedlichen Aufteilungen in der Woche wünschen.
Einer möchte z.B. Mathematik an einem Termin mit 6 UE machen, der andere in der Nachbarklasse an drei Terminen mit je 2 UE.
Wenn ich nun zwischen zwei Klassen den Lehrer tausche, werden dessen Aufteilungspräferenzen nicht mit übernommen bzw. auf die andere Klasse übertragen. Ich muss dann die Aufteilungen seiner Teil-Aktivitäten von Hand umständlich nachziehen.
Ich nutze das Tauschen von Lehrern in gleichen Fächern zwischen Klassensäulen als ein ergänzendes probates Mittel, um Stundenpläne zu erzeugen, die alle Vorgaben seitens der Klassen als auch der Lehrer erfüllen. Zumindest hat es mir schon oft geholfen, wenn ich einen Lehrer im gleichen Fach mit einem Kollegen aus einer anderen Klasse getauscht habe.
Daher möchte ich anregen, den Aktivitätenplanungsdialog im Hinblick auf einen Wechseltausch / (besser: Swap) der Aktivitäten zwischen den Klassen zu erweitern.
Dabei werden alle Aktivitäten in einem Fach einer Klasse zusammen mit dem dazugehörigen Lehrer mit dem Aktivitätenblock aus einer anderen Klasse getauscht.
Lässt sich da etwas in der Richtung bewerkstelligen?
Beste Grüße
UI
Schwierig. Den Vorschlag kann ich nachvollziehen. Ich gebe mal 3 Antworten/Punkte:
1. Ich habe es (möglichst) immer gleich gesetzt. Ich habe die Fachschaften gefragt was sinnvoll/gewünscht ist und es dann für alle gleich umgesetzt und damit das Problem vermieden.
Wenn es sich ein Lehrer anders wünscht: hmm... dort sind aber wesentlich mehr Schüler, die das evtl. ganz anders sehen! Werden die auch gefragt? Sollte/Muss man diese Frage nicht vorallem in Sinne der Schüler beantworten? Schließlich werden Stundenpläne in erster Linie für Schüler gemacht, nicht für Lehrer!
2. Im Notfall geht folgender Trick:
Sie teilen die Aktivität in zwei Teile zu je 3 Stunden. Wenn Sie dann tauschen, dann gehen Sie in die Teilaktivitäten und erhöhen die Dauer der ersten Aktivität auf 6 und deaktivieren die zweite Aktivität. Das hat den Vorteil, dass sie nicht löschen und neu setzen müssen. Natürlich ist das trotzdem noch umständlich; aber besser Löschen. Diesen Trick nutze ich in seltzen Fällen, wenn ich bekannte Raumprobleme in Kursen lösen muss. (Weitere Einschränkungen für die Schüler bleiben mit diesem Trick erhalten. siehe Punkt 3)
3. Die Gefahr des Tauschens der kompletten Aktivität ist, dass alle ihr zugeordenten Einschränken auch betroffen sind (oder auch nicht). Es wird dann evtl extrem unübersichtlich, da nicht eindeutig klar ist welche Einschränkungen jetzt mit dem Lehrer zusammen getauscht werden müssen und auch unklar ist, was zu tun ist. Ich befürchte, dass je nach Fall und Schule hier andere Wünsche sinnvoll sein können. Mal will man die Einschränkung mit tauschen, mal nicht. Das wird die Übersicht nicht steigern. Wie soll man das Problem lösen?
Ich schlage es Liviu mal für das TODO vor. In dem Fall würde ich aber wohl alle Einschränkungen an den Aktivitäten lassen wie sie sind. Das ist am einfachsten zu programmieren; der andere Fall ist nicht immer eindeutig. Ich befürchte aber, dass diese Variante nicht immer helfen wird. (Sprich: Vom Prinzip werden die Schüler getauscht, nicht die Lehrer).
Machen Sie doch gerne mal etwas "Werbung" (sprich zählen Sie noch gute Vorteile auf; bzw sagen Sie warum meine Punkte 1 und 2 bei Ihnen nicht greifen. Dann würde ich es ggf. auf meine TODO-List weiter nach oben stellen).
Hallo!
Vielen Dank für Ihre Antwort!
Zu 1.)
Wir haben in dem Sinne leider keine Fachschaft. Diese ist sehr heterogen und setzt sich größtenteils aus externen Dozenten zusammen, die nebenberuflich bei uns Lehraufgaben übernehmen. Insofern ist es zunächst einmal wichtiger, überhaupt einen Stundenplan hinzubekommen, der möglichst alle Randbedingungen der Dozenten erfüllt und dabei auch noch verträglich für die Studierenden im Hinblick auf Pausenzeiten und nicht zu späte Vorlesungstermine in den Randlagen des Tages/der Woche gestaltet ist.
Zu 2.)
Danke für den Hinweis. Die Methode habe ich in Einzelfällen schon angewandt. Sie ist hier aber zu umständlich, wenn es nur darum geht, eine Aktivität sowie den dazugehörigen Dozenten auf einen anderen Kurs zu schieben bzw. fachlich gleiche Aktivitäten nebst Dozenten und Dozenten-spezifischen Aufteilung der Teilaktivitäten zwischen den Kursen im gegenseitigen Wechsel zu tauschen.
Zu 3.)
Solange die (zeitlichen/räumlichen) Einschränkungen NUR auf die Aktivität selber bezogen sind und keine weiteren expliziten Abhängigkeiten z.B. zu Kursgruppen oder anderen Dozenten haben, was bei mir i.d.R. auch der Fall ist, sollte ein Tausch möglich sein.
Eigentlich muss im Wechsel bei den Aktivitätspaaren dann nur die Kurszuordnung getauscht werden.
Man könnte softwareseitig vor einem Tausch prüfen, ob zusätzliche Einschränkungen mit möglichen o.g. Seiteneffekten vorliegen und ggf. vor dem Tausch in einem Warn-Dialog darauf hinweisen, welche Einschränkungen davon betroffen sind. Der Anwender muss dann für sich entscheiden, ob der Tausch dann noch akzeptabel ist oder nicht. Zumindest könnte ich damit leben.
Übrigens ich vermisse für den Aktivitätenplanungsdialog zum Öffnen einen Hotkey. Das häufige Öffnen/Schließen des Aktivitätenplanungsdialogs mit der Maus über das Menü sowie die probeweise Generierung des Stundenplans gestalten sich als etwas umständlich.
Sinnvoll wäre ggf. auch ein zusätzlicher Button oder ein Hotkey-Handler, mit dem man vom Aktivitätenplanungsdialog aus direkt die Generierung des Stundenplans auslösen kann, ohne den Aktivitätenplanungsdialog extra vorher schließen zu müssen.
Beste Grüße
UI
ok. Ich schiebe es in meiner TODO Liste weiter nach oben.
Die Hotkey Idee finde ich sinnvoll. Leite ich an Liviu weiter.
Liviu schlägt Strg+A vor.
Wie dringend brauchen Sie es? Es stehen aktuell keine anderen Änderungen an und wir würden ansonsten gerne noch etwas abwarten bevor wir eine neue Version veröffentlichen. Notfalls würde Liviu aber schnell eine "Shapshot" Version erstellen. (ohne Übersetzungen; die Übersetzer brauchen auch immer etwas Zeit und die Leute jedesmal für nur eine Änderung anzuschreiben und arbeiten zu lassen hat evtl. zur Folge, dass die evtl. schneller von ihrer freiwilligen Unterstützung abspringen.)
uni_instructor, thank you for the suggestion! I added Ctrl+A for Activity planning and released a new snapshot. Please get it from https://lalescu.ro/liviu/Backup-fet/ and report if it is OK.
Dear Liviu,
thank you for adding CTRL+A as hotkey. I tested your snapshot and it worked well for me. :)
Btw. It would be of great help as well if the Activity-planning would also contain a hotkey for generating time tables. There is no sensitivity for CTRL+G (CTRL+E)
Regards
UI
You are welcome! :)
I am sorry, but the interface is my weak point. So I did not consider from the start that a user might want more windows to be opened at the same time (with the exception of the Timetable view and the Help ones). It is not possible to have the Activity planning and the Generate timetable dialogs opened both at the same time.
Dear Liviu,
QuoteIt is not possible to have the Activity planning and the Generate timetable dialogs opened both at the same time.
Ok, I understand. But it still would be possible to trigger a timetable generation from the Activity planning dialog window?
I could conceive an additional hotkey / button that closes the Activity planning dialog window and triggers (like CTRL+E) the Generate timetable dialogs.
Btw. I am currently thinking about a workaround by using Autohotkey and some window-handler magic.
Regards
UI
Liviu, if you wonder about CTRL+E: That is the german hotkey. Of course he talks about CTRL+G in the english version.
hmm... we might add that, but i fear the next request will be viewing the teacher table, viewing the students table, ... so in fact a lot of other stuff might be also useful there. Too much to enter. It might be better to change the modal view, but that will be critical if someone modify the students, teachers and subjects.
i don't know how to solve this conflicts.
Indeed, we cannot satisfy all the possible improvements.
But I could try a customization for you (to open the Timetable generate dialog from the Activity planning dialog using a button and/or Ctrl+G). This is not critical, since it is not added in the official FET and bugs are not critical. But you will not benefit from further FET official improvements if I add them, unless I update your custom version.
So please let me know if you are interested in having a custom version. I would prefer to make it after the next FET official version (I hope in a week or so).
Dear Liviu,
thank you for your kind offer. :)
I think it won't be necessary, since I can handle that issue with Autohotkey. (as long as CTRL+A opens activity planing dialog) ;)
I added a first shot of my short little helper script. It works like a charm. :)
;====================================================================================
; FET GUI Autohotkey script
; provides two additional hotkeys for
;
; (1) starting a timetable generation from open activity planing dialog window
;
; (2) aborting timetable generation and reopening activity planing dialog window
;
; CAUTION : (Re-)defining hotkeys on Windows may block pre-defined (system) hotkeys !
;
;====================================================================================
#SingleInstance, force
#Persistent
#NoEnv
CoordMode, Mouse, Screen
return
;====================================================================================
^g:: ;(1) Hotkey handler for Ctrl+g / replace by your own hotkey
Send {Escape} ; leave dialog window
Sleep 100 ; wait 100ms
Send ^e ; send CTRL+e to keyboard / opens timetable generation window / replace by your own language specific hotkey
Sleep 100
Send {enter} ; start timetable generation
return
;====================================================================================
^f:: ;(2) Hotkey handler for Ctrl+f / replace by your own hotkey
Send {Escape} ; abort timetable generation
Sleep 100
Send {Escape} ; leave report window
Sleep 200
Send ^a ; open activity planing dialog CTRL+a / replace by your own language specific hotkey
return
;====================================================================================
; Further docs can be found at:
; https://www.autohotkey.com/
; https://www.autohotkey.com/docs/Hotkeys.htm
;
;====================================================================================
Regards UI
Hello
please mr Liviu while making the new fet official can you reconsider implementing my suggestion in it
so that it will easier for you to port it to my customised version
and sorry to interveen here :) :)
UI: I am glad it works! I did not know this Autohotkey, but I understand now what it does.
bachiri401: Absolutely no problem for you to intervene, but it is difficult. Especially students max span per day with 2 days exception of plus one seems difficult. And it is very risky. Even with only 1 day exception for teachers (which is easier) was difficult and tricky. I told you that I don't think I will do it (soon).
Dear Liviu
below I added an updated version of my Autohotkey-script which provides additional menu-hotkeys for FET.
Since your recent version does not support alt-hotkeys for the menu bar I had to change my script in a way that it should support different font & window sizes, so generated mouse-clicks on specific menu pop-ups no longer necessary.
Maybe it also might be useful for other users.
Regards
UI
;====================================================================================
; MS-WIN - FET GUI Autohotkey script - tested on FET 6.3.0
; provides 5 additional hotkeys for
;
; (1) CTRL+g starting a timetable generation from open activity planing dialog window
;
; (2) CTRL+f aborting timetable generation and reopening activity planing dialog window
;
; (3) CTRL+w opening both teacher and student timetables
;
; (4) CTRL+t opening all-time constraints window
;
; (5) SHIFT+CTRL+t opening all-time constraints window & enables sorting
;
; (6) ALT+SHIFT+CTRL+t opening all-time constraints window & enables last filter & enables sorting
;
;
; CAUTION : (Re-)defining hotkeys on MS-Windows may block pre-defined (system) hotkeys !
;
;====================================================================================
#SingleInstance, force
#Persistent
#NoEnv
CoordMode, Mouse, Screen
SetTitleMatchMode, 2
SetTitleMatchMode, slow
window_border := 40
return
;====================================================================================
^g:: ;(1) Hotkey handler for Ctrl+g / replace by your own hotkey
if not WinExist("ahk_exe fet.exe")
{
MsgBox ERROR: FET not running!
return
}
else
{
WinActivate, ahk_exe fet.exe
WinGetPos , X_FET_winpos, Y_FET_winpos, FET_Win_Width, FET_Win_Height, ahk_exe fet.exe, , ,
x_pos := X_FET_winpos + FET_Win_Width/2 ; window center
y_pos := Y_FET_winpos + window_border ; window border
Click, %x_pos%, %y_pos% ;get focus on FET Main window
Sleep 100
Send {Escape} ; leave dialog window
Sleep 100
Send {Escape} ; leave dialog window
Sleep 100
Send {Escape} ; leave dialog window
Sleep 100 ; wait 100ms
Send ^e ; send CTRL+e to keyboard / opens timetable generation window / replace by your own language specific hotkey
Sleep 100
Send {enter} ; start timetable generation
}
return
;====================================================================================
^f:: ;(2) Hotkey handler for Ctrl+f / replace by your own hotkey
if not WinExist("ahk_exe fet.exe")
{
MsgBox ERROR: FET not running!
return
}
else
{
WinActivate, ahk_exe fet.exe
Send {Escape} ; abort timetable generation
Sleep 100
Send {Escape} ; leave report window
Sleep 200
Send ^a ; open activity planing dialog CTRL+a / replace by your own language specific hotkey
}
return
;====================================================================================
^w:: ; hotkey for opening both teacher and student timetables
if not WinExist("ahk_exe fet.exe")
{
MsgBox ERROR: FET not running!
return
}
else
{
WinActivate, ahk_exe fet.exe
WinGetPos , X_FET_winpos, Y_FET_winpos, FET_Win_Width, FET_Win_Height, ahk_exe fet.exe, , ,
x_pos := X_FET_winpos + FET_Win_Width/2 ; window center
y_pos := Y_FET_winpos + window_border ; window_border
Send {Escape}
Sleep 50
Send {Escape}
Sleep 50
Click, %x_pos%, %y_pos% ;get focus on FET Main window
Sleep 50
Send {alt} ;enable FET menu bar & navigate to desired menu entry
Sleep 50 ;navigate to timetable --> teachers
Send {Right}
Sleep 50
Send {Right}
Sleep 50
Send {Right}
Sleep 50
Send {Right}
Sleep 50
Send {Down}
Sleep 50
Send {Down}
Sleep 50
Send {Right}
Sleep 50
Send {enter} ; open window
Click, %x_pos%, %y_pos% ;get focus on FET Main window
Sleep 50
Send {alt} ;enable FET menu bar & navigate to desired menu entry
Sleep 50 ;navigate to timetable --> classes
Send {Right}
Sleep 50
Send {Right}
Sleep 50
Send {Right}
Sleep 50
Send {Right}
Sleep 50
Send {Down}
Sleep 50
Send {Down}
Sleep 50
Send {Down}
Sleep 50
Send {Right}
Sleep 50
Send {enter} ; open window
}
return
;====================================================================================
^t:: ; hotkey for opening all-time constraints window
if not WinExist("ahk_exe fet.exe")
{
MsgBox ERROR: FET not running!
return
}
else
{
WinActivate, ahk_exe fet.exe
WinGetPos , X_FET_winpos, Y_FET_winpos, FET_Win_Width, FET_Win_Height, ahk_exe fet.exe, , ,
x_pos := X_FET_winpos + FET_Win_Width/2 ; window center
y_pos := Y_FET_winpos + window_border ; window_border
Send {Escape}
Sleep 50
Send {Escape}
Sleep 50
Click, %x_pos%, %y_pos% ;get focus on FET Main window
Sleep 50
Send {alt} ;enable FET menu bar & navigate to desired menu entry --> Menu Data
Sleep 50 ;navigate to all-time constraints window
Send {Right}
Sleep 50
send {Down 12}
send {enter} ; open window
}
return
;====================================================================================
+^t:: ; hotkey for opening all-time constraints window & enables sorting
if not WinExist("ahk_exe fet.exe")
{
MsgBox ERROR: FET not running!
return
}
else
{
WinActivate, ahk_exe fet.exe
WinGetPos , X_FET_winpos, Y_FET_winpos, FET_Win_Width, FET_Win_Height, ahk_exe fet.exe, , ,
x_pos := X_FET_winpos + FET_Win_Width/2 ; window center
y_pos := Y_FET_winpos + window_border ; window_border
Send {Escape}
Sleep 50
Send {Escape}
Sleep 50
Click, %x_pos%, %y_pos% ;get focus on FET Main window
Sleep 50
Send {alt} ;enable FET menu bar & navigate to desired menu entry --> Menu Data
Sleep 50 ;navigate to all-time constraints window
Send {Right}
Sleep 50
send {Down 12}
Sleep 50
send {enter} ; open window
Send {Tab 8}
Send {Space}
}
return
;====================================================================================
!+^t:: ; hotkey for opening all-time constraints window & enables last filter & enables sorting
if not WinExist("ahk_exe fet.exe")
{
MsgBox ERROR: FET not running!
return
}
else
{
WinActivate, ahk_exe fet.exe
WinGetPos , X_FET_winpos, Y_FET_winpos, FET_Win_Width, FET_Win_Height, ahk_exe fet.exe, , ,
x_pos := X_FET_winpos + FET_Win_Width/2 ; window center
y_pos := Y_FET_winpos + window_border ; window_border
Send {Escape}
Sleep 50
Send {Escape}
Sleep 50
Click, %x_pos%, %y_pos% ;get focus on FET Main window
Sleep 50
Send {alt} ;enable FET menu bar & navigate to desired menu entry --> Menu Data
Sleep 50 ;navigate to all-time constraints window
Send {Right}
Sleep 50
send {Down 12}
Sleep 50
send {enter} ; open window
Send {Tab 7}
Send {Space}
Sleep 100
send {enter}
Sleep 50
Send {Tab}
} Send {Space}
return
;====================================================================================
^F1:: ;HELP Infos
MsgBox FET-GUI Tool - Help`n`n(1) CTRL+g starting a timetable generation from open activity planing dialog window`n`n(2) CTRL+f aborting timetable generation and reopening activity planing dialog window`n`n(3) CTRL+w opening both teacher and student timetables`n`n(4) CTRL+t opening all-time constraints window`n`n(5) SHIFT+CTRL+t opening all-time constraints window & enables sorting`n`n(6) ALT+SHIFT+CTRL+t opening all-time constraints window & enables last filter & enables sorting
return
;====================================================================================
; Further docs can be found at:
; https://www.autohotkey.com/
; https://www.autohotkey.com/docs/Hotkeys.htm
; https://www.autohotkey.com/docs/KeyList.htm
;====================================================================================
Thank you, dear UI! I hope other Windows users will appreciate this.