feat: make time zone setting actually changable

This commit is contained in:
kolaente 2022-01-12 22:31:23 +01:00
parent da25b40c65
commit 53b2322b7e
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 14 additions and 0 deletions

View File

@ -52,6 +52,8 @@ type UserSettings struct {
WeekStart int `json:"week_start"`
// The user's language
Language string `json:"language"`
// The user's time zone. Used to send task reminders in the time zone of the user.
Timezone string `json:"timezone"`
}
// GetUserAvatarProvider returns the currently set user avatar
@ -180,6 +182,7 @@ func UpdateGeneralUserSettings(c echo.Context) error {
user.DefaultListID = us.DefaultListID
user.WeekStart = us.WeekStart
user.Language = us.Language
user.Timezone = us.Timezone
_, err = user2.UpdateUser(s, user)
if err != nil {

View File

@ -463,6 +463,16 @@ func UpdateUser(s *xorm.Session, user *User) (updatedUser *User, err error) {
}
}
// Check if we have a valid time zone
if user.Timezone == "" {
user.Timezone = config.GetTimeZone().String()
}
_, err = time.LoadLocation(user.Timezone)
if err != nil {
return
}
// Update it
_, err = s.
ID(user.ID).
@ -480,6 +490,7 @@ func UpdateUser(s *xorm.Session, user *User) (updatedUser *User, err error) {
"default_list_id",
"week_start",
"language",
"timezone",
).
Update(user)
if err != nil {