)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e8d772f45daa67b69d765af7aa25e5214d71aee8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"browser\u0027s timezone and if Timezone is not set under Settings,"},{"line_number":13,"context_line":"AngularJS pages will display dates in \u0027UTC\u0027 timezone."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: 1832768"},{"line_number":16,"context_line":"Change-Id: Ibbed19600bfe6b13c43b9f09fa484cb78524b0d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"3fa7e38b_2fbf89aa","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":19},"updated":"2019-09-28 20:20:45.000000000","message":"Horizon should be added to the affected projects of the bug.\nThe bug is only reported to starlingx.","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"44f2ac0cdff47752e1a5ed6a9744af35e522c525","unresolved":false,"context_lines":[{"line_number":12,"context_line":"browser\u0027s timezone and if Timezone is not set under Settings,"},{"line_number":13,"context_line":"AngularJS pages will display dates in \u0027UTC\u0027 timezone."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: 1832768"},{"line_number":16,"context_line":"Change-Id: Ibbed19600bfe6b13c43b9f09fa484cb78524b0d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"3fa7e38b_32b2494b","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":19},"in_reply_to":"3fa7e38b_1f34a6dd","updated":"2019-11-08 04:50:21.000000000","message":"already changed","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"44f2ac0cdff47752e1a5ed6a9744af35e522c525","unresolved":false,"context_lines":[{"line_number":12,"context_line":"browser\u0027s timezone and if Timezone is not set under Settings,"},{"line_number":13,"context_line":"AngularJS pages will display dates in \u0027UTC\u0027 timezone."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: 1832768"},{"line_number":16,"context_line":"Change-Id: Ibbed19600bfe6b13c43b9f09fa484cb78524b0d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"3fa7e38b_f285915a","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":19},"in_reply_to":"3fa7e38b_2fbf89aa","updated":"2019-11-08 04:50:21.000000000","message":"Done","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"76e8e4a9cc7dd52f78ab5267e0ebb8cc0c813563","unresolved":false,"context_lines":[{"line_number":12,"context_line":"browser\u0027s timezone and if Timezone is not set under Settings,"},{"line_number":13,"context_line":"AngularJS pages will display dates in \u0027UTC\u0027 timezone."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: 1832768"},{"line_number":16,"context_line":"Change-Id: Ibbed19600bfe6b13c43b9f09fa484cb78524b0d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"3fa7e38b_1f34a6dd","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":19},"in_reply_to":"3fa7e38b_2fbf89aa","updated":"2019-10-25 06:21:54.000000000","message":"I added horizon to the affected projects in bug 1832768.","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"}],"horizon/static/framework/util/filters/filters.js":[{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"   * Evaluates given for display as a short date, returning \u0027-\u0027 if empty."},{"line_number":55,"context_line":"   */"},{"line_number":56,"context_line":"  simpleDateFilter.$inject \u003d ["},{"line_number":57,"context_line":"    \u0027$filter\u0027,"},{"line_number":58,"context_line":"    \u0027$cookies\u0027,"},{"line_number":59,"context_line":"    \u0027horizon.app.core.openstack-service-api.timezone\u0027"},{"line_number":60,"context_line":"  ];"},{"line_number":61,"context_line":"  function simpleDateFilter($filter, $cookies, timeZoneService) {"},{"line_number":62,"context_line":"    return function (input) {"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_d03a5b32","line":59,"range":{"start_line":57,"start_character":4,"end_line":59,"end_character":53},"updated":"2019-09-02 05:13:11.000000000","message":"sort","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"   * Evaluates given for display as a short date, returning \u0027-\u0027 if empty."},{"line_number":55,"context_line":"   */"},{"line_number":56,"context_line":"  simpleDateFilter.$inject \u003d ["},{"line_number":57,"context_line":"    \u0027$filter\u0027,"},{"line_number":58,"context_line":"    \u0027$cookies\u0027,"},{"line_number":59,"context_line":"    \u0027horizon.app.core.openstack-service-api.timezone\u0027"},{"line_number":60,"context_line":"  ];"},{"line_number":61,"context_line":"  function simpleDateFilter($filter, $cookies, timeZoneService) {"},{"line_number":62,"context_line":"    return function (input) {"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_7d5edfe9","line":59,"range":{"start_line":57,"start_character":4,"end_line":59,"end_character":53},"in_reply_to":"7faddb67_d03a5b32","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  function simpleDateFilter($filter, $cookies, timeZoneService) {"},{"line_number":62,"context_line":"    return function (input) {"},{"line_number":63,"context_line":"      var currentTimeZone \u003d $cookies.get(\u0027django_timezone\u0027);"},{"line_number":64,"context_line":"      if (currentTimeZone) {"},{"line_number":65,"context_line":"        currentTimeZone \u003d currentTimeZone;"},{"line_number":66,"context_line":"      } else {"},{"line_number":67,"context_line":"        currentTimeZone \u003d \"UTC\";"},{"line_number":68,"context_line":"      }"},{"line_number":69,"context_line":"      return timeZoneService.getTimeZone(currentTimeZone).then(function (timeZoneOffset) {"},{"line_number":70,"context_line":"        return $filter(\u0027noValue\u0027)($filter(\u0027date\u0027)(input, \u0027short\u0027, timeZoneOffset));"},{"line_number":71,"context_line":"      });"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_b0f8ff7b","line":68,"range":{"start_line":64,"start_character":6,"end_line":68,"end_character":7},"updated":"2019-09-02 05:13:11.000000000","message":"currentTimeZone \u003d currentTimeZone || \u0027UTC\u0027;","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  function simpleDateFilter($filter, $cookies, timeZoneService) {"},{"line_number":62,"context_line":"    return function (input) {"},{"line_number":63,"context_line":"      var currentTimeZone \u003d $cookies.get(\u0027django_timezone\u0027);"},{"line_number":64,"context_line":"      if (currentTimeZone) {"},{"line_number":65,"context_line":"        currentTimeZone \u003d currentTimeZone;"},{"line_number":66,"context_line":"      } else {"},{"line_number":67,"context_line":"        currentTimeZone \u003d \"UTC\";"},{"line_number":68,"context_line":"      }"},{"line_number":69,"context_line":"      return timeZoneService.getTimeZone(currentTimeZone).then(function (timeZoneOffset) {"},{"line_number":70,"context_line":"        return $filter(\u0027noValue\u0027)($filter(\u0027date\u0027)(input, \u0027short\u0027, timeZoneOffset));"},{"line_number":71,"context_line":"      });"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_9d639bb1","line":68,"range":{"start_line":64,"start_character":6,"end_line":68,"end_character":7},"in_reply_to":"7faddb67_b0f8ff7b","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":66,"context_line":"      } else {"},{"line_number":67,"context_line":"        currentTimeZone \u003d \"UTC\";"},{"line_number":68,"context_line":"      }"},{"line_number":69,"context_line":"      return timeZoneService.getTimeZone(currentTimeZone).then(function (timeZoneOffset) {"},{"line_number":70,"context_line":"        return $filter(\u0027noValue\u0027)($filter(\u0027date\u0027)(input, \u0027short\u0027, timeZoneOffset));"},{"line_number":71,"context_line":"      });"},{"line_number":72,"context_line":"    };"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_d0f57b84","line":69,"range":{"start_line":69,"start_character":29,"end_line":69,"end_character":40},"updated":"2019-09-02 05:13:11.000000000","message":"getTimeZoneOffset","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":66,"context_line":"      } else {"},{"line_number":67,"context_line":"        currentTimeZone \u003d \"UTC\";"},{"line_number":68,"context_line":"      }"},{"line_number":69,"context_line":"      return timeZoneService.getTimeZone(currentTimeZone).then(function (timeZoneOffset) {"},{"line_number":70,"context_line":"        return $filter(\u0027noValue\u0027)($filter(\u0027date\u0027)(input, \u0027short\u0027, timeZoneOffset));"},{"line_number":71,"context_line":"      });"},{"line_number":72,"context_line":"    };"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_3d54e7c5","line":69,"range":{"start_line":69,"start_character":29,"end_line":69,"end_character":40},"in_reply_to":"7faddb67_d0f57b84","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  ];"},{"line_number":86,"context_line":"  function mediumDateFilter($filter, $cookies, timeZoneService) {"},{"line_number":87,"context_line":"    return function (input) {"},{"line_number":88,"context_line":"      input \u003d input + \u0027Z\u0027;"},{"line_number":89,"context_line":"      var currentTimeZone \u003d $cookies.get(\u0027django_timezone\u0027);"},{"line_number":90,"context_line":"      if (currentTimeZone) {"},{"line_number":91,"context_line":"        currentTimeZone \u003d currentTimeZone;"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_f02f57f2","line":88,"updated":"2019-09-02 05:13:11.000000000","message":"Add a code annotation explaining why want to add \u0027Z\u0027.\nAlthough I know.","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    return function (input) {"},{"line_number":88,"context_line":"      input \u003d input + \u0027Z\u0027;"},{"line_number":89,"context_line":"      var currentTimeZone \u003d $cookies.get(\u0027django_timezone\u0027);"},{"line_number":90,"context_line":"      if (currentTimeZone) {"},{"line_number":91,"context_line":"        currentTimeZone \u003d currentTimeZone;"},{"line_number":92,"context_line":"      } else {"},{"line_number":93,"context_line":"        currentTimeZone \u003d \"UTC\";"},{"line_number":94,"context_line":"      }"},{"line_number":95,"context_line":"      return timeZoneService.getTimeZone(currentTimeZone).then(function (timeZoneOffset) {"},{"line_number":96,"context_line":"        return $filter(\u0027noValue\u0027)($filter(\u0027date\u0027)(input, \u0027medium\u0027, timeZoneOffset));"},{"line_number":97,"context_line":"      });"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_10355345","line":94,"range":{"start_line":90,"start_character":6,"end_line":94,"end_character":7},"updated":"2019-09-02 05:13:11.000000000","message":"currentTimeZone \u003d currentTimeZone || \u0027UTC\u0027;","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":92,"context_line":"      } else {"},{"line_number":93,"context_line":"        currentTimeZone \u003d \"UTC\";"},{"line_number":94,"context_line":"      }"},{"line_number":95,"context_line":"      return timeZoneService.getTimeZone(currentTimeZone).then(function (timeZoneOffset) {"},{"line_number":96,"context_line":"        return $filter(\u0027noValue\u0027)($filter(\u0027date\u0027)(input, \u0027medium\u0027, timeZoneOffset));"},{"line_number":97,"context_line":"      });"},{"line_number":98,"context_line":"    };"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_b03d5f2d","line":95,"range":{"start_line":95,"start_character":29,"end_line":95,"end_character":40},"updated":"2019-09-02 05:13:11.000000000","message":"getTimeZoneOffset","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"673623b31d92c692a30e740f01b6582219051c2f","unresolved":false,"context_lines":[{"line_number":60,"context_line":"  ];"},{"line_number":61,"context_line":"  function simpleDateFilter($cookies, $filter, timeZoneService) {"},{"line_number":62,"context_line":"    return function (input) {"},{"line_number":63,"context_line":"      var currentTimeZone \u003d $cookies.get(\u0027django_timezone\u0027);"},{"line_number":64,"context_line":"      currentTimeZone \u003d currentTimeZone || \u0027UTC\u0027;"},{"line_number":65,"context_line":"      return timeZoneService.getTimeZoneOffset(currentTimeZone).then(function (timeZoneOffset) {"},{"line_number":66,"context_line":"        return $filter(\u0027noValue\u0027)($filter(\u0027date\u0027)(input, \u0027short\u0027, timeZoneOffset));"},{"line_number":67,"context_line":"      });"}],"source_content_type":"text/javascript","patch_set":7,"id":"7faddb67_40d77623","line":64,"range":{"start_line":63,"start_character":6,"end_line":64,"end_character":49},"updated":"2019-09-02 10:12:52.000000000","message":"var currentTimeZone \u003d $cookies.get(\u0027django_timezone\u0027) || \u0027UTC\u0027;\ncurrentTimeZone \u003d currentTimeZone.replace(/^\"(.*)\"$/, \u0027$1\u0027)\n\nString params formatting should be placed here instead of timezone service","commit_id":"b1d959fac4dadf515fba92d03437b10d18549292"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"673623b31d92c692a30e740f01b6582219051c2f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"       * so the filter can confirm that the input time is in UTC timezone."},{"line_number":87,"context_line":"       */"},{"line_number":88,"context_line":"      input \u003d input + \u0027Z\u0027;"},{"line_number":89,"context_line":"      var currentTimeZone \u003d $cookies.get(\u0027django_timezone\u0027);"},{"line_number":90,"context_line":"      currentTimeZone \u003d currentTimeZone || \u0027UTC\u0027;"},{"line_number":91,"context_line":"      return timeZoneService.getTimeZoneOffset(currentTimeZone).then(function (timeZoneOffset) {"},{"line_number":92,"context_line":"        return $filter(\u0027noValue\u0027)($filter(\u0027date\u0027)(input, \u0027medium\u0027, timeZoneOffset));"},{"line_number":93,"context_line":"      });"}],"source_content_type":"text/javascript","patch_set":7,"id":"7faddb67_60dcf244","line":90,"range":{"start_line":89,"start_character":6,"end_line":90,"end_character":49},"updated":"2019-09-02 10:12:52.000000000","message":"ditto","commit_id":"b1d959fac4dadf515fba92d03437b10d18549292"}],"horizon/static/framework/util/timezones/timezone.service.js":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3a196f68a186717eea78688b59742f0465980aff","unresolved":false,"context_lines":[{"line_number":59,"context_line":"      /////////"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    function getTimeZones() {"},{"line_number":62,"context_line":"      return ApiService.get(\u0027/settings/timezones/\u0027, {cache: true});"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    function getTimeZoneOffset(timezone) {"}],"source_content_type":"text/javascript","patch_set":18,"id":"3fa7e38b_9b9626f0","line":62,"range":{"start_line":62,"start_character":29,"end_line":62,"end_character":49},"updated":"2019-09-26 13:02:38.000000000","message":"All other Angular-integration APIs are defined under /api/xxxx. The corresponding server side code is found at openstack_dashboard/api/rest/xxxx.py.\nI believe it is better to follow the convention from POV of code maintenance.","commit_id":"fbfea74eb008ec18165b55acb565636f4d6b152d"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"44f2ac0cdff47752e1a5ed6a9744af35e522c525","unresolved":false,"context_lines":[{"line_number":59,"context_line":"      /////////"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    function getTimeZones() {"},{"line_number":62,"context_line":"      return ApiService.get(\u0027/settings/timezones/\u0027, {cache: true});"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    function getTimeZoneOffset(timezone) {"}],"source_content_type":"text/javascript","patch_set":18,"id":"3fa7e38b_d297359c","line":62,"range":{"start_line":62,"start_character":29,"end_line":62,"end_character":49},"in_reply_to":"3fa7e38b_9b9626f0","updated":"2019-11-08 04:50:21.000000000","message":"Done","commit_id":"fbfea74eb008ec18165b55acb565636f4d6b152d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"90abd9f4a130d119b3e08b056bdb3bd2cd06217f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"      /////////"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    function getTimeZones() {"},{"line_number":62,"context_line":"      return ApiService.get(\u0027/settings/timezones/\u0027, {cache: true});"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    function getTimeZoneOffset(timezone) {"}],"source_content_type":"text/javascript","patch_set":18,"id":"3fa7e38b_bcdaf974","line":62,"range":{"start_line":62,"start_character":29,"end_line":62,"end_character":49},"in_reply_to":"3fa7e38b_9b9626f0","updated":"2019-09-26 14:01:56.000000000","message":"Good catch, I missed it!","commit_id":"fbfea74eb008ec18165b55acb565636f4d6b152d"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"b6b81e881c927d0bf7d81bcde0a19cd182230950","unresolved":false,"context_lines":[{"line_number":59,"context_line":"      /////////"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    function getTimeZones() {"},{"line_number":62,"context_line":"      return ApiService.get(\u0027/settings/timezones/\u0027, {cache: true});"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    function getTimeZoneOffset(timezone) {"}],"source_content_type":"text/javascript","patch_set":18,"id":"3fa7e38b_f26006d3","line":62,"range":{"start_line":62,"start_character":29,"end_line":62,"end_character":49},"in_reply_to":"3fa7e38b_bcdaf974","updated":"2019-12-03 03:50:47.000000000","message":"Done","commit_id":"fbfea74eb008ec18165b55acb565636f4d6b152d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"810efe2f287cf8dca5e291f0ab142817078e98e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"3fa7e38b_8e925556","updated":"2019-09-27 08:43:28.000000000","message":"Could you add unit test to cover this new module? (timezone.service.spec.js)","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"44f2ac0cdff47752e1a5ed6a9744af35e522c525","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"3fa7e38b_b2a6390f","in_reply_to":"3fa7e38b_8e925556","updated":"2019-11-08 04:50:21.000000000","message":"Done","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"810efe2f287cf8dca5e291f0ab142817078e98e4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/**"},{"line_number":2,"context_line":" * Copyright 2015 IBM Corp"},{"line_number":3,"context_line":" * (c) Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":" *"},{"line_number":5,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\");"}],"source_content_type":"text/javascript","patch_set":22,"id":"3fa7e38b_2eab2175","line":2,"range":{"start_line":2,"start_character":13,"end_line":2,"end_character":17},"updated":"2019-09-27 08:43:28.000000000","message":"2015 looks odd. 2019?\n\nMore odd one is the copyright itself. Are you from IBM AND HP?","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"44f2ac0cdff47752e1a5ed6a9744af35e522c525","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/**"},{"line_number":2,"context_line":" * Copyright 2015 IBM Corp"},{"line_number":3,"context_line":" * (c) Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":" *"},{"line_number":5,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\");"}],"source_content_type":"text/javascript","patch_set":22,"id":"3fa7e38b_52ab45d6","line":2,"range":{"start_line":2,"start_character":13,"end_line":2,"end_character":17},"in_reply_to":"3fa7e38b_2eab2175","updated":"2019-11-08 04:50:21.000000000","message":"Done","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"179f1d185ad7081a018fe97a85ef17b131eb5062","unresolved":false,"context_lines":[{"line_number":32,"context_line":"     * @param {Object} $q"},{"line_number":33,"context_line":"     * @param {Object} ApiService"},{"line_number":34,"context_line":"     * @description"},{"line_number":35,"context_line":"     * Provides utilities to the cached settings data. This helps"},{"line_number":36,"context_line":"     * with asynchronous data loading."},{"line_number":37,"context_line":"     *"},{"line_number":38,"context_line":"     * The cache in current horizon (Kilo non-single page app) only has a"},{"line_number":39,"context_line":"     * lifetime of the current page. The cache is reloaded every time you change"},{"line_number":40,"context_line":"     * panels. It also happens when you change the region selector at the top"},{"line_number":41,"context_line":"     * of the page, and when you log back in."},{"line_number":42,"context_line":"     *"},{"line_number":43,"context_line":"     * So, at least for now, this seems to be a reliable way that will"},{"line_number":44,"context_line":"     * make only a single request to get user information for a"},{"line_number":45,"context_line":"     * particular page or modal. Making this a service allows it to be injected"},{"line_number":46,"context_line":"     * and used transparently where needed without making every single use of it"},{"line_number":47,"context_line":"     * pass it through as an argument."},{"line_number":48,"context_line":"     * @returns {Object} The service"},{"line_number":49,"context_line":"     */"},{"line_number":50,"context_line":""}],"source_content_type":"text/javascript","patch_set":22,"id":"3fa7e38b_cee84db4","line":47,"range":{"start_line":35,"start_character":5,"end_line":47,"end_character":38},"updated":"2019-09-27 08:45:05.000000000","message":"Is this description correct?","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"44f2ac0cdff47752e1a5ed6a9744af35e522c525","unresolved":false,"context_lines":[{"line_number":32,"context_line":"     * @param {Object} $q"},{"line_number":33,"context_line":"     * @param {Object} ApiService"},{"line_number":34,"context_line":"     * @description"},{"line_number":35,"context_line":"     * Provides utilities to the cached settings data. This helps"},{"line_number":36,"context_line":"     * with asynchronous data loading."},{"line_number":37,"context_line":"     *"},{"line_number":38,"context_line":"     * The cache in current horizon (Kilo non-single page app) only has a"},{"line_number":39,"context_line":"     * lifetime of the current page. The cache is reloaded every time you change"},{"line_number":40,"context_line":"     * panels. It also happens when you change the region selector at the top"},{"line_number":41,"context_line":"     * of the page, and when you log back in."},{"line_number":42,"context_line":"     *"},{"line_number":43,"context_line":"     * So, at least for now, this seems to be a reliable way that will"},{"line_number":44,"context_line":"     * make only a single request to get user information for a"},{"line_number":45,"context_line":"     * particular page or modal. Making this a service allows it to be injected"},{"line_number":46,"context_line":"     * and used transparently where needed without making every single use of it"},{"line_number":47,"context_line":"     * pass it through as an argument."},{"line_number":48,"context_line":"     * @returns {Object} The service"},{"line_number":49,"context_line":"     */"},{"line_number":50,"context_line":""}],"source_content_type":"text/javascript","patch_set":22,"id":"3fa7e38b_72a8c1d8","line":47,"range":{"start_line":35,"start_character":5,"end_line":47,"end_character":38},"in_reply_to":"3fa7e38b_cee84db4","updated":"2019-11-08 04:50:21.000000000","message":"Done","commit_id":"d1e12108637f1d65ffa8fe311ba54771b27e384b"}],"openstack_dashboard/dashboards/settings/user/forms.py":[{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @staticmethod"},{"line_number":52,"context_line":"    def zone_dict():"},{"line_number":53,"context_line":"        zoneDict \u003d {}"},{"line_number":54,"context_line":"        d \u003d datetime(datetime.today().year, 1, 1)"},{"line_number":55,"context_line":"        zones \u003d [(tz, pytz.timezone(tz).localize(d).strftime(\u0027%z\u0027))"},{"line_number":56,"context_line":"                 for tz in pytz.common_timezones]"},{"line_number":57,"context_line":"        zones.sort(key\u003dlambda zone: int(zone[1]))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_103b13ea","line":54,"range":{"start_line":53,"start_character":8,"end_line":54,"end_character":49},"updated":"2019-09-02 05:13:11.000000000","message":"remove","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @staticmethod"},{"line_number":52,"context_line":"    def zone_dict():"},{"line_number":53,"context_line":"        zoneDict \u003d {}"},{"line_number":54,"context_line":"        d \u003d datetime(datetime.today().year, 1, 1)"},{"line_number":55,"context_line":"        zones \u003d [(tz, pytz.timezone(tz).localize(d).strftime(\u0027%z\u0027))"},{"line_number":56,"context_line":"                 for tz in pytz.common_timezones]"},{"line_number":57,"context_line":"        zones.sort(key\u003dlambda zone: int(zone[1]))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_5d59a3fa","line":54,"range":{"start_line":53,"start_character":8,"end_line":54,"end_character":49},"in_reply_to":"7faddb67_103b13ea","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def zone_dict():"},{"line_number":53,"context_line":"        zoneDict \u003d {}"},{"line_number":54,"context_line":"        d \u003d datetime(datetime.today().year, 1, 1)"},{"line_number":55,"context_line":"        zones \u003d [(tz, pytz.timezone(tz).localize(d).strftime(\u0027%z\u0027))"},{"line_number":56,"context_line":"                 for tz in pytz.common_timezones]"},{"line_number":57,"context_line":"        zones.sort(key\u003dlambda zone: int(zone[1]))"},{"line_number":58,"context_line":"        for value in zones:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_f03517f7","line":55,"range":{"start_line":55,"start_character":22,"end_line":55,"end_character":66},"updated":"2019-09-02 05:13:11.000000000","message":"datetime.now(pytz.timezone(tz)).strftime(\u0027%z\u0027)","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"673623b31d92c692a30e740f01b6582219051c2f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def zone_dict():"},{"line_number":53,"context_line":"        zoneDict \u003d {}"},{"line_number":54,"context_line":"        d \u003d datetime(datetime.today().year, 1, 1)"},{"line_number":55,"context_line":"        zones \u003d [(tz, pytz.timezone(tz).localize(d).strftime(\u0027%z\u0027))"},{"line_number":56,"context_line":"                 for tz in pytz.common_timezones]"},{"line_number":57,"context_line":"        zones.sort(key\u003dlambda zone: int(zone[1]))"},{"line_number":58,"context_line":"        for value in zones:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_fd22cfb9","line":55,"range":{"start_line":55,"start_character":22,"end_line":55,"end_character":66},"in_reply_to":"7faddb67_9dd63b27","updated":"2019-09-02 10:12:52.000000000","message":"if have DST (Daylight Saving Time) , how should get it?","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def zone_dict():"},{"line_number":53,"context_line":"        zoneDict \u003d {}"},{"line_number":54,"context_line":"        d \u003d datetime(datetime.today().year, 1, 1)"},{"line_number":55,"context_line":"        zones \u003d [(tz, pytz.timezone(tz).localize(d).strftime(\u0027%z\u0027))"},{"line_number":56,"context_line":"                 for tz in pytz.common_timezones]"},{"line_number":57,"context_line":"        zones.sort(key\u003dlambda zone: int(zone[1]))"},{"line_number":58,"context_line":"        for value in zones:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_9dd63b27","line":55,"range":{"start_line":55,"start_character":22,"end_line":55,"end_character":66},"in_reply_to":"7faddb67_f03517f7","updated":"2019-09-02 08:52:38.000000000","message":"If not localize the time, offset of the timezone just shows incorrectly.","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        d \u003d datetime(datetime.today().year, 1, 1)"},{"line_number":55,"context_line":"        zones \u003d [(tz, pytz.timezone(tz).localize(d).strftime(\u0027%z\u0027))"},{"line_number":56,"context_line":"                 for tz in pytz.common_timezones]"},{"line_number":57,"context_line":"        zones.sort(key\u003dlambda zone: int(zone[1]))"},{"line_number":58,"context_line":"        for value in zones:"},{"line_number":59,"context_line":"            zoneList \u003d list(value)"},{"line_number":60,"context_line":"            zoneDict.update({zoneList[0]: zoneList[1]})"},{"line_number":61,"context_line":"        return zoneDict"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":64,"context_line":"        super(UserSettingsForm, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_f040b761","line":61,"range":{"start_line":57,"start_character":8,"end_line":61,"end_character":23},"updated":"2019-09-02 05:13:11.000000000","message":"return dict(zones)","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        d \u003d datetime(datetime.today().year, 1, 1)"},{"line_number":55,"context_line":"        zones \u003d [(tz, pytz.timezone(tz).localize(d).strftime(\u0027%z\u0027))"},{"line_number":56,"context_line":"                 for tz in pytz.common_timezones]"},{"line_number":57,"context_line":"        zones.sort(key\u003dlambda zone: int(zone[1]))"},{"line_number":58,"context_line":"        for value in zones:"},{"line_number":59,"context_line":"            zoneList \u003d list(value)"},{"line_number":60,"context_line":"            zoneDict.update({zoneList[0]: zoneList[1]})"},{"line_number":61,"context_line":"        return zoneDict"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":64,"context_line":"        super(UserSettingsForm, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_fd716f78","line":61,"range":{"start_line":57,"start_character":8,"end_line":61,"end_character":23},"in_reply_to":"7faddb67_f040b761","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"}],"openstack_dashboard/dashboards/settings/user/views.py":[{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class TimeZoneView(View):"},{"line_number":46,"context_line":"    def get(self, request):"},{"line_number":47,"context_line":"        form_class \u003d user_forms.UserSettingsForm"},{"line_number":48,"context_line":"        return JsonResponse({\u0027timezone_dict\u0027: form_class.zone_dict()})"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_907863c1","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":48},"updated":"2019-09-02 05:13:11.000000000","message":"Maybe the zone_dict function doesn\u0027t need to be implemented in UserSettingsForm","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class TimeZoneView(View):"},{"line_number":46,"context_line":"    def get(self, request):"},{"line_number":47,"context_line":"        form_class \u003d user_forms.UserSettingsForm"},{"line_number":48,"context_line":"        return JsonResponse({\u0027timezone_dict\u0027: form_class.zone_dict()})"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_dd64b3b5","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":48},"in_reply_to":"7faddb67_907863c1","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"}],"openstack_dashboard/static/app/core/openstack-service-api/timezone.service.js":[{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"      return apiService.get(\u0027/settings/timezones/\u0027, {cache: true});"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    function getTimeZone(timezone) {"},{"line_number":66,"context_line":"      var deferred \u003d $q.defer();"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"      function onTimezonesLoaded(response) {"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_906e232a","line":65,"range":{"start_line":65,"start_character":13,"end_line":65,"end_character":24},"updated":"2019-09-02 05:13:11.000000000","message":"getTimeZoneOffset","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"      return apiService.get(\u0027/settings/timezones/\u0027, {cache: true});"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    function getTimeZone(timezone) {"},{"line_number":66,"context_line":"      var deferred \u003d $q.defer();"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"      function onTimezonesLoaded(response) {"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_7d033fbf","line":65,"range":{"start_line":65,"start_character":13,"end_line":65,"end_character":24},"in_reply_to":"7faddb67_906e232a","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":66,"context_line":"      var deferred \u003d $q.defer();"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"      function onTimezonesLoaded(response) {"},{"line_number":69,"context_line":"        var timeZoneDict \u003d response.data.timezone_dict;"},{"line_number":70,"context_line":"        var timeZone;"},{"line_number":71,"context_line":"        if (timezone \u003d\u003d\u003d \u0027GMT\u0027) {"},{"line_number":72,"context_line":"          timeZone \u003d \u0027GMT\u0027;"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_b0755fce","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":24},"updated":"2019-09-02 05:13:11.000000000","message":"offsetDict","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":66,"context_line":"      var deferred \u003d $q.defer();"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"      function onTimezonesLoaded(response) {"},{"line_number":69,"context_line":"        var timeZoneDict \u003d response.data.timezone_dict;"},{"line_number":70,"context_line":"        var timeZone;"},{"line_number":71,"context_line":"        if (timezone \u003d\u003d\u003d \u0027GMT\u0027) {"},{"line_number":72,"context_line":"          timeZone \u003d \u0027GMT\u0027;"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_9d087bd9","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":24},"in_reply_to":"7faddb67_b0755fce","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"      function onTimezonesLoaded(response) {"},{"line_number":69,"context_line":"        var timeZoneDict \u003d response.data.timezone_dict;"},{"line_number":70,"context_line":"        var timeZone;"},{"line_number":71,"context_line":"        if (timezone \u003d\u003d\u003d \u0027GMT\u0027) {"},{"line_number":72,"context_line":"          timeZone \u003d \u0027GMT\u0027;"},{"line_number":73,"context_line":"        } else if (timezone \u003d\u003d\u003d \u0027UTC\u0027) {"},{"line_number":74,"context_line":"          timeZone \u003d \u0027UTC\u0027;"},{"line_number":75,"context_line":"        } else {"},{"line_number":76,"context_line":"          timeZone \u003d timezone.replace(\"\\\"\",\"\").replace(\"\\\"\",\"\");"},{"line_number":77,"context_line":"        }"},{"line_number":78,"context_line":"        deferred.resolve(timeZoneDict[timeZone]);"},{"line_number":79,"context_line":"      }"},{"line_number":80,"context_line":""}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_f0675723","line":77,"range":{"start_line":70,"start_character":8,"end_line":77,"end_character":9},"updated":"2019-09-02 05:13:11.000000000","message":"timezone \u003d timezone || \u0027UTC\u0027;","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"      function onTimezonesLoaded(response) {"},{"line_number":69,"context_line":"        var timeZoneDict \u003d response.data.timezone_dict;"},{"line_number":70,"context_line":"        var timeZone;"},{"line_number":71,"context_line":"        if (timezone \u003d\u003d\u003d \u0027GMT\u0027) {"},{"line_number":72,"context_line":"          timeZone \u003d \u0027GMT\u0027;"},{"line_number":73,"context_line":"        } else if (timezone \u003d\u003d\u003d \u0027UTC\u0027) {"},{"line_number":74,"context_line":"          timeZone \u003d \u0027UTC\u0027;"},{"line_number":75,"context_line":"        } else {"},{"line_number":76,"context_line":"          timeZone \u003d timezone.replace(\"\\\"\",\"\").replace(\"\\\"\",\"\");"},{"line_number":77,"context_line":"        }"},{"line_number":78,"context_line":"        deferred.resolve(timeZoneDict[timeZone]);"},{"line_number":79,"context_line":"      }"},{"line_number":80,"context_line":""}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_3d22a755","line":77,"range":{"start_line":70,"start_character":8,"end_line":77,"end_character":9},"in_reply_to":"7faddb67_f0675723","updated":"2019-09-02 08:52:38.000000000","message":"The \u0027django_timezone\u0027 in cookies has two quotation marks, just like this: \"\"Europe/Athens\"\". So it needs to wipe off one quotation marks.","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        } else {"},{"line_number":76,"context_line":"          timeZone \u003d timezone.replace(\"\\\"\",\"\").replace(\"\\\"\",\"\");"},{"line_number":77,"context_line":"        }"},{"line_number":78,"context_line":"        deferred.resolve(timeZoneDict[timeZone]);"},{"line_number":79,"context_line":"      }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"      function onTimezonesFailure(message) {"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_d0725be3","line":78,"range":{"start_line":78,"start_character":25,"end_line":78,"end_character":37},"updated":"2019-09-02 05:13:11.000000000","message":"offsetDict","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"086e1d7235bc6fed2a45763c2d44ca73064a48e7","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        } else {"},{"line_number":76,"context_line":"          timeZone \u003d timezone.replace(\"\\\"\",\"\").replace(\"\\\"\",\"\");"},{"line_number":77,"context_line":"        }"},{"line_number":78,"context_line":"        deferred.resolve(timeZoneDict[timeZone]);"},{"line_number":79,"context_line":"      }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"      function onTimezonesFailure(message) {"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_106d5302","line":78,"range":{"start_line":78,"start_character":38,"end_line":78,"end_character":46},"updated":"2019-09-02 05:13:11.000000000","message":"timezone","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        } else {"},{"line_number":76,"context_line":"          timeZone \u003d timezone.replace(\"\\\"\",\"\").replace(\"\\\"\",\"\");"},{"line_number":77,"context_line":"        }"},{"line_number":78,"context_line":"        deferred.resolve(timeZoneDict[timeZone]);"},{"line_number":79,"context_line":"      }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"      function onTimezonesFailure(message) {"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_5d0e83e4","line":78,"range":{"start_line":78,"start_character":38,"end_line":78,"end_character":46},"in_reply_to":"7faddb67_106d5302","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":29979,"name":"hutianhao27","email":"hutianhao27@126.com","username":"hth"},"change_message_id":"f68cd23aba25798a546d25e783513445266299c8","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        } else {"},{"line_number":76,"context_line":"          timeZone \u003d timezone.replace(\"\\\"\",\"\").replace(\"\\\"\",\"\");"},{"line_number":77,"context_line":"        }"},{"line_number":78,"context_line":"        deferred.resolve(timeZoneDict[timeZone]);"},{"line_number":79,"context_line":"      }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"      function onTimezonesFailure(message) {"}],"source_content_type":"text/javascript","patch_set":4,"id":"7faddb67_3d0947db","line":78,"range":{"start_line":78,"start_character":25,"end_line":78,"end_character":37},"in_reply_to":"7faddb67_d0725be3","updated":"2019-09-02 08:52:38.000000000","message":"Done","commit_id":"258e6583cb11ddab9359468b324c6137648d398a"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"673623b31d92c692a30e740f01b6582219051c2f","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"      function onTimezonesLoaded(response) {"},{"line_number":69,"context_line":"        var offsetDict \u003d response.data.timezone_dict;"},{"line_number":70,"context_line":"        timezone \u003d timezone.replace(\"\\\"\",\"\").replace(\"\\\"\",\"\") || \u0027UTC\u0027;"},{"line_number":71,"context_line":"        deferred.resolve(offsetDict[timezone]);"},{"line_number":72,"context_line":"      }"},{"line_number":73,"context_line":""}],"source_content_type":"text/javascript","patch_set":7,"id":"7faddb67_e0c0e24c","line":70,"range":{"start_line":70,"start_character":27,"end_line":70,"end_character":61},"updated":"2019-09-02 10:12:52.000000000","message":"timezone \u003d timezone || \u0027UTC\u0027;","commit_id":"b1d959fac4dadf515fba92d03437b10d18549292"},{"author":{"_account_id":27809,"name":"hanxiang gao","email":"gaohanxiang@126.com","username":"gao.hanxiang"},"change_message_id":"673623b31d92c692a30e740f01b6582219051c2f","unresolved":false,"context_lines":[{"line_number":76,"context_line":"      }"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      service.getTimeZones()"},{"line_number":79,"context_line":"      .then(onTimezonesLoaded, onTimezonesFailure);"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"      return deferred.promise;"},{"line_number":82,"context_line":"    }"}],"source_content_type":"text/javascript","patch_set":7,"id":"7faddb67_c0ea86d7","line":79,"range":{"start_line":79,"start_character":5,"end_line":79,"end_character":6},"updated":"2019-09-02 10:12:52.000000000","message":"2 space","commit_id":"b1d959fac4dadf515fba92d03437b10d18549292"}]}
