diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..723ef36f4e4f32c4560383aa5987c575a30c6535 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file diff --git a/saeshukan-main/README.md b/saeshukan-main/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2d879d4c2eb1660159244f790ae685ad042391c4 --- /dev/null +++ b/saeshukan-main/README.md @@ -0,0 +1,7 @@ +# saeshukan + +SAe project about Shukan planner for BUT INFO students + +A documentation of Shukan and Shukan scripts (shukan.html) is available in doc directory. + +A documentation of Shukan architecture (archiShukan.pdf) is also available in doc directory. diff --git a/saeshukan-main/bin/shukan.jar b/saeshukan-main/bin/shukan.jar new file mode 100644 index 0000000000000000000000000000000000000000..41fba1facd35275e225f8c7c57be6fbdca5c8cf9 Binary files /dev/null and b/saeshukan-main/bin/shukan.jar differ diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/ANG1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/ANG1.txt new file mode 100644 index 0000000000000000000000000000000000000000..0094fd86c953530b9a4d0edd00a5856ed4dd9fe0 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/ANG1.txt @@ -0,0 +1,20 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +SP +TD +Params +Subtitle AC +AffectTD 2 ACas ACas +AffectTP 4 ACas ACas ACas ACas +Sched 37 38 39 40 41 42 45 46 47 48 49 50 1 2 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/ARC1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/ARC1.txt new file mode 100644 index 0000000000000000000000000000000000000000..7a84f7217adfb874747baf9211d8c1a2db2b25ed --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/ARC1.txt @@ -0,0 +1,16 @@ +CM +CM +TD +TD +TD +TD +TP4 +TP4 +SD +SD +Params +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +Sched 35 36 36 36 36 36 37 38 38 45 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/BDD1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/BDD1.txt new file mode 100644 index 0000000000000000000000000000000000000000..bcdfe5167ef2c8bfeb8895ae21c2523a1eb6eb75 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/BDD1.txt @@ -0,0 +1,25 @@ +CM +CM +TD +TD +TD +TD +TD +TD +TD +TD +TP4 +TP4 +TP4 +TP4 +TP4 +TP4 +SD +SP +EV2 +Params +Subtitle SD +AffectCM SDie +AffectTD 2 DFin SDie +AffectTP 4 DFin SDie SDie DFin +Sched 39 39 40 40 41 41 42 42 44 44 45 46 47 48 49 50 1 2 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/DEV1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/DEV1.txt new file mode 100644 index 0000000000000000000000000000000000000000..7be53b82df41a3ff98eb936b4aa9213da16668d8 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/DEV1.txt @@ -0,0 +1,94 @@ +CM +CM +CM +TD +TD +TD +TD +TP4 +TP4 +TD +TD +TP4 +TP4 +TD +TD +TP4 +EV1 +TP4 +TP4 +TP4 +TP4 +EV1 +TP2 +CM +CM +TD +TD +TP2 +TP2 +CM +TD +TD +TP2 +TD +TD +TP2 +TP2 +TD +TD +TP2 +TP2 +EV2 +Params +Subtitle K-B-MD +AffectCM ABou +AffectTD 2 ABou ABou +AffectTP 4 ABou ABou ABou ABou +AffectSpec 5 2 EKer EKer +AffectSpec 6 2 EKer EKer +AffectSpec 7 4 EMic EMic EMic EMic +AffectSpec 8 4 DJam DJam DJam DJam +AffectSpec 11 4 DJam DJam DJam DJam +AffectSpec 12 4 SDie SDie SDie SDie +AffectSpec 13 2 EKer EKer +AffectSpec 14 2 EKer EKer +AffectSpec 15 4 SDie SDie SDie SDie +AffectSpec 17 4 DJam DJam DJam DJam +AffectSpec 22 4 EKer EKer EKer EKer +AffectSpec 23 1 EKer +AffectSpec 24 1 EKer +AffectSpec 25 2 EKer EKer +AffectSpec 26 2 EKer EKer +AffectSpec 27 4 EKer EKer EKer EKer +AffectSpec 28 4 EKer EKer EKer EKer +AffectSpec 29 1 EKer +AffectSpec 30 2 EKer EKer +AffectSpec 31 2 EKer EKer +AffectSpec 35 4 EKer EKer EKer EKer +AffectSpec 36 4 EKer EKer EKer EKer +AffectSpec 41 1 EKer +OnLeft 5 +OnLeft 6 +OnLeft 8 +OnLeft 11 +OnLeft 13 +OnLeft 14 +OnLeft 17 +OnLeft 22 +OnLeft 23 +OnLeft 24 +OnLeft 25 +OnLeft 26 +OnLeft 27 +OnLeft 28 +OnLeft 29 +OnLeft 30 +OnLeft 31 +OnLeft 35 +OnLeft 36 +OnLeft 41 +OnRight 7 +OnRight 12 +OnRight 15 +Sched 37 37 38 38 38 39 39 39 40 41 41 41 42 44 44 44 44 44 45 46 47 47 48 49 49 49 49 49 49 50 50 50 50 1 1 1 1 1 1 2 2 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/EC1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/EC1.txt new file mode 100644 index 0000000000000000000000000000000000000000..711bb9a94b69d4417b8a23d0ed8be7a7ec325418 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/EC1.txt @@ -0,0 +1,20 @@ +TD +TQ2 +TD +TQ2 +TD +TQ2 +TD +TD +SP +SP +Params +Subtitle AR +AffectCM ARic +AffectTD 2 ARic ARic +AffectTP 4 ARic ARic ARic ARic +AffectSpec 8 4 CMag CMag CMag CMag +AffectSpec 9 4 CMag CMag CMag CMag +OnRight 8 +OnRight 9 +Sched 37 38 39 40 41 45 46 47 50 1 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/EGO1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/EGO1.txt new file mode 100644 index 0000000000000000000000000000000000000000..e78cf718f34cc3676e557a1fa232a2aeec26e414 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/EGO1.txt @@ -0,0 +1,25 @@ +CM +TD +TD +TD +TQ2 +TD +TQ2 +TD +TD +TQ2 +SD +TD +TD +TQ2 +TQ2 +TD +SD +EV2 +Params +Hollyweek 44 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 37 37 39 40 41 42 45 46 46 47 47 48 48 49 50 1 2 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/EGO2.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/EGO2.txt new file mode 100644 index 0000000000000000000000000000000000000000..5f5db532c2a2b6c0b2c705e47f0cb91b78c76132 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/EGO2.txt @@ -0,0 +1,19 @@ +CM +TD +TD +TD +TQ2 +TQ2 +TD +TD +TD +SD +TD +EV2 +Params +Hollyweek 44 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 35 36 36 37 38 39 40 41 45 46 47 48 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/M1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/M1.txt new file mode 100644 index 0000000000000000000000000000000000000000..915e53f9c39fed43fff52649b340f44f7015810a --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/M1.txt @@ -0,0 +1,27 @@ +CM +CM +TD +CM +TD +TD +TP2 +TD +TD +TP2 +TD +TD +TD +TP2 +TD +TD +TD +TQ2 +TP2 +EV2 +Params +EndsOn 49 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 35 36 36 36 36 37 37 37 38 38 39 39 40 40 41 42 42 45 46 47 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/M2.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/M2.txt new file mode 100644 index 0000000000000000000000000000000000000000..8ec938c040cd7f62ce8fb1abe41b31e513aa2af4 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/M2.txt @@ -0,0 +1,19 @@ +CM +CM +TD +TD +TD +TD +TP2 +TQ2 +TQ2 +TQ2 +TP2 +EV2 +Params +StartsOn 45 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 45 45 46 47 48 48 49 50 1 1 2 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/PPP1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/PPP1.txt new file mode 100644 index 0000000000000000000000000000000000000000..174411364d43edd5fe0ed7120b38ae506e4996dd --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/PPP1.txt @@ -0,0 +1,8 @@ +TD +TP2 +SP +SP +Params +AffectTD 2 ARic ARic +AffectTP 4 ARic ARic ARic ARic +Sched 40 44 3 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/SYS1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/SYS1.txt new file mode 100644 index 0000000000000000000000000000000000000000..bda658c5261efce6889e5184433fc56e92f7d12f --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/SYS1.txt @@ -0,0 +1,20 @@ +TM +TM +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +SD +Params +Hollyweek 48 +Subtitle AB +AffectCM ABou +AffectTD 2 ABou ABou +AffectTP 4 SDie ABou ABou DJam +Sched 38 38 39 39 40 40 41 41 42 42 44 44 45 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/WEB1.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/WEB1.txt new file mode 100644 index 0000000000000000000000000000000000000000..b18b5bfe0d4f1109702fa72e515230c9c56e6590 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/WEB1.txt @@ -0,0 +1,29 @@ +TM +TM +TP2 +TP2 +TP2 +TP2 +SP +EV1 +TP2 +TP2 +TP2 +SP +EV1 +Params +Subtitle PV +AffectCM PVil +AffectTD 2 PVil PVil +AffectTP 4 PVil PVil PVil PVil +AffectSpec 8 4 BDev BDev BDev BDev +AffectSpec 9 4 BDev BDev BDev BDev +AffectSpec 10 4 BDev BDev BDev BDev +AffectSpec 11 4 BDev BDev BDev BDev +AffectSpec 12 1 BDev +OnRight 8 +OnRight 9 +OnRight 10 +OnRight 11 +OnRight 12 +Sched 36 36 37 38 39 40 41 42 46 47 48 49 50 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S1/modules.txt b/saeshukan-main/data/2122_S1/V001_210626/S1/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..a02ef39824d87f530864e2874b0b3ae5cdefc9de --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S1/modules.txt @@ -0,0 +1,12 @@ +DEV1 +WEB1 +ARC1 +SYS1 +BDD1 +M1 +M2 +EGO1 +EGO2 +EC1 +ANG1 +PPP1 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/ACD4.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/ACD4.txt new file mode 100644 index 0000000000000000000000000000000000000000..31b1045c14ea73cee1e488bba8b380d264d89bb1 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/ACD4.txt @@ -0,0 +1,30 @@ +CM +TD +CM +TP4 +CM +TD +CM +TD +TP4 +CM +TD +TP4 +CM +TM +TM +TP4 +TM +EV2 +Params +Subtitle x-DB-PG +AffectCM DBol +AffectTD 2 DBol DBol +AffectTP 3 DBol DBol DBol +AffectSpec 13 2 PGue PGue +AffectSpec 14 2 PGue PGue +AffectSpec 16 2 PGue PGue +OnRight 13 +OnRight 14 +OnRight 16 +Sched 35 36 37 37 38 38 39 39 40 41 41 42 42 44 45 45 46 47 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/ACD5.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/ACD5.txt new file mode 100644 index 0000000000000000000000000000000000000000..2ae5232d577a08134498442ca33a25306f6749ad --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/ACD5.txt @@ -0,0 +1,19 @@ +CM +TD +TD +TQ2 +TD +TP2 +CM +TP2 +TD +TP2 +EV2 +Params +StartsOn 37 +Hollyweek 44 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 3 BDav BDav BDav +Sched 37 37 38 38 39 40 40 41 42 42 45 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/ANG3.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/ANG3.txt new file mode 100644 index 0000000000000000000000000000000000000000..423ed3e8c9d31b4fb95af102525dded8ee1bed20 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/ANG3.txt @@ -0,0 +1,28 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +Params +Subtitle AC +AffectTD 2 ACas ACas +AffectTP 3 ACas ACas ACas +Sched 35 36 36 37 37 38 38 39 39 40 40 41 41 44 45 46 47 48 49 50 1 2 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/APL3.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/APL3.txt new file mode 100644 index 0000000000000000000000000000000000000000..ec2e545eaaa894ed99b6db993ae34ef258af2b39 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/APL3.txt @@ -0,0 +1,22 @@ +CM +TD +TP2 +TD +TP2 +CM +TD +TM +TP2 +TP2 +CM +TM +TP2 +TP2 +EV2 +Params +EndsOn 49 +Subtitle DB +AffectCM DBol +AffectTD 2 DBol DBol +AffectTP 3 DBol DBol DBol +Sched 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/ASR4.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/ASR4.txt new file mode 100644 index 0000000000000000000000000000000000000000..4a46129516501fc1ca712c01274deb0c8dd7dfdd --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/ASR4.txt @@ -0,0 +1,25 @@ +CM +CM +CM +TM +TM +TM +TM +TP4 +EV1 +TM +TM +TP4 +TM +TM +TP4 +TM +TP4 +EV1 +Params +Hollyweek 48 +Subtitle AB +AffectCM ABou +AffectTD 2 ABou SDie +AffectTP 3 ABou DFin SDie +Sched 44 44 45 45 45 46 46 47 49 50 50 1 1 1 2 2 3 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/ASR5.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/ASR5.txt new file mode 100644 index 0000000000000000000000000000000000000000..3190bea3ba97497becad408a960e3c9421f1cb89 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/ASR5.txt @@ -0,0 +1,8 @@ +TP4 +TP4 +Params +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 3 SDie SDie SDie +Sched 48 49 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/BD3.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/BD3.txt new file mode 100644 index 0000000000000000000000000000000000000000..0ee1715bfa87460e6a9dfbfeb6df006f3089efa9 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/BD3.txt @@ -0,0 +1,21 @@ +CM +CM +CM +TM +TM +TM +TM +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +EV2 +Params +StartsOn 44 +Subtitle PG +AffectCM PGue +AffectTD 2 DFin DFin +AffectTP 3 DFin DFin DFin +Sched 44 45 46 47 47 48 48 49 49 50 50 1 1 2 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/EC3.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/EC3.txt new file mode 100644 index 0000000000000000000000000000000000000000..c4772eee11db42103bc08d09afd6148dec527f74 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/EC3.txt @@ -0,0 +1,12 @@ +TD +TQ2 +TD +TP2 +TD +TP2 +Params +Subtitle AR +AffectCM ARic +AffectTD 2 ARic ARic +AffectTP 3 ARic ARic ARic +Sched 36 37 38 39 40 41 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/EGO5.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/EGO5.txt new file mode 100644 index 0000000000000000000000000000000000000000..0e5bd85d754f69f28858b317b82cf4a7fcd3ed19 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/EGO5.txt @@ -0,0 +1,27 @@ +CM +CM +TD +TQ2 +CM +TD +TQ2 +CM +TD +TQ2 +CM +TD +TQ2 +TD +TQ2 +EV2 +Params +Hollyweek 37 +Hollyweek 38 +Hollyweek 39 +Subtitle PV-MP-x +AffectCM MPri +AffectTD 2 MPri MPri +AffectTP 3 MPri MPri MPri +AffectSpec 0 1 PVil +OnLeft 0 +Sched 36 36 36 40 41 41 42 44 44 45 46 46 47 48 49 50 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/EGO6.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/EGO6.txt new file mode 100644 index 0000000000000000000000000000000000000000..4c2b944d4abd0e3f33b5ae96b8b155fd04376144 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/EGO6.txt @@ -0,0 +1,24 @@ +CM +TD +TQ2 +CM +TD +TD +TP2 +TP2 +CM +TD +TP2 +CM +TD +TQ2 +CM +TD +EV2 +Params +Hollyweek 44 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 3 BDav BDav BDav +Sched 35 36 36 37 37 38 39 40 41 42 42 46 46 47 48 48 49 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/M5.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/M5.txt new file mode 100644 index 0000000000000000000000000000000000000000..d4a38815dbe80d0c9d9d46d4efb5cd607df981ea --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/M5.txt @@ -0,0 +1,29 @@ +CM +CM +TD +CM +CM +TD +TP2 +CM +TD +TD +TD +TP2 +CM +TD +TD +TD +TP2 +TQ2 +TQ2 +TQ2 +TP2 +EV2 +Params +EndsOn 50 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 3 PAde PAde PAde +Sched 35 36 36 36 37 37 38 38 38 39 39 39 40 40 41 41 42 42 44 44 45 46 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/M6.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/M6.txt new file mode 100644 index 0000000000000000000000000000000000000000..e7b1c025a7ce7dfbbfe840305d7a662f7c33b529 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/M6.txt @@ -0,0 +1,21 @@ +TD +TD +TP2 +TP2 +TD +TP2 +TP2 +TD +TP2 +TP2 +TP2 +TD +TD +TD +TD +Params +StartsOn 45 +Subtitle PA +AffectTD 2 PAde PAde +AffectTP 3 PAde PAde PAde +Sched 46 46 47 47 48 48 49 49 50 50 1 2 2 3 3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/PPP3.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/PPP3.txt new file mode 100644 index 0000000000000000000000000000000000000000..3d416d1bd8aceb91c52d8a8c673517ec56d840dc --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/PPP3.txt @@ -0,0 +1,9 @@ +TD +TD +TQ2 +TQ2 +Params +Subtitle N +AffectTD 2 DJam DJam +AffectTP 3 DJam DJam DJam +Sched 47 48 49 50 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/WIM2.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/WIM2.txt new file mode 100644 index 0000000000000000000000000000000000000000..ae3cba50f075930b4a1829b2a4be021cb93fb320 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/WIM2.txt @@ -0,0 +1,21 @@ +CM +CM +CM +TM +TM +TM +TM +TM +TM +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +Params +Subtitle EM +AffectCM EMic +AffectTD 2 DJam DJam +AffectTP 3 DJam DJam DJam +Sched 39 39 40 42 42 45 45 46 46 47 48 49 50 1 2 diff --git a/saeshukan-main/data/2122_S1/V001_210626/S3/modules.txt b/saeshukan-main/data/2122_S1/V001_210626/S3/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..3586c52539c0184381f5249ee220adc7eb74ba68 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/S3/modules.txt @@ -0,0 +1,14 @@ +ASR4 +ASR5 +APL3 +WIM2 +ACD4 +BD3 +M5 +M6 +EGO5 +EGO6 +EC3 +ANG3 +ACD5 +PPP3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/cursus.txt b/saeshukan-main/data/2122_S1/V001_210626/cursus.txt new file mode 100644 index 0000000000000000000000000000000000000000..d0291d6ced742c67805c418a322120a6e1f55a0e --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/cursus.txt @@ -0,0 +1,2 @@ +S1 +S3 diff --git a/saeshukan-main/data/2122_S1/V001_210626/weeks.txt b/saeshukan-main/data/2122_S1/V001_210626/weeks.txt new file mode 100644 index 0000000000000000000000000000000000000000..7bd93b86a1e8ce08a8130e1175d913984e8a187f --- /dev/null +++ b/saeshukan-main/data/2122_S1/V001_210626/weeks.txt @@ -0,0 +1,12 @@ +ScolarYear 2021 +YearOfFirstWeek 2021 +FirstWeek 35 +SemesterLength 21 +DefaultWeekLength 40 +WeekLength S35 24 +WeekLength S36 36 +WeekLength S43 0 +WeekLength S44 32 +WeekLength S45 36 +WeekLength S51 0 +WeekLength S52 0 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/ADO.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/ADO.txt new file mode 100644 index 0000000000000000000000000000000000000000..c2017c6e60984e5a7ec7bdea1116842a1a93b652 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/ADO.txt @@ -0,0 +1,16 @@ +CM +CM +TD +TD +TD +TD +TP4 +TP4 +SD +SD +Params +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +Sched 35 36 36 36 36 36 37 38 38 46 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/AT.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/AT.txt new file mode 100644 index 0000000000000000000000000000000000000000..df4d1e397a8d61095ade52089ed0ce32549b1d9b --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/AT.txt @@ -0,0 +1,20 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +SP +TD +Params +Subtitle AC +AffectTD 2 ACas ACas +AffectTP 4 ACas ACas ACas ACas +Sched 37 38 39 40 41 42 44 45 46 47 49 50 1 2 2 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/BD1.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/BD1.txt new file mode 100644 index 0000000000000000000000000000000000000000..18b2c5ee51065ad913dcb0056789e8a9d0ed6c29 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/BD1.txt @@ -0,0 +1,25 @@ +CM +CM +TD +TD +TD +TD +TD +TD +TM +TM +TP4 +TP4 +TP4 +TP4 +TP4 +TP4 +SD +SP +EV2 +Params +Subtitle SD +AffectCM SDie +AffectTD 2 KAbi SDie +AffectTP 4 KAbi SDie SDie KAbi +Sched 39 39 40 40 41 41 42 42 42 44 45 46 47 48 49 50 50 1 2 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/C1.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/C1.txt new file mode 100644 index 0000000000000000000000000000000000000000..d08e7db2b6c7deb704a21d0da1a493e31a05add8 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/C1.txt @@ -0,0 +1,20 @@ +TD +TQ2 +TD +TQ2 +TD +SP +SP +SP +Params +Subtitle x-AR-CM +AffectCM ARic +AffectTD 2 ARic ARic +AffectTP 4 ARic ARic ARic ARic +AffectSpec 5 4 CMag CMag CMag CMag +AffectSpec 6 4 CMag CMag CMag CMag +AffectSpec 7 4 CMag CMag CMag CMag +OnRight 5 +OnRight 6 +OnRight 7 +Sched 36 37 41 42 45 47 48 49 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/DEV.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/DEV.txt new file mode 100644 index 0000000000000000000000000000000000000000..0ca370d9f37b2fcdc3d8dd6fadbf90fb3da9f447 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/DEV.txt @@ -0,0 +1,97 @@ +CM +CM +CM +TD +TD +TD +TD +TP4 +CM +TD +TP4 +TD +TD +TP4 +TP4 +TD +TD +TP4 +EV1 +TP4 +SD +TP4 +SP +TP4 +CM +TD +TD +TP4 +EV1 +CM +TP2 +TP2 +TD +TD +TP4 +SD +TD +TD +TP4 +SP +TD +TP4 +EV2 +Params +Subtitle K-B-MD +AffectCM ABou +AffectTD 2 ABou ABou +AffectTP 4 ABou ABou ABou ABou +AffectSpec 3 2 EKer EKer +AffectSpec 4 2 EKer EKer +AffectSpec 7 4 EMic EMic EMic EMic +AffectSpec 8 1 EKer +AffectSpec 9 2 EKer EKer +AffectSpec 10 4 SAbi SAbi SAbi SAbi +AffectSpec 13 4 SAbi SAbi SAbi SAbi +AffectSpec 14 4 SAbi SAbi SAbi SAbi +AffectSpec 15 2 EKer EKer +AffectSpec 16 2 EKer EKer +AffectSpec 17 4 SDie SDie SDie SDie +AffectSpec 19 4 SDie SDie SDie SDie +AffectSpec 23 4 EKer EKer EKer EKer +AffectSpec 24 1 EKer +AffectSpec 25 2 EKer EKer +AffectSpec 26 2 EKer EKer +AffectSpec 29 1 EKer +AffectSpec 30 4 EKer EKer SDie SDie +AffectSpec 31 4 EKer EKer SDie SDie +AffectSpec 35 2 EKer EKer +AffectSpec 39 4 EKer EKer EKer EKer +AffectSpec 40 2 EKer EKer +AffectSpec 41 4 EKer EKer EKer EKer +AffectSpec 42 1 EKer +OnLeft 3 +OnLeft 4 +OnLeft 8 +OnLeft 9 +OnLeft 15 +OnLeft 16 +OnLeft 23 +OnLeft 24 +OnLeft 25 +OnLeft 26 +OnLeft 29 +OnLeft 30 +OnLeft 35 +OnLeft 39 +OnLeft 40 +OnLeft 41 +OnLeft 42 +OnRight 7 +OnRight 10 +OnRight 13 +OnRight 14 +OnRight 17 +OnRight 19 +OnRight 31 +Sched 37 37 38 38 38 39 39 39 40 40 40 41 41 41 42 44 44 44 44 45 45 46 46 47 47 48 48 48 48 49 49 49 50 50 50 50 1 1 1 1 2 2 3 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/ECO.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/ECO.txt new file mode 100644 index 0000000000000000000000000000000000000000..11b7535bf68cd801f564662e9c46f35aead592fb --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/ECO.txt @@ -0,0 +1,19 @@ +CM +TD +TD +TD +TQ2 +TQ2 +TD +TD +TD +SD +TD +EV2 +Params +Hollyweek 44 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 35 36 36 37 38 39 40 41 45 46 47 49 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/GP1.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/GP1.txt new file mode 100644 index 0000000000000000000000000000000000000000..66f2418ac043783596f24065567c3c4a94d2e973 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/GP1.txt @@ -0,0 +1,25 @@ +CM +TD +TD +TD +TQ2 +TQ2 +SD +TD +SM +TD +TD +TQ2 +TD +TQ2 +TD +TD +TQ2 +EV2 +Params +Hollyweek 44 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 37 37 39 40 41 42 45 46 46 47 47 48 48 49 49 50 1 2 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/MD.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/MD.txt new file mode 100644 index 0000000000000000000000000000000000000000..edb353e3e421bdc8e57a32430abe7570bdc940bd --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/MD.txt @@ -0,0 +1,27 @@ +CM +CM +TD +CM +TD +TD +TP2 +TD +TD +TP2 +TD +TD +TD +TP2 +TD +TD +TD +TQ2 +TP2 +EV2 +Params +EndsOn 49 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 35 36 36 36 36 37 37 37 37 38 38 39 40 41 41 42 42 45 46 47 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/MF.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/MF.txt new file mode 100644 index 0000000000000000000000000000000000000000..1317d918b01260389bcb5e1c6fa714808419c11e --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/MF.txt @@ -0,0 +1,19 @@ +CM +CM +TD +TD +TD +TD +TP2 +TQ2 +TQ2 +TQ2 +TP2 +EV2 +Params +StartsOn 45 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 45 45 46 47 48 48 49 50 50 1 1 2 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/PIX.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/PIX.txt new file mode 100644 index 0000000000000000000000000000000000000000..6effba337fe716538779c8c8c1b3aa42e4ba4c3e --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/PIX.txt @@ -0,0 +1,17 @@ +EV1 +TD +TD +TD +TP2 +TP2 +TP2 +TP2 +SP +EV1 +Params +StartsOn 38 +Subtitle BD +AffectCM BDev +AffectTD 2 BDev BDev +AffectTP 4 BDev BDev BDev BDev +Sched 38 39 40 41 44 45 46 47 48 49 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/PPP1.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/PPP1.txt new file mode 100644 index 0000000000000000000000000000000000000000..27d321e032f7be5a663c3a70f0d356d53b2a15fb --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/PPP1.txt @@ -0,0 +1,8 @@ +TD +TP2 +SP +SP +Params +AffectTD 2 ARic ARic +AffectTP 4 ARic ARic ARic ARic +Sched 40 44 1 2 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/SE.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/SE.txt new file mode 100644 index 0000000000000000000000000000000000000000..cb5cae9c5f0f325c2ea59f7fbb0d5768624d2540 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/SE.txt @@ -0,0 +1,20 @@ +TM +TM +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +SD +Params +Hollyweek 49 +Subtitle AB +AffectCM ABou +AffectTD 2 ABou ABou +AffectTP 4 SDie ABou ABou SAbi +Sched 38 38 39 39 40 40 41 41 42 42 44 44 46 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/WEB.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/WEB.txt new file mode 100644 index 0000000000000000000000000000000000000000..f59067b2c046d25c6b6fff3bfdc9766b3bd2f9f1 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/WEB.txt @@ -0,0 +1,16 @@ +TM +TM +TP2 +TP2 +TP2 +TP2 +SP +Params +Hollyweek 44 +Hollyweek 45 +Hollyweek 46 +Subtitle PV +AffectCM PVil +AffectTD 2 PVil PVil +AffectTP 4 PVil PVil PVil PVil +Sched 36 36 37 38 39 40 48 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S1/modules.txt b/saeshukan-main/data/2122_S1/V007_210716/S1/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..6fff8be33a2f720a20b217f2f810d0c16b99e0b4 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S1/modules.txt @@ -0,0 +1,13 @@ +DEV +WEB +PIX +ADO +SE +BD1 +MD +MF +GP1 +ECO +AT +C1 +PPP1 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/ACD4.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/ACD4.txt new file mode 100644 index 0000000000000000000000000000000000000000..31b1045c14ea73cee1e488bba8b380d264d89bb1 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/ACD4.txt @@ -0,0 +1,30 @@ +CM +TD +CM +TP4 +CM +TD +CM +TD +TP4 +CM +TD +TP4 +CM +TM +TM +TP4 +TM +EV2 +Params +Subtitle x-DB-PG +AffectCM DBol +AffectTD 2 DBol DBol +AffectTP 3 DBol DBol DBol +AffectSpec 13 2 PGue PGue +AffectSpec 14 2 PGue PGue +AffectSpec 16 2 PGue PGue +OnRight 13 +OnRight 14 +OnRight 16 +Sched 35 36 37 37 38 38 39 39 40 41 41 42 42 44 45 45 46 47 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/ACD5.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/ACD5.txt new file mode 100644 index 0000000000000000000000000000000000000000..2ae5232d577a08134498442ca33a25306f6749ad --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/ACD5.txt @@ -0,0 +1,19 @@ +CM +TD +TD +TQ2 +TD +TP2 +CM +TP2 +TD +TP2 +EV2 +Params +StartsOn 37 +Hollyweek 44 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 3 BDav BDav BDav +Sched 37 37 38 38 39 40 40 41 42 42 45 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/ANG3.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/ANG3.txt new file mode 100644 index 0000000000000000000000000000000000000000..d7220aa4090f33f559b464cffcb89a5f3766cdb6 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/ANG3.txt @@ -0,0 +1,28 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +Params +Subtitle AC +AffectTD 2 ACas ACas +AffectTP 3 ACas ACas ACas +Sched 35 36 36 37 37 38 38 39 39 40 40 41 41 42 44 46 46 47 48 49 49 50 1 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/APL3.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/APL3.txt new file mode 100644 index 0000000000000000000000000000000000000000..ec2e545eaaa894ed99b6db993ae34ef258af2b39 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/APL3.txt @@ -0,0 +1,22 @@ +CM +TD +TP2 +TD +TP2 +CM +TD +TM +TP2 +TP2 +CM +TM +TP2 +TP2 +EV2 +Params +EndsOn 49 +Subtitle DB +AffectCM DBol +AffectTD 2 DBol DBol +AffectTP 3 DBol DBol DBol +Sched 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/ASR4.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/ASR4.txt new file mode 100644 index 0000000000000000000000000000000000000000..2307e330853b1ead8c03b2229f34386fd5fedd15 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/ASR4.txt @@ -0,0 +1,25 @@ +CM +CM +CM +TM +TM +TM +TM +TP4 +EV1 +TM +TM +TP4 +TM +TM +TP4 +TM +TP4 +EV1 +Params +Hollyweek 49 +Subtitle AB +AffectCM ABou +AffectTD 2 ABou SDie +AffectTP 3 ABou KAbi SDie +Sched 44 44 45 45 46 47 47 48 48 50 50 1 1 1 2 2 3 3 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/ASR5.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/ASR5.txt new file mode 100644 index 0000000000000000000000000000000000000000..973954a8872820efcee2aef16122817ca88f6738 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/ASR5.txt @@ -0,0 +1,17 @@ +TD +TD +TD +TP4 +TP4 +Params +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 3 SDie SDie SDie +AffectSpec 0 2 KAbi KAbi +AffectSpec 1 2 KAbi KAbi +AffectSpec 2 2 KAbi KAbi +OnLeft 0 +OnLeft 1 +OnLeft 2 +Sched 44 45 46 47 48 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/BD3.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/BD3.txt new file mode 100644 index 0000000000000000000000000000000000000000..cb06d01256edb452ae215a4c494f5c029a3ea50c --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/BD3.txt @@ -0,0 +1,21 @@ +CM +CM +CM +TM +TM +TM +TM +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +EV2 +Params +StartsOn 44 +Subtitle PG +AffectCM PGue +AffectTD 2 KAbi KAbi +AffectTP 3 KAbi KAbi KAbi +Sched 44 45 46 47 47 48 48 49 49 50 50 1 1 2 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/EC3.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/EC3.txt new file mode 100644 index 0000000000000000000000000000000000000000..c4772eee11db42103bc08d09afd6148dec527f74 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/EC3.txt @@ -0,0 +1,12 @@ +TD +TQ2 +TD +TP2 +TD +TP2 +Params +Subtitle AR +AffectCM ARic +AffectTD 2 ARic ARic +AffectTP 3 ARic ARic ARic +Sched 36 37 38 39 40 41 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/EGO5.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/EGO5.txt new file mode 100644 index 0000000000000000000000000000000000000000..0e5bd85d754f69f28858b317b82cf4a7fcd3ed19 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/EGO5.txt @@ -0,0 +1,27 @@ +CM +CM +TD +TQ2 +CM +TD +TQ2 +CM +TD +TQ2 +CM +TD +TQ2 +TD +TQ2 +EV2 +Params +Hollyweek 37 +Hollyweek 38 +Hollyweek 39 +Subtitle PV-MP-x +AffectCM MPri +AffectTD 2 MPri MPri +AffectTP 3 MPri MPri MPri +AffectSpec 0 1 PVil +OnLeft 0 +Sched 36 36 36 40 41 41 42 44 44 45 46 46 47 48 49 50 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/EGO6.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/EGO6.txt new file mode 100644 index 0000000000000000000000000000000000000000..beaa6effd35056bee6cba7cea826768d2629f27c --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/EGO6.txt @@ -0,0 +1,24 @@ +CM +TD +TQ2 +CM +TD +TD +TP2 +TP2 +CM +TD +TP2 +CM +TD +TQ2 +CM +TD +EV2 +Params +Hollyweek 44 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 3 BDav BDav BDav +Sched 35 36 36 37 37 38 39 40 41 42 45 45 46 47 48 49 50 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/M5.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/M5.txt new file mode 100644 index 0000000000000000000000000000000000000000..d4a38815dbe80d0c9d9d46d4efb5cd607df981ea --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/M5.txt @@ -0,0 +1,29 @@ +CM +CM +TD +CM +CM +TD +TP2 +CM +TD +TD +TD +TP2 +CM +TD +TD +TD +TP2 +TQ2 +TQ2 +TQ2 +TP2 +EV2 +Params +EndsOn 50 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 3 PAde PAde PAde +Sched 35 36 36 36 37 37 38 38 38 39 39 39 40 40 41 41 42 42 44 44 45 46 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/M6.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/M6.txt new file mode 100644 index 0000000000000000000000000000000000000000..968be4e6dbac8497028a9e177f9d182fc3cb2208 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/M6.txt @@ -0,0 +1,21 @@ +TD +TD +TP2 +TP2 +TD +TP2 +TP2 +TD +TP2 +TP2 +TP2 +TD +TD +TD +TD +Params +StartsOn 45 +Subtitle PA +AffectTD 2 PAde PAde +AffectTP 3 PAde PAde PAde +Sched 45 46 47 47 47 48 48 48 49 49 50 1 1 2 2 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/PPP3.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/PPP3.txt new file mode 100644 index 0000000000000000000000000000000000000000..d77d18d34c3fbe008ca468c20a85aa1642164b68 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/PPP3.txt @@ -0,0 +1,9 @@ +TD +TD +TQ2 +TQ2 +Params +Subtitle N +AffectTD 2 SAbi SAbi +AffectTP 3 SAbi SAbi SAbi +Sched 44 46 49 50 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/WIM2.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/WIM2.txt new file mode 100644 index 0000000000000000000000000000000000000000..4110ab9c60a289b09ca91c075b9a1a446245fbdd --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/WIM2.txt @@ -0,0 +1,21 @@ +CM +CM +CM +TM +TM +TM +TM +TM +TM +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +Params +Subtitle EM +AffectCM EMic +AffectTD 2 SAbi SAbi +AffectTP 3 SAbi SAbi SAbi +Sched 39 39 40 41 42 45 45 46 46 47 48 49 50 1 2 diff --git a/saeshukan-main/data/2122_S1/V007_210716/S3/modules.txt b/saeshukan-main/data/2122_S1/V007_210716/S3/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..3586c52539c0184381f5249ee220adc7eb74ba68 --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/S3/modules.txt @@ -0,0 +1,14 @@ +ASR4 +ASR5 +APL3 +WIM2 +ACD4 +BD3 +M5 +M6 +EGO5 +EGO6 +EC3 +ANG3 +ACD5 +PPP3 diff --git a/saeshukan-main/data/2122_S1/V007_210716/cursus.txt b/saeshukan-main/data/2122_S1/V007_210716/cursus.txt new file mode 100644 index 0000000000000000000000000000000000000000..d0291d6ced742c67805c418a322120a6e1f55a0e --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/cursus.txt @@ -0,0 +1,2 @@ +S1 +S3 diff --git a/saeshukan-main/data/2122_S1/V007_210716/weeks.txt b/saeshukan-main/data/2122_S1/V007_210716/weeks.txt new file mode 100644 index 0000000000000000000000000000000000000000..7bd93b86a1e8ce08a8130e1175d913984e8a187f --- /dev/null +++ b/saeshukan-main/data/2122_S1/V007_210716/weeks.txt @@ -0,0 +1,12 @@ +ScolarYear 2021 +YearOfFirstWeek 2021 +FirstWeek 35 +SemesterLength 21 +DefaultWeekLength 40 +WeekLength S35 24 +WeekLength S36 36 +WeekLength S43 0 +WeekLength S44 32 +WeekLength S45 36 +WeekLength S51 0 +WeekLength S52 0 diff --git a/saeshukan-main/data/2122_S1/version.txt b/saeshukan-main/data/2122_S1/version.txt new file mode 100644 index 0000000000000000000000000000000000000000..f1875cf91912a3a41c84537b25015e2de1ae3641 --- /dev/null +++ b/saeshukan-main/data/2122_S1/version.txt @@ -0,0 +1,2 @@ +7 +210716 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/ANG4.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/ANG4.txt new file mode 100644 index 0000000000000000000000000000000000000000..f78c2fb410e8a29d15ee0fe5f26e574cec198d29 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/ANG4.txt @@ -0,0 +1,21 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TP2 +Params +EndsOn 13 +AffectCM ACas +AffectTD 1 ACas +AffectTP 2 ACas ACas +Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/CE.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/CE.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/CE.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/CI.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/CI.txt new file mode 100644 index 0000000000000000000000000000000000000000..6357984313dae26f2deb0a18a72bc45b5bfd4afc --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/CI.txt @@ -0,0 +1,21 @@ +TD +TD +TP2 +TP2 +TD +TD +TP2 +TP2 +TD +TD +TP2 +TP2 +TD +TD +TP2 +Params +EndsOn 13 +AffectCM ATer +AffectTD 1 ATer +AffectTP 1 ATer +Sched 4 4 4 4 6 6 6 6 8 8 8 8 10 10 10 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/EC4.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/EC4.txt new file mode 100644 index 0000000000000000000000000000000000000000..ed29118c674de6d57bf96501166342523b90dbae --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/EC4.txt @@ -0,0 +1,11 @@ +TD +TP2 +TD +TP2 +Params +EndsOn 13 +Subtitle AR +AffectCM ARic +AffectTD 1 ARic +AffectTP 2 ARic ARic +Sched 9 10 12 13 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/IA.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/IA.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/IA.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/IG.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/IG.txt new file mode 100644 index 0000000000000000000000000000000000000000..6a128a24e4709f9d1c6c57f34f9c91df55cf8cda --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/IG.txt @@ -0,0 +1,19 @@ +CM +TM +TM +CM +TM +TP4 +CM +TM +TP4 +CM +TM +TP4 +Params +EndsOn 13 +Hollyweek 6 +AffectCM PVil +AffectTD 1 PVil +AffectTP 1 PVil +Sched 4 4 4 5 5 5 8 8 8 10 10 10 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/MD.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/MD.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/MD.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/MG.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/MG.txt new file mode 100644 index 0000000000000000000000000000000000000000..068d8cffe819111309a3d23c5bb831a1ca1acf6d --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/MG.txt @@ -0,0 +1,18 @@ +CM +TD +TQ2 +TP4 +TD +CM +TD +TP4 +CM +TP4 +TD +TP2 +Params +EndsOn 13 +AffectCM PEve +AffectTD 1 PEve +AffectTP 1 PEve +Sched 4 5 6 6 9 9 10 10 11 11 13 13 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/MI.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/MI.txt new file mode 100644 index 0000000000000000000000000000000000000000..1fc661bdbecd0f19ea5ed687d6ca5c627827defb --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/MI.txt @@ -0,0 +1,20 @@ +TD +TQ2 +CM +TD +TD +TP2 +CM +TP4 +CM +TD +TP2 +TQ2 +TP2 +EV2 +Params +EndsOn 10 +AffectCM PEve +AffectTD 1 PEve +AffectTP 1 PEve +Sched 4 4 4 4 5 5 5 6 6 8 8 9 9 10 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/PG.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/PG.txt new file mode 100644 index 0000000000000000000000000000000000000000..34c10fc2a22e3ed4642006fe1f91f37ce96c67b4 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/PG.txt @@ -0,0 +1,18 @@ +CM +TP2 +TD +TM +CM +TD +TP4 +TD +TP4 +CM +TP2 +TP4 +Params +EndsOn 12 +AffectCM PEve +AffectTD 1 PEve +AffectTP 1 PEve +Sched 4 4 5 5 5 8 8 9 9 11 11 11 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/PM.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/PM.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/PM.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/PR.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/PR.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/PR.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/SI.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/SI.txt new file mode 100644 index 0000000000000000000000000000000000000000..18ed46b60a029de6b7ec0e9976d0e356f6bbf565 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/SI.txt @@ -0,0 +1,19 @@ +TD +TP4 +TD +TP2 +TD +TP2 +CM +TP4 +CM +TP4 +CM +TD +Params +StartsOn 5 +EndsOn 13 +AffectCM PEve +AffectTD 1 PEve +AffectTP 1 PEve +Sched 5 5 8 8 8 8 9 9 10 10 12 12 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/SR.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/SR.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/SR.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/TI.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/TI.txt new file mode 100644 index 0000000000000000000000000000000000000000..7d956cbe0b796c7cb965126ba3e687c6486e8db0 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/TI.txt @@ -0,0 +1,21 @@ +CM +TD +TP2 +TP2 +TD +TP2 +TP2 +TP2 +TP2 +CM +TP2 +TD +TP2 +TD +EV2 +Params +EndsOn 13 +AffectCM DBol +AffectTD 1 DBol +AffectTP 1 DBol +Sched 6 6 6 6 9 9 9 9 11 11 11 11 12 12 12 diff --git a/saeshukan-main/data/2122_S2/V001_211016/IN/modules.txt b/saeshukan-main/data/2122_S2/V001_211016/IN/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..24381f2fdf9f86f2d9e5a830a19fbff9233d26bd --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/IN/modules.txt @@ -0,0 +1,15 @@ +SR +PR +PM +IA +MD +CE +EC4 +ANG4 +TI +PG +IG +MG +SI +CI +MI diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/AE.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/AE.txt new file mode 100644 index 0000000000000000000000000000000000000000..af7ec25fe41173bf350958fe46dc085a972d722f --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/AE.txt @@ -0,0 +1,23 @@ +TD +TP2 +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +SQ +SQ +Params +AffectTD 2 ACas ACas +AffectTP 4 ACas ACas ACas ACas +Sched 6 8 9 10 11 12 13 14 14 18 18 19 19 20 20 21 21 23 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/BD2.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/BD2.txt new file mode 100644 index 0000000000000000000000000000000000000000..70ee9f77f19d158df78871bc53e62979a7e356ad --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/BD2.txt @@ -0,0 +1,19 @@ +TD +TD +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +SD +SP +Params +StartsOn 9 +Subtitle KA-PAG +AffectCM KAbi +AffectTD 2 KAbi KAbi +AffectTP 4 KAbi KAbi KAbi KAbi +OnRight 0 +Sched 9 10 11 13 14 17 18 19 20 22 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/C2.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/C2.txt new file mode 100644 index 0000000000000000000000000000000000000000..74216c2b77a144e477863705ee3bd946c4b66037 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/C2.txt @@ -0,0 +1,13 @@ +TD +TQ2 +TD +TP2 +TD +SD +SQ +Params +StartsOn 13 +AffectCM ARic +AffectTD 2 ARic ARic +AffectTP 4 ARic ARic ARic ARic +Sched 13 14 18 19 20 21 22 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/COO.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/COO.txt new file mode 100644 index 0000000000000000000000000000000000000000..a15755c02efed8368808401ab809d0a0bebdc187 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/COO.txt @@ -0,0 +1,13 @@ +CM +TD +TP4 +TM +TP4 +EV2 +Params +EndsOn 20 +Subtitle OC +AffectCM OCas +AffectTD 2 OCas OCas +AffectTP 4 SAbi OCas OCas SAbi +Sched 5 5 6 8 9 11 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/DCN.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/DCN.txt new file mode 100644 index 0000000000000000000000000000000000000000..da72d316a9a9dc20398e4f1a320bb3f16c51bb37 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/DCN.txt @@ -0,0 +1,16 @@ +TD +CM +TD +TD +TD +TD +TD +TD +EV2 +Params +Hollyweek 6 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 17 18 19 19 20 21 22 23 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/ERG.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/ERG.txt new file mode 100644 index 0000000000000000000000000000000000000000..bb8dea885d67de80e015afc7794f80ecda8459b1 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/ERG.txt @@ -0,0 +1,17 @@ +CM +CM +TP2 +TP2 +TP2 +TP2 +Params +StartsOn 13 +Subtitle PE-JM +AffectCM PEve +AffectTD 2 PEve PEve +AffectTP 4 JMou JMou JMou JMou +OnRight 2 +OnRight 3 +OnRight 4 +OnRight 5 +Sched 13 14 17 18 19 20 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/GP2a.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/GP2a.txt new file mode 100644 index 0000000000000000000000000000000000000000..20ba1ccad549be6a7d7ff9676444a9340a9885d2 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/GP2a.txt @@ -0,0 +1,21 @@ +CM +TD +TD +SP +TD +SM +TD +TD +SP +TD +SP +SP +SP +EV2 +Params +Hollyweek 6 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 4 4 4 5 5 8 8 9 9 10 10 11 12 14 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/GP2b.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/GP2b.txt new file mode 100644 index 0000000000000000000000000000000000000000..d05c81986e5ac5ffc33f1315306ca1885283a519 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/GP2b.txt @@ -0,0 +1,19 @@ +CM +TD +TD +TM +TP2 +CM +TD +TP2 +TP2 +Params +StartsOn 9 +Hollyweek 12 +Hollyweek 17 +Hollyweek 21 +Subtitle AC +AffectCM ACar +AffectTD 2 ACar ACar +AffectTP 4 ACar ACar ACar ACar +Sched 13 13 14 14 18 19 19 20 22 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/IHM.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/IHM.txt new file mode 100644 index 0000000000000000000000000000000000000000..99d2d5b4b52fa2f7da7619f7331e5a0576e7518b --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/IHM.txt @@ -0,0 +1,33 @@ +CM +TD +CM +TP2 +CM +TP2 +TD +TP2 +TP2 +TD +TP2 +TP4 +SP +SP +SD +Params +StartsOn 10 +Subtitle SF-PV-EM +AffectCM PVil +AffectTD 2 PVil PVil +AffectTP 4 EMic EMic EMic EMic +AffectSpec 3 4 PVil EMic EMic PVil +AffectSpec 5 4 PVil EMic EMic PVil +AffectSpec 7 4 PVil EMic EMic PVil +AffectSpec 10 4 PVil EMic EMic PVil +AffectSpec 11 4 SAbi SAbi SAbi SAbi +AffectSpec 12 4 SAbi SAbi SAbi SAbi +AffectSpec 13 4 SAbi SAbi SAbi SAbi +OnLeft 11 +OnLeft 12 +OnLeft 13 +OnRight 8 +Sched 10 10 11 11 12 12 13 13 14 17 17 17 18 20 22 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/MG.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/MG.txt new file mode 100644 index 0000000000000000000000000000000000000000..85165c3d6b85dfc5f0b286e70c622e9b0ced1228 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/MG.txt @@ -0,0 +1,26 @@ +CM +CM +TD +CM +TD +CM +TD +TP2 +TD +TP2 +SD +TD +TP2 +SP +TQ2 +TQ2 +TP2 +EV1 +Params +EndsOn 14 +Hollyweek 9 +Hollyweek 10 +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 4 4 4 4 4 5 5 5 5 6 6 6 8 11 12 12 13 14 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/MN.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/MN.txt new file mode 100644 index 0000000000000000000000000000000000000000..90bf6b5b9807c29f7ab4b8202ba2fab05fd69cb1 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/MN.txt @@ -0,0 +1,13 @@ +TD +TD +TP2 +TQ2 +TP2 +TP2 +EV1 +Params +EndsOn 22 +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 4 5 8 11 12 13 14 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/MS.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/MS.txt new file mode 100644 index 0000000000000000000000000000000000000000..adef7da2864653dde9b4b3ffa18cf68662698356 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/MS.txt @@ -0,0 +1,15 @@ +TD +TQ2 +TQ2 +TP2 +EV1 +SD +SP +SP +Params +StartsOn 17 +Hollyweek 23 +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 17 17 18 19 20 21 22 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/POO.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/POO.txt new file mode 100644 index 0000000000000000000000000000000000000000..c954302165fcdcfab6abafd7112f062adb7de0c6 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/POO.txt @@ -0,0 +1,47 @@ +CM +CM +TD +TP2 +CM +TD +TP2 +TD +TP2 +TP2 +TD +TP2 +TP2 +CM +TD +TP2 +TP2 +TD +TP2 +SD +TP2 +TP2 +TP2 +EV2 +TP2 +SP +TP2 +SP +SP +SD +Params +Subtitle DOO +AffectCM PEve +AffectTD 2 PEve PEve +AffectTP 4 PEve SAbi SAbi SAbi +AffectSpec 24 4 SAbi SAbi SAbi SAbi +AffectSpec 25 4 PEve PEve PEve PEve +AffectSpec 26 4 PEve SAbi SAbi PEve +AffectSpec 27 4 PEve PEve PEve PEve +AffectSpec 28 4 PEve PEve PEve PEve +OnLeft 0 +OnLeft 3 +OnLeft 10 +OnLeft 22 +OnLeft 24 +OnLeft 26 +Sched 4 4 4 4 5 5 5 6 6 6 6 8 8 8 8 9 9 9 10 10 10 11 11 12 12 12 13 14 17 22 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/PPP2.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/PPP2.txt new file mode 100644 index 0000000000000000000000000000000000000000..66d8a4f745666711157b19f77011d71149c5546d --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/PPP2.txt @@ -0,0 +1,11 @@ +TD +TD +TD +TD +TQ2 +Params +StartsOn 5 +Subtitle NEmo +AffectTD 2 NEmo NEmo +AffectTP 4 NEmo NEmo NEmo NEmo +Sched 17 18 19 21 23 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/QD.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/QD.txt new file mode 100644 index 0000000000000000000000000000000000000000..a359aa9ce3c35e6a06566b75a34cde2cd99af754 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/QD.txt @@ -0,0 +1,9 @@ +TP2 +TP2 +TP2 +Params +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +Sched 17 18 19 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/RES.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/RES.txt new file mode 100644 index 0000000000000000000000000000000000000000..1e879dee9ab8341433826f3a3769a45d1b820ddf --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/RES.txt @@ -0,0 +1,47 @@ +CM +CM +CM +TD +TD +TD +TD +TD +TP4 +TP4 +TP4 +SD +TD +TD +TD +TD +TD +TP4 +TP2 +SD +SP +Params +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +OnLeft 0 +OnLeft 1 +OnLeft 2 +OnLeft 3 +OnLeft 4 +OnLeft 5 +OnLeft 6 +OnLeft 7 +OnLeft 8 +OnLeft 9 +OnLeft 10 +OnLeft 11 +OnRight 12 +OnRight 13 +OnRight 14 +OnRight 15 +OnRight 16 +OnRight 17 +OnRight 18 +OnRight 19 +OnRight 20 +Sched 6 6 8 8 9 9 10 10 11 12 13 14 17 17 18 18 19 20 21 21 22 diff --git a/saeshukan-main/data/2122_S2/V001_211016/S2/modules.txt b/saeshukan-main/data/2122_S2/V001_211016/S2/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..fef5cedd749dcc3277c071dc2bacec001150f9c9 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/S2/modules.txt @@ -0,0 +1,16 @@ +POO +COO +IHM +ERG +QD +RES +BD2 +MG +MS +MN +GP2a +GP2b +DCN +AE +C2 +PPP2 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/ANG4.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/ANG4.txt new file mode 100644 index 0000000000000000000000000000000000000000..f78c2fb410e8a29d15ee0fe5f26e574cec198d29 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/ANG4.txt @@ -0,0 +1,21 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TP2 +Params +EndsOn 13 +AffectCM ACas +AffectTD 1 ACas +AffectTP 2 ACas ACas +Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/CE.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/CE.txt new file mode 100644 index 0000000000000000000000000000000000000000..b88d61b462771463bd11278b223eb3def8796430 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/CE.txt @@ -0,0 +1,21 @@ +CM +CM +TM +TP2 +TM +TP2 +TM +CM +TP2 +TM +TP2 +TP2 +EV2 +Params +EndsOn 13 +Hollyweek 6 +Subtitle BD +AffectCM BDav +AffectTD 1 BDav +AffectTP 2 BDav BDav +Sched 4 4 4 4 5 8 8 9 9 10 10 11 12 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/CI.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/CI.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/CI.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/EC4.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/EC4.txt new file mode 100644 index 0000000000000000000000000000000000000000..36ed71bccd9fa23c1c0f4ff9f9feeb6d0ca5cca0 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/EC4.txt @@ -0,0 +1,11 @@ +TD +TP2 +TD +TP2 +Params +EndsOn 13 +Subtitle AR +AffectCM ARic +AffectTD 1 ARic +AffectTP 2 ARic ARic +Sched 5 8 10 12 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/IA.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/IA.txt new file mode 100644 index 0000000000000000000000000000000000000000..6eb2136eadd1a071d6b75ceeb6a707491691ffd3 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/IA.txt @@ -0,0 +1,39 @@ +CM +TD +CM +TD +TD +TP4 +CM +TD +CM +TD +TD +TD +TP4 +Params +EndsOn 13 +Subtitle PV-FP +AffectCM PVil +AffectTD 1 PVil +AffectTP 2 PVil PVil +AffectSpec 0 1 FPie +AffectSpec 1 1 FPie +AffectSpec 2 1 FPie +AffectSpec 3 1 FPie +AffectSpec 4 2 FPie FPie +AffectSpec 5 1 FPie +OnLeft 6 +OnLeft 7 +OnLeft 8 +OnLeft 9 +OnLeft 10 +OnLeft 11 +OnLeft 12 +OnRight 0 +OnRight 1 +OnRight 2 +OnRight 3 +OnRight 4 +OnRight 5 +Sched 4 4 5 5 6 6 9 9 9 9 11 11 13 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/IG.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/IG.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/IG.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/MD.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/MD.txt new file mode 100644 index 0000000000000000000000000000000000000000..0389da97628dbd32711f430aba165cd8cc61b14e --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/MD.txt @@ -0,0 +1,23 @@ +CM +CM +TD +CM +TD +TD +TD +TQ2 +TQ2 +TP2 +TP2 +TP2 +TP2 +TP2 +EV2 +Params +EndsOn 13 +Hollyweek 9 +Hollyweek 10 +AffectCM PAde +AffectTD 1 PAde +AffectTP 2 PAde PAde +Sched 4 4 4 5 5 5 6 6 6 8 8 11 11 12 13 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/MG.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/MG.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/MG.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/MI.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/MI.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/MI.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/PG.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/PG.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/PG.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/PM.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/PM.txt new file mode 100644 index 0000000000000000000000000000000000000000..cee6a3f3e942135583df2c97111aa725d3f064a5 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/PM.txt @@ -0,0 +1,17 @@ +TD +TD +TD +TD +TP4 +TP4 +TP4 +TP4 +TD +TD +TD +Params +EndsOn 13 +AffectCM EMic +AffectTD 1 EMic +AffectTP 2 EMic EMic +Sched 5 5 5 5 6 8 9 10 11 11 12 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/PR.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/PR.txt new file mode 100644 index 0000000000000000000000000000000000000000..ab79e6cf766c66e68ecd9ccb5d87d411f1a67dc3 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/PR.txt @@ -0,0 +1,31 @@ +TD +TP4 +TP4 +TP4 +EV2 +CM +TD +TD +TP4 +EV2 +Params +EndsOn 13 +Subtitle AB-PV +AffectCM PVil +AffectTD 1 ABou +AffectTP 2 ABou ABou +AffectSpec 4 1 ABou +AffectSpec 6 1 PVil +AffectSpec 7 1 PVil +AffectSpec 8 2 PVil PVil +OnLeft 0 +OnLeft 1 +OnLeft 2 +OnLeft 3 +OnLeft 4 +OnRight 5 +OnRight 6 +OnRight 7 +OnRight 8 +OnRight 9 +Sched 4 4 5 6 8 10 11 11 12 12 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/SI.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/SI.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/SI.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/SR.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/SR.txt new file mode 100644 index 0000000000000000000000000000000000000000..65a6f5d0333c976d6a9e4153f72bd3617ccd6552 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/SR.txt @@ -0,0 +1,13 @@ +TM +TM +TP4 +TP4 +TP4 +TP4 +EV2 +Params +EndsOn 13 +AffectCM ABou +AffectTD 1 ABou +AffectTP 2 ABou ABou +Sched 8 8 9 10 11 12 13 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/TI.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/TI.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/TI.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V001_211016/WM/modules.txt b/saeshukan-main/data/2122_S2/V001_211016/WM/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..24381f2fdf9f86f2d9e5a830a19fbff9233d26bd --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/WM/modules.txt @@ -0,0 +1,15 @@ +SR +PR +PM +IA +MD +CE +EC4 +ANG4 +TI +PG +IG +MG +SI +CI +MI diff --git a/saeshukan-main/data/2122_S2/V001_211016/cursus.txt b/saeshukan-main/data/2122_S2/V001_211016/cursus.txt new file mode 100644 index 0000000000000000000000000000000000000000..851178cc798496148c15b486c4463b081acd8bdd --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/cursus.txt @@ -0,0 +1,3 @@ +S2 +WM +IN diff --git a/saeshukan-main/data/2122_S2/V001_211016/weeks.txt b/saeshukan-main/data/2122_S2/V001_211016/weeks.txt new file mode 100644 index 0000000000000000000000000000000000000000..256d2655bbde174bec068d7b15d367aa76efc52d --- /dev/null +++ b/saeshukan-main/data/2122_S2/V001_211016/weeks.txt @@ -0,0 +1,13 @@ +ScolarYear 2021 +YearOfFirstWeek 2022 +FirstWeek 4 +SemesterLength 21 +DefaultWeekLength 40 +WeekLength S6 36 +WeekLength S7 0 +WeekLength S14 36 +WeekLength S15 0 +WeekLength S16 0 +WeekLength S21 24 +WeekLength S23 32 +WeekLength S24 16 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/ANG4.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/ANG4.txt new file mode 100644 index 0000000000000000000000000000000000000000..f78c2fb410e8a29d15ee0fe5f26e574cec198d29 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/ANG4.txt @@ -0,0 +1,21 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TP2 +Params +EndsOn 13 +AffectCM ACas +AffectTD 1 ACas +AffectTP 2 ACas ACas +Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/CE.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/CE.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/CE.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/CI.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/CI.txt new file mode 100644 index 0000000000000000000000000000000000000000..6357984313dae26f2deb0a18a72bc45b5bfd4afc --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/CI.txt @@ -0,0 +1,21 @@ +TD +TD +TP2 +TP2 +TD +TD +TP2 +TP2 +TD +TD +TP2 +TP2 +TD +TD +TP2 +Params +EndsOn 13 +AffectCM ATer +AffectTD 1 ATer +AffectTP 1 ATer +Sched 4 4 4 4 6 6 6 6 8 8 8 8 10 10 10 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/EC4.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/EC4.txt new file mode 100644 index 0000000000000000000000000000000000000000..ed29118c674de6d57bf96501166342523b90dbae --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/EC4.txt @@ -0,0 +1,11 @@ +TD +TP2 +TD +TP2 +Params +EndsOn 13 +Subtitle AR +AffectCM ARic +AffectTD 1 ARic +AffectTP 2 ARic ARic +Sched 9 10 12 13 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/IA.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/IA.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/IA.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/IG.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/IG.txt new file mode 100644 index 0000000000000000000000000000000000000000..6a128a24e4709f9d1c6c57f34f9c91df55cf8cda --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/IG.txt @@ -0,0 +1,19 @@ +CM +TM +TM +CM +TM +TP4 +CM +TM +TP4 +CM +TM +TP4 +Params +EndsOn 13 +Hollyweek 6 +AffectCM PVil +AffectTD 1 PVil +AffectTP 1 PVil +Sched 4 4 4 5 5 5 8 8 8 10 10 10 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/MD.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/MD.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/MD.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/MG.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/MG.txt new file mode 100644 index 0000000000000000000000000000000000000000..068d8cffe819111309a3d23c5bb831a1ca1acf6d --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/MG.txt @@ -0,0 +1,18 @@ +CM +TD +TQ2 +TP4 +TD +CM +TD +TP4 +CM +TP4 +TD +TP2 +Params +EndsOn 13 +AffectCM PEve +AffectTD 1 PEve +AffectTP 1 PEve +Sched 4 5 6 6 9 9 10 10 11 11 13 13 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/MI.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/MI.txt new file mode 100644 index 0000000000000000000000000000000000000000..1fc661bdbecd0f19ea5ed687d6ca5c627827defb --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/MI.txt @@ -0,0 +1,20 @@ +TD +TQ2 +CM +TD +TD +TP2 +CM +TP4 +CM +TD +TP2 +TQ2 +TP2 +EV2 +Params +EndsOn 10 +AffectCM PEve +AffectTD 1 PEve +AffectTP 1 PEve +Sched 4 4 4 4 5 5 5 6 6 8 8 9 9 10 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/PG.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/PG.txt new file mode 100644 index 0000000000000000000000000000000000000000..34c10fc2a22e3ed4642006fe1f91f37ce96c67b4 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/PG.txt @@ -0,0 +1,18 @@ +CM +TP2 +TD +TM +CM +TD +TP4 +TD +TP4 +CM +TP2 +TP4 +Params +EndsOn 12 +AffectCM PEve +AffectTD 1 PEve +AffectTP 1 PEve +Sched 4 4 5 5 5 8 8 9 9 11 11 11 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/PM.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/PM.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/PM.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/PR.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/PR.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/PR.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/SI.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/SI.txt new file mode 100644 index 0000000000000000000000000000000000000000..18ed46b60a029de6b7ec0e9976d0e356f6bbf565 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/SI.txt @@ -0,0 +1,19 @@ +TD +TP4 +TD +TP2 +TD +TP2 +CM +TP4 +CM +TP4 +CM +TD +Params +StartsOn 5 +EndsOn 13 +AffectCM PEve +AffectTD 1 PEve +AffectTP 1 PEve +Sched 5 5 8 8 8 8 9 9 10 10 12 12 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/SR.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/SR.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/SR.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/TI.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/TI.txt new file mode 100644 index 0000000000000000000000000000000000000000..7d956cbe0b796c7cb965126ba3e687c6486e8db0 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/TI.txt @@ -0,0 +1,21 @@ +CM +TD +TP2 +TP2 +TD +TP2 +TP2 +TP2 +TP2 +CM +TP2 +TD +TP2 +TD +EV2 +Params +EndsOn 13 +AffectCM DBol +AffectTD 1 DBol +AffectTP 1 DBol +Sched 6 6 6 6 9 9 9 9 11 11 11 11 12 12 12 diff --git a/saeshukan-main/data/2122_S2/V004_211022/IN/modules.txt b/saeshukan-main/data/2122_S2/V004_211022/IN/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..24381f2fdf9f86f2d9e5a830a19fbff9233d26bd --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/IN/modules.txt @@ -0,0 +1,15 @@ +SR +PR +PM +IA +MD +CE +EC4 +ANG4 +TI +PG +IG +MG +SI +CI +MI diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/AE.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/AE.txt new file mode 100644 index 0000000000000000000000000000000000000000..af7ec25fe41173bf350958fe46dc085a972d722f --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/AE.txt @@ -0,0 +1,23 @@ +TD +TP2 +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +SQ +SQ +Params +AffectTD 2 ACas ACas +AffectTP 4 ACas ACas ACas ACas +Sched 6 8 9 10 11 12 13 14 14 18 18 19 19 20 20 21 21 23 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/BD2.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/BD2.txt new file mode 100644 index 0000000000000000000000000000000000000000..70ee9f77f19d158df78871bc53e62979a7e356ad --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/BD2.txt @@ -0,0 +1,19 @@ +TD +TD +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +SD +SP +Params +StartsOn 9 +Subtitle KA-PAG +AffectCM KAbi +AffectTD 2 KAbi KAbi +AffectTP 4 KAbi KAbi KAbi KAbi +OnRight 0 +Sched 9 10 11 13 14 17 18 19 20 22 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/C2.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/C2.txt new file mode 100644 index 0000000000000000000000000000000000000000..74216c2b77a144e477863705ee3bd946c4b66037 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/C2.txt @@ -0,0 +1,13 @@ +TD +TQ2 +TD +TP2 +TD +SD +SQ +Params +StartsOn 13 +AffectCM ARic +AffectTD 2 ARic ARic +AffectTP 4 ARic ARic ARic ARic +Sched 13 14 18 19 20 21 22 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/COO.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/COO.txt new file mode 100644 index 0000000000000000000000000000000000000000..c228a109a59604dee82aacfc0e0fd5c7d941cf48 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/COO.txt @@ -0,0 +1,13 @@ +CM +TD +TP4 +TM +TP4 +EV2 +Params +EndsOn 20 +Subtitle OC +AffectCM OCas +AffectTD 2 OCas OCas +AffectTP 4 SAbi OCas OCas SAbi +Sched 5 5 6 8 9 10 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/DCN.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/DCN.txt new file mode 100644 index 0000000000000000000000000000000000000000..da72d316a9a9dc20398e4f1a320bb3f16c51bb37 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/DCN.txt @@ -0,0 +1,16 @@ +TD +CM +TD +TD +TD +TD +TD +TD +EV2 +Params +Hollyweek 6 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 17 18 19 19 20 21 22 23 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/ERG.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/ERG.txt new file mode 100644 index 0000000000000000000000000000000000000000..5efe9cf3420953dd30a8e54ca2a0df7267cff73b --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/ERG.txt @@ -0,0 +1,17 @@ +CM +CM +TP2 +TP2 +TP2 +TP2 +Params +StartsOn 13 +Subtitle PE-JM +AffectCM PEve +AffectTD 2 PEve PEve +AffectTP 4 JMou JMou JMou JMou +OnRight 2 +OnRight 3 +OnRight 4 +OnRight 5 +Sched 13 14 17 18 18 19 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/GP2a.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/GP2a.txt new file mode 100644 index 0000000000000000000000000000000000000000..20ba1ccad549be6a7d7ff9676444a9340a9885d2 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/GP2a.txt @@ -0,0 +1,21 @@ +CM +TD +TD +SP +TD +SM +TD +TD +SP +TD +SP +SP +SP +EV2 +Params +Hollyweek 6 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 4 4 4 5 5 8 8 9 9 10 10 11 12 14 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/GP2b.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/GP2b.txt new file mode 100644 index 0000000000000000000000000000000000000000..d05c81986e5ac5ffc33f1315306ca1885283a519 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/GP2b.txt @@ -0,0 +1,19 @@ +CM +TD +TD +TM +TP2 +CM +TD +TP2 +TP2 +Params +StartsOn 9 +Hollyweek 12 +Hollyweek 17 +Hollyweek 21 +Subtitle AC +AffectCM ACar +AffectTD 2 ACar ACar +AffectTP 4 ACar ACar ACar ACar +Sched 13 13 14 14 18 19 19 20 22 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/IHM.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/IHM.txt new file mode 100644 index 0000000000000000000000000000000000000000..99d2d5b4b52fa2f7da7619f7331e5a0576e7518b --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/IHM.txt @@ -0,0 +1,33 @@ +CM +TD +CM +TP2 +CM +TP2 +TD +TP2 +TP2 +TD +TP2 +TP4 +SP +SP +SD +Params +StartsOn 10 +Subtitle SF-PV-EM +AffectCM PVil +AffectTD 2 PVil PVil +AffectTP 4 EMic EMic EMic EMic +AffectSpec 3 4 PVil EMic EMic PVil +AffectSpec 5 4 PVil EMic EMic PVil +AffectSpec 7 4 PVil EMic EMic PVil +AffectSpec 10 4 PVil EMic EMic PVil +AffectSpec 11 4 SAbi SAbi SAbi SAbi +AffectSpec 12 4 SAbi SAbi SAbi SAbi +AffectSpec 13 4 SAbi SAbi SAbi SAbi +OnLeft 11 +OnLeft 12 +OnLeft 13 +OnRight 8 +Sched 10 10 11 11 12 12 13 13 14 17 17 17 18 20 22 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/MG.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/MG.txt new file mode 100644 index 0000000000000000000000000000000000000000..135c706aa2b616c6fd172841d000e0a17b7cab98 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/MG.txt @@ -0,0 +1,26 @@ +CM +CM +TD +CM +TD +CM +TD +TP2 +TD +TP2 +TD +TP2 +SP +TQ2 +TQ2 +TP2 +SP +EV1 +Params +EndsOn 14 +Hollyweek 9 +Hollyweek 10 +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 4 4 4 4 4 5 5 5 5 6 6 6 8 8 11 12 12 13 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/MN.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/MN.txt new file mode 100644 index 0000000000000000000000000000000000000000..48d107b860216e2eff0018ea4da6ae0d8bd20e10 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/MN.txt @@ -0,0 +1,14 @@ +TD +TD +TP2 +TQ2 +TP2 +TP2 +SP +EV1 +Params +EndsOn 22 +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 4 5 8 11 12 13 14 17 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/MS.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/MS.txt new file mode 100644 index 0000000000000000000000000000000000000000..48eaec9b084cbb1b3b388afec62c89b6919765b9 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/MS.txt @@ -0,0 +1,15 @@ +TD +SD +TQ2 +TQ2 +TP2 +SP +EV1 +SP +Params +StartsOn 17 +Hollyweek 23 +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 17 17 18 19 20 21 22 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/POO.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/POO.txt new file mode 100644 index 0000000000000000000000000000000000000000..9e36063b6f6e43ff86cf30e553ef8b7b1a4dbfd8 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/POO.txt @@ -0,0 +1,51 @@ +CM +CM +TD +TP2 +CM +TD +TP2 +TD +TP2 +TP2 +TD +TP2 +TP2 +CM +TD +TP2 +TP2 +TD +TP2 +SD +TP2 +TP2 +TP2 +TP2 +EV2 +SP +TP2 +SP +SP +SD +Params +Hollyweek 18 +Hollyweek 19 +Hollyweek 20 +Hollyweek 21 +Subtitle DOO +AffectCM PEve +AffectTD 2 PEve PEve +AffectTP 4 PEve SAbi SAbi SAbi +AffectSpec 23 4 SAbi SAbi SAbi SAbi +AffectSpec 25 4 PEve PEve PEve PEve +AffectSpec 26 4 PEve SAbi SAbi PEve +AffectSpec 27 4 PEve PEve PEve PEve +AffectSpec 28 4 PEve PEve PEve PEve +OnLeft 0 +OnLeft 3 +OnLeft 10 +OnLeft 22 +OnLeft 23 +OnLeft 26 +Sched 4 4 4 4 5 5 5 6 6 6 6 8 8 8 8 9 9 9 10 10 10 11 11 11 12 12 13 14 17 22 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/PPP2.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/PPP2.txt new file mode 100644 index 0000000000000000000000000000000000000000..dd48f854a36f44599b81b770f4b56f88ada829f8 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/PPP2.txt @@ -0,0 +1,11 @@ +TD +TD +TD +TD +TQ2 +Params +StartsOn 5 +Subtitle NEmo +AffectTD 2 NEmo NEmo +AffectTP 4 NEmo NEmo NEmo NEmo +Sched 18 19 20 21 23 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/QD.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/QD.txt new file mode 100644 index 0000000000000000000000000000000000000000..a359aa9ce3c35e6a06566b75a34cde2cd99af754 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/QD.txt @@ -0,0 +1,9 @@ +TP2 +TP2 +TP2 +Params +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +Sched 17 18 19 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/RES.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/RES.txt new file mode 100644 index 0000000000000000000000000000000000000000..1e879dee9ab8341433826f3a3769a45d1b820ddf --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/RES.txt @@ -0,0 +1,47 @@ +CM +CM +CM +TD +TD +TD +TD +TD +TP4 +TP4 +TP4 +SD +TD +TD +TD +TD +TD +TP4 +TP2 +SD +SP +Params +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +OnLeft 0 +OnLeft 1 +OnLeft 2 +OnLeft 3 +OnLeft 4 +OnLeft 5 +OnLeft 6 +OnLeft 7 +OnLeft 8 +OnLeft 9 +OnLeft 10 +OnLeft 11 +OnRight 12 +OnRight 13 +OnRight 14 +OnRight 15 +OnRight 16 +OnRight 17 +OnRight 18 +OnRight 19 +OnRight 20 +Sched 6 6 8 8 9 9 10 10 11 12 13 14 17 17 18 18 19 20 21 21 22 diff --git a/saeshukan-main/data/2122_S2/V004_211022/S2/modules.txt b/saeshukan-main/data/2122_S2/V004_211022/S2/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..fef5cedd749dcc3277c071dc2bacec001150f9c9 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/S2/modules.txt @@ -0,0 +1,16 @@ +POO +COO +IHM +ERG +QD +RES +BD2 +MG +MS +MN +GP2a +GP2b +DCN +AE +C2 +PPP2 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/ANG4.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/ANG4.txt new file mode 100644 index 0000000000000000000000000000000000000000..f78c2fb410e8a29d15ee0fe5f26e574cec198d29 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/ANG4.txt @@ -0,0 +1,21 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TP2 +Params +EndsOn 13 +AffectCM ACas +AffectTD 1 ACas +AffectTP 2 ACas ACas +Sched 4 4 5 5 6 6 9 9 10 10 11 11 12 12 13 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/CE.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/CE.txt new file mode 100644 index 0000000000000000000000000000000000000000..b88d61b462771463bd11278b223eb3def8796430 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/CE.txt @@ -0,0 +1,21 @@ +CM +CM +TM +TP2 +TM +TP2 +TM +CM +TP2 +TM +TP2 +TP2 +EV2 +Params +EndsOn 13 +Hollyweek 6 +Subtitle BD +AffectCM BDav +AffectTD 1 BDav +AffectTP 2 BDav BDav +Sched 4 4 4 4 5 8 8 9 9 10 10 11 12 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/CI.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/CI.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/CI.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/EC4.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/EC4.txt new file mode 100644 index 0000000000000000000000000000000000000000..36ed71bccd9fa23c1c0f4ff9f9feeb6d0ca5cca0 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/EC4.txt @@ -0,0 +1,11 @@ +TD +TP2 +TD +TP2 +Params +EndsOn 13 +Subtitle AR +AffectCM ARic +AffectTD 1 ARic +AffectTP 2 ARic ARic +Sched 5 8 10 12 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/IA.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/IA.txt new file mode 100644 index 0000000000000000000000000000000000000000..6eb2136eadd1a071d6b75ceeb6a707491691ffd3 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/IA.txt @@ -0,0 +1,39 @@ +CM +TD +CM +TD +TD +TP4 +CM +TD +CM +TD +TD +TD +TP4 +Params +EndsOn 13 +Subtitle PV-FP +AffectCM PVil +AffectTD 1 PVil +AffectTP 2 PVil PVil +AffectSpec 0 1 FPie +AffectSpec 1 1 FPie +AffectSpec 2 1 FPie +AffectSpec 3 1 FPie +AffectSpec 4 2 FPie FPie +AffectSpec 5 1 FPie +OnLeft 6 +OnLeft 7 +OnLeft 8 +OnLeft 9 +OnLeft 10 +OnLeft 11 +OnLeft 12 +OnRight 0 +OnRight 1 +OnRight 2 +OnRight 3 +OnRight 4 +OnRight 5 +Sched 4 4 5 5 6 6 9 9 9 9 11 11 13 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/IG.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/IG.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/IG.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/MD.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/MD.txt new file mode 100644 index 0000000000000000000000000000000000000000..0389da97628dbd32711f430aba165cd8cc61b14e --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/MD.txt @@ -0,0 +1,23 @@ +CM +CM +TD +CM +TD +TD +TD +TQ2 +TQ2 +TP2 +TP2 +TP2 +TP2 +TP2 +EV2 +Params +EndsOn 13 +Hollyweek 9 +Hollyweek 10 +AffectCM PAde +AffectTD 1 PAde +AffectTP 2 PAde PAde +Sched 4 4 4 5 5 5 6 6 6 8 8 11 11 12 13 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/MG.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/MG.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/MG.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/MI.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/MI.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/MI.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/PG.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/PG.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/PG.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/PM.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/PM.txt new file mode 100644 index 0000000000000000000000000000000000000000..cee6a3f3e942135583df2c97111aa725d3f064a5 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/PM.txt @@ -0,0 +1,17 @@ +TD +TD +TD +TD +TP4 +TP4 +TP4 +TP4 +TD +TD +TD +Params +EndsOn 13 +AffectCM EMic +AffectTD 1 EMic +AffectTP 2 EMic EMic +Sched 5 5 5 5 6 8 9 10 11 11 12 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/PR.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/PR.txt new file mode 100644 index 0000000000000000000000000000000000000000..ab79e6cf766c66e68ecd9ccb5d87d411f1a67dc3 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/PR.txt @@ -0,0 +1,31 @@ +TD +TP4 +TP4 +TP4 +EV2 +CM +TD +TD +TP4 +EV2 +Params +EndsOn 13 +Subtitle AB-PV +AffectCM PVil +AffectTD 1 ABou +AffectTP 2 ABou ABou +AffectSpec 4 1 ABou +AffectSpec 6 1 PVil +AffectSpec 7 1 PVil +AffectSpec 8 2 PVil PVil +OnLeft 0 +OnLeft 1 +OnLeft 2 +OnLeft 3 +OnLeft 4 +OnRight 5 +OnRight 6 +OnRight 7 +OnRight 8 +OnRight 9 +Sched 4 4 5 6 8 10 11 11 12 12 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/SI.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/SI.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/SI.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/SR.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/SR.txt new file mode 100644 index 0000000000000000000000000000000000000000..65a6f5d0333c976d6a9e4153f72bd3617ccd6552 --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/SR.txt @@ -0,0 +1,13 @@ +TM +TM +TP4 +TP4 +TP4 +TP4 +EV2 +Params +EndsOn 13 +AffectCM ABou +AffectTD 1 ABou +AffectTP 2 ABou ABou +Sched 8 8 9 10 11 12 13 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/TI.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/TI.txt new file mode 100644 index 0000000000000000000000000000000000000000..d66d96ce28a61a20910fc72310c121c543417f6a --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/TI.txt @@ -0,0 +1,5 @@ +EV1 +Params +StartsOn 24 +AffectCM AFac +Sched 24 diff --git a/saeshukan-main/data/2122_S2/V004_211022/WM/modules.txt b/saeshukan-main/data/2122_S2/V004_211022/WM/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..24381f2fdf9f86f2d9e5a830a19fbff9233d26bd --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/WM/modules.txt @@ -0,0 +1,15 @@ +SR +PR +PM +IA +MD +CE +EC4 +ANG4 +TI +PG +IG +MG +SI +CI +MI diff --git a/saeshukan-main/data/2122_S2/V004_211022/cursus.txt b/saeshukan-main/data/2122_S2/V004_211022/cursus.txt new file mode 100644 index 0000000000000000000000000000000000000000..851178cc798496148c15b486c4463b081acd8bdd --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/cursus.txt @@ -0,0 +1,3 @@ +S2 +WM +IN diff --git a/saeshukan-main/data/2122_S2/V004_211022/weeks.txt b/saeshukan-main/data/2122_S2/V004_211022/weeks.txt new file mode 100644 index 0000000000000000000000000000000000000000..256d2655bbde174bec068d7b15d367aa76efc52d --- /dev/null +++ b/saeshukan-main/data/2122_S2/V004_211022/weeks.txt @@ -0,0 +1,13 @@ +ScolarYear 2021 +YearOfFirstWeek 2022 +FirstWeek 4 +SemesterLength 21 +DefaultWeekLength 40 +WeekLength S6 36 +WeekLength S7 0 +WeekLength S14 36 +WeekLength S15 0 +WeekLength S16 0 +WeekLength S21 24 +WeekLength S23 32 +WeekLength S24 16 diff --git a/saeshukan-main/data/2122_S2/version.txt b/saeshukan-main/data/2122_S2/version.txt new file mode 100644 index 0000000000000000000000000000000000000000..cfed6f821498fcd21e5646e8a4affc9092ca3432 --- /dev/null +++ b/saeshukan-main/data/2122_S2/version.txt @@ -0,0 +1,2 @@ +4 +211022 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/A1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/A1.txt new file mode 100644 index 0000000000000000000000000000000000000000..82e9b00a1258c60c9ef06da6a9e1da28ae520b90 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/A1.txt @@ -0,0 +1,19 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +SP +Params +Subtitle AC +AffectTD 2 ACas ACas +AffectTP 4 ACas ACas ACas ACas +Sched 36 36 37 37 38 39 40 41 42 43 46 47 47 48 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/ASR1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/ASR1.txt new file mode 100644 index 0000000000000000000000000000000000000000..394008decc019b816cbf7a58b1e45d0acad7d91b --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/ASR1.txt @@ -0,0 +1,16 @@ +CM +CM +TD +TD +TD +TD +TP4 +TP4 +SD +SD +Params +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +Sched 35 36 36 36 36 37 37 38 46 48 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/ASR2.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/ASR2.txt new file mode 100644 index 0000000000000000000000000000000000000000..e80cc79dd192db8a172bc9dba996c4541e113bce --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/ASR2.txt @@ -0,0 +1,33 @@ +TM +TM +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +SD +Params +StartsOn 38 +Hollyweek 49 +Subtitle AB +AffectCM ABou +AffectTD 2 ABou ABou +AffectTP 4 ABou ABou ABou ABou +AffectSpec 6 4 SDie SDie SDie SDie +AffectSpec 7 4 SDie SDie SDie SDie +AffectSpec 8 4 HSli HSli HSli HSli +AffectSpec 9 4 HSli HSli HSli HSli +AffectSpec 10 4 HSli HSli HSli HSli +AffectSpec 11 4 HSli HSli HSli HSli +OnLeft 6 +OnLeft 7 +OnRight 8 +OnRight 9 +OnRight 10 +OnRight 11 +Sched 38 38 39 39 40 40 41 41 42 43 45 46 47 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/BD1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/BD1.txt new file mode 100644 index 0000000000000000000000000000000000000000..69e14edcf6a92616d651f2b28972ddd9e536d68c --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/BD1.txt @@ -0,0 +1,30 @@ +CM +CM +CM +CM +TD +TD +TD +TD +TD +TD +TD +TP4 +TP4 +TP4 +TP4 +TP4 +SD +TP4 +SP +Params +Subtitle FA-SD +AffectCM FAbd +AffectTD 2 FAbd SDie +AffectTP 4 FAbd SDie SDie FAbd +AffectSpec 3 1 SDie +OnLeft 0 +OnLeft 1 +OnLeft 2 +OnRight 3 +Sched 41 41 42 42 42 43 43 45 45 46 46 46 48 49 50 1 2 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/C1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/C1.txt new file mode 100644 index 0000000000000000000000000000000000000000..513beacb3e3cf32de0e8ffbda7ab80dd0d09a6be --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/C1.txt @@ -0,0 +1,23 @@ +TD +TD +TQ2 +TD +TD +TQ2 +TD +TQ2 +TD +TQ2 +TD +TQ2 +TD +SD +SP +SP +SP +Params +Subtitle SN +AffectCM SNdo +AffectTD 2 SNdo SNdo +AffectTP 4 SNdo SNdo SNdo SNdo +Sched 37 37 38 39 39 40 41 42 43 43 45 45 46 47 49 50 1 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/DEV1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/DEV1.txt new file mode 100644 index 0000000000000000000000000000000000000000..58fb8edc64d9103f9eb5304df1f348aa1bd46691 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/DEV1.txt @@ -0,0 +1,95 @@ +CM +CM +CM +TD +TD +TD +TD +TP4 +CM +TD +TP4 +TD +TD +TP4 +TP4 +EV1 +TD +TD +TP4 +TP4 +SD +TP4 +SP +CM +TP4 +EV1 +TD +TD +TP4 +CM +TP4 +TD +TD +TP4 +SD +TD +TD +TP4 +SP +TD +TP4 +EV2 +Params +StartsOn 37 +Subtitle K-B-XD +AffectCM ABou +AffectTD 2 ABou ABou +AffectTP 4 ABou ABou ABou ABou +AffectSpec 3 2 EKer EKer +AffectSpec 4 2 EKer EKer +AffectSpec 7 4 AHez AHez AHez AHez +AffectSpec 8 1 EKer +AffectSpec 9 2 EKer EKer +AffectSpec 10 4 AHez AHez AHez AHez +AffectSpec 13 4 AHez AHez AHez AHez +AffectSpec 16 2 EKer EKer +AffectSpec 17 2 EKer EKer +AffectSpec 18 4 SDie SDie SDie SDie +AffectSpec 21 4 EKer EKer EKer EKer +AffectSpec 23 1 EKer +AffectSpec 24 4 SDie SDie SDie SDie +AffectSpec 26 2 EKer EKer +AffectSpec 27 2 EKer EKer +AffectSpec 28 4 EKer EKer EKer EKer +AffectSpec 29 1 EKer +AffectSpec 30 4 EKer AHez AHez EKer +AffectSpec 34 2 EKer EKer +AffectSpec 38 4 EKer EKer EKer EKer +AffectSpec 39 2 EKer EKer +AffectSpec 40 4 EKer EKer EKer EKer +AffectSpec 41 1 EKer +OnLeft 3 +OnLeft 4 +OnLeft 8 +OnLeft 9 +OnLeft 16 +OnLeft 17 +OnLeft 21 +OnLeft 23 +OnLeft 26 +OnLeft 27 +OnLeft 28 +OnLeft 29 +OnLeft 30 +OnLeft 34 +OnLeft 38 +OnLeft 39 +OnLeft 40 +OnLeft 41 +OnRight 7 +OnRight 10 +OnRight 13 +OnRight 18 +OnRight 24 +Sched 37 37 38 38 38 39 39 39 40 40 40 41 41 41 42 43 43 43 43 45 45 46 46 47 47 48 48 48 48 49 49 50 50 50 50 1 1 1 1 2 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/ECO1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/ECO1.txt new file mode 100644 index 0000000000000000000000000000000000000000..834bcc1085f0f3f59c9eaf97dbacd714f92862ab --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/ECO1.txt @@ -0,0 +1,17 @@ +CM +TD +TQ2 +TD +TD +TD +TQ2 +TD +TD +TD +EV2 +Params +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 45 45 46 47 47 48 49 49 50 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/GP1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/GP1.txt new file mode 100644 index 0000000000000000000000000000000000000000..c800dda72f36cfa317aa135ae9986e4f8a50e2f4 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/GP1.txt @@ -0,0 +1,25 @@ +CM +TD +TD +TD +TQ2 +TQ2 +TD +SD +TD +SM +TD +TQ2 +TD +TQ2 +TD +TD +TQ2 +EV2 +Params +Hollyweek 43 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 35 36 36 36 37 38 39 40 40 41 42 42 45 46 47 48 49 49 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/M1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/M1.txt new file mode 100644 index 0000000000000000000000000000000000000000..1b8f7950ef8575cacb264cf272aaa1b2c91ffc9f --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/M1.txt @@ -0,0 +1,27 @@ +TD +TD +TD +TD +TD +TD +TP2 +TD +TD +TP2 +TD +TD +TD +TP2 +TD +TD +TD +TQ2 +TP2 +EV2 +Params +EndsOn 50 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 36 36 36 36 37 37 37 38 38 38 39 39 40 40 41 42 42 43 43 45 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/M2.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/M2.txt new file mode 100644 index 0000000000000000000000000000000000000000..f5e96678b10c94f9db8c54131386e2baf27abd80 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/M2.txt @@ -0,0 +1,19 @@ +TD +TD +TD +TD +TD +TD +TP2 +TQ2 +TQ2 +TQ2 +TP2 +EV2 +Params +StartsOn 45 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 45 46 47 47 48 48 49 49 50 1 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/PPP1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/PPP1.txt new file mode 100644 index 0000000000000000000000000000000000000000..101e53cfce20aca434b461c4db78406ac85266b9 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/PPP1.txt @@ -0,0 +1,14 @@ +TD +TD +TD +TD +TP2 +TD +TD +TD +TD +Params +Subtitle SN +AffectTD 2 SNdo SNdo +AffectTP 4 SNdo SNdo SNdo SNdo +Sched 39 40 41 48 49 50 2 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/WEB1.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/WEB1.txt new file mode 100644 index 0000000000000000000000000000000000000000..9662bb2d07934b7e79d3af9cd44eb70e451282f6 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/WEB1.txt @@ -0,0 +1,28 @@ +TM +TM +TP2 +TP2 +TP2 +TP2 +CM +TP2 +TP2 +TP2 +SP +SP +Params +Subtitle PV-AB +AffectCM PVil +AffectTD 2 PVil PVil +AffectTP 4 PVil PVil PVil PVil +AffectSpec 6 1 ABic +AffectSpec 7 4 ABic ABic ABic ABic +AffectSpec 8 4 ABic ABic ABic ABic +AffectSpec 9 4 ABic ABic ABic ABic +AffectSpec 11 4 ABic ABic ABic ABic +OnRight 6 +OnRight 7 +OnRight 8 +OnRight 9 +OnRight 11 +Sched 36 37 38 39 40 41 47 47 48 49 50 50 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S1/modules.txt b/saeshukan-main/data/2223_S1/V001_220708/S1/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..dd15941e58b310bc3526ef0a3635586bf0e119fb --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S1/modules.txt @@ -0,0 +1,12 @@ +DEV1 +WEB1 +ASR1 +ASR2 +BD1 +M1 +M2 +GP1 +ECO1 +A1 +C1 +PPP1 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/A3.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/A3.txt new file mode 100644 index 0000000000000000000000000000000000000000..307b5a7de46ea035ee7b8fabfe55947b815867f4 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/A3.txt @@ -0,0 +1,25 @@ +TD +TD +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +SD +SD +SP +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle AC +AffectTD 2 ACas ACas +AffectTP 2 ACas ACas +Sched 36 37 38 41 42 42 46 48 1 1 2 2 3 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/ASR5.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/ASR5.txt new file mode 100644 index 0000000000000000000000000000000000000000..9f0fbc7520bffbfb88a86c664b06160fcef47446 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/ASR5.txt @@ -0,0 +1,28 @@ +TD +TD +TD +TD +TD +TP2 +TP2 +TP2 +TP2 +TP2 +SD +SD +SP +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle AB +AffectCM ABou +AffectTD 2 ABou SDie +AffectTP 2 ABou SDie +AffectSpec 10 2 ABou ABou +AffectSpec 11 2 ABou ABou +AffectSpec 12 2 ABou ABou +Sched 36 36 37 37 38 38 41 42 46 47 47 48 2 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/ASR6.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/ASR6.txt new file mode 100644 index 0000000000000000000000000000000000000000..10dfe62a78d1dcbdef32ad623f65a882531f4df6 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/ASR6.txt @@ -0,0 +1,18 @@ +TD +TM +TP4 +TP4 +SP +SD +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 2 SDie SDie +Sched 46 47 47 48 1 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/BD3.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/BD3.txt new file mode 100644 index 0000000000000000000000000000000000000000..2250959839823f599e5a5f44c9de45dbca57b720 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/BD3.txt @@ -0,0 +1,18 @@ +TD +TD +TD +TM +TM +TM +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle HS +AffectCM HSli +AffectTD 2 HSli HSli +AffectTP 2 HSli HSli +Sched 46 46 48 1 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/C3.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/C3.txt new file mode 100644 index 0000000000000000000000000000000000000000..55fe5217de84de19bd75d49c10e318fc6fd7dcb2 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/C3.txt @@ -0,0 +1,25 @@ +TD +TD +TQ2 +TD +TD +TP2 +TD +TD +TP2 +TD +SD +SD +SP +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle AS +AffectCM ASau +AffectTD 2 ASau ASau +AffectTP 2 ASau ASau +Sched 37 38 41 42 46 46 47 47 48 48 1 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/DEV4.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/DEV4.txt new file mode 100644 index 0000000000000000000000000000000000000000..31d15d440d62893a9707768dafcd7d2fa946bc94 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/DEV4.txt @@ -0,0 +1,21 @@ +CM +TD +TP2 +TP2 +CM +SD +TP2 +SP +EV2 +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle DB +AffectCM DBol +AffectTD 2 DBol DBol +AffectTP 2 DBol DBol +Sched 36 36 36 36 37 37 37 38 41 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/DEV5.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/DEV5.txt new file mode 100644 index 0000000000000000000000000000000000000000..c4f2fc7fb4549a17435ef0ee1dde743a86082e0c --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/DEV5.txt @@ -0,0 +1,21 @@ +CM +TD +TP2 +CM +SD +TP2 +CM +TP2 +SP +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle DB +AffectCM DBol +AffectTD 2 DBol DBol +AffectTP 2 DBol DBol +Sched 36 37 38 38 38 41 42 42 2 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/DI.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/DI.txt new file mode 100644 index 0000000000000000000000000000000000000000..848991dbdfead0fc827d4e4356bfad6e08d1b291 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/DI.txt @@ -0,0 +1,27 @@ +CM +TD +TD +TD +TD +TD +TD +TD +TD +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle HS +AffectCM HSli +AffectTD 2 HSli HSli +AffectTP 2 HSli HSli +Sched 36 36 37 37 38 41 42 42 46 47 48 1 2 3 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/DR2.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/DR2.txt new file mode 100644 index 0000000000000000000000000000000000000000..b7639bb20d6e3fc499f454f3abb1a57c08fbdf1f --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/DR2.txt @@ -0,0 +1,57 @@ +CM +TD +TD +TD +CM +TD +CM +TD +CM +TD +TD +SD +SD +SD +SD +EV2 +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 46 +Hollyweek 47 +Hollyweek 48 +Hollyweek 49 +Hollyweek 50 +Subtitle V-D-P +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 2 BDav BDav +AffectSpec 0 1 PVil +AffectSpec 4 1 MPri +AffectSpec 5 2 MPri MPri +AffectSpec 6 1 MPri +AffectSpec 7 2 MPri MPri +AffectSpec 8 1 MPri +AffectSpec 9 2 MPri MPri +AffectSpec 10 2 MPri MPri +AffectSpec 11 2 MPri MPri +AffectSpec 12 2 MPri MPri +AffectSpec 13 2 MPri MPri +AffectSpec 14 2 MPri MPri +AffectSpec 15 1 MPri +OnLeft 0 +OnRight 4 +OnRight 5 +OnRight 6 +OnRight 7 +OnRight 8 +OnRight 9 +OnRight 10 +OnRight 11 +OnRight 12 +OnRight 13 +OnRight 14 +OnRight 15 +Sched 36 36 37 37 38 38 41 41 42 42 1 1 2 2 3 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/GP3.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/GP3.txt new file mode 100644 index 0000000000000000000000000000000000000000..0a2b914b5cc55532efe7624d49cc961d19e8f082 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/GP3.txt @@ -0,0 +1,29 @@ +CM +TQ2 +TD +SD +SD +TD +TD +SD +TD +TD +SP +TD +TD +TQ2 +TQ2 +TD +EV2 +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 2 BDav BDav +Sched 35 35 37 38 38 41 42 42 46 46 47 48 48 1 2 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/M6.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/M6.txt new file mode 100644 index 0000000000000000000000000000000000000000..349c78114026a7b0b78bcae6e73c6343ce9cdca0 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/M6.txt @@ -0,0 +1,27 @@ +TD +TD +TD +TP2 +TD +TD +TD +SD +TD +TP2 +TD +SD +TP2 +EV2 +SP +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 2 PAde PAde +Sched 35 36 36 37 37 38 41 41 42 42 46 46 47 47 48 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/M7.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/M7.txt new file mode 100644 index 0000000000000000000000000000000000000000..6b8f8d8341e9c0949e07a6dbe7e9de5d68e867d7 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/M7.txt @@ -0,0 +1,27 @@ +TD +TD +TD +TP2 +SD +TP2 +SP +TP2 +TD +SP +TP4 +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle PA-PV +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 2 PAde PAde +AffectSpec 0 2 PVil PVil +AffectSpec 10 2 PVil PVil +OnRight 0 +OnRight 10 +Sched 46 46 47 47 48 48 1 1 2 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/PPP3.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/PPP3.txt new file mode 100644 index 0000000000000000000000000000000000000000..6960c6bebd2a5de9c1af7e807c304ffc3a428894 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/PPP3.txt @@ -0,0 +1,23 @@ +SM +TD +TD +TD +TP2 +TD +TP2 +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 2 BDav BDav +AffectSpec 1 2 Dron DRon +AffectSpec 2 2 Dron DRon +OnRight 1 +OnRight 2 +Sched 38 41 41 48 1 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/QD2.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/QD2.txt new file mode 100644 index 0000000000000000000000000000000000000000..91373725909cd25186a366aa204f095c682e782c --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/QD2.txt @@ -0,0 +1,27 @@ +CM +TP4 +CM +TD +TM +CM +TD +TP4 +CM +SD +TP4 +CM +TP4 +SP +SP +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle DB +AffectCM DBol +AffectTD 2 DBol DBol +AffectTP 2 DBol DBol +Sched 41 41 42 42 42 46 46 46 47 47 47 48 1 2 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/TI.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/TI.txt new file mode 100644 index 0000000000000000000000000000000000000000..707acc69cf718f6df2e61ecbe634a480e26d28b2 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/TI.txt @@ -0,0 +1,19 @@ +CM +TM +TP4 +CM +TP4 +TP4 +EV2 +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle DB +AffectCM DBol +AffectTD 2 DBol DBol +AffectTP 2 DBol DBol +Sched 47 48 48 1 2 3 3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/WEB2.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/WEB2.txt new file mode 100644 index 0000000000000000000000000000000000000000..7dac117559cb39fc2f3cfff9c53aed97606399fc --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/WEB2.txt @@ -0,0 +1,25 @@ +CM +CM +TP4 +CM +TP2 +TP4 +TP4 +TP4 +TP2 +SD +SP +SP +SP +Params +Hollyweek 39 +Hollyweek 40 +Hollyweek 43 +Hollyweek 45 +Hollyweek 49 +Hollyweek 50 +Subtitle EM +AffectCM EMic +AffectTD 2 EMic HSli +AffectTP 2 EMic HSli +Sched 36 36 36 37 37 37 38 38 41 41 41 42 42 diff --git a/saeshukan-main/data/2223_S1/V001_220708/S3/modules.txt b/saeshukan-main/data/2223_S1/V001_220708/S3/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..c2d00eb2d4ab7f5e5afb8a800c2c6c81d95c42e7 --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/S3/modules.txt @@ -0,0 +1,16 @@ +WEB2 +DEV4 +DEV5 +QD2 +ASR5 +ASR6 +BD3 +M6 +M7 +GP3 +DR2 +A3 +C3 +PPP3 +TI +DI diff --git a/saeshukan-main/data/2223_S1/V001_220708/cursus.txt b/saeshukan-main/data/2223_S1/V001_220708/cursus.txt new file mode 100644 index 0000000000000000000000000000000000000000..d0291d6ced742c67805c418a322120a6e1f55a0e --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/cursus.txt @@ -0,0 +1,2 @@ +S1 +S3 diff --git a/saeshukan-main/data/2223_S1/V001_220708/weeks.txt b/saeshukan-main/data/2223_S1/V001_220708/weeks.txt new file mode 100644 index 0000000000000000000000000000000000000000..c3abc3b75e3b74ea4f81799d7af91dc90b05ce7d --- /dev/null +++ b/saeshukan-main/data/2223_S1/V001_220708/weeks.txt @@ -0,0 +1,12 @@ +ScolarYear 2022 +YearOfFirstWeek 2022 +FirstWeek 35 +SemesterLength 21 +DefaultWeekLength 40 +WeekLength S35 8 +WeekLength S44 0 +WeekLength S45 32 +WeekLength S50 36 +WeekLength S51 0 +WeekLength S52 0 +WeekLength S1 32 diff --git a/saeshukan-main/data/2223_S1/version.txt b/saeshukan-main/data/2223_S1/version.txt new file mode 100644 index 0000000000000000000000000000000000000000..a53f5f1a04c236bf000eae641e94135df37f733a --- /dev/null +++ b/saeshukan-main/data/2223_S1/version.txt @@ -0,0 +1,2 @@ +1 +220708 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/A2.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/A2.txt new file mode 100644 index 0000000000000000000000000000000000000000..378861bbe9e9854633857f59f8925ab2926daa6e --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/A2.txt @@ -0,0 +1,20 @@ +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +TP2 +TD +SQ +SQ +Params +Subtitle ACas +AffectTD 2 ACas ACas +AffectTP 4 ACas ACas ACas ACas +Sched 4 5 6 7 10 11 12 14 15 18 19 21 22 23 24 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/BD2.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/BD2.txt new file mode 100644 index 0000000000000000000000000000000000000000..c46c4f80c8b0530a567b571594ede15b7b1c23af --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/BD2.txt @@ -0,0 +1,25 @@ +TD +TD +TD +TD +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +Params +StartsOn 9 +Subtitle FA +AffectCM FAbd +AffectTD 2 FAbd FAbd +AffectTP 4 FAbd FAbd FAbd FAbd +Sched 9 9 10 10 11 11 12 13 14 15 18 19 20 21 22 23 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/C2a.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/C2a.txt new file mode 100644 index 0000000000000000000000000000000000000000..a23b8c478aad09cca9a1e4428b6d73b9c4be0089 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/C2a.txt @@ -0,0 +1,14 @@ +TD +TD +TQ2 +TD +TQ2 +TD +SD +SQ +Params +Subtitle SNdo +AffectCM SNdo +AffectTD 2 SNdo SNdo +AffectTP 4 SNdo SNdo SNdo SNdo +Sched 4 5 6 7 9 10 12 13 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/C2b.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/C2b.txt new file mode 100644 index 0000000000000000000000000000000000000000..81d43e9b26950b2927bb910e734a2d39b736f967 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/C2b.txt @@ -0,0 +1,14 @@ +TD +TD +TP2 +TD +TD +TP2 +TP2 +Params +StartsOn 13 +Subtitle MAT +AffectCM MAug +AffectTD 2 MAug MAug +AffectTP 4 MAug MAug MAug MAug +Sched 18 18 19 20 20 21 22 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/COO.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/COO.txt new file mode 100644 index 0000000000000000000000000000000000000000..c21d850e215f5f284ce86ac86b8e7c99e90a2596 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/COO.txt @@ -0,0 +1,14 @@ +CM +TD +TD +TP4 +TM +TP4 +EV2 +Params +EndsOn 20 +Subtitle OC +AffectCM OCas +AffectTD 2 OCas OCas +AffectTP 4 AHez OCas OCas AHez +Sched 5 6 7 9 10 11 12 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/DR1.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/DR1.txt new file mode 100644 index 0000000000000000000000000000000000000000..916e0734e8efd87d2a959d4b98b039fd416f636e --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/DR1.txt @@ -0,0 +1,16 @@ +TD +CM +TD +TD +TD +TD +TD +TD +EV2 +Params +Hollyweek 7 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 18 19 19 20 21 22 23 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/ERG.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/ERG.txt new file mode 100644 index 0000000000000000000000000000000000000000..12a79dfa88d51336511fddf533f9e0fecfad5a88 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/ERG.txt @@ -0,0 +1,12 @@ +CM +CM +TP2 +TP2 +TP2 +Params +StartsOn 13 +Subtitle PE +AffectCM PEve +AffectTD 2 PEve PEve +AffectTP 4 PEve PEve PEve PEve +Sched 13 13 13 14 15 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/GP2.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/GP2.txt new file mode 100644 index 0000000000000000000000000000000000000000..d690d78875f2fec972dcedf02d2e0a403096993e --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/GP2.txt @@ -0,0 +1,29 @@ +CM +TD +TD +SM +TD +SP +TD +TD +SP +SP +SP +SP +CM +TD +TD +TM +TP2 +CM +TD +TP2 +TP2 +EV2 +Params +Hollyweek 7 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 4 BDav BDav BDav BDav +Sched 4 4 4 5 5 6 6 6 9 10 11 12 13 14 15 15 18 19 19 20 21 22 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/IHM.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/IHM.txt new file mode 100644 index 0000000000000000000000000000000000000000..2d8cd07cbfda4fb4070ebd56e1ae058df0c92410 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/IHM.txt @@ -0,0 +1,33 @@ +CM +TD +CM +TP2 +CM +TP2 +TD +TP2 +TP2 +TD +TP2 +TP4 +SP +SP +SD +Params +StartsOn 9 +Subtitle S-V-M +AffectCM PVil +AffectTD 2 PVil PVil +AffectTP 4 EMic EMic EMic EMic +AffectSpec 3 4 PVil EMic EMic PVil +AffectSpec 5 4 PVil EMic EMic PVil +AffectSpec 7 4 PVil EMic EMic PVil +AffectSpec 10 4 PVil EMic EMic PVil +AffectSpec 11 4 HSli HSli HSli HSli +AffectSpec 12 4 HSli HSli HSli HSli +AffectSpec 13 4 HSli HSli HSli HSli +OnLeft 11 +OnLeft 12 +OnLeft 13 +OnRight 8 +Sched 9 9 10 10 11 11 12 12 13 14 14 15 18 20 23 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/M3.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/M3.txt new file mode 100644 index 0000000000000000000000000000000000000000..04c147f131a6a65e69383710a270bd26194a8184 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/M3.txt @@ -0,0 +1,27 @@ +TD +TD +TD +TD +TD +TD +TD +TP2 +TD +TP2 +TD +TP2 +SP +TQ2 +TQ2 +TP2 +SP +EV1 +Params +EndsOn 14 +Hollyweek 9 +Hollyweek 10 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 4 4 4 5 5 5 6 6 6 7 7 7 11 12 12 13 13 14 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/M4.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/M4.txt new file mode 100644 index 0000000000000000000000000000000000000000..b83c26d3f48e14380170b478176c502384942494 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/M4.txt @@ -0,0 +1,16 @@ +TD +SD +TQ2 +TQ2 +TP2 +SP +EV1 +SP +Params +StartsOn 18 +Hollyweek 23 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 18 19 20 21 22 24 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/M5.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/M5.txt new file mode 100644 index 0000000000000000000000000000000000000000..b6f7fc12f4a9baf6891af6a219c10e5e6062ffc2 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/M5.txt @@ -0,0 +1,15 @@ +TD +TD +TP2 +TQ2 +TP2 +TP2 +SP +EV1 +Params +EndsOn 22 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 4 PAde PAde PAde PAde +Sched 9 9 10 11 12 13 14 15 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/POO.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/POO.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9d7edf8e821ebfd9889a309a78450b9c884f6bb --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/POO.txt @@ -0,0 +1,42 @@ +CM +CM +TD +TP2 +CM +TD +TP2 +TD +TP2 +TP2 +TD +TP2 +TP2 +CM +TD +TP2 +TP2 +TD +TP2 +SD +TP2 +TP2 +TP2 +TP2 +EV2 +SP +TP2 +SP +SP +SD +Params +Subtitle PE +AffectCM PEve +AffectTD 2 PEve PEve +AffectTP 4 PEve PEve PEve PEve +AffectSpec 20 4 HSli HSli HSli HSli +AffectSpec 21 4 HSli HSli HSli HSli +AffectSpec 26 4 PEve HSli HSli PEve +OnLeft 20 +OnLeft 21 +OnLeft 26 +Sched 4 4 4 4 5 5 5 6 6 6 7 7 7 9 9 9 10 10 10 11 11 11 12 12 13 13 14 14 18 23 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/PPP2.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/PPP2.txt new file mode 100644 index 0000000000000000000000000000000000000000..d923fc93ee4bc7732160b87fa78c4981dc0b2e5b --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/PPP2.txt @@ -0,0 +1,16 @@ +TD +TD +TD +TD +Params +StartsOn 5 +EndsOn 13 +Hollyweek 6 +Hollyweek 7 +Hollyweek 10 +Hollyweek 12 +Subtitle DR +AffectCM DRon +AffectTD 2 DRon DRon +AffectTP 4 DRon DRon DRon DRon +Sched 5 9 11 13 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/QD1.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/QD1.txt new file mode 100644 index 0000000000000000000000000000000000000000..f7e0e2782fd3c67af40d36620286ae200f920c81 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/QD1.txt @@ -0,0 +1,10 @@ +TP2 +TP2 +TP2 +Params +StartsOn 18 +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +Sched 19 20 21 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/RES.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/RES.txt new file mode 100644 index 0000000000000000000000000000000000000000..30b7b9b11678e4eb08ed82830970d9796e068a72 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/RES.txt @@ -0,0 +1,48 @@ +CM +CM +CM +TD +TD +TD +TD +TD +TP4 +TP4 +TP4 +SD +TD +TD +TD +TD +TD +TP4 +TP2 +SD +SP +Params +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 4 SDie SDie SDie SDie +OnLeft 0 +OnLeft 1 +OnLeft 2 +OnLeft 3 +OnLeft 4 +OnLeft 5 +OnLeft 6 +OnLeft 7 +OnLeft 8 +OnLeft 9 +OnLeft 10 +OnLeft 11 +OnRight 12 +OnRight 13 +OnRight 14 +OnRight 15 +OnRight 16 +OnRight 17 +OnRight 18 +OnRight 19 +OnRight 20 +Sched 4 4 5 5 6 6 7 7 10 12 14 15 18 18 19 20 21 22 23 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S2/modules.txt b/saeshukan-main/data/2223_S2/V001_220708/S2/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..72d37f10b3cb88509930360aa507e969c15d87bc --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S2/modules.txt @@ -0,0 +1,16 @@ +POO +COO +IHM +ERG +QD1 +RES +BD2 +M3 +M4 +M5 +GP2 +DR1 +A2 +C2a +C2b +PPP2 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/A4.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/A4.txt new file mode 100644 index 0000000000000000000000000000000000000000..ba4e9b2c1732a489cf872a0a574f780061ebf71d --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/A4.txt @@ -0,0 +1,23 @@ +TD +TD +TP2 +TD +TP2 +TD +TD +SD +SP +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle AC +AffectTD 2 ACas ACas +AffectTP 2 ACas ACas +Sched 5 6 7 18 19 20 23 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/ASR8.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/ASR8.txt new file mode 100644 index 0000000000000000000000000000000000000000..5214d08c471032fa7ee9899dac4d62137e95bbf6 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/ASR8.txt @@ -0,0 +1,26 @@ +TD +TD +TD +TD +TD +TP2 +TP2 +TP2 +TP2 +SD +SP +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle AB +AffectCM ABou +AffectTD 2 ABou ABou +AffectTP 2 ABou ABou +Sched 4 4 5 5 6 6 7 7 18 19 20 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/BD4.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/BD4.txt new file mode 100644 index 0000000000000000000000000000000000000000..cabca30a19200d61e61a8ad269b08b82ed595cf5 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/BD4.txt @@ -0,0 +1,22 @@ +TD +TD +TD +TP2 +TP2 +TP2 +SD +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle SD +AffectCM SDie +AffectTD 2 SDie SDie +AffectTP 2 SDie SDie +Sched 18 18 19 19 20 23 24 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/C4.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/C4.txt new file mode 100644 index 0000000000000000000000000000000000000000..ecfeb5b9f6d1712b490679c76c4bd6c3ed7dd650 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/C4.txt @@ -0,0 +1,22 @@ +TD +TD +TD +TD +TD +TP2 +SD +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 18 +Hollyweek 21 +Hollyweek 22 +Subtitle AR +AffectTD 2 ARic ARic +AffectTP 2 ARic ARic +Sched 19 19 20 20 23 23 24 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/DEV6.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/DEV6.txt new file mode 100644 index 0000000000000000000000000000000000000000..6824f0fb2efda58211dce0335991e344fd330f7c --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/DEV6.txt @@ -0,0 +1,31 @@ +CM +CM +TP4 +CM +CM +TP4 +CM +TD +TD +TM +TP4 +TP4 +SD +SD +SP +SP +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle EM +AffectCM EMic +AffectTD 2 EMic HSli +AffectTP 2 EMic HSli +Sched 4 4 4 5 5 5 6 6 6 6 7 7 23 23 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/DEV7.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/DEV7.txt new file mode 100644 index 0000000000000000000000000000000000000000..117b80a695d8c1047a8ef18ca75f31081688f632 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/DEV7.txt @@ -0,0 +1,30 @@ +TD +TD +TD +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +TP2 +SD +SP +SP +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle EM +AffectCM EMed +AffectTD 2 EMed EMed +AffectTP 2 EMed EMed +Sched 18 18 18 19 19 19 20 20 23 23 23 24 24 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/GP4.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/GP4.txt new file mode 100644 index 0000000000000000000000000000000000000000..849d54a3bc74e61b3c1c4d6567b913ab793ae233 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/GP4.txt @@ -0,0 +1,33 @@ +CM +TD +TP2 +TP2 +TP2 +TD +TD +SD +TD +TD +TP2 +Params +Hollyweek 7 +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 2 BDav BDav +AffectSpec 8 2 MMin MMin +AffectSpec 9 2 MMin MMin +AffectSpec 10 2 MMin MMin +OnRight 8 +OnRight 9 +OnRight 10 +Sched 4 4 4 5 5 5 6 6 18 18 18 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/IG.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/IG.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cb78622b883e9b5c8d7415b6a43d73291ca749f --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/IG.txt @@ -0,0 +1,30 @@ +CM +TD +TP2 +CM +TD +TP2 +CM +TD +TP2 +TD +TP2 +TD +TP2 +TP2 +EV2 +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle PV +AffectCM PVil +AffectTD 2 PVil PVil +AffectTP 4 PVil PVil PVil PVil +Sched 4 4 4 5 5 5 6 6 6 7 7 23 23 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/M10.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/M10.txt new file mode 100644 index 0000000000000000000000000000000000000000..b3effeb9c6f4858448d2983ada625bd94219d900 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/M10.txt @@ -0,0 +1,21 @@ +TP2 +TP2 +TP2 +TQ2 +TQ2 +SP +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 2 PAde PAde +Sched 4 4 5 6 7 7 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/M11.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/M11.txt new file mode 100644 index 0000000000000000000000000000000000000000..dd028cc57a5115a534623e7be13f2df0567d4cc0 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/M11.txt @@ -0,0 +1,21 @@ +TP2 +TP2 +TP2 +TQ2 +TQ2 +SP +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle PA +AffectCM PAde +AffectTD 2 PAde PAde +AffectTP 2 PAde PAde +Sched 18 19 20 23 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/PPP4.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/PPP4.txt new file mode 100644 index 0000000000000000000000000000000000000000..536364361f1dfc1df83d83c02f79eb837f9e409a --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/PPP4.txt @@ -0,0 +1,20 @@ +TD +TD +TD +TD +Params +Hollyweek 7 +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle BD +AffectCM BDav +AffectTD 2 BDav BDav +AffectTP 2 BDav BDav +Sched 18 18 19 19 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/WEB3.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/WEB3.txt new file mode 100644 index 0000000000000000000000000000000000000000..f1635283a4a6a4e4eca5f996d74b40e88d0dcb31 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/WEB3.txt @@ -0,0 +1,35 @@ +TD +TP2 +TP2 +TP2 +TP2 +CM +TP2 +TP2 +TP2 +SP +Params +Hollyweek 9 +Hollyweek 10 +Hollyweek 11 +Hollyweek 12 +Hollyweek 13 +Hollyweek 14 +Hollyweek 15 +Hollyweek 21 +Hollyweek 22 +Subtitle AB +AffectCM ABic +AffectTD 2 ABic ABic +AffectTP 2 ABic ABic +AffectSpec 5 1 EMic +AffectSpec 6 2 EMic HSli +AffectSpec 7 2 EMic HSli +AffectSpec 8 2 EMic HSli +AffectSpec 9 2 EMic HSli +OnRight 5 +OnRight 6 +OnRight 7 +OnRight 8 +OnRight 9 +Sched 4 5 6 6 7 23 23 24 24 25 diff --git a/saeshukan-main/data/2223_S2/V001_220708/S4/modules.txt b/saeshukan-main/data/2223_S2/V001_220708/S4/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..251ccb109cde5e85f6343182c90dac8814a6b970 --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/S4/modules.txt @@ -0,0 +1,12 @@ +DEV6 +WEB3 +DEV7 +ASR8 +BD4 +M10 +M11 +GP4 +A4 +C4 +PPP4 +IG diff --git a/saeshukan-main/data/2223_S2/V001_220708/cursus.txt b/saeshukan-main/data/2223_S2/V001_220708/cursus.txt new file mode 100644 index 0000000000000000000000000000000000000000..68c617ab3bb740c7324a164a1ba8c3af1c7d564e --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/cursus.txt @@ -0,0 +1,2 @@ +S2 +S4 diff --git a/saeshukan-main/data/2223_S2/V001_220708/weeks.txt b/saeshukan-main/data/2223_S2/V001_220708/weeks.txt new file mode 100644 index 0000000000000000000000000000000000000000..99c6ed65e107a39cfd1a45717ef42343678a420d --- /dev/null +++ b/saeshukan-main/data/2223_S2/V001_220708/weeks.txt @@ -0,0 +1,13 @@ +ScolarYear 2022 +YearOfFirstWeek 2023 +FirstWeek 4 +SemesterLength 22 +DefaultWeekLength 40 +WeekLength S8 0 +WeekLength S15 28 +WeekLength S16 0 +WeekLength S17 0 +WeekLength S18 32 +WeekLength S19 32 +WeekLength S20 24 +WeekLength S22 32 diff --git a/saeshukan-main/data/2223_S2/version.txt b/saeshukan-main/data/2223_S2/version.txt new file mode 100644 index 0000000000000000000000000000000000000000..a53f5f1a04c236bf000eae641e94135df37f733a --- /dev/null +++ b/saeshukan-main/data/2223_S2/version.txt @@ -0,0 +1,2 @@ +1 +220708 diff --git a/saeshukan-main/data/semestre.txt b/saeshukan-main/data/semestre.txt new file mode 100644 index 0000000000000000000000000000000000000000..efa73bfaf5c156ba3494c383f51cd7fd5e90c0d3 --- /dev/null +++ b/saeshukan-main/data/semestre.txt @@ -0,0 +1,2 @@ +2223 +S2 diff --git a/saeshukan-main/doc/archiShukan.pdf b/saeshukan-main/doc/archiShukan.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8da18ba82ff9a5f4ad17fcd91e512ab686c0fd37 Binary files /dev/null and b/saeshukan-main/doc/archiShukan.pdf differ diff --git a/saeshukan-main/doc/shukan.html b/saeshukan-main/doc/shukan.html new file mode 100644 index 0000000000000000000000000000000000000000..5ec8145fa846d04aba4d93f709fd69d7461dba80 --- /dev/null +++ b/saeshukan-main/doc/shukan.html @@ -0,0 +1,188 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> + <head><title>Even Shukan</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + </head> + <body bgcolor="#3FBFAF" text="#4F2F1F"> + <h2>Présentation de Shukan</h2> + + <h3>--> Avertissement</h3> + <p> Attention, la base de données (data) est actualisée + automatiquement en quittant par la touche 'ESCAPE' ou la touche 'Q'. + Pour éviter la sauvegarde, utiliser la croix en haut à + droite de la fenêtre. </p> + <p> Cette base de données est fournie à titre d'exemple. + Toute ressemblance avec des situations existantes n'est pas le fruit + du hazard, mais elle ne saurait en aucun cas se substituer à + la version officielle des emplois du temps accessible sur ADE. </p> + + <h3>--> La vue</h3> + <p> La zone d'écran principale de Shukan comporte une grille + indiquant la progression des cours sur un semestre de formation. </p> + <p> La colonne de gauche donne le nom du semestre de formation, puis + pour chaque ligne, le nom abrégé du cours. </p> + <p> Les colonnes suivantes correspondent à chaque semaine de + formation, dans le nom est donné en haut, suivi des + activités prévues ordonnées de gauche à + droite par ordre chronologique. + Par défaut, les activités sont centrées. + Il est possible de les décaler vers le haut (<i>onLeft</i>) + ou vers le bas (<i>onRight</i>) pour repérer des enseignants + autres que le responsable du cours. </p> + <p> La ligne du bas indique la charge hebdomadaire (en heures) d'un + acteur du cours : un étudiant (Etu) ou un enseignant (PEve). + Le deuxième chiffre est la charge maximale de la semaine. </p> + <p> Une case de la grille peut être sélectionnée en + cliquant dessus avec le bouton gauche de la souris. Il est alors + possible de déplacer les activités prévues. </p> + <p> Une activité peut aussi être sélectionnée + en cliquant dessus avec le bouton droit de la souris, ou encore une + période entre deux activités en pressant la touche + "SHIFT" lors du clic. Cela permet d'échanger les + activités situées aux extrémités de + la période. La progression du cours est alors modifiée + en conséquence. </p> + <p> Il est enfin possible de présenter une autre formation + (avec d'autres étudiants), d'éditer la progression + hebdomadaire dans son état courant sous forme de fichiers + LaTeX placés dans un répertoire préfixé + "loads_", ou même de sortir de Shukan. </p> + + <h3>--> Le contrôleur</h3> + <h4>Actions de la souris</h4> + <p> Bouton gauche : sélectionner une case de la grille courante. </p> + <p> Bouton droit : sélectionner une activité. </p> + <p> Pour quitter <b><u>sans sauver</u></b>, clic sur la croix en haut + à droite. </p> + <h4>Actions du clavier</h4> + <p> 'q' ou ESC : enregistrer et fermer l'application. </p> + <p> Flèche droite : passer à l'acteur suivant (pour + l'affichage de la charge hebdomadaire). </p> + <p> Flèche gauche : passer à l'acteur précédent + (pour l'affichage de la charge hebdomadaire). </p> + <p> Flèche basse : passer à la formation suivante. </p> + <p> Flèche haute : passer à la formation + précédente. </p> + <p> 'l' : repousser la première activité dans la semaine + précédente et sélectionner la semaine + précédente. </p> + <p> 'm' : repousser la dernière activité dans la semaine + suivante et sélectionner la semaine suivante. </p> + <p> 'o' ou 'L' : repousser la première activité dans la + semaine précédente (la semaine courante reste + séléctionnée). </p> + <p> 'p' ou 'M' : repousser la dernière activité dans la + semaine suivante (la semaine courante reste + séléctionnée). </p> + <p> CTRL-X : échanger les activités aux + extrémités de la période + sélectionnée. </p> + <p> CTRL-E : editer la progression hebdomadaire. </p> + + <h3>-->Le modèle</h3> + <h4>Base de données</h4> + <p> La base de données est stockée dans le répertoire + principal <em>data</em>. + Chaque sous-répertoire correspond à un + semestre de formations, les premiers chiffres du nom indiquant + l'année universitaire, et le dernier le numéro de + semestre dans l'année universitaire. + Le fichier <em>semestre.txt</em> contient les caractéristiques + du semestre de formations à charger : l'année + universitaire en première ligne, le numéro de semestre + en deuxième. </p> + <p> Un répertoire de semestre contient un sous-répertoire + de version, dont le nom est composé du numéro de version + suivi de la date (an-mois-jour) d'enregistrement. + Le fichier <em>version.txt</em> contient les caractéristiques + de la version à charger : le numéro de version en + première ligne, la date d'enregistrement en deuxième. </p> + <p> Un répertoire de version contient un sous-répertoire + pour chaque formation du semestre, un fichier <em>cursus</em> + contenant le nom des formations à charger, et un fichier + <em>weeks.txt</em> fournissant les caractéristiques du + semestre. </p> + <p> Un répertoire de formation contient un fichier de + caractéristiques pour chaque cours de la formation, + et un fichier <em>module.txt</em> contenant le nom des cours + à charger. </p> + + <h4>Modélisation du semestre calendaire</h4> + <p> Créer un répertoire <tt>V001_YYMMDD.txt</tt> avec + un fichier <tt>weeks.txt</tt>. </p> + <dl> + <dd> <tt>AnneeScolaire</tt> : + année universitaire du semestre sous la forme 2324 pour + l'année 2023/2024. </dd> + <dd> <tt>AnneeDeDepart</tt> : + année de la première semaine du semestre. </dd> + <dd> <tt>PremiereSemaine</tt> : + numéro de la première semaine du semestre. </dd> + <dd> <tt>LongueurDuSemestre</tt> : + nombre de semaines du semestre. </dd> + <dd> <tt>ChargeMaxHebdomadaire</tt> : + durée maximale de travail par semaine. </dd> + <dd> <tt>LongueurDeLaSemaine</tt> : + durée maximale de travail pour une semaine fix&ecute;e. </dd> + </dl> + <h4>Modélisation d'une formation</h4> + <p>Dans le répertoire de version, créer un + répertoire du nom de la formation, et ajouter ce nom + dans le fichier <em>cursus.txt</em>. </p> + <h4>Modélisation d'un module de cours</h4> + <p> Dans le répertoire de la formation, ajouter le nom du module + dans le fichier <em>modules.txt</em> et créer un fichier + du nom du module suffixé par "<em>.txt</em>". </p> + <p> Commencer par décrire la progression du module, un type + d'activité par ligne dans l'ordre chronologique prévu; + les types d'activité reconnus sont : + <dl> + <dd> <tt>CM</tt> : Cours magistral de deux heures, + <dd> <tt>EV2</tt> : Evaluation de deux heures, </dd> + <dd> <tt>EV1</tt> : Evaluation d'une heure, </dd> + <dd> <tt>TD</tt> : TD de deux heures en salle de cours, </dd> + <dd> <tt>TM</tt> : TD de deux heures en salle machine, </dd> + <dd> <tt>TV</tt> : TD de deux heures en parallèle (même + plage horaire pour tous les groupes), </dd> + <dd> <tt>SD</tt> : TD SAé de deux heures en salle de cours, </dd> + <dd> <tt>SM</tt> : TD SAé de deux heures en salle machine, </dd> + <dd> <tt>TP</tt> : TP de quatre heures en salle machine, </dd> + <dd> <tt>TP4</tt> : TP de quatre heures en salle machine, </dd> + <dd> <tt>TP2</tt> : TP de deux heures en salle machine, </dd> + <dd> <tt>TQ2</tt> : TP de deux heures en salle de cours, </dd> + <dd> <tt>SP</tt> : TP SAé de deux heures en salle machine, </dd> + <dd> <tt>SQ</tt> : TP SAé de deux heures en salle de cours. </dd> + </dl> + <p> Puis ajouter une ligne comportant le mot <tt>Params</tt>, et + indiquer les caractéristiques du module, une par ligne : + <dl> + <dd> <tt>DebutModule</tt> : + semaine minimale de début du cours, </dd> + <dd> <tt>FinModule</tt> : + semaine maximale de fin du cours, </dd> + <dd> <tt>SemaineLibre</tt> : + numéro d'une semaine sans activité pour ce cours, </dd> + <dd> <tt>SousTitre</tt> : + initiales des enseignants ordonnés en cohérence avec + les décalages dans les colonnes (lignes sur la vue), </dd> + <dd> <tt>AffectationCM</tt> : + acronyme de l'enseignant en charge des cours magistraux, </dd> + <dd> <tt>AffectationTD</tt> : + nombre de groupes de TD suivi de l'acronyme de l'enseignant en charge + de chaque groupe, </dd> + <dd> <tt>AffectationTP</tt> : + nombre de groupes de TP suivi de l'acronyme de l'enseignant en charge + de chaque groupe, </dd> + <dd> <tt>Affectation</tt> : + index de l'activité (compté à partir de 0), + suivi du nombre de groupes concernés, puis de l'acronyme de + l'enseignant en charge de chaque groupe, </dd> + <dd> <tt>AGauche</tt> : + index de l'activité devant apparaître + décalée vers la gauche (vers le haut sur la vue), </dd> + <dd> <tt>ADroite</tt> : + index de l'activité devant apparaître + décalée vers la droite (vers le bas sur la vue). </dd> + </dl> + </body> +</html> diff --git a/saeshukan-main/shukan/Shukan$1.class b/saeshukan-main/shukan/Shukan$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ef4fbcba2a05569a9503a1c48ce06d1926befd6d Binary files /dev/null and b/saeshukan-main/shukan/Shukan$1.class differ diff --git a/saeshukan-main/shukan/Shukan.java b/saeshukan-main/shukan/Shukan.java new file mode 100644 index 0000000000000000000000000000000000000000..3b238d3afb5dea8fc8dabafa540b3a3290c47b72 --- /dev/null +++ b/saeshukan-main/shukan/Shukan.java @@ -0,0 +1,81 @@ +package shukan; +import javax.swing.JFrame; +import java.awt.Insets; +import java.awt.Color; +import java.awt.Rectangle; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.GraphicsConfiguration; + + +/** + * Shukan planner application. + */ +public class Shukan +{ + /** Shukan window top margin */ + private final static int TOP_MARGIN = 30; + /** Shukan window left margin */ + private final static int LEFT_MARGIN = 50; + + /** + * Creates AWT Frame with Shukan tools + */ + public static void main (String[] args) + { + // Jikan data base creation and set up + ShukanData data = new ShukanData (); + ShukanIO io = new ShukanIO (data); + + // Handling edition mode + if (args.length > 0) + if (args[0].equals ("edit")) + { + new ShukanTex (data); + System.exit (0); + } + + // Creating Shukan viewer + JFrame frame = new JFrame ("SHUKAN 1.6"); + ShukanView canvas = new ShukanView (data, io); + + // Getting the display size + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment (); + GraphicsDevice gd = ge.getScreenDevices()[0]; + GraphicsConfiguration[] gc = gd.getConfigurations (); + Rectangle gcBounds = gc[0].getBounds (); + canvas.restrictSize ((int) (gcBounds.getWidth ()) - LEFT_MARGIN, + (int) (gcBounds.getHeight ()) - TOP_MARGIN); + + // Adding a openGL input handler (controller) + ShukanController myController = new ShukanController (canvas, data); + canvas.addKeyListener (myController); + canvas.addMouseListener (myController); + // canvas.addMouseMotionListener (myController); + + // Preparing the window closing button + frame.addWindowListener ( + new WindowAdapter () + { + public void windowClosing (WindowEvent e) + { +// Shukan.io.save (); + System.exit (0); + } + }); + + // Setting the window geometry + frame.add (canvas); + Insets ins = frame.getInsets (); + frame.setSize (canvas.displayWidth () + ins.left + ins.right, + canvas.displayHeight () + ins.top + ins.bottom); + frame.setLocation (LEFT_MARGIN, 0); + frame.setBackground (Color.white); + frame.setVisible (true); + + // Triggering input handler loop + canvas.requestFocus (); + } +} diff --git a/saeshukan-main/shukan/ShukanController.java b/saeshukan-main/shukan/ShukanController.java new file mode 100644 index 0000000000000000000000000000000000000000..76dd45be07554542c544d6a825307282ddffbcc2 --- /dev/null +++ b/saeshukan-main/shukan/ShukanController.java @@ -0,0 +1,204 @@ +package shukan; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; + + +/** Shukan controller + */ +public class ShukanController + implements KeyListener, MouseListener//, MouseMotionListener +{ + /** Controlled display area. */ + private ShukanView canvas; + /** Controlled application data. */ + private ShukanData data; + + /** Constructs a event handler. + * @param canvas display area. + * @param myView OpenGL context. + */ + public ShukanController (ShukanView canvas, ShukanData data) + { + this.canvas = canvas; + this.data = data; + } + + /** Invoked when a key has been pressed. + * Implementation from KeyListener. + * @param e detected key event. + */ + public void keyPressed (KeyEvent e) + { + processKeyEvent (e, true); + } + + /** Invoked when a key has been released. + * Implementation from KeyListener. + * @param e detected key event. + */ + public void keyReleased (KeyEvent e) + { + processKeyEvent (e, false); + } + + /** Invoked when a key has been pressed or released. + * Local implementation from KeyListener. + * @param e detected key event. + * @param pressed pressed or released key status. + */ + private void processKeyEvent (KeyEvent e, boolean pressed) + { + switch (e.getKeyCode ()) + { + case KeyEvent.VK_Q : + case KeyEvent.VK_ESCAPE : + if (! pressed) + { + canvas.saveData (); + //data.check (); + System.exit (0); + } + break; + case KeyEvent.VK_E : // edit + if (! pressed) new ShukanTex (data); + break; + case KeyEvent.VK_LEFT : + case KeyEvent.VK_KP_LEFT : + if (pressed) + { + data.toggleLoad (-1); + canvas.repaint (); + } + break; + case KeyEvent.VK_RIGHT : + case KeyEvent.VK_KP_RIGHT : + if (pressed) + { + data.toggleLoad (1); + canvas.repaint (); + } + break; + case KeyEvent.VK_UP : + case KeyEvent.VK_KP_UP : + if (pressed) + { + data.toggleCursus (false); + canvas.repaint (); + } + break; + case KeyEvent.VK_DOWN : + case KeyEvent.VK_KP_DOWN : + if (pressed) + { + data.toggleCursus (true); + canvas.repaint (); + } + break; + case KeyEvent.VK_X : + if (pressed && e.isControlDown ()) + { + data.exchangeExtremes (); + canvas.repaint (); + } + break; + } + } + + /** Invoked when a key has been typed. + * Implementation from KeyListener. + * @param e detected key event. + */ + public void keyTyped (KeyEvent e) + { + switch (e.getKeyChar ()) + { + case 'l' : + if (data.followLeft ()) canvas.repaint (); + break; + case 'm' : + if (data.followRight ()) canvas.repaint (); + break; + case 'L' : + if (data.left ()) canvas.repaint (); + break; + case 'M' : + if (data.right ()) canvas.repaint (); + break; + case 'o' : + if (data.left ()) canvas.repaint (); + break; + case 'p' : + if (data.right ()) canvas.repaint (); + break; + } + } + + /** Invoked when the mouse button has been clicked (pressed and released) + * on a component. + * Implementation from MouseListener. + * @param e detected mouse event. + */ + public void mouseClicked (MouseEvent e) + { + if (e.getButton () == MouseEvent.BUTTON1) + { + if (e.isShiftDown ()) + { + if (canvas.select (e.getX (), e.getY (), true)) + canvas.repaint (); + } + else + { + if (canvas.select (e.getX (), e.getY (), false)) + canvas.repaint (); + } + } + if (e.getButton () == MouseEvent.BUTTON3) + { + if (e.isShiftDown ()) + { + if (canvas.selectActivity (e.getX (), e.getY (), true)) + canvas.repaint (); + } + else + { + if (canvas.selectActivity (e.getX (), e.getY (), false)) + canvas.repaint (); + } + } + } + + /** Invoked when the mouse enters a component. + * Implementation from MouseListener. + * @param e detected mouse event. + */ + public void mouseEntered (MouseEvent e) + { + } + + /** Invoked when the mouse exits a component. + * Implementation from MouseListener. + * @param e detected mouse event. + */ + public void mouseExited (MouseEvent e) + { + } + + /** Invoked when a mouse button has been pressed on a component. + * Implementation from MouseListener. + * @param e detected mouse event. + */ + public void mousePressed (MouseEvent e) + { + } + + /** Invoked when a mouse button has been released on a component. + * Implementation from MouseListener. + * @param e detected mouse event. + */ + public void mouseReleased (MouseEvent e) + { + } +} diff --git a/saeshukan-main/shukan/ShukanData.java b/saeshukan-main/shukan/ShukanData.java new file mode 100644 index 0000000000000000000000000000000000000000..70a0230a26d629c73d6324edb41776874bc3ae64 --- /dev/null +++ b/saeshukan-main/shukan/ShukanData.java @@ -0,0 +1,679 @@ +package shukan; + + +public class ShukanData +{ + /** Displayed calendar */ + private ShukanSemester sem = null; + /** Cursus */ + private String[] curs = null; + /** Modules */ + private ShukanModule[][] mod = null; + /** Teachers */ + private String[] teachers = new String[0]; + /** Sort for teachers */ + private int[] tSort = new int[0]; + /** Students */ + private String[] students = {"Etu"}; + /** Sort for students */ + private int[] sSort = {0}; + /** Scolar year (for displays) */ + private int scolarYear = 0; + + /** Selected cursus */ + private int selCur = 0; // First by default + /** Selected module */ + private int selMod = -1; // None by default + /** Selected load */ + private int selLoad = 0; // Student by default + /** Selection first week */ + private int selWeek = -1; // None by default + /** Selected first week and activity */ + private int selAct = -1; + /** Selection length */ + private int selLength = 0; + + + /** Creates a empty data base */ + public void setSemester (int scolYear, ShukanSemester sem) + { + this.scolarYear = scolYear; + this.sem = sem; + } + + /** Returns the number of weeks in the semester */ + public int semesterSize () + { + return (sem.size ()); + } + + /** Returns the week numbers */ + public int[] weekNumbers () + { + return (sem.weekNumbers ()); + } + + /** Returns the start week number */ + public int startWeekNumber () + { + return (sem.startWeekNumber ()); + } + + /** Returns the last week of year number */ + public int lastWeekOfYearNumber () + { + return (sem.lastWeekOfYearNumber ()); + } + + /** Returns the standard week duration */ + public int standardWeekDuration () + { + return (sem.standardWeekDuration ()); + } + + /** Returns the week durations */ + public int[] weekDurations () + { + return (sem.weekDurations ()); + } + + /** Creates the modules array */ + public void declareCursus (String[] names) + { + curs = names; + mod = new ShukanModule[names.length][]; + } + + /** Creates the modules array */ + public void setModules (int num, String[] names) + { + mod[num] = new ShukanModule[names.length]; + for (int i = 0; i < names.length; i++) + { + mod[num][i] = new ShukanModule (names[i]); + mod[num][i].setActiveWeeks (sem.copyWeekDurations ()); + } + } + + /** Adds an activity to a module */ + public boolean addActivity (int cursNum, int modNum, int actNum, String type) + { + return (mod[cursNum][modNum].addActivity (actNum, type)); + } + + /** Closes the activities of a module */ + public void closeActivities (int cursNum, int modNum, int size) + { + mod[cursNum][modNum].closeActivities (size); + } + + /** Automatically plans a free module */ + public void autoPlan (int cursNum, int modNum) + { + if (! mod[cursNum][modNum].isScheduled ()) + mod[cursNum][modNum].autoPlan (); + } + + /** Schedules the activities of a module */ + public void setSchedule (int cursNum, int modNum, int[] weeks) + { + mod[cursNum][modNum].schedule (weeks); + } + + /** Unschedules the activities of a module */ + public void unscheduleActivities (int cursNum, int modNum) + { + mod[cursNum][modNum].unschedule (); + } + + /** Schedules an activity of a module */ + public void scheduleActivity (int cursNum, int modNum, int activity, int week) + { + mod[cursNum][modNum].schedule (activity, week); + } + + /** Returns the number of modules */ + public int numberOfModules () + { + return (mod[selCur].length); + } + + /** Returns the name of the active cursus */ + public String cursusName () + { + return (curs[selCur]); + } + + /** Returns the name of a cursus */ + public String cursusName (int num) + { + return (curs[num]); + } + + /** Returns the names of the modules */ + public String[] moduleNames () + { + String[] names = new String[mod[selCur].length]; + for (int i = 0; i < mod[selCur].length; i++) + names[i] = mod[selCur][i].name (); + return (names); + } + + /** Returns the names of the modules */ + public String[] moduleNames (int cur) + { + String[] names = new String[mod[cur].length]; + for (int i = 0; i < mod[cur].length; i++) + names[i] = mod[cur][i].name (); + return (names); + } + + /** Sets a module start week */ + public void setModuleStart (int cursNum, int modNum, int week) + { + mod[cursNum][modNum].setStartWeek (sem.weekIndex (week)); + } + + /** Sets a module end week */ + public void setModuleEnd (int cursNum, int modNum, int week) + { + mod[cursNum][modNum].setEndWeek (sem.weekIndex (week)); + } + + /** Sets a module free week */ + public void setModuleHolly (int cursNum, int modNum, int week) + { + mod[cursNum][modNum].setHollyWeek (sem.weekIndex (week)); + } + + /** Returns the active weeks of a module */ + public int[] activeWeeks (int modNum) + { + return (mod[selCur][modNum].activeWeeks ()); + } + + /** Returns the activities of a module */ + public int[] activities (int modNum) + { + return (mod[selCur][modNum].activities ()); + } + + /** Returns the activity schedule of a module */ + public int[] scheduleInWeek (int modNum, int week) + { + return (mod[selCur][modNum].schedule (week)); + } + + /** Returns the whole schedule of a module */ + public int[] schedule (int modNum) + { + return (mod[selCur][modNum].schedule ()); + } + + /** Returns the whole schedule of a module */ + public int[] schedule (int cur, int modNum) + { + return (mod[cur][modNum].schedule ()); + } + + /** Returns the selected module */ + public int selectedModule () + { + return (selMod); + } + + /** Returns the first selected week */ + public int selectedWeek () + { + return (selWeek); + } + + /** Returns the selection length */ + public int selectedLength () + { + return (selLength); + } + + /** Deactivates the module and week */ + public void deactivate () + { + selMod = -1; + selWeek = -1; + selLength = 0; + } + + /** Activates a whole module */ + public boolean activate (int modNum) + { + selMod = modNum; + selWeek = 0; + selLength = semesterSize (); + return (true); + } + + /** Activates a module at given week */ + public boolean activate (int modNum, int week, boolean zone) + { + if (zone) + { + if (selMod != modNum) return (false); + if (selWeek == -1) return (false); + if (selLength <= 2 && week >= selWeek && week <= selWeek + selLength - 1) + return (false); + if (week < selWeek) + { + selLength += selWeek - week; + selWeek = week; + return (true); + } + if (week >= selWeek + selLength) + { + selLength = week - selWeek + 1; + return (true); + } + int dist = week - selWeek; + if (2 * dist <= selLength - 1) + { + selLength -= week - selWeek; + selWeek = week; + } + else selLength = week - selWeek + 1; + return (true); + } + else + { + selMod = modNum; + selWeek = week; + selLength = 1; + } + return (true); + } + + /** Activates a whole module */ + public boolean activateAct (int modNum) + { + System.out.println ("Activation du module " + modNum); + return (false); +/* + selMod = modNum; + selWeek = 0; + selLength = semesterSize (); + return (true); +*/ + } + + /** Shifts the selection leftwards */ + public boolean left () + { + if (selMod == - 1 || selLength == 0 || selWeek == -1) return (false); + mod[selCur][selMod].left (selWeek, selLength); + return (true); + } + + /** Shifts the selection rightwards */ + public boolean right () + { + if (selMod == - 1 || selLength == 0 || selWeek == -1) return (false); + mod[selCur][selMod].right (selWeek, selLength); + return (true); + } + + /** Shifts the selection leftwards and follows it */ + public boolean followLeft () + { + if (selMod == - 1 || selLength == 0 || selWeek == -1) return (false); + selWeek = mod[selCur][selMod].left (selWeek, selLength); + return (true); + } + + /** Shifts the selection rightwards and follows it */ + public boolean followRight () + { + if (selMod == - 1 || selLength == 0 || selWeek == -1) return (false); + selWeek = mod[selCur][selMod].right (selWeek, selLength); + return (true); + } + + /** Returns the load affected to selected agent for given week */ + public int computeLoad (int week) + { + int load = 0; + if (selLoad < 0) + for (int j = 0; j < curs.length; j++) + for (int i = 0; i < mod[j].length; i++) + load += mod[j][i].teacherLoad (tSort[selLoad + teachers.length], + week); + else for (int i = 0; i < mod[selCur].length; i++) + load += mod[selCur][i].studentLoad (week); + return (load); + } + + /** Returns the load affected to standard student for given week */ + public int studentLoad (int week) + { + int load = 0; + for (int i = 0; i < mod[selCur].length; i++) + load += mod[selCur][i].studentLoad (week); + return (load); + } + + /** Affects activities to teachers */ + public void affectTo (int curs, int mod, int typAct, String[] names) + { + int[] numAff = new int[names.length]; + if (teachers.length == 0) + { + teachers = new String[] {names[0]}; + tSort = new int[] {0}; + } + for (int i = 0; i < names.length; i++) + numAff[i] = findTeacher (names[i], 0, tSort.length); + this.mod[curs][mod].setTeachers (typAct, numAff); + } + + /** Affects specific activity to teachers */ + public void affectSpec (int curs, int mod, int numAct, String[] names) + { + int[] numAff = new int[names.length]; + if (teachers.length == 0) + { + teachers = new String[] {names[0]}; + tSort = new int[] {0}; + } + for (int i = 0; i < names.length; i++) + numAff[i] = findTeacher (names[i], 0, tSort.length); + this.mod[curs][mod].affectSpec (numAct, numAff); + } + + /** Finds the rank of a teacher */ + private int findTeacher (String name, int from, int to) + { + int test = (from + to) / 2; + if (test < tSort.length + && name.equals (teachers[tSort[test]])) return tSort[test]; + if (to - from < 1) + { + String[] tmp = new String[teachers.length + 1]; + for (int i = 0; i < teachers.length; i ++) tmp[i] = teachers[i]; + tmp[teachers.length] = name; + int[] ts = new int[tmp.length]; + for (int i = 0; i < to; i ++) ts[i] = tSort[i]; + ts[to] = teachers.length; + for (int i = to; i < teachers.length; i ++) ts[i+1] = tSort[i]; + teachers = tmp; + tSort = ts; + return (tSort[to]); + } + if (name.compareTo (teachers[tSort[test]]) > 0) + return (findTeacher (name, test + 1, to)); + return (findTeacher (name, 0, test)); + } + + /** Selects the next load */ + public void toggleLoad (int direction) + { + selLoad += direction; + if (selLoad >= students.length) selLoad = - teachers.length; + else if (selLoad < - teachers.length) selLoad = students.length - 1; + } + + /** Returns the selected load name */ + public String loadName () + { + if (selLoad < 0) return (teachers[tSort[selLoad + teachers.length]]); + return (students[sSort[selLoad]]); + } + + /** Sets an activity to be displayed on left */ + public void setOnLeft (int curs, int mod, int act) + { + this.mod[curs][mod].setOnLeft (act); + } + + /** Sets an activity to be displayed on right */ + public void setOnRight (int curs, int mod, int act) + { + this.mod[curs][mod].setOnRight (act); + } + + /** Returns activities to be displayed on left */ + public boolean[] onLeft (int mod) + { + return (this.mod[selCur][mod].activitiesOnLeft ()); + } + + /** Returns activities to be displayed on right */ + public boolean[] onRight (int mod) + { + return (this.mod[selCur][mod].activitiesOnRight ()); + } + + /** Returns the number of cursus */ + public int countOfCursus () + { + return (mod.length); + } + + /** Toggles the selected cursus */ + public void toggleCursus (boolean on) + { + if (on) + { + if (++selCur == mod.length) selCur = 0; + } + else if (--selCur == -1) selCur = mod.length - 1; + selMod = -1; + } + + /** Sets a subtitle to given module */ + public void setSubtitle (int curs, int mod, String text) + { + this.mod[curs][mod].setSubtitle (text); + } + + /** Returns the subtitle of selected module */ + public String subtitle (int module) + { + return (mod[selCur][module].subtitle ()); + } + + /** Returns the subtitle of selected module */ + public String subtitle (int curs, int module) + { + return (mod[curs][module].subtitle ()); + } + + /** Returns the first scolar year */ + public int scolarYear () + { + return (scolarYear); + } + + /** returns the teachers array */ + public String[] teachers () + { + return (teachers); + } + + /** Returns a teacher name */ + public String teacherName (int num) + { + return (teachers[tSort[num]]); + } + + /** Returns a teacher load on given week */ + public int teacherLoad (int num, int week) + { + int load = 0; + for (int j = 0; j < curs.length; j++) + for (int i = 0; i < mod[j].length; i++) + load += mod[j][i].teacherLoad (tSort[num], week); + return (load); + } + + /** Returns the progression of given module */ + public String[] progression (int curs, int mod) + { + return (this.mod[curs][mod].progression ()); + } + + /** Returns the count of actvities in given module */ + public int activityCount (int curs, int mod) + { + return (this.mod[curs][mod].activityCount ()); + } + + /** Returns the start week of given module */ + public int moduleStart (int curs, int mod) + { + int[] wk = this.mod[curs][mod].activeWeeks (); + if (wk[0] != 0) return (0); + int sw = 1; + while (wk[sw] == 0) + if (++sw == wk.length) return (0); + sw += sem.startWeekNumber (); + if (sw > sem.lastWeekOfYearNumber ()) sw -= sem.lastWeekOfYearNumber (); + return (sw); + } + + /** Returns the end week of given module */ + public int moduleEnd (int curs, int mod) + { + int[] wk = this.mod[curs][mod].activeWeeks (); + if (wk[wk.length - 1] != 0) return (0); + int ew = wk.length - 2; + while (wk[ew] == 0) + if (--ew == -1) return (0); + ew += sem.startWeekNumber (); + if (ew > sem.lastWeekOfYearNumber ()) ew -= sem.lastWeekOfYearNumber (); + return (ew); + } + + /** Returns the end week of given module */ + public int[] moduleHollyWeeks (int curs, int mod) + { + int[] wk = this.mod[curs][mod].activeWeeks (); + int lw = wk.length - 1; + while (wk[lw] == 0) + if (--lw == -1) return (new int[0]); + + int[] sk = sem.weekDurations (); + int[] hk = new int[sk.length]; + int nb = 0; + boolean ok = false; + for (int i = 0; i < lw; i++) + { + if (wk[i] != 0) ok = true; + else if (ok && sk[i] != 0) hk[nb++] = i; + } + + int[] res = new int[nb]; + int sw = sem.startWeekNumber (); + int lyw = sem.lastWeekOfYearNumber (); + for (int i = 0; i < nb; i++) + { + res[i] = hk[i] + sw; + if (res[i] > lyw) res[i] -= lyw; + } + return (res); + } + + /** Returns the teachers of given module */ + public String[] moduleTeachers (int curs, int mod, int typact) + { + int[] ids = this.mod[curs][mod].teachers (typact); + if (ids == null) return (new String[0]); + String[] tch = new String[ids.length]; + for (int i = 0; i < tch.length; i++) tch[i] = teachers[ids[i]]; + return (tch); + } + + /** Returns the specific teachers of given module */ + public String[][] moduleSpecTeachers (int curs, int mod) + { + int[][] ids = this.mod[curs][mod].specTeachers (); + String[][] tch = new String[ids.length][]; + for (int i = 0; i < ids.length; i++) + { + tch[i] = new String[ids[i].length]; + for (int j = 0; j < ids[i].length; j++) tch[i][j] = teachers[ids[i][j]]; + } + return (tch); + } + + /** Returns the set-on-left activities of given module */ + public boolean[] moduleOnLeft (int curs, int mod) + { + return (this.mod[curs][mod].onLeftActivities ()); + } + + /** Returns the set-on-right activities of given module */ + public boolean[] moduleOnRight (int curs, int mod) + { + return (this.mod[curs][mod].onRightActivities ()); + } + + /** Returns the formatted date */ + public String date () + { + return (sem.date ()); + } + + /** Returns the semester */ + public ShukanSemester semester () + { + return (sem); + } + + /** Selects an activity */ + public boolean select (int mod, int pos, boolean zone) + { + int selection = this.mod[selCur][mod].select (pos); + if (selection != -1) + { + if (selWeek != -1) deactivate (); + + if (zone && selMod == mod && selection != selAct) + { + if (selection < selAct) + { + selLength += selAct - selection; + selAct = selection; + } + else if (selection < selAct + selLength) + { + if (selection - selAct < selLength / 2) + { + selLength -= (selection - selAct); + selAct = selection; + } + else + selLength = selection - selAct + 1; + } + else + selLength = selection - selAct + 1; + } + else + { + selMod = mod; + selLength = 1; + selAct = selection; + } + return true; + } + return false; + } + + /** Returns the first selected activity */ + public int selectedActivity () + { + return (selAct); + } + + /** Exchanges extreme activities of the selected area */ + public void exchangeExtremes () + { + if (selMod != -1 && selAct != -1 && selLength > 1) + this.mod[selCur][selMod].exchange (selAct, selAct + selLength - 1); + } +} diff --git a/saeshukan-main/shukan/ShukanIO.java b/saeshukan-main/shukan/ShukanIO.java new file mode 100644 index 0000000000000000000000000000000000000000..bd5d57fb030f4a55035b9f13537edc53ceffc826 --- /dev/null +++ b/saeshukan-main/shukan/ShukanIO.java @@ -0,0 +1,746 @@ +package shukan; +import java.io.File; +import java.io.IOException; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.StreamTokenizer; +import java.io.PrintWriter; +import java.text.DecimalFormat; + +/** Shukan application file manager */ +public class ShukanIO +{ + /** Dictionary language */ + private int dico = -1; // undetermined + + /** Data base */ + private ShukanData data = null; + /** Release number */ + private int release = 0; + /** Release file */ + private File releaseFile = null; + /** Semester directory */ + private File semDir = null; + /** Cursus directories */ + private File[] cursusDir = null; + + /** Suffix for files */ + private final static String FILE_SUFFIX = ".txt"; + /** Default data directory */ + private final static String DATA_DIR_NAME = "data"; + /** Semester file name */ + private final static String SEMESTER_FILE_NAME = "semestre"; + /** Release file name */ + private final static String RELEASE_FILE_NAME = "version"; + /** Weeks file name */ + private final static String WEEKS_FILE_NAME = "weeks"; + /** Cursus file or directory name */ + private final static String CURSUS_FILE_NAME = "cursus"; + /** Modules file or directory name */ + private final static String MODULES_FILE_NAME = "modules"; + /** Default number of modules */ + private final static int DEFAULT_MODULES_NB = 30; + + + // Semester upload dictionnary + private final static String[] SEM_SCOLAR_YEAR = { + "ScolarYear", "AnneeScolaire"}; + private final static String[] SEM_FIRST_WEEK_YEAR = { + "YearOfFirstWeek", "AnneeDeDebut"}; + private final static String[] SEM_FIRST_WEEK = { + "FirstWeek", "PremiereSemaine"}; + private final static String[] SEM_LENGTH = { + "SemesterLength", "LongueurDuSemestre"}; + private final static String[] SEM_WEEK_MAX_LENGTH = { + "DefaultWeekLength", "ChargeMaxHebdomadaire"}; + private final static String[] SEM_WEEK_DURATION = { + "WeekLength", "ChargeMax"}; + + + // Modules features dictionnary + private final static String[] MODULE_PARAMETERS = { + "Params", "Parametres"}; + private final static String[] MODULE_START = { + "StartsOn", "DebutModule"}; + private final static String[] MODULE_END = { + "EndsOn", "FinModule"}; + private final static String[] MODULE_HOLYWEEK = { + "Hollyweek", "SemaineLibre"}; + private final static String[] MODULE_SUBTITLE = { + "Subtitle", "SousTitre"}; + private final static String[] MODULE_AFFECT_CM = { + "AffectCM", "AffectationCM"}; + private final static String[] MODULE_AFFECT_TD = { + "AffectTD", "AffectationTD"}; + private final static String[] MODULE_AFFECT_TP = { + "AffectTP", "AffectationTP"}; + private final static String[] MODULE_AFFECT_SPEC = { + "AffectSpec", "Affectation"}; + private final static String[] MODULE_ON_LEFT = { + "OnLeft", "AGauche"}; + private final static String[] MODULE_ON_RIGHT = { + "OnRight", "ADroite"}; + private final static String[] MODULE_SCHEDULE = { + "Sched", "Progression"}; + + + /** Creates the archive manager */ + public ShukanIO (ShukanData data) + { + this.data = data; + + // Checks existence of a data directory + File dataDir = new File (DATA_DIR_NAME); + if (! dataDir.exists ()) + { + System.out.println ( + "Sorry, no " + dataDir.getName () + " directory found"); + System.exit (0); + } + + // Gets the present semester + StreamTokenizer st = null; + try + { + st = new StreamTokenizer ( + new FileReader (new File (dataDir, SEMESTER_FILE_NAME + FILE_SUFFIX))); + st.nextToken (); + int an = (int) st.nval; + st.nextToken (); + semDir = new File (DATA_DIR_NAME, an + "_" + st.sval); + } + catch (FileNotFoundException e) + { + System.out.println ("No semester file found"); + System.exit (0); + } + catch (Exception e) + { + System.out.println ("Semester file damaged"); + System.exit (0); + } + if (! semDir.exists ()) + { + System.out.println ( + "No " + semDir.getName () + " directory found"); + System.exit (0); + } + + // Gets the last release + File relDir = null; + DecimalFormat format = new DecimalFormat ("000"); + DecimalFormat format2 = new DecimalFormat ("000000"); + try + { + releaseFile = new File (semDir, RELEASE_FILE_NAME + FILE_SUFFIX); + st = new StreamTokenizer (new FileReader (releaseFile)); + st.nextToken (); + release = (int) st.nval; + st.nextToken (); + relDir = new File (semDir, "V" + format.format (release) + + "_" + format2.format ((int) st.nval)); + } + catch (FileNotFoundException e) + { + System.out.println ("No release file found"); + System.exit (0); + } + catch (Exception e) + { + System.out.println ("Release file damaged"); + System.exit (0); + } + if (! relDir.exists ()) + { + System.out.println ( + "No " + relDir.getName () + " directory found"); + System.exit (0); + } + + // Gets the calendar + loadCalendar (relDir); + + // Gets the cursus + File cursusFile = new File (relDir, CURSUS_FILE_NAME + FILE_SUFFIX); + if (! (cursusFile.exists ())) + { + System.out.println ("No cursus file found"); + System.exit (0); + } + String[] cNames = getNames (cursusFile); + if (cNames.length == 0) + { + System.out.println ("No cursus found in cursus file"); + System.exit (0); + } + cursusDir = new File[cNames.length]; + for (int i = 0; i < cNames.length; i++) + { + cursusDir[i] = new File (relDir, cNames[i]); + if (! semDir.exists ()) + { + System.out.println ("No " + cNames[i] + " directory found"); + System.exit (0); + } + } + data.declareCursus (cNames); + for (int i = 0; i < cursusDir.length; i++) loadModules (i); + } + + /** Loads the calendar */ + private void loadCalendar (File semDir) + { + // Checks weeks file + File weekFile = new File (semDir, WEEKS_FILE_NAME + FILE_SUFFIX); + if (! weekFile.exists ()) + { + System.out.println ("Sorry, no " + WEEKS_FILE_NAME + " file found"); + System.exit (0); + } + try + { + StreamTokenizer st = new StreamTokenizer (new FileReader (weekFile)); + + // Reads scolar year + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (WEEKS_FILE_NAME, "?", st.lineno ()); + for (int i = 0; dico == -1 && i < SEM_SCOLAR_YEAR.length; i++) + if (st.sval.equals (SEM_SCOLAR_YEAR[i])) dico = i; + if (dico != -1) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) dico = -1; + } + if (dico == -1) + { + String msg = new String ("should be " + SEM_SCOLAR_YEAR[0]); + for (int i = 1; i < SEM_SCOLAR_YEAR.length; i++) + msg += " or " + SEM_SCOLAR_YEAR[i]; + abort (WEEKS_FILE_NAME, msg, st.lineno ()); + } + int scolYear = (int) st.nval; + + // Reads year of first week + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (WEEKS_FILE_NAME, "?", st.lineno ()); + if (! st.sval.equals (SEM_FIRST_WEEK_YEAR[dico])) + abort (WEEKS_FILE_NAME, "should be " + + SEM_FIRST_WEEK_YEAR[dico], st.lineno ()); + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (WEEKS_FILE_NAME, SEM_FIRST_WEEK_YEAR[dico], st.lineno ()); + int year = (int) st.nval; + + // Reads first week number + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (WEEKS_FILE_NAME, "?", st.lineno ()); + if (! st.sval.equals (SEM_FIRST_WEEK[dico])) + abort (WEEKS_FILE_NAME, "should be " + SEM_FIRST_WEEK[dico], + st.lineno ()); + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (WEEKS_FILE_NAME, SEM_FIRST_WEEK[dico], st.lineno ()); + int firstWeek = (int) st.nval; + + // Reads semester length + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (WEEKS_FILE_NAME, "?", st.lineno ()); + if (! st.sval.equals (SEM_LENGTH[dico])) + abort (WEEKS_FILE_NAME, SEM_LENGTH[dico], st.lineno ()); + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (WEEKS_FILE_NAME, SEM_LENGTH[dico], st.lineno ()); + int semLength = (int) st.nval; + + // Reads default week length + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (WEEKS_FILE_NAME, "?", st.lineno ()); + if (! st.sval.equals (SEM_WEEK_MAX_LENGTH[dico])) + abort (WEEKS_FILE_NAME, SEM_WEEK_MAX_LENGTH[dico], st.lineno ()); + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (WEEKS_FILE_NAME, SEM_WEEK_MAX_LENGTH[dico], st.lineno ()); + int duration = (int) st.nval; + + // Creates the semester + ShukanSemester sem = new ShukanSemester (year, firstWeek, + semLength, duration); + data.setSemester (scolYear, sem); + + // Reads the week durations + st.nextToken (); + while (st.ttype != StreamTokenizer.TT_EOF) + { + if (st.ttype != StreamTokenizer.TT_WORD) + abort (WEEKS_FILE_NAME, "?", st.lineno ()); + if (st.sval.equals (SEM_WEEK_DURATION[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (WEEKS_FILE_NAME, SEM_WEEK_DURATION[dico], st.lineno ()); + if (st.sval.charAt (0) != 'S') + abort (WEEKS_FILE_NAME, SEM_WEEK_DURATION[dico], st.lineno ()); + int noWeek = Integer.parseInt (st.sval.substring (1)); + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (WEEKS_FILE_NAME, SEM_WEEK_DURATION[dico], st.lineno ()); + if (! sem.setDuration (noWeek, (int) (st.nval))) + abort (WEEKS_FILE_NAME, SEM_WEEK_DURATION[dico], st.lineno ()); + } + st.nextToken (); + } + } + catch (IOException e) + { + System.out.println ("Problem in " + WEEKS_FILE_NAME + " file"); + System.exit (0); + } + } + + /** Loads the modules */ + private void loadModules (int n) + { + File modulesFile = new File (cursusDir[n], MODULES_FILE_NAME + FILE_SUFFIX); + if (! (modulesFile.exists ())) + { + System.out.println ( + "No modules file found in " + cursusDir[n].getName ()); + System.exit (0); + } + String[] names = getNames (modulesFile); + if (names.length == 0) + { + System.out.println ("Empty modules file in " + cursusDir[n].getName ()); + System.exit (0); + } + data.setModules (n, names); + + // Reads each module + for (int i = 0; i < names.length; i++) + loadModule (n, i, cursusDir[n], names[i]); + } + + /** Loads one module */ + private void loadModule (int cursNum, int modNum, File modDir, String name) + { + int sw = data.startWeekNumber (); + int lw = data.lastWeekOfYearNumber (); + int ss = data.semesterSize (); + int[] wd = data.weekDurations (); + + // Checks module file + File modFile = new File (modDir, name + FILE_SUFFIX); + if (! modFile.exists ()) + { + System.out.println ("Sorry, no " + name + " file found"); + System.exit (0); + } + try + { + // Reads modules + int actNum = 0; + StreamTokenizer st = new StreamTokenizer (new FileReader (modFile)); + st.nextToken (); + while (st.ttype != StreamTokenizer.TT_EOF) + { + if (st.ttype != StreamTokenizer.TT_WORD) + abort (name, "SYNTAX", st.lineno ()); + if (st.sval.equals (MODULE_PARAMETERS[dico])) + { + data.closeActivities (cursNum, modNum, actNum); + } + else if (st.sval.equals (MODULE_START[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_START[dico], st.lineno ()); + data.setModuleStart (cursNum, modNum, (int) st.nval); + } + else if (st.sval.equals (MODULE_END[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_END[dico], st.lineno ()); + data.setModuleEnd (cursNum, modNum, (int) st.nval); + } + else if (st.sval.equals (MODULE_HOLYWEEK[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_HOLYWEEK[dico], st.lineno ()); + data.setModuleHolly (cursNum, modNum, (int) st.nval); + } + else if (st.sval.equals (MODULE_SUBTITLE[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (name, MODULE_SUBTITLE[dico], st.lineno ()); + data.setSubtitle (cursNum, modNum, new String (st.sval)); + } + else if (st.sval.equals (MODULE_AFFECT_CM[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (name, MODULE_AFFECT_CM[dico], st.lineno ()); + data.affectTo (cursNum, modNum, ShukanModule.ACT_CM, + new String[] {st.sval}); + } + else if (st.sval.equals (MODULE_AFFECT_TD[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_AFFECT_TD[dico], st.lineno ()); + String[] aff = new String[(int) st.nval]; + for (int j = 0; j < aff.length; j++) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (name, MODULE_AFFECT_TD[dico], st.lineno ()); + aff[j] = st.sval; + } + data.affectTo (cursNum, modNum, ShukanModule.ACT_TD, aff); + } + else if (st.sval.equals (MODULE_AFFECT_TP[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_AFFECT_TP[dico], st.lineno ()); + String[] aff = new String[(int) st.nval]; + for (int j = 0; j < aff.length; j++) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (name, MODULE_AFFECT_TP[dico], st.lineno ()); + aff[j] = st.sval; + } + data.affectTo (cursNum, modNum, ShukanModule.ACT_TP, aff); + } + else if (st.sval.equals (MODULE_AFFECT_SPEC[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_AFFECT_SPEC[dico], st.lineno ()); + int num = (int) st.nval; + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_AFFECT_SPEC[dico], st.lineno ()); + String[] aff = new String[(int) st.nval]; + for (int j = 0; j < aff.length; j++) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_WORD) + abort (name, MODULE_AFFECT_SPEC[dico], st.lineno ()); + aff[j] = st.sval; + } + data.affectSpec (cursNum, modNum, num, aff); + } + else if (st.sval.equals (MODULE_ON_LEFT[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_ON_LEFT[dico], st.lineno ()); + data.setOnLeft (cursNum, modNum, (int) st.nval); + } + else if (st.sval.equals (MODULE_ON_RIGHT[dico])) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) + abort (name, MODULE_ON_RIGHT[dico], st.lineno ()); + data.setOnRight (cursNum, modNum, (int) st.nval); + } + else if (st.sval.equals (MODULE_SCHEDULE[dico])) + { + int nb = data.activityCount (cursNum, modNum); + boolean ok = (nb != 0); + if (ok) + { + int[] sch = new int[nb]; + for (int i = 0; ok && i < nb; i++) + { + st.nextToken (); + if (st.ttype != StreamTokenizer.TT_NUMBER) ok = false; + sch[i] = (int) st.nval; + if (sch[i] < sw) sch[i] = lw - sw + sch[i]; + else sch[i] -= sw; + if (sch[i] < 0 || sch[i] >= ss || wd[sch[i]] == 0) + abort (name, MODULE_SCHEDULE[dico], st.lineno ()); + } + if (ok) data.setSchedule (cursNum, modNum, sch); + } + if (! ok) abort (name, MODULE_SCHEDULE[dico], st.lineno ()); + } + + else if (! data.addActivity (cursNum, modNum, actNum++, st.sval)) + abort (name, st.sval, st.lineno ()); + st.nextToken (); + } + data.autoPlan (cursNum, modNum); + } + catch (IOException e) + { + System.out.println ("Problem in " + name + " file"); + System.exit (0); + } + } + + /** Programms interruption in case of format problem */ + private static void abort (String name, String beacon, int lineno) + { + System.out.println (name + ", ligne " + lineno + + ": mauvais format pour " + beacon); + System.exit (0); + } + + /** Saves all the schedules */ + public void save () + { + // Updates the release file + releaseFile.delete (); + String now = data.date (); + PrintWriter pw = null; + try + { + releaseFile.createNewFile (); + pw = new PrintWriter (releaseFile); + pw.println (++release); + pw.println (now); + } + catch (IOException exc) + { + System.out.println ("Unable to create the new release"); + System.exit (0); + } + finally + { + pw.close (); + } + + // Creates the new release directory + DecimalFormat format = new DecimalFormat ("000"); + File relDir = new File (semDir, "V" + format.format (release) + "_" + now); + relDir.mkdir (); + + // Saves the calendar + saveCalendar (relDir); + + // Creates the cursus file + File curFile = new File (relDir, CURSUS_FILE_NAME + FILE_SUFFIX); + try + { + curFile.createNewFile (); + pw = new PrintWriter (curFile); + for (int i = 0; i < cursusDir.length; i++) + pw.println (data.cursusName (i)); + } + catch (IOException exc) + { + System.out.println ("Unable to create cursus file"); + System.exit (0); + } + finally + { + pw.close (); + } + + // Creates and updates cursus directories + for (int i = 0; i < cursusDir.length; i++) + { + cursusDir[i] = new File (relDir, data.cursusName (i)); + cursusDir[i].mkdir (); + save (i); + } + } + + /** Saves calendar of the semester */ + private void saveCalendar (File dir) + { + File weekFile = new File (dir, WEEKS_FILE_NAME + FILE_SUFFIX); + PrintWriter pw = null; + try + { + weekFile.createNewFile (); + pw = new PrintWriter (weekFile); + + // Writes scolar year + pw.println (SEM_SCOLAR_YEAR[dico] + " " + data.scolarYear ()); + ShukanSemester sem = data.semester (); + pw.println (SEM_FIRST_WEEK_YEAR[dico] + " " + sem.yearOfFirstWeek ()); + pw.println (SEM_FIRST_WEEK[dico] + " " + sem.startWeekNumber ()); + pw.println (SEM_LENGTH[dico] + " " + sem.length ()); + + // Writes week durations + int sd = sem.standardWeekDuration (); + pw.println (SEM_WEEK_MAX_LENGTH[dico] + " " + sd); + int[] wd = sem.weekDurations (); + for (int i = 0; i < wd.length; i++) + if (wd[i] != sd) pw.println (SEM_WEEK_DURATION[dico] + " S" + + sem.weekNumber (i) + " " + wd[i]); + } + catch (IOException e) + { + System.out.println ("Can(t write " + WEEKS_FILE_NAME + " file"); + System.exit (0); + } + finally + { + pw.close (); + } + } + + /** Saves the schedules for given cursus */ + private void save (int curs) + { + // Create module names file + String[] modNames = data.moduleNames (curs); + File moduleFile = new File (cursusDir[curs], + MODULES_FILE_NAME + FILE_SUFFIX); + PrintWriter pw = null; + try + { + moduleFile.createNewFile (); + pw = new PrintWriter (moduleFile); + for (int i = 0; i < modNames.length; i++) pw.println (modNames[i]); + } + catch (IOException exc) + { + System.out.println ("Unable to create modules file for " + + data.cursusName (curs)); + System.exit (0); + } + finally + { + pw.close (); + } + + for (int i = 0; i < modNames.length; i++) + { + // Creates the module schedule file + moduleFile = new File (cursusDir[curs], modNames[i] + FILE_SUFFIX); + try + { + moduleFile.createNewFile (); + pw = new PrintWriter (moduleFile); + save (pw, curs, i); + } + catch (IOException exc) + { + System.out.println ("Unable to create schedule for " + modNames[i]); + System.exit (0); + } + finally + { + pw.close (); + } + } + } + + /** Saves the schedule for given module */ + private void save (PrintWriter pw, int curs, int mod) + { + // Writes the progression + String[] prog = data.progression (curs, mod); + for (int j = 0; j < prog.length; j++) pw.println (prog[j]); + pw.println (MODULE_PARAMETERS[dico]); + + // Writes the availabilities + int wk = data.moduleStart (curs, mod); + if (wk != 0) pw.println (MODULE_START[dico] + " " + wk); + wk = data.moduleEnd (curs, mod); + if (wk != 0) pw.println (MODULE_END[dico] + " " + wk); + int[] hk = data.moduleHollyWeeks (curs, mod); + for (int j = 0; j < hk.length; j++) + pw.println (MODULE_HOLYWEEK[dico] + " " + hk[j]); + + // Writes the affectations + String st = data.subtitle (curs, mod); + if (st != null) pw.println (MODULE_SUBTITLE[dico] + " " + st); + String[] t = data.moduleTeachers (curs, mod, ShukanModule.ACT_CM); + if (t.length != 0) + { + pw.print (MODULE_AFFECT_CM[dico]); + for (int j = 0; j < t.length; j++) pw.print (" " + t[j]); + pw.println (); + } + t = data.moduleTeachers (curs, mod, ShukanModule.ACT_TD); + if (t.length != 0) + { + pw.print (MODULE_AFFECT_TD[dico] + " " + t.length); + for (int j = 0; j < t.length; j++) pw.print (" " + t[j]); + pw.println (); + } + t = data.moduleTeachers (curs, mod, ShukanModule.ACT_TP); + if (t.length != 0) + { + pw.print (MODULE_AFFECT_TP[dico] + " " + t.length); + for (int j = 0; j < t.length; j++) pw.print (" " + t[j]); + pw.println (); + } + String[][] spt = data.moduleSpecTeachers (curs, mod); + for (int j = 0; j < spt.length; j++) + if (spt[j].length != 0) + { + pw.print (MODULE_AFFECT_SPEC[dico] + " " + j + " " + spt[j].length); + for (int k = 0; k < spt[j].length; k++) + pw.print (" " + spt[j][k]); + pw.println (); + } + boolean[] dec = data.moduleOnLeft (curs, mod); + for (int j = 0; j < dec.length; j++) + if (dec[j]) pw.println (MODULE_ON_LEFT[dico] + " " + j); + dec = data.moduleOnRight (curs, mod); + for (int j = 0; j < dec.length; j++) + if (dec[j]) pw.println (MODULE_ON_RIGHT[dico] + " " + j); + + // Writes the schedule + int[] wn = data.weekNumbers (); + int[] sched = data.schedule (curs, mod); + pw.print (MODULE_SCHEDULE[dico]); + for (int j = 0; j < sched.length; j++) pw.print (" " + wn[sched[j]]); + pw.println (); + } + + /** Returns module names */ + private static String[] getNames (File f) + { + String[] names = new String[DEFAULT_MODULES_NB]; + int num = 0; + + // Checks modules file + try + { + // Reads names + StreamTokenizer st = new StreamTokenizer (new FileReader (f)); + st.nextToken (); + while (st.ttype != StreamTokenizer.TT_EOF) + { + if (st.ttype != StreamTokenizer.TT_WORD) + abort (f.getName (), "?", st.lineno ()); + if (num == names.length) + { + String[] tmp = new String[names.length + DEFAULT_MODULES_NB]; + for (int i = 0; i < names.length; i++) tmp[i] = names[i]; + names = tmp; + } + names[num++] = new String (st.sval); + st.nextToken (); + } + if (num != names.length) + { + String[] tmp = new String[num]; + for (int i = 0; i < num; i++) tmp[i] = names[i]; + names = tmp; + } + } + catch (IOException e) + { + System.out.println ("Problem in " + f.getName () + " file"); + System.exit (0); + } + return (names); + } +} diff --git a/saeshukan-main/shukan/ShukanList.java b/saeshukan-main/shukan/ShukanList.java new file mode 100644 index 0000000000000000000000000000000000000000..1cabcec3987527dfc4a27ffefd3a0079724d0d03 --- /dev/null +++ b/saeshukan-main/shukan/ShukanList.java @@ -0,0 +1,91 @@ +package shukan; + + +/** Array list of Shukan elements */ +public class ShukanList +{ + /** Default size of a created list */ + private final static int DEFAULT_SIZE = 10; + + /** Container of elements */ + private Object[] elts = null; + /** Effective number of elements */ + private int count = 0; + + /** Creates a list with default size */ + public ShukanList () + { + elts = new Object[DEFAULT_SIZE]; + } + + /** Creates a list with given size */ + public ShukanList (int size) + { + elts = new Object[size]; + } + + /** Empties the list */ + public void empty () + { + count = 0; + } + + /** Adds an object to the list */ + public void add (Object elt) + { + if (count == elts.length) doubleCapacity (); + elts[count++] = elt; + } + + /** Sets the list capacity to double size */ + private void doubleCapacity () + { + Object[] tab = new Object[elts.length * 2]; + for (int i = 0; i < count; i++) tab[i] = elts[i]; + elts = tab; + } + + /** Returns the number of objects in the list */ + public int size () + { + return (count); + } + + /** Removes an objects from the list */ + public void remove (Object elt) + { + for (int i = 0; i < count; i ++) + if (elt == elts[i]) + { + elts[i] = elts[--count]; + i = count + 1; + } + } + + /** Gets a copy of objects in the list */ + public void fill (Object[] objects) + { + for (int i = 0; i < count; i++) + objects[i] = elts[i]; + } + + /** Returns an object of the list */ + public Object get (int index) + { + return (elts[index]); + } + + /** Returns the last object of the list */ + public Object last () + { + return (elts[count - 1]); + } + + /** Returns the objects of the list */ + public Object[] toArray () + { + Object[] obj = new Object[count]; + for (int i = 0; i < count; i++) obj[i] = elts[count]; + return (obj); + } +} diff --git a/saeshukan-main/shukan/ShukanModule.java b/saeshukan-main/shukan/ShukanModule.java new file mode 100644 index 0000000000000000000000000000000000000000..e7cff5dfc33cf5a0534696331aca316ac080c80e --- /dev/null +++ b/saeshukan-main/shukan/ShukanModule.java @@ -0,0 +1,454 @@ +package shukan; + + +/** Module */ +public class ShukanModule +{ + /** Module name */ + private String name; + /** Module teachers */ + private String subtitle = null; + /** Queue of module activities */ + private int[] activ = null; + /** Queues of planed activities */ + private ShukanSchedule sched = null; + /** Module scheduling status */ + private boolean scheduled = false; + /** Teacher affectation for main courses */ + private int[] affectCM = null; + /** Teacher affectation for supervised trainings */ + private int[] affectTD = null; + /** Teacher affectation for practical works */ + private int[] affectTP = null; + /** Teacher affectation for each activity */ + private int[][] affect = null; + /** Left shift status for activities */ + private boolean[] onLeft = null; + /** Right shift status for activities */ + private boolean[] onRight = null; + /** Working weeks for the module */ + private int[] activeWeeks = null; + + /** Specific activity : main course */ + public final static int ACT_CM = 0; // Cours magistral + /** Specific activity : 1 hour long control */ + public final static int ACT_EV2 = 1; // Evaluation d'1h + /** Specific activity : 2 hours long control */ + public final static int ACT_EV1 = 2; // Evaluation de 2h + /** Specific activity : supervised training in standard room */ + public final static int ACT_TD = 3; // TD en salle de cours + /** Specific activity : supervised training in computer room */ + public final static int ACT_TM = 4; // TD en salle ordi + /** Specific activity : supervised training in parallel */ + public final static int ACT_TV = 5; // TD en parallele (eval) + /** Specific activity : SAe supervised training in standard room */ + public final static int ACT_SD = 6; // TD de SAE en salle de cours + /** Specific activity : SAe supervised training in computer room */ + public final static int ACT_SM = 7; // TD de SAE en salle ordi + /** Specific activity : Practical work in computer room */ + public final static int ACT_TP = 8; // TP en salle ordi + /** Specific activity : 4 hours long practical work in computer room */ + public final static int ACT_TP4 = 8; // TP de 4h en salle ordi + /** Specific activity : 2 hours long practical work in computer room */ + public final static int ACT_TP2 = 9; // TP de 2h en salle ordi + /** Specific activity : 2 hours long practical work in standard room */ + public final static int ACT_TQ2 = 10; // TP en salle de cours + /** Specific activity : SAe practical work in computer room */ + public final static int ACT_SP = 11; // TP de SAE en salle ordi + /** Specific activity : SAe practical work in standard room */ + public final static int ACT_SQ = 12; // TQ de SAE en salle de cours + /** Activity types */ + private final static String[] TYPES = {"CM", "EV2", "EV1", + "TD", "TM", "TV", "SD", "SM", + "TP4", "TP2", "TQ2", "SP", "SQ"}; + /** Activity symbol */ + public final static String[] DISPLAY = {"C", "E", "e", + "d", "m", "v", "s", "z", + "P", "p", "q", "S", "Z"}; + /** Activity duration (in hours) */ + public final static int[] SLOAD = {2, 2, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2}; + + /** Default maximal number of activities in a module */ + private final static int DEFAULT_ACTIVITY_NUMBER = 30; + /** Maximal number of activities per week */ + public final static int MAX_ACTIV_PER_WEEK = 6; + + + /** Creation of a module */ + public ShukanModule (String name) + { + this.name = new String (name); + activ = new int[DEFAULT_ACTIVITY_NUMBER]; + affect = new int[DEFAULT_ACTIVITY_NUMBER][]; + } + + /** Adds an activity */ + public boolean addActivity (int num, String type) + { + int numT = -1; + for (int i = 0; i < TYPES.length && numT == -1; i++) + if (type.equals (TYPES[i])) numT = i; + if (numT == -1) return (false); + if (num == activ.length) + { + int[] tmp = new int[activ.length + DEFAULT_ACTIVITY_NUMBER]; + int[][] tmpaff = new int[activ.length + DEFAULT_ACTIVITY_NUMBER][]; + for (int i = 0; i < activ.length; i++) + { + tmp[i] = activ[i]; + tmpaff[i] = affect[i]; + } + activ = tmp; + affect = tmpaff; + } + activ[num] = numT; + affect[num] = new int[0]; + return (true); + } + + /** Adjusts the activity array. + * @param size Number of activities to be planned. + */ + public void closeActivities (int size) + { + if (size != activ.length) + { + int[] tmp = new int[size]; + int[][] tmpaff = new int[size][]; + for (int i = 0; i < size; i++) + { + tmp[i] = activ[i]; + tmpaff[i] = affect[i]; + } + activ = tmp; + affect = tmpaff; + } + + onLeft = new boolean[activ.length]; + onRight = new boolean[activ.length]; + for (int i = 0; i < onLeft.length; i++) + { + onLeft[i] = false; + onRight[i] = false; + } + } + + /** Automatically plans a free module + */ + public void autoPlan () + { + if (sched == null) + { + sched = new ShukanSchedule (activeWeeks.length, MAX_ACTIV_PER_WEEK); + for (int i = 0; i < activeWeeks.length; i++) + if (activeWeeks[i] == 0) sched.kill (i); + } + int durall = 0; + for (int i = 0; i < activeWeeks.length; i++) durall += activeWeeks[i]; + double period = durall / (float) (activ.length); + int remainder = 0; + int placed = 0; + int lastWeek = 0; + for (int i = 0; i < activeWeeks.length && placed < activ.length; i++) + { + remainder += activeWeeks[i]; + while (remainder > period / 2 && placed < activ.length) + { + sched.add (i, placed++); + lastWeek = i; + remainder -= period; + } + } + while (placed < activ.length) sched.add (lastWeek, placed++); + scheduled = true; + } + + /** Schedules all activities */ + public void schedule (int[] weeks) + { + if (sched == null) + { + sched = new ShukanSchedule (activeWeeks.length, MAX_ACTIV_PER_WEEK); + for (int i = 0; i < activeWeeks.length; i++) + if (activeWeeks[i] == 0) sched.kill (i); + } + for (int i = 0; i < weeks.length; i++) sched.add (weeks[i], i); + scheduled = true; + } + + /** Unschedules all the module */ + public void unschedule () + { + sched.clear (); + scheduled = false; + } + + /** Schedules an activity */ + public void schedule (int num, int week) + { + if (sched == null) + { + sched = new ShukanSchedule (activeWeeks.length, MAX_ACTIV_PER_WEEK); + for (int i = 0; i < activeWeeks.length; i++) + if (activeWeeks[i] == 0) sched.kill (i); + } + sched.add (week, num); + scheduled = true; + } + + /** Returns the schedule status */ + public boolean isScheduled () + { + return (scheduled); + } + + /** Returns the name of the module */ + public String name () + { + return (name); + } + + /** Sets the module start week */ + public void setStartWeek (int num) + { + for (int i = 0; i < num; i++) disableWeek (i); + } + + /** Sets the module end week */ + public void setEndWeek (int num) + { + for (int i = num + 1; i < activeWeeks.length; i++) disableWeek (i); + } + + /** Sets a module holly week */ + public void setHollyWeek (int num) + { + disableWeek (num); + } + + /** Returns the activities */ + public int[] activities () + { + return (activ); + } + + /** Returns the activity schedule */ + public int[] schedule (int week) + { + return (sched.contents (week)); + } + + /** Returns the complete activity schedule */ + public int[] schedule () + { + return (sched.contents ()); + } + + /** Shift the selection leftwards */ + public int left (int week, int ln) + { + return ((ln == 1) ? sched.left (week) : sched.left (week, week + ln - 1)); + } + + /** Shifts the selection rightwards */ + public int right (int week, int ln) + { + return ((ln == 1) ? sched.right (week) : sched.right (week, week + ln - 1)); + } + + /** Returns the student load for the given week */ + public int studentLoad (int week) + { + int[] sch = sched.contents (week); + int load = 0; + for (int i = 0; i < sch.length; i++) load += SLOAD[activ[sch[i]]]; + return (load); + } + + /** Returns a teacher load for the given week */ + public int teacherLoad (int teacher, int week) + { + int[] sch = sched.contents (week); + int load = 0; + for (int i = 0; i < sch.length; i++) + for (int j = 0; j < affect[sch[i]].length; j++) + if (teacher == affect[sch[i]][j]) load += SLOAD[activ[sch[i]]]; + return (load); + } + + /** Affects activities to teachers */ + public void setTeachers (int act, int[] teacher) + { + if (act == ACT_TP) + { + affectTP = teacher; + for (int i = 0; i < activ.length; i++) + if (activ[i] >= act) affect[i] = teacher; + } + else if (act == ACT_TD) + { + affectTD = teacher; + for (int i = 0; i < activ.length; i++) + if (activ[i] >= act && activ[i] < ACT_TP) affect[i] = teacher; + } + else + { + affectCM = teacher; + for (int i = 0; i < activ.length; i++) + if (activ[i] < ACT_TD) affect[i] = teacher; + } + } + + /** Affects specific activity to teachers */ + public void affectSpec (int act, int[] teacher) + { + affect[act] = teacher; + } + + /** Sets an activity to be displayed on left */ + public void setOnLeft (int act) + { + onRight[act] = false; + onLeft[act] = true; + } + + /** Sets an activity to be displayed on right */ + public void setOnRight (int act) + { + onLeft[act] = false; + onRight[act] = true; + } + + /** Returns the activities to be displayed on left */ + public boolean[] activitiesOnLeft () + { + return (onLeft); + } + + /** Returns the activities to be displayed on right */ + public boolean[] activitiesOnRight () + { + return (onRight); + } + + /** Sets a subtitle to the module */ + public void setSubtitle (String text) + { + subtitle = text; + } + + /** Returns the subtitle (null by default) */ + public String subtitle () + { + return (subtitle); + } + + /** Defines the module active weeks. */ + public void setActiveWeeks (int[] aw) + { + activeWeeks = aw; + } + + /** Disables a week activation */ + public void disableWeek (int num) + { + activeWeeks[num] = 0; + } + + /** Returns the module active weeks. */ + public int[] activeWeeks () + { + return (activeWeeks); + } + + /** Returns the module progression. */ + public String[] progression () + { + String[] prog = new String[activ.length]; + for (int i = 0; i < prog.length; i++) prog[i] = TYPES[activ[i]]; + return (prog); + } + + /** Returns the teachers for each kind of activities. */ + public int[] teachers (int act) + { + if (act == ACT_TP) return (affectTP); + else if (act == ACT_TD) return (affectTD); + else return (affectCM); + } + + /** Returns the specific teachers for all activities. */ + public int[][] specTeachers () + { + int[][] st = new int[activ.length][]; + for (int i = 0; i < activ.length; i++) + { + int[] aff = affectCM; + if (activ[i] >= ACT_TP) aff = affectTP; + else if (activ[i] >= ACT_TD) aff = affectTD; + + boolean ok = true; + if (affect[i].length != aff.length) ok = false; + else + { + for (int j = 0; ok && j < affect[i].length; j++) + if (affect[i][j] != aff[j]) ok = false; + } + st[i] = (ok ? new int[0] : affect[i]); + } + return (st); + } + + /** Returns the set-on-left activities. */ + public boolean[] onLeftActivities () + { + return (onLeft); + } + + /** Returns the set-on-right activities. */ + public boolean[] onRightActivities () + { + return (onRight); + } + + /** Returns the count of activities. */ + public int activityCount () + { + return (activ == null ? 0 : activ.length); + } + + /** Returns the week and activity at given position. */ + public int select (int position) + { + return (sched.select (position)); + } + + /** Converts the module in a string */ + public String toString () + { + String s = name + " " + activ.length; + for (int i = 0; i < activ.length; i++) + s += " " + TYPES[activ[i]]; + return s; + } + + /** Exchanges the activities at given slots */ + public void exchange (int a1, int a2) + { + int n1 = sched.identify (a1); + int n2 = sched.identify (a2); + System.out.println (n1 + " <--> " + n2); + int val = activ[n1]; + activ[n1] = activ[n2]; + activ[n2] = val; + int[] aff = affect[n1]; + affect[n1] = affect[n2]; + affect[n2] = aff; + boolean on = onLeft[n1]; + onLeft[n1] = onLeft[n2]; + onLeft[n2] = on; + on = onRight[n1]; + onRight[n1] = onRight[n2]; + onRight[n2] = on; + } +} diff --git a/saeshukan-main/shukan/ShukanQueue.java b/saeshukan-main/shukan/ShukanQueue.java new file mode 100644 index 0000000000000000000000000000000000000000..7fb44d5eb317e1501cfadb94989ae804994c5920 --- /dev/null +++ b/saeshukan-main/shukan/ShukanQueue.java @@ -0,0 +1,107 @@ +package shukan; + + +/** Bidirectional queues of activities */ +public class ShukanQueue +{ + /** Queue of activities */ + private int[] queue; + /** Head position in the queue */ + private int head = 0; + /** Number of actvities in the queue */ + private int length = 0; + + + /** Creates a queue of given capacity */ + public ShukanQueue (int capa) + { + queue = new int[capa]; + } + + /** Neutralizes the queue */ + public void kill () + { + queue = null; + head = 0; + length = 0; + } + + /** Pushes a token at the right of the queue */ + public void pushRight (int token) + { + if (queue != null && length < queue.length) + queue[(head + length++) % queue.length] = token; + } + + /** Pushes a token at the left of the queue */ + public void pushLeft (int token) + { + if (queue != null && length < queue.length) + { + if (--head < 0) head = queue.length - 1; + queue[head] = token; + length++; + } + } + + /** Returns the contents of the queue */ + public int[] contents () + { + int[] contents = new int[length]; + for (int i = 0; i < length; i++) + contents[i] = queue[(head + i) % queue.length]; + return (contents); + } + + /** Returns the length of the queue */ + public int length () + { + return (length); + } + + /** Clears the queue */ + public void clear () + { + length = 0; + } + + /** Returns whether the queue is neutralized */ + public boolean killed () + { + return (queue == null); + } + + /** Returns whether the file is empty */ + public boolean empty () + { + return (queue == null || length == 0); + } + + /** Returns whether the file is full */ + public boolean full () + { + return (queue == null || length == queue.length); + } + + /** Withdraws and returns the head of the file */ + public int popLeft () + { + int token = -1; + if (length > 0 && length <= queue.length) + { + token = queue[head++]; + if (head == queue.length) head = 0; + length --; + } + return (token); + } + + /** Withdraws and returns the queue of the file */ + public int popRight () + { + int token = -1; + if (length > 0 && length <= queue.length) + token = queue[(head + --length) % queue.length]; + return (token); + } +} diff --git a/saeshukan-main/shukan/ShukanSchedule.java b/saeshukan-main/shukan/ShukanSchedule.java new file mode 100644 index 0000000000000000000000000000000000000000..6c94de62117f5b036e4f07deb1524754cc9465e7 --- /dev/null +++ b/saeshukan-main/shukan/ShukanSchedule.java @@ -0,0 +1,178 @@ +package shukan; + + +/** List of week queues of activities. + It features a queue for each week. */ +public class ShukanSchedule +{ + /** Bin capacity */ + private int capacity = 0; + /** Sequences of bins */ + private ShukanQueue[] binSet = null; + + + /** Create a list of queues */ + public ShukanSchedule (int n, int capa) + { + capacity = capa; + binSet = new ShukanQueue[n]; + for (int i = 0; i < n; i++) binSet[i] = new ShukanQueue (capa); + } + + /** Kill the nth queue */ + public void kill (int n) + { + binSet[n].kill (); + } + + /** Return the contents of the nth queue */ + public int[] contents (int n) + { + return (binSet[n].contents ()); + } + + /** Return the contents of the sluice */ + public int[] contents () + { + int[] sched = new int[100]; + int act = 0; + for (int i = 0; i < binSet.length; i++) + { + int tl = binSet[i].length (); + for (int j = 0; j < tl; j++) + { + if (act == sched.length) + { + int[] tmp = new int[sched.length + 100]; + for (int k = 0; k < sched.length; k++) tmp[k] = sched[k]; + sched = tmp; + } + sched[act++] = i; + } + } + int[] tmp = new int[act]; + for (int i = 0; i < act; i++) tmp[i] = sched[i]; + return (tmp); + } + + /** Clear the queues */ + public void clear () + { + for (int i = 0; i < binSet.length; i++) binSet[i].clear (); + } + + /** Add a token to the nth queue */ + public void add (int n, int token) + { + binSet[n].pushRight (token); + } + + /** Push a token leftwards the nth queue */ + public int left (int n) + { + if (binSet[n].empty ()) return (n); + int left = n - 1; + while (left >= 0 && binSet[left].killed ()) left--; + if (left >= 0 && ! binSet[left].full ()) + { + binSet[left].pushRight (binSet[n].popLeft ()); + return (left); + } + return (n); + } + + /** Push a token rightwards the nth queue */ + public int right (int n) + { + if (binSet[n].empty ()) return (n); + int right = n + 1; + while (right < binSet.length && binSet[right].killed ()) right++; + if (right < binSet.length && ! binSet[right].full ()) + { + binSet[right].pushLeft (binSet[n].popRight ()); + return (right); + } + return (n); + } + + /** Push tokens leftwards inside the queue */ + public int left (int n1, int n2) + { + while (binSet[n1].killed () && n1 < n2) n1 ++; + while (binSet[n2].killed () && n2 > n1) n2 --; + for (int i = n1; i < n2; i ++) left (i + 1); + return (n1); + } + + /** Push tokens rightwards inside the queue */ + public int right (int n1, int n2) + { + while (binSet[n1].killed () && n1 < n2) n1 ++; + while (binSet[n2].killed () && n2 > n1) n2 --; + for (int i = n2; i > n1; i --) right (i - 1); + return (n1); + } + + /** Returns the week and activity at given position. */ + public int select (int pos) + { + int selBin = pos / capacity; + int selAct = pos % capacity; + if (binSet[selBin].length () <= selAct) + { + boolean looking = true; + // Looking frontwards + int sbin = selBin; + while (looking && sbin >= 0) + { + if (binSet[sbin].length () > 0) + { + looking = false; + selBin = sbin; + selAct = binSet[sbin].length () - 1; + } + sbin --; + } + if (looking) + { + // Looking backwards + sbin = selBin + 1; + while (looking && sbin < binSet.length) + { + if (binSet[sbin].length () > 0) + { + looking = false; + selBin = sbin; + selAct = 0; + } + sbin ++; + } + } + if (looking) + { + selBin = sbin; + selAct = 0; + return (-1); + } + } + return (selBin * capacity + selAct); + } + + /** Returns the activity number of the given slot (week + activity) */ + public int identify (int slot) + { + int activ = 0; + for (int i = 0; i < binSet.length; i++) + if (slot < capacity) + { + activ += slot; + i = binSet.length; + } + else + { + activ += binSet[i].length (); + slot -= capacity; + } + return (activ); + } +} diff --git a/saeshukan-main/shukan/ShukanSemester.java b/saeshukan-main/shukan/ShukanSemester.java new file mode 100644 index 0000000000000000000000000000000000000000..0493da81370818f76c3ee267047a580b6ad21dc1 --- /dev/null +++ b/saeshukan-main/shukan/ShukanSemester.java @@ -0,0 +1,163 @@ +package shukan; +import java.util.Calendar; +import java.text.DecimalFormat; + + +/** Semester arrangement */ +public class ShukanSemester +{ + /** Month names */ + private static final String[] MONTH_FULL_NAMES = { + "janvier", "fevrier", "mars", "avril", "mai", "juin", + "juillet", "aout", "septembre", "octobre", "novembre", "decembre"}; + /** Month short names */ + private static final String[] MONTH_ACRONYMS = { + "janv.", "fev.", "mars", "avr.", "mai", "juin", + "juil.", "aout", "sept.", "oct.", "nov.", "dec."}; + + /** Year of cursus start */ + private int startYear; + /** Names of each week */ + private String[] weekNames; + /** Maximal duration of longest week (in hours) */ + private int standardWeekDuration; + /** Maximal duration of each week (in hours) */ + private int[] weekDurations; + /** Number of first cursus week */ + private int firstWeek; + /** Number of the last week in the cursus year (could be inferred) */ + private int lastWeekOfYear; + + + /** Creates a semester from a directory name */ + public ShukanSemester (int year, int first, int length, int duration) + { + startYear = year; + Calendar cal = Calendar.getInstance (); + cal.set (Calendar.YEAR, year); + lastWeekOfYear = cal.getActualMaximum (Calendar.WEEK_OF_YEAR); + firstWeek = first; + + weekNames = new String[length]; + standardWeekDuration = duration; + weekDurations = new int[length]; + int weekNo = first; + DecimalFormat df = new DecimalFormat ("00"); + for (int i = 0; i < length; i++) + { + cal.set (Calendar.WEEK_OF_YEAR, weekNo); + cal.set (Calendar.DAY_OF_WEEK, 0); + weekNames[i] = df.format (cal.get (Calendar.DAY_OF_MONTH)) + + " " + MONTH_ACRONYMS[cal.get (Calendar.MONTH)]; + weekDurations[i] = duration; + if (++weekNo > lastWeekOfYear) weekNo = 1; + } + } + + /** Sets a week duration */ + public boolean setDuration (int week, int duration) + { + if (week > lastWeekOfYear) return false; + week -= firstWeek; + if (week < 0) week += lastWeekOfYear; + if (week >= weekDurations.length) return false; + weekDurations[week] = duration; + return true; + } + + /** Returns the number of weeks */ + public int size () + { + return (weekDurations.length); + } + + /** Returns the standard week duration */ + public int standardWeekDuration () + { + return (standardWeekDuration); + } + + /** Returns the week durations */ + public int[] weekDurations () + { + return (weekDurations); + } + + /** Returns a copy of the week durations */ + public int[] copyWeekDurations () + { + int[] wd = new int[weekDurations.length]; + for (int i = 0; i < weekDurations.length; i++) wd[i] = weekDurations[i]; + return (wd); + } + + /** Returns the semesterLength */ + public int length () + { + return (weekDurations.length); + } + + /** Returns the week numbers */ + public int[] weekNumbers () + { + int[] nb = new int[weekDurations.length]; + int num = firstWeek; + for (int i = 0; i < nb.length; i++) + { + nb[i] = num++; + if (num > lastWeekOfYear) num = 1; + } + return (nb); + } + + /** Returns a week number */ + public int weekNumber (int weekIndex) + { + int wk = firstWeek + weekIndex; + if (wk > lastWeekOfYear) wk -= lastWeekOfYear; + return (wk); + } + + /** Returns the start week number */ + public int startWeekNumber () + { + return (firstWeek); + } + + /** Returns the last week of year number */ + public int lastWeekOfYearNumber () + { + return (lastWeekOfYear); + } + + /** Returns the index of a year week */ + public int weekIndex (int week) + { + if (week < firstWeek) return (week + lastWeekOfYear - firstWeek); + else return (week - firstWeek); + } + + /** Converts semester to string */ + public String toString () + { + String s = new String (); + for (int i = 0; i < weekNames.length; i++) s += weekNames[i] + "\n"; + return s; + } + + /** Returns the present date in text format */ + public String date () + { + Calendar kal = Calendar.getInstance (); + DecimalFormat format = new DecimalFormat ("00"); + return ((kal.get (Calendar.YEAR) % 100) + + format.format (kal.get (Calendar.MONTH) + 1) + + format.format (kal.get (Calendar.DAY_OF_MONTH))); + } + + /** Returns the year of cursus start */ + public int yearOfFirstWeek () + { + return (startYear); + } +} diff --git a/saeshukan-main/shukan/ShukanTex.java b/saeshukan-main/shukan/ShukanTex.java new file mode 100644 index 0000000000000000000000000000000000000000..f3b20d55e0ca253bd141de98fa3fa11dee11a466 --- /dev/null +++ b/saeshukan-main/shukan/ShukanTex.java @@ -0,0 +1,373 @@ +package shukan; +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.Calendar; + + + +/** LaTeX file editor for Shukan */ +public class ShukanTex +{ + /** Shukan data base */ + private ShukanData data; + /** Year suffix name */ + private String dateSuffix; + /** Year prefix name */ + private String dateName; + + /** File suffix */ + private final static String SUFFIX = ".tex"; + /** Load directory prefix */ + private final static String LATEX_DIR_PREFIX = "loads"; + /** Teacher load file prefix */ + private final static String LOAD_FILE_NAME = "charges"; + /** Page width */ + private final static int PICT_WIDTH = 180; + /** Page height */ + private final static int PICT_HEIGHT = 270; + /** Page top margin */ + private final static int TOP_MARGIN = -30; + /** Page left margin */ + private final static int LEFT_MARGIN = -20; + + /** Month numbers */ + private static final String[] MONTH_SHORT = { + "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"}; + /** Month french names */ + private static final String[] MONTH_NAME = { + "janvier", "f\\'evrier", "mars", "avril", "mai", "juin", + "juillet", "ao\\^ut", "septembre", "octobre", "novembre", "d\\'ecembre"}; + + + /** Creates a LaTeX file editor for semester data */ + public ShukanTex (ShukanData data) + { + this.data = data; + + // Prepares the date suffix and full name + Calendar kal = Calendar.getInstance (); + int jour = kal.get (Calendar.DAY_OF_MONTH); + dateSuffix = (kal.get (Calendar.YEAR) - 2000) + + MONTH_SHORT[kal.get (Calendar.MONTH)] + + (jour < 10 ? "0" + jour : "" + jour); + dateName = kal.get (Calendar.DAY_OF_MONTH) + + " " + MONTH_NAME[kal.get (Calendar.MONTH)] + " " + + kal.get (Calendar.YEAR); + + // Starts the edition process + try + { + int n = data.countOfCursus (); + for (int i = 0; i < n; i++) + { + data.toggleCursus (true); + write (); + } + writeTeacherLoad (); + } + catch (Exception ex) + { + System.out.println ("Texing soucy"); + } + } + + /** Edits the semester */ + public void write () throws IOException + { + int[] weekNo = data.weekNumbers (); + int nbWeek = weekNo.length; + double weekHeight = PICT_HEIGHT / (nbWeek + 2.); + int nbMod = data.numberOfModules (); + double modWidth = PICT_WIDTH / (nbMod + 1.); + + DecimalFormat df = new DecimalFormat ("0.0"); + DecimalFormatSymbols dfs = new DecimalFormatSymbols (); + dfs.setDecimalSeparator ('.'); + df.setDecimalFormatSymbols (dfs); + + // Opens the LaTeX file + File texDir = new File (LATEX_DIR_PREFIX + "_" + dateSuffix); + if (! texDir.exists ()) texDir.mkdir (); + File texFile = new File (texDir, + data.cursusName () + "_" + dateSuffix + SUFFIX); + if (texFile.exists ()) texFile.delete (); + else texFile.createNewFile (); + PrintWriter tex = new PrintWriter (texFile); + + // Edits the preamble */ + tex.println ("\\documentclass[francais,a4,11pt]{article}"); + tex.println ("\\usepackage[francais]{babel}"); + tex.println ("\\usepackage{graphics}"); + tex.println ("\\usepackage{color}"); + tex.println ("\\setlength{\\unitlength}{1.0mm}"); + tex.println ("\\textheight " + df.format (PICT_HEIGHT / 10.) + "cm"); + tex.println ("\\textwidth " + df.format (PICT_WIDTH / 10.) + "cm"); + tex.println ("\\topmargin " + df.format (TOP_MARGIN / 10.) + "cm"); + tex.println ("\\headheight 0.0cm"); + tex.println ("\\headsep 0.0cm"); + tex.println ("\\oddsidemargin " + df.format (LEFT_MARGIN / 10.) + "cm"); + tex.println ("\\evensidemargin " + df.format (LEFT_MARGIN / 10.) + "cm"); + tex.println ("\\pagestyle{empty}"); + tex.println ("\\begin{document}\n"); + tex.println ("\\begin{picture}(" + + PICT_WIDTH + "," + PICT_HEIGHT + ")(0,0)"); + tex.println ("\\put(0," + df.format (weekHeight * (nbWeek + 1)) + + "){\\makebox(" + PICT_WIDTH + "," + df.format (weekHeight) + + ")[l]{\\LARGE \\bf Progressions " + data.scolarYear () + "/" + + (data.scolarYear () + 1) + " -- " + + data.cursusName () + "}}"); + tex.println ("\\put(0," + df.format (weekHeight * (nbWeek + 1)) + + "){\\makebox(" + PICT_WIDTH + "," + df.format (weekHeight) + + ")[r]{\\LARGE \\bf " + dateName + "}}"); + tex.println ("\\multiput(0,0)(0," + df.format (weekHeight) + + "){" + (nbWeek + 1) + "}{\\line(1,0){" + + df.format(modWidth * (nbMod + 1)) + "}}"); + tex.println ("\\multiput(" + df.format (modWidth / 2) + ",0)(" + + df.format (modWidth) + ",0){" + (nbMod + 1) + + "}{\\line(0,1){" + df.format (weekHeight * (nbWeek + 1)) + + "}}"); + + // Edits the week numbers */ + for (int i = 0; i < nbWeek; i++) + { + tex.println ("\\put(0," + df.format (weekHeight * i) + "){\\makebox(" + + df.format (modWidth / 2) + "," + df.format (weekHeight) + + "){S" + weekNo[nbWeek - 1 - i] + "}}"); + } + + // Edits the module names */ + String[] modNames = data.moduleNames (); + for (int i = 0; i < nbMod; i++) + { + tex.println ("\\put(" + df.format (modWidth * (i + 0.5)) + "," + + df.format (weekHeight * (nbWeek + 0.5)) + "){\\makebox(" + + df.format (modWidth) + "," + df.format (weekHeight / 2) + + "){\\scriptsize \\bf " + modNames[i] + "}}"); + + String st = data.subtitle (i); + if (st != null) + tex.println ("\\put(" + df.format (modWidth * (i + 0.5)) + "," + + df.format (weekHeight * (nbWeek)) + "){\\makebox(" + + df.format (modWidth) + "," + df.format (weekHeight / 2) + + "){\\tiny \\bf " + st + "}}"); + } + + // Edits the activities */ + for (int i = 0; i < nbMod; i++) + { + int[] act = data.activities (i); + boolean[] onLeft = data.onLeft (i); + boolean[] onRight = data.onRight (i); + double lx = modWidth * (i + 1); + int numact = 0; + for (int j = 0; j < nbWeek; j++) + { + int[] sched = data.scheduleInWeek (i, j); + for (int k = 0; k < sched.length; k++) + { + double x = lx; + if (onLeft[numact]) x -= modWidth / 4.; + else if (onRight[numact]) x += modWidth / 4.; + numact++; + double y = weekHeight * (nbWeek - j - (1.5 + 2 * k) / 10.); + switch (act[sched[k]]) + { + case ShukanModule.ACT_CM : + tex.println ("\\put(" + df.format (x) + "," + df.format (y) + + "){\\circle*{1}}"); + break; + case ShukanModule.ACT_EV2 : + tex.println ("\\put(" + df.format (x-1) + "," + df.format (y-1) + + "){\\makebox(2,2){$\\ast\\ast$}}"); + break; + case ShukanModule.ACT_EV1 : + tex.println ("\\put(" + df.format (x-1) + "," + df.format (y-1) + + "){\\makebox(2,2){$\\ast$}}"); + break; + case ShukanModule.ACT_TD : + tex.println ("\\put(" + df.format (x) + "," + df.format (y) + + "){\\circle{1}}"); + break; + case ShukanModule.ACT_TM : + tex.println ("\\put(" + df.format (x) + "," + df.format (y) + + "){\\circle{1}}"); + tex.println ("\\put(" + df.format (x-1) + "," + df.format (y) + + "){\\line(1,0){2}}"); + break; + case ShukanModule.ACT_TV : + tex.println ("\\put(" + df.format (x) + "," + df.format (y) + + "){\\circle{1}}"); + tex.println ("\\put(" + df.format (x-1) + "," + df.format (y-1) + + "){\\makebox(2,2){X}}"); + break; + case ShukanModule.ACT_SD : + tex.println ("\\put(" + df.format (x) + "," + df.format (y) + + "){\\circle{1}}"); + tex.println ("\\put(" + df.format (x+1) + "," + df.format (y-1) + + "){s}"); + break; + case ShukanModule.ACT_SM : + tex.println ("\\put(" + df.format (x) + "," + df.format (y) + + "){\\circle{1}}"); + tex.println ("\\put(" + df.format (x-1) + "," + df.format (y) + + "){\\line(1,0){2}}"); + tex.println ("\\put(" + df.format (x+1) + "," + df.format (y-1) + + "){s}"); + break; + case ShukanModule.ACT_TP4 : + tex.println ("\\put(" + df.format (x-1) + "," + + df.format (y-0.5) + "){\\framebox(1,1)}"); + tex.println ("\\put(" + df.format (x+1) + "," + + df.format (y-0.5) + "){\\framebox(1,1)}"); + break; + case ShukanModule.ACT_TP2 : + tex.println ("\\put(" + df.format (x-0.5) + "," + + df.format (y-0.5) + "){\\framebox(1,1)}"); + break; + case ShukanModule.ACT_TQ2 : + tex.println ("\\put(" + df.format (x-0.5) + "," + + df.format (y-0.5) + "){\\framebox(1,1){+}}"); + break; + case ShukanModule.ACT_SP : + tex.println ("\\put(" + df.format (x-0.5) + "," + + df.format (y-0.5) + "){\\framebox(1,1)}"); + tex.println ("\\put(" + df.format (x+1) + "," + df.format (y-1) + + "){s}"); + break; + case ShukanModule.ACT_SQ : + tex.println ("\\put(" + df.format (x-0.5) + "," + + df.format (y-0.5) + "){\\framebox(1,1){+}}"); + tex.println ("\\put(" + df.format (x+1) + "," + df.format (y-1) + + "){s}"); + break; + } + } + } + } + + // Edits the week loads */ + int[] durations = data.weekDurations (); + for (int i = 0; i < nbWeek; i++) + { + if (durations[nbWeek - 1 - i] != 0) + tex.println ("\\put(" + df.format (modWidth * (nbMod + 0.5)) + "," + + df.format (weekHeight * i) + "){\\makebox(" + + df.format (modWidth / 2) + "," + df.format (weekHeight) + + "){" + data.studentLoad (nbWeek - 1 - i) + "}}"); + } + + // Terminates the file edition + tex.println ("\\end{picture}"); + tex.println ("\\end{document}"); + tex.close (); + } + + /** Edits teacher load files */ + public void writeTeacherLoad () throws IOException + { + int[] weekNo = data.weekNumbers (); + int nbWeek = weekNo.length; + String[] teach = data.teachers (); + + // Opens the teachers directory and file + File teachDir = new File (LATEX_DIR_PREFIX + "_" + dateSuffix); + if (! teachDir.exists ()) teachDir.mkdir (); + File teacherFile = new File (teachDir, + LOAD_FILE_NAME + dateSuffix + SUFFIX); + if (teacherFile.exists ()) teacherFile.delete (); + else teacherFile.createNewFile (); + PrintWriter tex = new PrintWriter (teacherFile); + + // Edits the preamble */ + tex.println ("\\documentclass[francais,a4paper,landscape,11pt]{article}"); + tex.println ("\\usepackage[francais]{babel}"); + tex.println ("\\usepackage{graphics}"); + tex.println ("\\usepackage{color}"); + tex.println ("\\setlength{\\unitlength}{1.0mm}"); + tex.println ("\\textheight 15.0cm"); + tex.println ("\\textwidth 24.0cm"); + tex.println ("\\topmargin 0.0cm"); + tex.println ("\\headheight 0.0cm"); + tex.println ("\\headsep 0.0cm"); + tex.println ("\\oddsidemargin -1.0cm"); + tex.println ("\\evensidemargin -1.0cm"); + tex.println ("\\pagestyle{empty}"); + tex.println ("\\begin{document}\n"); + tex.println ("\\begin{center}"); + + tex.println ("{\\LARGE \\bf Charges hebdomadaires " + + data.scolarYear () + "/" + (data.scolarYear () + 1) + + "}"); + tex.println ("\\begin{picture}(20,1) \\end{picture}"); + tex.println ("{\\large \\bf (" + dateName + ")}\\\\"); + tex.println ("\\begin{picture}(4,6)(0,0) \\end{picture} \\\\"); + + // Write the week bar + tex.print ("\\begin{tabular}{|l||"); + for (int j = 0; j < nbWeek; j++) tex.print ("r|"); + tex.print ("}\n\\hline\n"); + for (int j = 0; j < nbWeek; j++) tex.print (" & S" + weekNo[j]); + tex.println (" \\\\\n\\hline \\hline"); + + for (int i = 0; i < teach.length; i++) + { + tex.print (data.teacherName (i)); + for (int j = 0; j < nbWeek; j++) + tex.print (" & " + data.teacherLoad (i, j)); + tex.println ("\\\\ \\hline"); + } + tex.println ("\\end{tabular} \\\\"); + tex.println ("\\end{center}"); + + tex.println ("{\\bf L\\'egende des grilles de progressions :} \\\\"); + tex.println ("\\begin{tabular}{llcllcll}"); + + tex.print ("\\begin{picture}(4,4)(0,0) "); + tex.print ("\\put(2,1){\\circle*{1}} "); + tex.println ("\\end{picture}"); + tex.println ("& CM & \\begin{picture}(10,1) \\end{picture} "); + + tex.print ("& \\begin{picture}(4,4)(0,0) "); + tex.print ("\\put(2,1){\\circle{1}} "); + tex.println ("\\end{picture}"); + tex.println ("& TD en salle de cours "); + tex.println ("& \\begin{picture}(10,1) \\end{picture} "); + + tex.print ("& \\begin{picture}(4,4)(0,0) "); + tex.print ("\\put(1.5,1){\\framebox(1,1)} "); + tex.println ("\\end{picture}"); + tex.println ("& TP en salle machine\\\\"); + + tex.print ("\\begin{picture}(4,4)(0,0) "); + tex.print ("\\put(1,0){\\makebox(2,2){$\\ast$}} "); + tex.println ("\\end{picture}"); + tex.println ("& Evaluation d'une heure "); + + tex.print ("& & \\begin{picture}(4,4)(0,0) "); + tex.print ("\\put(2,1){\\circle{1}} "); + tex.print ("\\put(1,1){\\line(1,0){2}} "); + tex.println ("\\end{picture}"); + tex.println ("& TD en salle machine (TM) "); + + tex.print ("& & \\begin{picture}(4,4)(0,0) "); + tex.print ("\\put(1.5,1){\\framebox(1,1){+}} "); + tex.println ("\\end{picture}"); + tex.println ("& TP en salle de cours\\\\"); + + tex.print ("\\begin{picture}(4,4)(0,0) "); + tex.print ("\\put(1,0){\\makebox(2,2){$\\ast\\ast$}} "); + tex.println ("\\end{picture}"); + tex.println ("& Evaluation de deux heures "); + + tex.print ("& & .s & SAe "); + + tex.print ("& & .s & SAe"); + + tex.println ("\\end{tabular}"); + tex.println ("\\end{document}"); + tex.close (); + } +} diff --git a/saeshukan-main/shukan/ShukanView.java b/saeshukan-main/shukan/ShukanView.java new file mode 100644 index 0000000000000000000000000000000000000000..66e87c64b2c47a64648b3192a437e6813fdbd873 --- /dev/null +++ b/saeshukan-main/shukan/ShukanView.java @@ -0,0 +1,379 @@ +package shukan; +import javax.swing.JPanel; +import java.awt.Color; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; + + +/** Graphical view for Shukan planner. + */ +public class ShukanView extends JPanel +{ + /** Version number */ + public static final long serialVersionUID = 2L; + + /** Font type */ + //private final int FONT = GLUT.BITMAP_HELVETICA_12; + + /** Max window width */ + private final int MAX_WIDTH = 1610; + /** Max window height */ + private final int MAX_HEIGHT = 960; + /** Security margin at the window border for other applications */ + private final int SECURITY_MARGIN = 70; + + /** Maximal height of a text line */ + private final int TEXT_MAX_HEIGHT = 15; + /** Minimal height of a text line */ + private final int TEXT_MIN_HEIGHT = 10; + /** Standard height of a text line */ + private final int STD_TEXT_HEIGHT = 13; + + /** Standard week column width */ + private final static int STD_WEEK_WIDTH = 30; + /** Standard activity symbol width */ + private final static int STD_ACTIV_WIDTH = 6; + /** Standard number of modules */ + private final static int STD_MODULES_NUMBER = 14; + /** Standard number of weeks */ + private final static int STD_WEEKS_NUMBER = 20; + + /** Standard application width */ + private final static int STD_APPLI_WIDTH = + STD_WEEK_WIDTH * (STD_WEEKS_NUMBER + 2); + /** Standard application height */ + private final int STD_APPLI_HEIGHT = + STD_TEXT_HEIGHT * 3 * (STD_MODULES_NUMBER + 1); + + /** Week column actual width */ + private int weekWidth = STD_WEEK_WIDTH; + /** Standard activity symbol actual width */ + private int activWidth = STD_ACTIV_WIDTH; + /** Number of weeks to display */ + private int nbWeeks = STD_WEEKS_NUMBER; + /** Number of modules to display */ + private int nbModules = STD_MODULES_NUMBER; + /** Height of a text line */ + private int textHeight = STD_TEXT_HEIGHT; + /** Application actual width */ + private int appliWidth = STD_APPLI_WIDTH; + /** Application actual height */ + private int appliHeight = STD_APPLI_HEIGHT; + + /** Height of the font characters */ + private int fontHeight = 10; + /** Font metrics features */ + private FontMetrics fontMetrics; + + + /** Background color */ + private final Color BACK_COLOR = Color.WHITE; + /** Grid color */ + private final Color GRID_COLOR = Color.BLACK; + /** Free module weeks color */ + private final Color HOLLY_COLOR = new Color (0.3f, 0.7f, 0.7f); + /** Inactive parts of weeks color */ + private final Color INACTIVE_COLOR = new Color (0.5f, 0.5f, 0.5f); + /** Frame borders color */ + private final Color ACTIVE_COLOR = new Color (0.6f, 0.6f, 0.9f); + /** Selected activity color */ + private final Color REACTIVE_COLOR = new Color (0.7f, 0.9f, 0.5f); + /** Frame borders color */ + private final Color FRAME_COLOR = Color.BLACK; + /** Text color */ + private final Color TEXT_COLOR = Color.BLACK; + /** Selected text color */ + private final Color SELECTED_TEXT_COLOR = Color.WHITE; + /** Unselectable text color */ + private final Color UNSEL_TEXT_COLOR = new Color (0.6f, 0.6f, 0.6f); + /** Selected slot central color */ + private final Color SELECTION_COLOR = new Color (0.6f, 0.6f, 0.6f); + + /** File manager */ + private ShukanIO myIO = null; + /** Displayed data */ + private ShukanData data = null; + + + + /** Creates the shukan viewer. + */ + public ShukanView (ShukanData data, ShukanIO myIO) + { + this.data = data; + this.myIO = myIO; + } + + /** Saves Shukan data in a file. + */ + public void saveData () + { + myIO.save (); + } + + /** Sets the initial application size. + */ + public void restrictSize (int width, int height) + { + adaptSize (width, height); + } + + /** Returns the display area width. + */ + public int displayWidth () + { + return (appliWidth); + } + + /** Returns the display area height. + */ + public int displayHeight () + { + return (appliHeight); + } + + /** Draws Shukan view. + */ + public void paintComponent (Graphics g) + { + int w = getWidth (); + int h = getHeight (); + adaptSize (w, h); + + Graphics2D g2 = (Graphics2D) g.create (); + g2.setFont (new Font ("Helvetica", 0, 12)); + fontMetrics = g2.getFontMetrics (); + fontHeight = fontMetrics.getAscent (); + + g2.setColor (BACK_COLOR); + drawBox (g2, appliWidth - w, appliHeight - h, w, h); + displayCalendar (g2); + } + + + /** Detects a zone from window coords. + */ + public boolean select (int x, int y, boolean zone) + { + // Out of the active part of the window + if (y < textHeight || y > appliHeight - 2 * textHeight) return (false); + + // Module detection + y -= textHeight; + int selMod = y / (3 * textHeight); + + // Module selection + if (x < 2 * weekWidth) return (data.activate (selMod)); + // Activity selection + x -= 2 * weekWidth; + return (data.activate (selMod, (x / weekWidth), zone)); + } + + + /** Detects an activity from window coords. + */ + public boolean selectActivity (int x, int y, boolean zone) + { + // Out of the active part of the window + if (y < textHeight || y > appliHeight - 2 * textHeight) return (false); + + // Module detection + y -= textHeight; + int selMod = y / (3 * textHeight); + + // Module selection + if (x < 2 * weekWidth) return (data.activateAct (selMod)); + // Activity selection + x -= 2 * weekWidth; + int selw = x / weekWidth; + int seln = (x - (selw * weekWidth)) / activWidth; + return (data.select (selMod, + selw * ShukanModule.MAX_ACTIV_PER_WEEK + seln, + zone)); + } + + + /** Updates the application size. + */ + private void adaptSize (int width, int height) + { + if (data != null) + { + nbWeeks = data.semesterSize (); + nbModules = data.numberOfModules (); + + // Height + textHeight = (int) (height / (3.0f * (nbModules + 1))); + appliHeight = textHeight * 3 * (nbModules + 1); + + // Width + activWidth = width / (ShukanModule.MAX_ACTIV_PER_WEEK * (nbWeeks + 2)); + weekWidth = activWidth * ShukanModule.MAX_ACTIV_PER_WEEK; + appliWidth = weekWidth * (nbWeeks + 2); + } + else + { + appliWidth = STD_APPLI_WIDTH; + appliHeight = STD_APPLI_HEIGHT; + } + } + + /** Displays the calendar grid background. + */ + private void displayCalendar (Graphics2D g2) + { + // Selection + int selMod = data.selectedModule (); + if (selMod != -1) + { + int selWeek = data.selectedWeek (); + if (selWeek != -1) + { + int selLength = data.selectedLength (); + g2.setColor (ACTIVE_COLOR); + int x = (selWeek + 2) * weekWidth; + int y = appliHeight - textHeight - (selMod + 1) * textHeight * 3; + drawBox (g2, x, y, weekWidth * selLength, textHeight * 3); + } + else + { + int sa = data.selectedActivity (); + if (sa != -1) + { + g2.setColor (REACTIVE_COLOR); + drawBox (g2, sa * activWidth + 2 * weekWidth, + appliHeight - textHeight - (selMod + 1) * textHeight * 3, + activWidth * data.selectedLength (), textHeight * 3); + } + } + } + + // Modules holly periods + int[] durations = data.weekDurations (); + g2.setColor (HOLLY_COLOR); + for (int j = 0; j < nbModules; j++) + { + int[] aw = data.activeWeeks (j); + for (int i = 0; i < nbWeeks; i++) + if (aw[i] == 0 && durations[i] != 0) + { + drawBox (g2, (2 + i) * weekWidth, + appliHeight + (2 - 3 * (j + 2)) * textHeight, + weekWidth, 3 * textHeight); + } + } + + // Holydays + int wd = data.standardWeekDuration (); + g2.setColor (INACTIVE_COLOR); + for (int i = 0; i < nbWeeks; i++) + if (durations[i] != wd) + { + int start = (int) ((durations[i] * weekWidth) / (float) wd); + drawBox (g2, (2 + i) * weekWidth + start, 2 * textHeight, + weekWidth - start, appliHeight - 3 * textHeight); + } + + g2.setColor (GRID_COLOR); + // Columns + for (int i = 2; i <= nbWeeks + 1; i++) + drawVLine (g2, i * weekWidth, 0, appliHeight); + // Lines + for (int i = 0; i <= nbModules ; i++) + drawHLine (g2, 0, (2 + 3 * i) * textHeight, appliWidth); + + // Texts : semester and load name + drawText (g2, 0, appliHeight - textHeight, + 2 * weekWidth, textHeight, data.cursusName ()); + drawText (g2, 0, textHeight, + 2 * weekWidth, textHeight, data.loadName ()); + // Texts : weeks + int[] weekNumbers = data.weekNumbers (); + for (int i = 0; i < nbWeeks; i++) + { + drawText (g2, (i + 2) * weekWidth, appliHeight - textHeight, + weekWidth, textHeight, "S" + weekNumbers[i]); + drawText (g2, (i + 2) * weekWidth, textHeight, + weekWidth, textHeight, "" + data.computeLoad (i)); + drawText (g2, (2 + i) * weekWidth, 0, + weekWidth, textHeight, "/" + durations[i]); + } + // Texts : modules + String[] modNames = data.moduleNames (); + for (int i = 0; i < nbModules; i++) + drawText (g2, 0, appliHeight - ((i + 1) * 3 + 1) * textHeight, + 2 * weekWidth, 3 * textHeight, modNames[i]); + // Texts : activities + for (int i = 0; i < nbModules; i++) + { + int[] act = data.activities (i); + boolean[] up = data.onLeft (i); + boolean[] down = data.onRight (i); + int numact = 0; + int y = appliHeight - ((i + 1) * 3 + 1) * textHeight; + for (int j = 0; j < nbWeeks; j++) + { + int[] sched = data.scheduleInWeek (i, j); + for (int k = 0; k < sched.length; k++) + { + int ly = y; + if (up[numact]) ly += textHeight * 2; + else if (! down[numact]) ly += textHeight; + numact++; + drawText (g2, (j + 2) * weekWidth + k * activWidth, ly, + activWidth, textHeight, + ShukanModule.DISPLAY[act[sched[k]]]); + } + } + } + } + + + /** Draws a horizontal line. + */ + private void drawHLine (Graphics2D g2, int x, int y, int l) + { + g2.drawLine (x, appliHeight - y, x + l, appliHeight - y); + } + + /** Draws a vertical line. + */ + private void drawVLine (Graphics2D g2, int x, int y, int l) + { + g2.drawLine (x, appliHeight - y, x, appliHeight - y - l); + } + + /** Draws a rectangular box. + */ + private void drawBox (Graphics2D g2, int posx, int posy, + int width, int height) + { + g2.fillRect (posx, appliHeight - posy - height, width, height); + } + + /** Draws a centered text in the given area. + */ + private void drawText (Graphics2D g2, float posx, float posy, + float width, float height, String text) + { + g2.drawString (text, + (int) (posx + (width - fontMetrics.stringWidth (text)) / 2), + appliHeight - (int) (posy + (height - fontHeight) / 2)); + } + + /** Draws a centered paragraph in the given area. + */ + private void drawText (Graphics2D g2, float posx, float posy, + float width, float height, String[] text) + { + if (text == null) return; + posy += (height + (text.length - 1) * fontHeight) / 2; + for (int i = 0; i < text.length; i ++) + { + drawText (g2, posx, posy, width, fontHeight, text[i]); + posy -= fontHeight; + } + } +} diff --git a/saeshukan-main/shukan/info.txt b/saeshukan-main/shukan/info.txt new file mode 100644 index 0000000000000000000000000000000000000000..ad85e40990ddea3ff722fe740f9a822b9a068a4b --- /dev/null +++ b/saeshukan-main/shukan/info.txt @@ -0,0 +1,5 @@ +Specification-Title: Shukan pre-planner +Specification-Version: 1.6 +Implementation-Title: shukan +Implementation-Version: build12 +Main-Class: shukan.Shukan