From 36232f04a1c86e54c39bcd6985e6c292670e8c6b Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Thu, 23 Mar 2023 10:06:23 +0100 Subject: [PATCH] MOBILE-4203 timezone: Convert 99 to a readable timezone --- src/core/features/user/pages/about/about.html | 2 +- src/core/features/user/pages/about/about.ts | 15 ++++++- src/core/features/user/services/user.ts | 5 +++ .../user/tests/behat/basic_usage.feature | 37 +++++++++++++++++- ...-usage-of-user-features-view-profile_7.png | Bin 18446 -> 19824 bytes 5 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/core/features/user/pages/about/about.html b/src/core/features/user/pages/about/about.html index 876cb5220..6c6d35285 100644 --- a/src/core/features/user/pages/about/about.html +++ b/src/core/features/user/pages/about/about.html @@ -79,7 +79,7 @@

{{ user.country }}

- +

{{ 'core.timezone' | translate}}

{{ user.timezone }}

diff --git a/src/core/features/user/pages/about/about.ts b/src/core/features/user/pages/about/about.ts index a665e364d..c3f600e04 100644 --- a/src/core/features/user/pages/about/about.ts +++ b/src/core/features/user/pages/about/about.ts @@ -21,7 +21,13 @@ import { CoreDomUtils } from '@services/utils/dom'; import { CoreTextUtils } from '@services/utils/text'; import { CoreUtils } from '@services/utils/utils'; import { CoreEventObserver, CoreEvents } from '@singletons/events'; -import { CoreUser, CoreUserProfile, USER_PROFILE_PICTURE_UPDATED, USER_PROFILE_REFRESHED } from '@features/user/services/user'; +import { + CoreUser, + CoreUserProfile, + USER_PROFILE_PICTURE_UPDATED, + USER_PROFILE_REFRESHED, + USER_PROFILE_SERVER_TIMEZONE, +} from '@features/user/services/user'; import { CoreUserHelper } from '@features/user/services/user-helper'; import { CoreNavigator } from '@services/navigator'; import { CoreIonLoadingElement } from '@classes/ion-loading'; @@ -50,6 +56,7 @@ export class CoreUserAboutPage implements OnInit, OnDestroy { encodedAddress?: SafeUrl; canChangeProfilePicture = false; interests?: string[]; + displayTimezone = false; protected userId!: number; protected site!: CoreSite; @@ -120,6 +127,12 @@ export class CoreUserAboutPage implements OnInit, OnDestroy { this.user.address = CoreUserHelper.formatAddress('', user.city, user.country); + const serverTimezone = CoreSites.getCurrentSite()?.getStoredConfig('timezone'); + this.displayTimezone = !!serverTimezone; + if (this.displayTimezone && this.user.timezone === USER_PROFILE_SERVER_TIMEZONE) { + this.user.timezone = serverTimezone; + } + await this.checkUserImageUpdated(); } catch (error) { CoreDomUtils.showErrorModalDefault(error, 'core.user.errorloaduser', true); diff --git a/src/core/features/user/services/user.ts b/src/core/features/user/services/user.ts index 44a8d0d4a..209fe3c06 100644 --- a/src/core/features/user/services/user.ts +++ b/src/core/features/user/services/user.ts @@ -54,6 +54,11 @@ export const USER_PROFILE_REFRESHED = 'CoreUserProfileRefreshed'; */ export const USER_PROFILE_PICTURE_UPDATED = 'CoreUserProfilePictureUpdated'; +/** + * Value set in timezone when using the server's timezone. + */ +export const USER_PROFILE_SERVER_TIMEZONE = '99'; + /** * Service to provide user functionalities. */ diff --git a/src/core/features/user/tests/behat/basic_usage.feature b/src/core/features/user/tests/behat/basic_usage.feature index eb189dc9d..3660b07e8 100755 --- a/src/core/features/user/tests/behat/basic_usage.feature +++ b/src/core/features/user/tests/behat/basic_usage.feature @@ -3,8 +3,8 @@ Feature: Test basic usage of user features Background: Given the following "users" exist: - | username | firstname | lastname | - | student1 | Student | Student | + | username | firstname | lastname | timezone | + | student1 | Student | Student | 99 | Scenario: Complete missing fields Given the following "custom profile fields" exist: @@ -59,3 +59,36 @@ Feature: Test basic usage of user features Then I should find "student1@example.com" in the app And I should find "Student Student" in the app And the UI should match the snapshot + + @lms_from4.2 + Scenario: View timezone in profile + Given the following config values are set as admin: + | timezone | Europe/Madrid | + | forcetimezone | 99 | + And the following "users" exist: + | username | firstname | lastname | timezone | + | student2 | John | Smith | Asia/Shanghai | + And the following "courses" exist: + | fullname | shortname | + | Course 1 | C1 | + And the following "course enrolments" exist: + | user | course | role | + | student1 | C1 | student | + | student2 | C1 | student | + # @todo MDL-77468 This capability override is needed until the issue is integrated. + And the following "permission overrides" exist: + | capability | permission | role | contextlevel | reference | + | moodle/user:viewalldetails | Allow | student | Course | C1 | + And I entered the course "Course 1" as "student1" in the app + When I press "Participants" in the app + And I press "Student Student" in the app + And I press "Details" in the app + Then I should find "Europe/Madrid" in the app + And I should not find "Asia/Shanghai" in the app + + When I press the back button in the app + And I press the back button in the app + And I press "John Smith" in the app + And I press "Details" in the app + Then I should find "Asia/Shanghai" in the app + And I should not find "Europe/Madrid" in the app diff --git a/src/core/features/user/tests/behat/snapshots/test-basic-usage-of-user-features-view-profile_7.png b/src/core/features/user/tests/behat/snapshots/test-basic-usage-of-user-features-view-profile_7.png index 44588d26e09d8425873d3ec5c54ac70a8698aebc..67a6beb33a560d3c3ec0325d7535c3eded8f435c 100644 GIT binary patch literal 19824 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 AZU6uP literal 18446 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