Merge pull request #211 from aceisace/hotfix/todoist-module

- Fix an issue where the moduel woud crash if there were too many todos and not enough space to display them
- Fix an issue where deleting a group containing todos would cause the modue to crash
This commit is contained in:
Ace 2022-02-09 22:38:24 +01:00 committed by GitHub
commit e9b395bf99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 26 deletions

View File

@ -14,7 +14,7 @@
<a href="https://github.com/aceisace/Inkycal"><img alt="python" src="https://img.shields.io/badge/python-%3E3.7-lightgrey"></a>
</p>
Inykcal is a software written in python for selected E-Paper displays. It converts these displays into useful information dashboards. It's open-source, free for personal use, fully modular and user-friendly. Despite all this, Inkycal can run well even on the Raspberry Pi Zero. Oh, and it's open for third-party modules! Hooray!
Inkycal is a software written in python for selected E-Paper displays. It converts these displays into useful information dashboards. It's open-source, free for personal use, fully modular and user-friendly. Despite all this, Inkycal can run well even on the Raspberry Pi Zero. Oh, and it's open for third-party modules! Hooray!
## Main features
Inkycal is fully modular, you can mix and match any modules you like and configure them on the web-ui. For now, these following built-in modules are supported:

View File

@ -136,11 +136,14 @@ class Todoist(inkycal_module):
'name':task['content'],
'due':task['due']['string'] if task['due'] != None else "",
'priority':task['priority'],
'project':all_projects[ task['project_id'] ]
'project':all_projects[ task['project_id' ] ] if task['project_id'] in all_projects else "deleted"
}
for task in tasks]
# logger.debug(f'simplified: {simplified}')
# remove groups that have been deleted
simplified = [task for task in simplified if task['project'] != "deleted"]
logger.debug(f'simplified: {simplified}')
# Get maximum width of project names for selected font
project_width = int(max([
@ -163,8 +166,9 @@ class Todoist(inkycal_module):
# Add the parsed todos on the image
cursor = 0
for name, todos in grouped.items():
if todos != []:
if todos:
for todo in todos:
if cursor < len(line_positions):
line_x, line_y = line_positions[cursor]
# Add todo project name
@ -189,7 +193,7 @@ class Todoist(inkycal_module):
todo['name'], font=self.font, alignment='left')
cursor += 1
if cursor > max_lines:
else:
logger.error('More todos than available lines')
break