Skip to content

Commit 2bb76ad

Browse files
committed
fix: Task categorised into tags even if no deadline present
This was causing empty entries under tags.
1 parent 0cde108 commit 2bb76ad

File tree

1 file changed

+53
-50
lines changed

1 file changed

+53
-50
lines changed

lua/neorg/modules/external/agenda/module.lua

Lines changed: 53 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -119,64 +119,69 @@ module.private = {
119119
--- @param curr_time integer
120120
--- @return table
121121
format_task_line = function(task, curr_time)
122-
local task_time = os.time({
123-
year = tonumber(task.deadline.year) or 2024,
124-
month = tonumber(task.deadline.month) or 8,
125-
day = tonumber(task.deadline.day) or 12,
126-
})
127-
128-
local is_today = (task.deadline.year - tonumber(os.date("%Y")) == 0) and
122+
local time_str = ""
123+
if task.deadline then
124+
local task_time = os.time({
125+
year = tonumber(task.deadline.year) or 2024,
126+
month = tonumber(task.deadline.month) or 8,
127+
day = tonumber(task.deadline.day) or 12,
128+
})
129+
130+
local is_today = (task.deadline.year - tonumber(os.date("%Y")) == 0) and
129131
(task.deadline.month - tonumber(os.date("%m")) == 0) and
130132
(task.deadline.day - tonumber(os.date("%d")) == 0)
131133

132-
local years_diff = nil
133-
local months_diff = nil
134-
local days_diff = nil
135-
local time_str = ""
136-
if is_today then
137-
years_diff = os.date("%Y", curr_time) - os.date("%Y", task_time)
138-
months_diff = os.date("%m", curr_time) - os.date("%m", task_time)
139-
days_diff = os.date("%d", curr_time) - os.date("%d", task_time)
140-
141-
time_str = "*"
142-
time_str = time_str .. "{:" .. task.filename .. ":" .. string.gsub(task.task, "%b()", "") .. "}["
143-
time_str = time_str .. task.deadline.hour .. ":" .. task.deadline.minute .. "]*"
144-
else
145-
if task_time > curr_time then
146-
years_diff = os.date("%Y", task_time) - os.date("%Y", curr_time)
147-
months_diff = os.date("%m", task_time) - os.date("%m", curr_time)
148-
days_diff = os.date("%d", task_time) - os.date("%d", curr_time)
149-
else
134+
local years_diff = nil
135+
local months_diff = nil
136+
local days_diff = nil
137+
if is_today then
150138
years_diff = os.date("%Y", curr_time) - os.date("%Y", task_time)
151139
months_diff = os.date("%m", curr_time) - os.date("%m", task_time)
152140
days_diff = os.date("%d", curr_time) - os.date("%d", task_time)
153-
end
154141

155-
if days_diff < 0 then
156-
months_diff = months_diff - 1
157-
days_diff = days_diff + os.date("%d", os.time({
158-
year = os.date("%Y", task_time),
159-
month = os.date("%m", task_time) + 1,
160-
day = 0
161-
}))
162-
end
142+
time_str = "*"
143+
time_str = time_str .. "{:" .. task.filename .. ":" .. string.gsub(task.task, "%b()", "") .. "}["
144+
time_str = time_str .. task.deadline.hour .. ":" .. task.deadline.minute .. "]*"
145+
else
146+
if task_time > curr_time then
147+
years_diff = os.date("%Y", task_time) - os.date("%Y", curr_time)
148+
months_diff = os.date("%m", task_time) - os.date("%m", curr_time)
149+
days_diff = os.date("%d", task_time) - os.date("%d", curr_time)
150+
else
151+
years_diff = os.date("%Y", curr_time) - os.date("%Y", task_time)
152+
months_diff = os.date("%m", curr_time) - os.date("%m", task_time)
153+
days_diff = os.date("%d", curr_time) - os.date("%d", task_time)
154+
end
163155

164-
if months_diff < 0 then
165-
years_diff = years_diff - 1
166-
months_diff = months_diff + 12
167-
end
156+
if days_diff < 0 then
157+
months_diff = months_diff - 1
158+
days_diff = days_diff + os.date("%d", os.time({
159+
year = os.date("%Y", task_time),
160+
month = os.date("%m", task_time) + 1,
161+
day = 0
162+
}))
163+
end
164+
165+
if months_diff < 0 then
166+
years_diff = years_diff - 1
167+
months_diff = months_diff + 12
168+
end
168169

169-
time_str = "*{:" .. task.filename .. ":" .. string.gsub(task.task, "^(%*+)%s*%b()%s*", "%1 ") .. "}["
170+
time_str = "*{:" .. task.filename .. ":" .. string.gsub(task.task, "^(%*+)%s*%b()%s*", "%1 ") .. "}["
170171

171-
if years_diff > 0 then
172-
time_str = time_str .. years_diff .. "y"
173-
end
174-
if months_diff > 0 then
175-
time_str = time_str .. months_diff .. "m"
176-
end
177-
if days_diff > 0 then
178-
time_str = time_str .. days_diff .. "d]*"
172+
if years_diff > 0 then
173+
time_str = time_str .. years_diff .. "y"
174+
end
175+
if months_diff > 0 then
176+
time_str = time_str .. months_diff .. "m"
177+
end
178+
if days_diff > 0 then
179+
time_str = time_str .. days_diff .. "d]*"
180+
end
179181
end
182+
else
183+
time_str = "*"
184+
time_str = time_str .. "{:" .. task.filename .. ":" .. string.gsub(task.task, "%b()", "") .. "}[" .. "unscheduled" .. "]*"
180185
end
181186

182187
local task_state_str = "\\[" .. task.state .. "\\] " .. (task.task):match("%)%s*(.+)")
@@ -204,9 +209,7 @@ module.private = {
204209
insert_task_lines = function(buf_lines, header, tasks, curr_time)
205210
table.insert(buf_lines, "** " .. header)
206211
for _, task in ipairs(tasks) do
207-
if task.deadline then
208-
table.insert(buf_lines, module.private.format_task_line(task, curr_time))
209-
end
212+
table.insert(buf_lines, module.private.format_task_line(task, curr_time))
210213
end
211214
table.insert(buf_lines, "")
212215
table.insert(buf_lines, "")

0 commit comments

Comments
 (0)