Compare commits
1 Commits
master
...
assignee-d
| Author | SHA1 | Date | |
|---|---|---|---|
|
2e178da9e3
|
@@ -1,4 +1,5 @@
|
||||
import dateutil
|
||||
from datetime import timezone
|
||||
import dateutil.parser
|
||||
from html.parser import HTMLParser
|
||||
import sys
|
||||
|
||||
@@ -50,12 +51,15 @@ class Task(AsanaObject):
|
||||
return ""
|
||||
|
||||
def due_date(self):
|
||||
if 'due_at' in self.object_dict:
|
||||
return dateutil.parser.parse(self.object_dict['due_at'])
|
||||
elif 'due_one' in self.object_dict:
|
||||
return dateutil.parser.parse(self.object_dict['due_on'])
|
||||
if 'due_at' in self.object_dict and self.object_dict['due_at']:
|
||||
datetime = dateutil.parser.parse(self.object_dict['due_at'])
|
||||
datetime = datetime.replace(tzinfo=timezone.utc).astimezone(tz=None)
|
||||
return datetime.strftime('%b %d, %Y %H:%M')
|
||||
elif 'due_on' in self.object_dict and self.object_dict['due_on']:
|
||||
date = dateutil.parser.parse(self.object_dict['due_on'])
|
||||
date.strftime('%b %d, %Y')
|
||||
else:
|
||||
return None
|
||||
return 'no due date'
|
||||
|
||||
def parent(self):
|
||||
if 'parent' in self.object_dict and self.object_dict['parent']:
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import urwid
|
||||
from datetime import date, datetime
|
||||
|
||||
from ui.task_list import TaskRow
|
||||
|
||||
class TaskDetails(object):
|
||||
def __init__(self, task, stories, on_subtask_click, on_project_click,
|
||||
on_comment):
|
||||
on_comment, on_assignee_click, on_due_date_click):
|
||||
self.task = task
|
||||
self.on_subtask_click = on_subtask_click,
|
||||
self.on_project_click = on_project_click,
|
||||
@@ -15,6 +16,8 @@ class TaskDetails(object):
|
||||
urwid.Divider('-'),
|
||||
Memberships(task, on_subtask_click, on_project_click).component(),
|
||||
urwid.Divider('-'),
|
||||
Assignee(task, on_assignee_click).component(),
|
||||
DueDate(task, on_due_date_click).component(),
|
||||
CustomFields(task).component(),
|
||||
urwid.Divider('='),
|
||||
urwid.Text(task.description()),
|
||||
@@ -38,6 +41,44 @@ class TaskDetails(object):
|
||||
def component(self):
|
||||
return self.details
|
||||
|
||||
class Assignee(object):
|
||||
def __init__(self, task, on_click):
|
||||
if task.assignee():
|
||||
assignee = task.assignee().name()
|
||||
else:
|
||||
assignee = "unassigned"
|
||||
|
||||
|
||||
self.assignee = urwid.SelectableIcon([('bold', 'Assignee: '), ('', assignee)])
|
||||
|
||||
self.on_click = on_click
|
||||
#urwid.connect_signal(self.assignee, 'keypress', self.on_keypress)
|
||||
|
||||
def component(self):
|
||||
return self.assignee
|
||||
|
||||
def on_keypress(self, size, key):
|
||||
if key == "enter":
|
||||
self.on_click()
|
||||
else:
|
||||
return key
|
||||
|
||||
class DueDate(object):
|
||||
def __init__(self, task, on_click):
|
||||
self.due_date = urwid.SelectableIcon([('bold', 'Due: '), ('', task.due_date())])
|
||||
|
||||
self.on_click = on_click
|
||||
#urwid.connect_signal(self.due_date, 'keypress', self.on_keypress)
|
||||
|
||||
def component(self):
|
||||
return self.due_date
|
||||
|
||||
def on_keypress(self, size, key):
|
||||
if key == "enter":
|
||||
self.on_click()
|
||||
else:
|
||||
return key
|
||||
|
||||
class Memberships(object):
|
||||
def __init__(self, task, on_subtask_click, on_project_click):
|
||||
self.on_project_click = on_project_click
|
||||
|
||||
Reference in New Issue
Block a user