diff --git a/openpype/tools/publisher/control.py b/openpype/tools/publisher/control.py index 125d93b6fd..23456579ca 100644 --- a/openpype/tools/publisher/control.py +++ b/openpype/tools/publisher/control.py @@ -11,6 +11,7 @@ import inspect from abc import ABCMeta, abstractmethod import six +import arrow import pyblish.api from openpype import AYON_SERVER_ENABLED @@ -287,7 +288,7 @@ class PublishReportMaker: def get_report(self, publish_plugins=None): """Report data with all details of current state.""" - now = datetime.datetime.now() + now = arrow.utcnow().to("local") instances_details = {} for instance in self._all_instances_by_id.values(): instances_details[instance.id] = self._extract_instance_data( @@ -337,7 +338,7 @@ class PublishReportMaker: "context": self._extract_context_data(self._current_context), "crashed_file_paths": crashed_file_paths, "id": uuid.uuid4().hex, - "created_at": now.strftime("%Y-%m-%d %H:%M:%S"), + "created_at": now.isoformat(), "report_version": "1.0.1", } diff --git a/openpype/tools/publisher/publish_report_viewer/window.py b/openpype/tools/publisher/publish_report_viewer/window.py index 8422f3aeab..f9c8c05802 100644 --- a/openpype/tools/publisher/publish_report_viewer/window.py +++ b/openpype/tools/publisher/publish_report_viewer/window.py @@ -2,9 +2,9 @@ import os import json import six import uuid -import datetime import appdirs +import arrow from qtpy import QtWidgets, QtCore, QtGui from openpype import style @@ -56,10 +56,8 @@ class PublishReportItem: if os.path.exists(report_path): file_modified = os.path.getmtime(report_path) - created_at_obj = datetime.datetime.strptime( - content["created_at"], "%Y-%m-%d %H:%M:%S" - ) - created_at = created_at_obj.timestamp() + created_at_obj = arrow.get(content["created_at"]).to("local") + created_at = created_at_obj.float_timestamp self.content = content self.report_path = report_path @@ -243,10 +241,10 @@ class PublishReportItem: # Auto fix 'created_at', use file modification time if it is not set # or current time if modification could not be received. if file_modified is not None: - created_at_obj = datetime.datetime.fromtimestamp(file_modified) + created_at_obj = arrow.Arrow.fromtimestamp(file_modified) else: - created_at_obj = datetime.datetime.now() - content["created_at"] = created_at_obj.strftime("%Y-%m-%d %H:%M:%S") + created_at_obj = arrow.utcnow() + content["created_at"] = created_at_obj.to("local").isoformat() return True @@ -320,9 +318,8 @@ class LoadedFilesModel(QtGui.QStandardItemModel): def refresh(self): root_item = self.invisibleRootItem() - if root_item.rowCount(): + if root_item.rowCount() > 0: root_item.removeRows(0, root_item.rowCount()) - self._items_by_id = {} self._report_items_by_id = {}