Skip to content

Commit 70c7eac

Browse files
committed
feat: sending email asking for constraints
1 parent 80777bb commit 70c7eac

File tree

8 files changed

+173
-18
lines changed

8 files changed

+173
-18
lines changed

graph/generated/generated.go

Lines changed: 124 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

graph/model/models_gen.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

graph/plan.graphqls

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ type SemesterConfig {
3030
goSlotsRaw: [[Int!]!]
3131
goSlots: [Slot!]!
3232
goDay0: Time!
33+
from: Time!
3334
fromFK07: Time!
35+
until: Time!
3436
emails: Emails!
3537
}
3638

plexams/email.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ func (p *Plexams) sendGeneratedExamMailToTeacher(to string, generatedExamMailDat
279279
bufText.Bytes(),
280280
bufHTML.Bytes(),
281281
attachments,
282+
false,
282283
)
283284
}
284285

@@ -357,6 +358,7 @@ func (p *Plexams) SendHandicapsMailToMainExamer(ctx context.Context, to []string
357358
bufText.Bytes(),
358359
bufHTML.Bytes(),
359360
nil,
361+
false,
360362
)
361363
}
362364

@@ -445,6 +447,7 @@ func (p *Plexams) SendHandicapsMailToStudentRoomAlone(ctx context.Context, to []
445447
bufText.Bytes(),
446448
bufHTML.Bytes(),
447449
nil,
450+
false,
448451
)
449452
}
450453

@@ -574,10 +577,11 @@ func (p *Plexams) SendHandicapsMailToStudentPlanned(ctx context.Context, to []st
574577
bufText.Bytes(),
575578
bufHTML.Bytes(),
576579
nil,
580+
true,
577581
)
578582
}
579583

580-
func (p *Plexams) sendMail(to []string, cc []string, subject string, text []byte, html []byte, attachments []*email.Attachment) error {
584+
func (p *Plexams) sendMail(to []string, cc []string, subject string, text []byte, html []byte, attachments []*email.Attachment, noreply bool) error {
581585
e := &email.Email{
582586
To: to,
583587
Cc: cc,
@@ -590,6 +594,10 @@ func (p *Plexams) sendMail(to []string, cc []string, subject string, text []byte
590594
Attachments: attachments,
591595
}
592596

597+
if noreply {
598+
e.ReplyTo = []string{"[email protected]"}
599+
}
600+
593601
err := e.SendWithStartTLS(fmt.Sprintf("%s:%d", p.email.server, p.email.port),
594602
smtp.PlainAuth("", p.email.username, p.email.password, p.email.server),
595603
&tls.Config{

plexams/email_constraints.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
type ConstraintsEmail struct {
1616
FromDate string
1717
FromFK07Date string
18-
ToDate string
18+
UntilDate string
1919
FeedbackDate string
2020
PlanerName string
2121
}
@@ -44,9 +44,9 @@ func (p *Plexams) SendEmailConstraints(ctx context.Context, run bool) error {
4444
feedbackDate := time.Now().Add(7 * 24 * time.Hour).Format("02.01.06")
4545

4646
contraintsEmailData := &ConstraintsEmail{
47-
FromDate: "",
48-
FromFK07Date: "",
49-
ToDate: "",
47+
FromDate: p.semesterConfig.From.Format("02.01.06"),
48+
FromFK07Date: p.semesterConfig.FromFk07.Format("02.01.06"),
49+
UntilDate: p.semesterConfig.Until.Format("02.01.06"),
5050
PlanerName: p.planer.Name,
5151
FeedbackDate: feedbackDate,
5252
}
@@ -93,5 +93,6 @@ func (p *Plexams) SendEmailConstraints(ctx context.Context, run bool) error {
9393
bufText.Bytes(),
9494
bufHTML.Bytes(),
9595
nil,
96+
true,
9697
)
9798
}

plexams/plexams.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,6 @@ func (p *Plexams) setSemesterConfig() {
216216
if len(plan) > 0 {
217217
// Days from ... until, no saturdays, no sundays
218218
from := viper.GetTime("semesterConfig.from").Local()
219-
// fromFK07 := viper.GetTime("semesterConfig.fromFK07").Local()
220219
until := viper.GetTime("semesterConfig.until").Local()
221220
days := make([]*model.ExamDay, 0)
222221
day := from
@@ -277,6 +276,11 @@ func (p *Plexams) setSemesterConfig() {
277276
Slots: slots,
278277
GoDay0: viper.GetTime("semesterConfig.goDay0").Local(),
279278
Emails: emails,
279+
// GoSlotsRaw: [][]int{},
280+
GoSlots: slots,
281+
From: from,
282+
FromFk07: viper.GetTime("semesterConfig.fromFK07").Local(),
283+
Until: until,
280284
}
281285
}
282286
p.setGoSlots()

tmpl/constraintsEmail.tmpl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,19 @@
22

33
Liebe Prüfende,
44

5-
wie in den letzten Semestern plane ich alle Prüfungen in denen der Eintrag
6-
in der Spalte Prüfungsform unter
7-
https://zpa.cs.hm.edu/public/exam_means_list/
8-
die Zeichenkette schriftlich enthält.
5+
als Prüfungsplaner der FK07 plane ich alle Prüfungen,
6+
in denen der Eintrag in der Spalte Prüfungsform unter https://zpa.cs.hm.edu/public/exam_means_list/
7+
die Zeichenkette schriftlich enthält, im Prüfungszeitraum vom {{ .FromFK07Date }} bis {{ .UntilDate }}.
8+
{{if ne .FromDate .FromFK07Date}}
9+
Bitte beachten Sie, dass die anderen, an unseren Studiengängen beteiligten, Fakultäten teilweise früher,
10+
ab dem {{ .FromDate }}, mit den Prüfungen beginnen.
11+
{{end}}
912

1013
Sollten Sie eine praktische Prüfung im Prüfungszeitraum durchführen wollen,
1114
teilen Sie mir das bitte mit. Die Prüfung werde ich dann auch planen.
1215

1316
Bitte teilen Sie mir Besonderheiten mit, die ich bei der Planung Ihrer Prüfung beachten muss.
14-
Öffnen Sie dazu ein JIRA-Ticket unter https://jira.cc.hm.edu/servicedesk/customer/portal/13
17+
Öffnen Sie dazu ein JIRA-Ticket unter https://jira.cc.hm.edu/servicedesk/customer/portal/13.
1518

1619
Verwenden Sie als Ticket-Art entweder "Anforderungen an die Raumplanung" oder "allgemeine Anforderungen an Prüfungen".
1720

@@ -33,6 +36,7 @@ Rückmeldung bitte bis {{ .FeedbackDate }}.
3336

3437
Mit freundlichen Grüßen
3538
{{ .PlanerName }}
39+
Prüfungsplaner der FK07
3640

3741
--
3842
Diese E-Mail wurde generiert und gesendet von https://github.com/obcode/plexams.go

tmpl/constraintsEmailHTML.tmpl

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,23 @@ sondern via <a href="https://jira.cc.hm.edu/servicedesk/customer/portal/13">JIRA
33

44
<p>Liebe Prüfende,</p>
55

6-
<p>wie in den letzten Semestern plane ich alle Prüfungen in denen der Eintrag
6+
<p>als Prüfungsplaner der FK07 plane ich alle Prüfungen, in denen der Eintrag
77
in der Spalte Prüfungsform unter
88
<a href="https://zpa.cs.hm.edu/public/exam_means_list/">https://zpa.cs.hm.edu/public/exam_means_list/</a>
9-
die Zeichenkette schriftlich enthält.</p>
10-
<p>Sollten Sie eine praktische Prüfung im Prüfungszeitraum durchführen wollen,
9+
die Zeichenkette <b>schriftlich</b> enthält, im Prüfungszeitraum vom {{ .FromFK07Date }} bis {{ .UntilDate }}.
10+
{{if ne .FromDate .FromFK07Date}}
11+
Bitte beachten Sie, dass die anderen, an unseren Studiengängen beteiligten, Fakultäten teilweise früher,
12+
ab dem {{ .FromDate }}, mit den Prüfungen beginnen.
13+
{{end}}
14+
{{if ne .FromDate .FromDate}}
15+
Das sollte nicht da stehen.
16+
{{end}}
17+
</p>
18+
<p>Sollten Sie eine <b>praktische</b> Prüfung im Prüfungszeitraum durchführen wollen,
1119
teilen Sie mir das bitte <b>explizit</b> mit. Die Prüfung werde ich dann auch planen.</p>
1220
<p>Bitte teilen Sie mir alle Besonderheiten mit, die ich bei der Planung Ihrer Prüfung beachten muss.</p>
1321
<p>Öffnen Sie dazu ein JIRA-Ticket unter <a href="https://jira.cc.hm.edu/servicedesk/customer/portal/13">https://jira.cc.hm.edu/servicedesk/customer/portal/13</a>.
14-
Verwenden Sie als Ticket-Art entweder "Anforderungen an die Raumplanung" oder "allgemeine Anforderungen an Prüfungen".</p>
22+
Verwenden Sie als Ticket-Art, je nach Anforderung, "Anforderungen an die Raumplanung" oder "allgemeine Anforderungen an Prüfungen".</p>
1523
<p>Zu den Besonderheiten/Constraints gehören beispielsweise:</p>
1624
<ul>
1725
<li>Prüfung X muss gleichzeitig mit Prüfung Y stattfinden</li>
@@ -24,11 +32,13 @@ Verwenden Sie als Ticket-Art entweder "Anforderungen an die Raumplanung" oder "a
2432
<li>aber auch alles andere was aus Ihrer Sicht zu beachten ist.</li>
2533
</ul>
2634
<p>Besonderheit zu Prüfungen mit EXaHM oder SEB werden unabhängig davon über die KDP-Tickets abgefragt
27-
und müssen nicht in einem weiteren Ticket gemeldet werden. Da ist nur wichtig, dass ich mit auf dem Ticket bin.</p>
28-
<p>Alle anderen Prüfungen (mündliche, Modularbeiten, …) planen Sie bitte selbst.</p>
35+
und müssen nicht in einem weiteren Ticket gemeldet werden. Es ist nur wichtig, dass ich mit auf dem Ticket des KDP bin.</p>
36+
<p>Alle anderen Prüfungen (mündliche Prüfungen, Modularbeiten, …) planen Sie bitte selbst.</p>
2937
<p>Rückmeldung bitte bis {{ .FeedbackDate }}.</p>
3038
<p>Mit freundlichen Grüßen</p>
31-
<p>{{ .PlanerName }}</p>
39+
<p>{{ .PlanerName }}<br />
40+
Prüfungsplaner der FK07
41+
</p>
3242

3343
<pre>
3444
--

0 commit comments

Comments
 (0)