mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-09 13:25:11 +00:00
Include scheduled date, deadline date and close date in repr of org node
- Now that excluding the times line from the raw body of node, show it in repr so user can see it for reference - But the model doesn't need to see it for it's embeddings to be confused by
This commit is contained in:
@@ -125,7 +125,11 @@ def makelist(filename):
|
|||||||
propdict[prop_srch.group(1)] = prop_srch.group(2)
|
propdict[prop_srch.group(1)] = prop_srch.group(2)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
cd_re = re.search(r'CLOSED:\s*\[([0-9]+)\-([0-9]+)\-([0-9]+)', line)
|
cd_re = re.search(r'CLOSED:\s*\[([0-9]{4})-([0-9]{2})-([0-9]{2})', line)
|
||||||
|
if cd_re:
|
||||||
|
closed_date = datetime.date(int(cd_re.group(1)),
|
||||||
|
int(cd_re.group(2)),
|
||||||
|
int(cd_re.group(3)) )
|
||||||
sd_re = re.search(r'SCHEDULED:\s*<([0-9]+)\-([0-9]+)\-([0-9]+)', line)
|
sd_re = re.search(r'SCHEDULED:\s*<([0-9]+)\-([0-9]+)\-([0-9]+)', line)
|
||||||
if sd_re:
|
if sd_re:
|
||||||
sched_date = datetime.date(int(sd_re.group(1)),
|
sched_date = datetime.date(int(sd_re.group(1)),
|
||||||
@@ -148,6 +152,8 @@ def makelist(filename):
|
|||||||
thisNode.setScheduled(sched_date)
|
thisNode.setScheduled(sched_date)
|
||||||
if deadline_date:
|
if deadline_date:
|
||||||
thisNode.setDeadline(deadline_date)
|
thisNode.setDeadline(deadline_date)
|
||||||
|
if closed_date:
|
||||||
|
thisNode.setClosed(closed_date)
|
||||||
nodelist.append( thisNode )
|
nodelist.append( thisNode )
|
||||||
|
|
||||||
# using the list of TODO keywords found in the file
|
# using the list of TODO keywords found in the file
|
||||||
@@ -193,6 +199,7 @@ class Orgnode(object):
|
|||||||
self.prty = "" # empty of A, B or C
|
self.prty = "" # empty of A, B or C
|
||||||
self.scheduled = "" # Scheduled date
|
self.scheduled = "" # Scheduled date
|
||||||
self.deadline = "" # Deadline date
|
self.deadline = "" # Deadline date
|
||||||
|
self.closed = "" # Closed date
|
||||||
self.properties = dict()
|
self.properties = dict()
|
||||||
for t in alltags:
|
for t in alltags:
|
||||||
self.tags[t] = ''
|
self.tags[t] = ''
|
||||||
@@ -325,6 +332,18 @@ class Orgnode(object):
|
|||||||
"""
|
"""
|
||||||
return self.deadline
|
return self.deadline
|
||||||
|
|
||||||
|
def setClosed(self, dateval):
|
||||||
|
"""
|
||||||
|
Set the closed date using the supplied date object
|
||||||
|
"""
|
||||||
|
self.closed = dateval
|
||||||
|
|
||||||
|
def Closed(self):
|
||||||
|
"""
|
||||||
|
Return the closed date object or null if nonexistent
|
||||||
|
"""
|
||||||
|
return self.closed
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
"""
|
"""
|
||||||
Print the level, heading text and tag of a node and the body
|
Print the level, heading text and tag of a node and the body
|
||||||
@@ -332,7 +351,7 @@ class Orgnode(object):
|
|||||||
"""
|
"""
|
||||||
# This method is not completed yet.
|
# This method is not completed yet.
|
||||||
n = ''
|
n = ''
|
||||||
for i in range(0, self.level):
|
for _ in range(0, self.level):
|
||||||
n = n + '*'
|
n = n + '*'
|
||||||
n = n + ' ' + self.todo + ' '
|
n = n + ' ' + self.todo + ' '
|
||||||
if self.prty:
|
if self.prty:
|
||||||
@@ -344,9 +363,19 @@ class Orgnode(object):
|
|||||||
n = n + ':' + t
|
n = n + ':' + t
|
||||||
closecolon = ':'
|
closecolon = ':'
|
||||||
n = n + closecolon
|
n = n + closecolon
|
||||||
# Need to output Scheduled Date, Deadline Date, property tags The
|
|
||||||
# following will output the text used to construct the object
|
|
||||||
n = n + "\n"
|
n = n + "\n"
|
||||||
|
|
||||||
|
# Output Closed Date, Scheduled Date, Deadline Date
|
||||||
|
if self.closed:
|
||||||
|
n = n + f'CLOSED: [{self.closed.strftime("%Y-%m-%d %a")}] '
|
||||||
|
if self.scheduled:
|
||||||
|
n = n + f'SCHEDULED: <{self.scheduled.strftime("%Y-%m-%d %a")}> '
|
||||||
|
if self.deadline:
|
||||||
|
n = n + f'DEADLINE: <{self.deadline.strftime("%Y-%m-%d %a")}> '
|
||||||
|
if self.closed or self.scheduled or self.deadline:
|
||||||
|
n = n + '\n'
|
||||||
|
|
||||||
|
# Ouput Property Drawer
|
||||||
n = n + ":PROPERTIES:\n"
|
n = n + ":PROPERTIES:\n"
|
||||||
for key, value in self.properties.items():
|
for key, value in self.properties.items():
|
||||||
n = n + f":{key}: {value}\n"
|
n = n + f":{key}: {value}\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user