Ändere Wochenfeld von Auswahl "Jede/gerade Vorlesungswochen/ungerade Vorlesungswochen" zu Freitextfeld mit Vorschlag. #37
7 changed files with 13 additions and 11 deletions
|
@ -73,8 +73,8 @@ func (b *BaseHandler) AddOfficeHourHandler(w http.ResponseWriter, req *http.Requ
|
|||
if err != nil {
|
||||
errors = append(errors, "Die Vorlesungswoche muss eine ganze Zahl sein.")
|
||||
}
|
||||
if !(week >= 0 && week <= 2) {
|
||||
errors = append(errors, "Sprechstunden müssen jede, jede gerade oder jede ungerade Vorlesungswoche stattfinden.")
|
||||
if !(week >= 0 && week <= 5) {
|
||||
errors = append(errors, "Bitte wähle eine der vorgegebenen Optionen für Vorlesungswochen.")
|
||||
}
|
||||
day, err := strconv.Atoi(req.FormValue("tag"))
|
||||
if err != nil {
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
)
|
||||
|
||||
type Date struct {
|
||||
Week int // Set whether the date is all weeks (0), odd weeks (1) or even weeks (2).
|
||||
Week int // Set whether the date is all weeks (0), weeks with exercise session (1) or weeks without exercise session (2), even weeks (3), odd weeks (4) or other (5).
|
||||
Day int
|
||||
Hour int
|
||||
Minute int
|
||||
|
|
|
@ -245,9 +245,7 @@ func (r *OfficeHourRepo) NumberByTimeSpanAndRoom(date models.Date, duration int,
|
|||
for _, officeHour := range officeHours {
|
||||
// increase count if officehour starts before this point in time and ends later
|
||||
if models.DateLess(officeHour.Date, models.GetEndDate(date, minute, false)) && models.DateLess(models.GetEndDate(date, minute, false), models.GetEndDate(officeHour.Date, officeHour.Duration, false)) {
|
||||
if date.Week == 0 || officeHour.Week == 0 || date.Week == officeHour.Week { // office hours in alternating weeks should not collide
|
||||
minuteCount += 1
|
||||
}
|
||||
minuteCount += 1
|
||||
}
|
||||
}
|
||||
if minuteCount > count {
|
||||
|
|
|
@ -59,9 +59,12 @@
|
|||
|
||||
<div class="form-floating mb-3">
|
||||
<select class="form-control form-select required" required name="woche" id="woche">
|
||||
<option value="0"{{if eq 0 $.Date.Week}} selected{{end}}>Jede</option>
|
||||
<option value="1"{{if eq 1 $.Date.Week}} selected{{end}}>Ungerade</option>
|
||||
<option value="2"{{if eq 2 $.Date.Week}} selected{{end}}>Gerade</option>
|
||||
<option value="0"{{if eq 0 $.Date.Week}} selected{{end}}>Jede Woche</option>
|
||||
Gonne marked this conversation as resolved
Outdated
|
||||
<option value="1"{{if eq 1 $.Date.Week}} selected{{end}}>In Wochen mit Übung</option>
|
||||
Gonne marked this conversation as resolved
Outdated
johannes
commented
Fände es eigentlich besser, dass diese Option mit dem leeren String als Wert gespeichert wird (und in der Tabelle dann keinen Platz verbraucht) Fände es eigentlich besser, dass diese Option mit dem leeren String als Wert gespeichert wird (und in der Tabelle dann keinen Platz verbraucht)
Gonne
commented
Sehe ich ein. Damit das passiert, brauchen wir irgendeine Form von Auswahl. Also probiere ich mich nachher an Radio Buttons. Sehe ich ein. Damit das passiert, brauchen wir irgendeine Form von Auswahl. Also probiere ich mich nachher an Radio Buttons.
|
||||
<option value="2"{{if eq 2 $.Date.Week}} selected{{end}}>In Wochen ohne Übung</option>
|
||||
<option value="1"{{if eq 3 $.Date.Week}} selected{{end}}>In geraden Vorlesungswochen</option>
|
||||
<option value="2"{{if eq 4 $.Date.Week}} selected{{end}}>In ungeraden Vorlesungswochen</option>
|
||||
johannes
commented
Ich werde dich nicht aufhalten, aber bin der Meinung, dass diese beiden Optionen unnötiger Overhead sind und man sie weglassen kann. Ich werde dich nicht aufhalten, aber bin der Meinung, dass diese beiden Optionen unnötiger Overhead sind und man sie weglassen kann.
Gonne
commented
Vermutlich. Ich will es mal ein Semester ausprobieren. Vermutlich. Ich will es mal ein Semester ausprobieren.
|
||||
<option value="2"{{if eq 5 $.Date.Week}} selected{{end}}>Etwas anderes (nutze Infofeld)</option>
|
||||
</select>
|
||||
<label for="woche">Vorlesungswoche</label>
|
||||
</div>
|
||||
|
|
|
@ -5,6 +5,7 @@ mit deiner Emailadresse soll eine Sprechstunde mit folgenden Daten {{if eq .Requ
|
|||
{{.Request.OfficeHour.Course.Name}}
|
||||
{{DayName .Request.OfficeHour.Date.Day}}
|
||||
{{printf "%02d" .Request.OfficeHour.Date.Hour}}:{{printf "%02d" .Request.OfficeHour.Date.Minute}} Uhr bis {{printf "%02d" .Request.OfficeHour.EndDate.Hour}}:{{printf "%02d" .Request.OfficeHour.EndDate.Minute}} Uhr
|
||||
{{if eq 0 .Request.OfficeHour.Date.Week}}Jede Woche{{end}}{{if eq 1 .Request.OfficeHour.Date.Week}}In Wochen mit Übung{{end}}{{if eq 2 .Request.OfficeHour.Date.Week}}In Wochen ohne Übung{{end}}{{if eq 3 .Request.OfficeHour.Date.Week}}In geraden Vorlesungswochen{{end}}{{if eq 4 .Request.OfficeHour.Date.Week}}In ungeraden Vorlesungswochen{{end}}
|
||||
{{.Request.OfficeHour.Tutor.Name}}
|
||||
{{.Request.OfficeHour.Room.Name}}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<p>
|
||||
Willst du die Sprechstunde<br>
|
||||
{{printf "%02d" .OfficeHour.Date.Hour}}:{{printf "%02d" .OfficeHour.Date.Minute}} - {{printf "%02d" .OfficeHour.EndDate.Hour}}:{{printf "%02d" .OfficeHour.EndDate.Minute}}<br>
|
||||
{{if eq .OfficeHour.Date.Week 1}}in ungeraden Vorlesungswochen<br>{{end}}{{if eq .OfficeHour.Date.Week 2}}in geraden Vorlesungswochen<br>{{end}}
|
||||
{{if eq 0 $.Date.Week}}>Jede Woche<br>{{end}}{{if eq 1 $.Date.Week}}In Wochen mit Übung<br>{{end}}{{if eq 2 $.Date.Week}}In Wochen ohne Übung<br>{{end}}{{if eq 3 $.Date.Week}}In geraden Vorlesungswochen<br>{{end}}{{if eq 4 $.Date.Week}}In ungeraden Vorlesungswochen<br>{{end}}
|
||||
{{.OfficeHour.Course.Name}}<br>
|
||||
{{.OfficeHour.Tutor.Name}}<br>
|
||||
{{.OfficeHour.Room.Name}}<br>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<td class="officeHour" rowspan="{{divide .OfficeHour.Duration .MinuteGranularity}}">
|
||||
{{if .DeleteIcons}}<div style="text-align: right;"><a href="/deleteOfficeHour?id={{.OfficeHour.Id}}">❌</a></div>{{end}}
|
||||
{{printf "%02d" .OfficeHour.Date.Hour}}:{{printf "%02d" .OfficeHour.Date.Minute}} - {{printf "%02d" .OfficeHour.EndDate.Hour}}:{{printf "%02d" .OfficeHour.EndDate.Minute}}<br>
|
||||
{{if eq .OfficeHour.Date.Week 1}}in ungeraden Vorlesungswochen<br>{{end}}{{if eq .OfficeHour.Date.Week 2}}in geraden Vorlesungswochen<br>{{end}}
|
||||
{{if eq 1 .OfficeHour.Date.Week}}In Wochen mit Übung<br>{{end}}{{if eq 2 .OfficeHour.Date.Week}}In Wochen ohne Übung<br>{{end}}{{if eq 3 .OfficeHour.Date.Week}}In geraden Vorlesungswochen<br>{{end}}{{if eq 4 .OfficeHour.Date.Week}}In ungeraden Vorlesungswochen<br>{{end}}
|
||||
{{.OfficeHour.Course.Name}}<br>
|
||||
{{.OfficeHour.Tutor.Name}}<br>
|
||||
{{.OfficeHour.Room.Name}}
|
||||
|
|
Loading…
Add table
Reference in a new issue
datalists werden von Browsern nur eingeschränkt unterstützt, könnte Probleme in Safari geben und wird auf jeden Fall nicht in Firefox Android funktionieren: https://caniuse.com/datalist
Ich erwarte, dass einige Menschen das am Handy nutzen und würde daher lieber ein besser unterstütztes HTML-Element wählen. Ein Freitextfeld ist mir hier auch gar nicht so wichtig, können wir nicht einfach ein Select draus machen, vielleicht mit einer vierten Option "Sonstiges" und man soll dann das Sonstiges-Raum-Feld für Bemerkungen nutzen (ist ja schon ein Freitextfeld, könnten seine intendierte Benutzung verallgemeinern).
Soweit ich die Kompatiblität lese, wäre es für Menschen ohne Unterstützung ein Freitextfeld ohne Autovervollständigung. Das fände ich vertretbar.