mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Fix SQLx failure when starting the server with newDBLibrary enabled (#58985)
change the weekstart to pointer Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
This commit is contained in:
parent
156ed4b56c
commit
ba8124ef93
@ -77,6 +77,11 @@ func (hs *HTTPServer) setIndexViewData(c *models.ReqContext) (*dtos.IndexViewDat
|
||||
settings["isPublicDashboardView"] = true
|
||||
}
|
||||
|
||||
weekStart := ""
|
||||
if prefs.WeekStart != nil {
|
||||
weekStart = *prefs.WeekStart
|
||||
}
|
||||
|
||||
data := dtos.IndexViewData{
|
||||
User: &dtos.CurrentUser{
|
||||
Id: c.UserID,
|
||||
@ -93,7 +98,7 @@ func (hs *HTTPServer) setIndexViewData(c *models.ReqContext) (*dtos.IndexViewDat
|
||||
IsGrafanaAdmin: c.IsGrafanaAdmin,
|
||||
LightTheme: prefs.Theme == lightName,
|
||||
Timezone: prefs.Timezone,
|
||||
WeekStart: prefs.WeekStart,
|
||||
WeekStart: weekStart,
|
||||
Locale: locale,
|
||||
HelpFlags1: c.HelpFlags1,
|
||||
HasEditPermissionInFolders: hasEditPerm,
|
||||
|
@ -82,12 +82,17 @@ func (hs *HTTPServer) getPreferencesFor(ctx context.Context, orgID, userID, team
|
||||
}
|
||||
}
|
||||
|
||||
weekStart := ""
|
||||
if preference.WeekStart != nil {
|
||||
weekStart = *preference.WeekStart
|
||||
}
|
||||
|
||||
dto := dtos.Prefs{
|
||||
Theme: preference.Theme,
|
||||
HomeDashboardID: preference.HomeDashboardID,
|
||||
HomeDashboardUID: dashboardUID,
|
||||
Timezone: preference.Timezone,
|
||||
WeekStart: preference.WeekStart,
|
||||
WeekStart: weekStart,
|
||||
}
|
||||
|
||||
if preference.JSONData != nil {
|
||||
|
@ -20,7 +20,7 @@ type Preference struct {
|
||||
Version int `db:"version"`
|
||||
HomeDashboardID int64 `xorm:"home_dashboard_id" db:"home_dashboard_id"`
|
||||
Timezone string `db:"timezone"`
|
||||
WeekStart string `db:"week_start"`
|
||||
WeekStart *string `db:"week_start"`
|
||||
Theme string `db:"theme"`
|
||||
Created time.Time `db:"created"`
|
||||
Updated time.Time `db:"updated"`
|
||||
|
@ -54,7 +54,7 @@ func (s *Service) GetWithDefaults(ctx context.Context, query *pref.GetPreference
|
||||
if p.Timezone != "" {
|
||||
res.Timezone = p.Timezone
|
||||
}
|
||||
if p.WeekStart != "" {
|
||||
if p.WeekStart != nil && *p.WeekStart != "" {
|
||||
res.WeekStart = p.WeekStart
|
||||
}
|
||||
if p.HomeDashboardID != 0 {
|
||||
@ -108,7 +108,7 @@ func (s *Service) Save(ctx context.Context, cmd *pref.SavePreferenceCommand) err
|
||||
TeamID: cmd.TeamID,
|
||||
HomeDashboardID: cmd.HomeDashboardID,
|
||||
Timezone: cmd.Timezone,
|
||||
WeekStart: cmd.WeekStart,
|
||||
WeekStart: &cmd.WeekStart,
|
||||
Theme: cmd.Theme,
|
||||
Created: time.Now(),
|
||||
Updated: time.Now(),
|
||||
@ -125,7 +125,7 @@ func (s *Service) Save(ctx context.Context, cmd *pref.SavePreferenceCommand) err
|
||||
}
|
||||
|
||||
preference.Timezone = cmd.Timezone
|
||||
preference.WeekStart = cmd.WeekStart
|
||||
preference.WeekStart = &cmd.WeekStart
|
||||
preference.Theme = cmd.Theme
|
||||
preference.Updated = time.Now()
|
||||
preference.Version += 1
|
||||
@ -200,7 +200,7 @@ func (s *Service) Patch(ctx context.Context, cmd *pref.PatchPreferenceCommand) e
|
||||
}
|
||||
|
||||
if cmd.WeekStart != nil {
|
||||
preference.WeekStart = *cmd.WeekStart
|
||||
preference.WeekStart = cmd.WeekStart
|
||||
}
|
||||
|
||||
if cmd.Theme != nil {
|
||||
@ -232,7 +232,7 @@ func (s *Service) GetDefaults() *pref.Preference {
|
||||
defaults := &pref.Preference{
|
||||
Theme: s.cfg.DefaultTheme,
|
||||
Timezone: s.cfg.DateFormats.DefaultTimezone,
|
||||
WeekStart: s.cfg.DateFormats.DefaultWeekStart,
|
||||
WeekStart: &s.cfg.DateFormats.DefaultWeekStart,
|
||||
HomeDashboardID: 0,
|
||||
JSONData: &pref.PreferenceJSONData{},
|
||||
}
|
||||
|
@ -36,10 +36,12 @@ func TestGetDefaults(t *testing.T) {
|
||||
prefService.cfg.DefaultLocale = "en-US"
|
||||
prefService.cfg.DefaultTheme = "light"
|
||||
prefService.cfg.DateFormats.DefaultTimezone = "UTC"
|
||||
weekStart := ""
|
||||
|
||||
t.Run("GetDefaults", func(t *testing.T) {
|
||||
preference := prefService.GetDefaults()
|
||||
expected := &pref.Preference{
|
||||
WeekStart: &weekStart,
|
||||
Theme: "light",
|
||||
Timezone: "UTC",
|
||||
HomeDashboardID: 0,
|
||||
@ -55,6 +57,7 @@ func TestGetDefaults(t *testing.T) {
|
||||
preference, err := prefService.GetWithDefaults(context.Background(), query)
|
||||
require.NoError(t, err)
|
||||
expected := &pref.Preference{
|
||||
WeekStart: &weekStart,
|
||||
Theme: "light",
|
||||
Timezone: "UTC",
|
||||
HomeDashboardID: 0,
|
||||
@ -72,6 +75,7 @@ func TestGetDefaultsWithI18nFeatureFlag(t *testing.T) {
|
||||
cfg: setting.NewCfg(),
|
||||
features: featuremgmt.WithFeatures(featuremgmt.FlagInternationalization),
|
||||
}
|
||||
weekStart := ""
|
||||
prefService.cfg.DefaultLocale = "en-US"
|
||||
prefService.cfg.DefaultTheme = "light"
|
||||
prefService.cfg.DateFormats.DefaultTimezone = "UTC"
|
||||
@ -79,6 +83,7 @@ func TestGetDefaultsWithI18nFeatureFlag(t *testing.T) {
|
||||
t.Run("GetDefaults", func(t *testing.T) {
|
||||
preference := prefService.GetDefaults()
|
||||
expected := &pref.Preference{
|
||||
WeekStart: &weekStart,
|
||||
Theme: "light",
|
||||
Timezone: "UTC",
|
||||
HomeDashboardID: 0,
|
||||
@ -100,13 +105,15 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
|
||||
}
|
||||
prefService.cfg.DefaultLocale = "en-US"
|
||||
|
||||
weekStartOne := "1"
|
||||
weekStartTwo := "2"
|
||||
insertPrefs(t, prefService.store,
|
||||
pref.Preference{
|
||||
OrgID: 1,
|
||||
HomeDashboardID: 1,
|
||||
Theme: "dark",
|
||||
Timezone: "UTC",
|
||||
WeekStart: "1",
|
||||
WeekStart: &weekStartOne,
|
||||
JSONData: &pref.PreferenceJSONData{
|
||||
Locale: "en-GB",
|
||||
},
|
||||
@ -117,7 +124,7 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
|
||||
HomeDashboardID: 4,
|
||||
Theme: "light",
|
||||
Timezone: "browser",
|
||||
WeekStart: "2",
|
||||
WeekStart: &weekStartTwo,
|
||||
JSONData: &pref.PreferenceJSONData{
|
||||
Locale: "en-AU",
|
||||
},
|
||||
@ -131,7 +138,7 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
|
||||
expected := &pref.Preference{
|
||||
Theme: "light",
|
||||
Timezone: "browser",
|
||||
WeekStart: "2",
|
||||
WeekStart: &weekStartTwo,
|
||||
HomeDashboardID: 4,
|
||||
JSONData: &pref.PreferenceJSONData{
|
||||
Locale: "en-AU",
|
||||
@ -150,7 +157,7 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
|
||||
expected := &pref.Preference{
|
||||
Theme: "dark",
|
||||
Timezone: "UTC",
|
||||
WeekStart: "1",
|
||||
WeekStart: &weekStartOne,
|
||||
HomeDashboardID: 1,
|
||||
JSONData: &pref.PreferenceJSONData{
|
||||
Locale: "en-GB",
|
||||
@ -163,6 +170,7 @@ func TestGetWithDefaults_withUserAndOrgPrefs(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGetDefaults_JSONData(t *testing.T) {
|
||||
weekStart := ""
|
||||
queryPreference := pref.QueryHistoryPreference{
|
||||
HomeTab: "hometab",
|
||||
}
|
||||
@ -235,7 +243,8 @@ func TestGetDefaults_JSONData(t *testing.T) {
|
||||
preference, err := prefService.GetWithDefaults(context.Background(), query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &pref.Preference{
|
||||
JSONData: &userPreferencesJsonData,
|
||||
WeekStart: &weekStart,
|
||||
JSONData: &userPreferencesJsonData,
|
||||
}, preference)
|
||||
})
|
||||
|
||||
@ -262,6 +271,7 @@ func TestGetDefaults_JSONData(t *testing.T) {
|
||||
preference, err := prefService.GetWithDefaults(context.Background(), query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &pref.Preference{
|
||||
WeekStart: &weekStart,
|
||||
JSONData: &pref.PreferenceJSONData{
|
||||
Locale: "en-GB",
|
||||
Navbar: userNavbarPreferences,
|
||||
@ -300,12 +310,15 @@ func TestGetDefaults_JSONData(t *testing.T) {
|
||||
preference, err := prefService.GetWithDefaults(context.Background(), query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &pref.Preference{
|
||||
JSONData: &team2PreferencesJsonData,
|
||||
JSONData: &team2PreferencesJsonData,
|
||||
WeekStart: &weekStart,
|
||||
}, preference)
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetWithDefaults_teams(t *testing.T) {
|
||||
weekStartOne := "1"
|
||||
weekStartTwo := "2"
|
||||
prefService := &Service{
|
||||
store: newFake(),
|
||||
cfg: setting.NewCfg(),
|
||||
@ -317,7 +330,7 @@ func TestGetWithDefaults_teams(t *testing.T) {
|
||||
HomeDashboardID: 1,
|
||||
Theme: "light",
|
||||
Timezone: "browser",
|
||||
WeekStart: "1",
|
||||
WeekStart: &weekStartOne,
|
||||
},
|
||||
pref.Preference{
|
||||
OrgID: 1,
|
||||
@ -325,7 +338,7 @@ func TestGetWithDefaults_teams(t *testing.T) {
|
||||
HomeDashboardID: 3,
|
||||
Theme: "light",
|
||||
Timezone: "browser",
|
||||
WeekStart: "2",
|
||||
WeekStart: &weekStartTwo,
|
||||
},
|
||||
pref.Preference{
|
||||
OrgID: 1,
|
||||
@ -333,7 +346,7 @@ func TestGetWithDefaults_teams(t *testing.T) {
|
||||
HomeDashboardID: 4,
|
||||
Theme: "light",
|
||||
Timezone: "browser",
|
||||
WeekStart: "2",
|
||||
WeekStart: &weekStartTwo,
|
||||
},
|
||||
)
|
||||
|
||||
@ -343,7 +356,7 @@ func TestGetWithDefaults_teams(t *testing.T) {
|
||||
expected := &pref.Preference{
|
||||
Theme: "light",
|
||||
Timezone: "browser",
|
||||
WeekStart: "2",
|
||||
WeekStart: &weekStartTwo,
|
||||
HomeDashboardID: 4,
|
||||
JSONData: &pref.PreferenceJSONData{},
|
||||
}
|
||||
@ -399,7 +412,7 @@ func TestSave(t *testing.T) {
|
||||
assert.Equal(t, "dark", stored.Theme)
|
||||
assert.Equal(t, "browser", stored.Timezone)
|
||||
assert.EqualValues(t, 5, stored.HomeDashboardID)
|
||||
assert.Equal(t, "1", stored.WeekStart)
|
||||
assert.Equal(t, "1", *stored.WeekStart)
|
||||
assert.EqualValues(t, 0, stored.Version)
|
||||
})
|
||||
|
||||
@ -421,7 +434,7 @@ func TestSave(t *testing.T) {
|
||||
assert.Empty(t, stored.Theme)
|
||||
assert.Equal(t, "UTC", stored.Timezone)
|
||||
assert.Zero(t, stored.HomeDashboardID)
|
||||
assert.Equal(t, "1", stored.WeekStart)
|
||||
assert.Equal(t, "1", *stored.WeekStart)
|
||||
assert.EqualValues(t, 1, stored.Version)
|
||||
})
|
||||
|
||||
@ -440,7 +453,7 @@ func TestSave(t *testing.T) {
|
||||
assert.Equal(t, themeValue, stored.Theme)
|
||||
assert.Equal(t, "UTC", stored.Timezone)
|
||||
assert.Zero(t, stored.HomeDashboardID)
|
||||
assert.Equal(t, "1", stored.WeekStart)
|
||||
assert.Equal(t, "1", *stored.WeekStart)
|
||||
assert.EqualValues(t, 2, stored.Version)
|
||||
})
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ type getStore func(db.DB) store
|
||||
|
||||
func testIntegrationPreferencesDataAccess(t *testing.T, fn getStore) {
|
||||
t.Helper()
|
||||
|
||||
weekStartOne := "1"
|
||||
ss := db.InitTestDB(t)
|
||||
prefStore := fn(ss)
|
||||
orgNavbarPreferences := pref.NavbarPreference{
|
||||
@ -123,7 +123,7 @@ func testIntegrationPreferencesDataAccess(t *testing.T, fn getStore) {
|
||||
Theme: "dark",
|
||||
Timezone: "browser",
|
||||
HomeDashboardID: 5,
|
||||
WeekStart: "1",
|
||||
WeekStart: &weekStartOne,
|
||||
JSONData: &pref.PreferenceJSONData{Navbar: orgNavbarPreferences},
|
||||
Created: time.Now(),
|
||||
Updated: time.Now(),
|
||||
@ -135,7 +135,7 @@ func testIntegrationPreferencesDataAccess(t *testing.T, fn getStore) {
|
||||
Theme: "dark",
|
||||
HomeDashboardID: 5,
|
||||
Timezone: "browser",
|
||||
WeekStart: "1",
|
||||
WeekStart: &weekStartOne,
|
||||
Created: time.Now(),
|
||||
Updated: time.Now(),
|
||||
JSONData: &pref.PreferenceJSONData{},
|
||||
@ -149,7 +149,7 @@ func testIntegrationPreferencesDataAccess(t *testing.T, fn getStore) {
|
||||
Version: prefs[0].Version,
|
||||
HomeDashboardID: 5,
|
||||
Timezone: "browser",
|
||||
WeekStart: "1",
|
||||
WeekStart: &weekStartOne,
|
||||
Theme: "dark",
|
||||
JSONData: prefs[0].JSONData,
|
||||
Created: prefs[0].Created,
|
||||
|
Loading…
Reference in New Issue
Block a user