Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-69283

Allow specifying a timezone when calling WebServices

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide
      1. As admin, enable "Mobile services": Site administration ► Mobile app ► Mobile settings
      2. Go to Administration > Location > Location settings and set the "Force timezone" option to "Users can choose their time zone"
      3. Create a Token in the mobile app service for any user in the site (not an admin account)
        • Click on Site administration ► Plugins ► Web services ► Manage tokens
      4. Access to the Moodle site using the user account from previous step
      5. Go to your user profile and click the "Edit profile" link within the "User details section"
      6. Change the indicated Timezone to "Europe/Madrid" and "Save changes"
      7. Go to your calendar (from the site home or your dashboard not from inside a course) and create a personal/User event for yesterday at 10pm
      8. Open the console an execute this new curl request, replacing wstoken with the token you just created and the site url with yours. Change the year, month and day values so they match to the same day you created the calendar event in the previous step

        curl 'http://localhost/m/stable_master/webservice/rest/server.php?moodlewsrestformat=json' --data 'year=2020&month=9&day=16&wsfunction=core_calendar_get_calendar_day_view&wstoken=YOUR_WS_TOKEN' --compressed | python -m "json.tool"

      9. Confirm that:
        • In the curl request response, you see among data a first-level element called "events" that contains information from the event you created a few steps ago
      10. Now, add the following parameter to the previous currl request: moodlewssettingtimezone=Australia/Perth
      11. Execute the curl request and confirm that:
        • In the curl request response, you see among data a first-level element called "events" that is empty
      12. Now, in the previous CURL request, change the day (add one day, so if it was the 16 use 17)
      13. Execute the curl request and confirm that:
        • In the curl request response, you see among data a first-level element called "events" that contains information from the event you created a few steps ago
      14. As admin, access to your Moodle site again
      15. Go to Administration > Location > Location settings and set the "Force timezone" option to "Europe/Madrid"
      16. Execute the last curl request (previous step) and confirm that:
        • In the curl request response, you see among data a first-level element called "events" that is empty
      Show
      As admin, enable "Mobile services": Site administration ► Mobile app ► Mobile settings Go to Administration > Location > Location settings and set the "Force timezone" option to "Users can choose their time zone" Create a Token in the mobile app service for any user in the site (not an admin account) Click on Site administration ► Plugins ► Web services ► Manage tokens Access to the Moodle site using the user account from previous step Go to your user profile and click the "Edit profile" link within the "User details section" Change the indicated Timezone to "Europe/Madrid" and "Save changes" Go to your calendar (from the site home or your dashboard not from inside a course) and create a personal/User event for yesterday at 10pm Open the console an execute this new curl request, replacing wstoken with the token you just created and the site url with yours. Change the year, month and day values so they match to the same day you created the calendar event in the previous step curl 'http://localhost/m/stable_master/webservice/rest/server.php?moodlewsrestformat=json' --data 'year=2020&month=9&day=16&wsfunction=core_calendar_get_calendar_day_view&wstoken=YOUR_WS_TOKEN' --compressed | python -m "json.tool" Confirm that: In the curl request response, you see among data a first-level element called "events" that contains information from the event you created a few steps ago Now, add the following parameter to the previous currl request: moodlewssettingtimezone=Australia/Perth Execute the curl request and confirm that: In the curl request response, you see among data a first-level element called "events" that is empty Now, in the previous CURL request, change the day (add one day, so if it was the 16 use 17) Execute the curl request and confirm that: In the curl request response, you see among data a first-level element called "events" that contains information from the event you created a few steps ago As admin, access to your Moodle site again Go to Administration > Location > Location settings and set the "Force timezone" option to "Europe/Madrid" Execute the last curl request (previous step) and confirm that: In the curl request response, you see among data a first-level element called "events" that is empty
    • Affected Branches:
      MOODLE_310_STABLE, MOODLE_39_STABLE
    • Fixed Branches:
      MOODLE_310_STABLE
    • Pull from Repository:
    • Pull 3.10 Branch:
      MDL-69283-310
    • Pull Master Branch:
      MDL-69283-master

      Description

      In the app we want to use the device timezone instead of the Moodle timezone. This is causing problems in calendar WebServices, for example the day_view WS calculates which events to return based on the Moodle timezone instead of the device timezone.

      It would be great to have a parameter to be able to define the timezone to use.

        Attachments

        1. Screenshot_1.jpg
          51 kB
          Janelle Barcega
        2. Screenshot_2.jpg
          36 kB
          Janelle Barcega
        3. Screenshot_3.jpg
          98 kB
          Janelle Barcega

          Issue Links

            Activity

              People

              Assignee:
              jleyva Juan Leyva
              Reporter:
              dpalou Dani Palou
              Peer reviewer:
              Dani Palou
              Integrator:
              Jun Pataleta
              Tester:
              Janelle Barcega
              Participants:
              Component watchers:
              Juan Leyva, Amaia Anabitarte, Carlos Escobedo, Ferran Recio, Ilya Tregubov, Sara Arjona (@sarjona)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Fix Release Date:
                9/Nov/20

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 3 hours, 14 minutes
                  3h 14m