use user full name if available

This commit is contained in:
Jakub Trllo 2024-05-29 19:37:57 +02:00
parent 7edfd5f2f1
commit 88b73e0a00
5 changed files with 52 additions and 7 deletions

View file

@ -536,6 +536,16 @@ class AbstractWorkfilesFrontend(AbstractWorkfilesCommon):
pass
@abstractmethod
def get_user_items_by_name(self):
"""Get user items available on AYON server.
Returns:
Dict[str, UserItem]: User items by username.
"""
pass
# Host information
@abstractmethod
def get_workfile_extensions(self):

View file

@ -19,6 +19,7 @@ from ayon_core.tools.common_models import (
HierarchyModel,
HierarchyExpectedSelection,
ProjectsModel,
UsersModel,
)
from .abstract import (
@ -161,6 +162,7 @@ class BaseWorkfileController(
self._save_is_enabled = True
# Expected selected folder and task
self._users_model = self._create_users_model()
self._expected_selection = self._create_expected_selection_obj()
self._selection_model = self._create_selection_model()
self._projects_model = self._create_projects_model()
@ -176,6 +178,12 @@ class BaseWorkfileController(
def is_host_valid(self):
return self._host_is_valid
def _create_users_model(self):
return UsersModel(self)
def _create_workfiles_model(self):
return WorkfilesModel(self)
def _create_expected_selection_obj(self):
return WorkfilesToolExpectedSelection(self)
@ -188,9 +196,6 @@ class BaseWorkfileController(
def _create_hierarchy_model(self):
return HierarchyModel(self)
def _create_workfiles_model(self):
return WorkfilesModel(self)
@property
def event_system(self):
"""Inner event system for workfiles tool controller.
@ -272,6 +277,9 @@ class BaseWorkfileController(
{"enabled": enabled}
)
def get_user_items_by_name(self):
return self._users_model.get_user_items_by_name()
# Host information
def get_workfile_extensions(self):
host = self._host

View file

@ -192,6 +192,8 @@ class PublishedFilesModel(QtGui.QStandardItemModel):
self._remove_empty_item()
self._remove_missing_context_item()
user_items_by_name = self._controller.get_user_items_by_name()
items_to_remove = set(self._items_by_id.keys())
new_items = []
for file_item in file_items:
@ -212,9 +214,15 @@ class PublishedFilesModel(QtGui.QStandardItemModel):
else:
flags = QtCore.Qt.NoItemFlags
author = file_item.created_by
user_item = user_items_by_name.get(author)
if user_item is not None and user_item.full_name:
author = user_item.full_name
item.setFlags(flags)
item.setData(file_item.filepath, FILEPATH_ROLE)
item.setData(file_item.created_by, AUTHOR_ROLE)
item.setData(author, AUTHOR_ROLE)
item.setData(file_item.modified, DATE_MODIFIED_ROLE)
self._items_by_id[repre_id] = item

View file

@ -193,6 +193,7 @@ class WorkAreaFilesModel(QtGui.QStandardItemModel):
return
self._remove_empty_item()
self._remove_missing_context_item()
user_items_by_name = self._controller.get_user_items_by_name()
items_to_remove = set(self._items_by_filename.keys())
new_items = []
@ -212,8 +213,13 @@ class WorkAreaFilesModel(QtGui.QStandardItemModel):
item.setData(file_item.filename, QtCore.Qt.DisplayRole)
item.setData(file_item.filename, FILENAME_ROLE)
updated_by = file_item.updated_by
user_item = user_items_by_name.get(updated_by)
if user_item is not None and user_item.full_name:
updated_by = user_item.full_name
item.setData(file_item.filepath, FILEPATH_ROLE)
item.setData(file_item.updated_by, AUTHOR_ROLE)
item.setData(updated_by, AUTHOR_ROLE)
item.setData(file_item.modified, DATE_MODIFIED_ROLE)
self._items_by_filename[file_item.filename] = item

View file

@ -147,17 +147,30 @@ class SidePanelWidget(QtWidgets.QWidget):
workfile_info.creation_time)
modification_time = datetime.datetime.fromtimestamp(
workfile_info.modification_time)
user_items_by_name = self._controller.get_user_items_by_name()
def convert_username(username):
user_item = user_items_by_name.get(username)
if user_item is not None and user_item.full_name:
return user_item.full_name
return username
created_lines = [
creation_time.strftime(datetime_format)
]
if workfile_info.created_by:
created_lines.insert(0, workfile_info.created_by)
created_lines.insert(
0, convert_username(workfile_info.created_by)
)
modified_lines = [
modification_time.strftime(datetime_format)
]
if workfile_info.updated_by:
modified_lines.insert(0, workfile_info.updated_by)
modified_lines.insert(
0, convert_username(workfile_info.updated_by)
)
lines = (
"<b>Size:</b>",