mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
from . import QtCore, TreeModel
|
|
from . import Node
|
|
from . import awesome, style
|
|
|
|
|
|
class TasksTemplateModel(TreeModel):
|
|
"""A model listing the tasks combined for a list of assets"""
|
|
|
|
COLUMNS = ["Tasks"]
|
|
|
|
def __init__(self, selectable=True):
|
|
super(TasksTemplateModel, self).__init__()
|
|
self.selectable = selectable
|
|
self.icon = awesome.icon(
|
|
'fa.calendar-check-o',
|
|
color=style.colors.default
|
|
)
|
|
|
|
def set_tasks(self, tasks):
|
|
"""Set assets to track by their database id
|
|
|
|
Arguments:
|
|
asset_ids (list): List of asset ids.
|
|
|
|
"""
|
|
|
|
self.clear()
|
|
|
|
# let cleared task view if no tasks are available
|
|
if len(tasks) == 0:
|
|
return
|
|
|
|
self.beginResetModel()
|
|
|
|
for task in tasks:
|
|
node = Node({
|
|
"Tasks": task,
|
|
"icon": self.icon
|
|
})
|
|
self.add_child(node)
|
|
|
|
self.endResetModel()
|
|
|
|
def flags(self, index):
|
|
if self.selectable is False:
|
|
return QtCore.Qt.ItemIsEnabled
|
|
else:
|
|
return (
|
|
QtCore.Qt.ItemIsEnabled |
|
|
QtCore.Qt.ItemIsSelectable
|
|
)
|
|
|
|
def data(self, index, role):
|
|
|
|
if not index.isValid():
|
|
return
|
|
|
|
# Add icon to the first column
|
|
if role == QtCore.Qt.DecorationRole:
|
|
if index.column() == 0:
|
|
return index.internalPointer()['icon']
|
|
|
|
return super(TasksTemplateModel, self).data(index, role)
|