Bugfix where manually changing the order of sequential tasks would not remove old labels.

pull/30/head
Hoffelhas 2023-01-08 17:11:47 +01:00
parent 97a7073f1c
commit b2f2fa270e
1 changed files with 26 additions and 1 deletions

View File

@ -1017,7 +1017,13 @@ def autodoist_magic(args, api, connection):
hierarchy_types = [task_type, hierarchy_types = [task_type,
section_type, project_type] section_type, project_type]
hierarchy_boolean = [type(x) != type(None) hierarchy_boolean = [type(x) != type(None)
for x in hierarchy_types] for x in hierarchy_types]
# If task has no type, but has a label, most likely the order has been changed by user. Remove data.
if not True in hierarchy_boolean and next_action_label in task.labels:
remove_label(task, next_action_label, overview_task_ids, overview_task_labels)
db_update_value(connection, task, 'task_type', None)
db_update_value(connection, task, 'parent_type', None)
# If it is a parentless task, set task type based on hierarchy # If it is a parentless task, set task type based on hierarchy
if task.parent_id == 0: if task.parent_id == 0:
@ -1043,6 +1049,10 @@ def autodoist_magic(args, api, connection):
if not first_found[1]: if not first_found[1]:
add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels) add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels)
elif next_action_label in task.labels:
# Probably the task has been manually moved, so if it has a label, let's remove it.
remove_label(task, next_action_label, overview_task_ids, overview_task_labels)
elif dominant_type[1] == 'p': elif dominant_type[1] == 'p':
add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels) add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels)
@ -1051,6 +1061,10 @@ def autodoist_magic(args, api, connection):
if dominant_type[1] == 's': if dominant_type[1] == 's':
if not first_found[1]: if not first_found[1]:
add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels) add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels)
elif next_action_label in task.labels:
# Probably the task has been manually moved, so if it has a label, let's remove it.
remove_label(task, next_action_label, overview_task_ids, overview_task_labels)
elif dominant_type[1] == 'p': elif dominant_type[1] == 'p':
add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels) add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels)
@ -1060,6 +1074,10 @@ def autodoist_magic(args, api, connection):
if not first_found[1]: if not first_found[1]:
add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels) add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels)
elif next_action_label in task.labels:
# Probably the task has been manually moved, so if it has a label, let's remove it.
remove_label(task, next_action_label, overview_task_ids, overview_task_labels)
elif dominant_type[0] == 'x' and dominant_type[1] == 'p': elif dominant_type[0] == 'x' and dominant_type[1] == 'p':
add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels) add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels)
@ -1068,6 +1086,10 @@ def autodoist_magic(args, api, connection):
if not first_found[1]: if not first_found[1]:
add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels) add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels)
if next_action_label in task.labels:
# Probably the task has been manually moved, so if it has a label, let's remove it.
remove_label(task, next_action_label, overview_task_ids, overview_task_labels)
elif dominant_type[1] == 'x' and dominant_type[2] == 'p': elif dominant_type[1] == 'x' and dominant_type[2] == 'p':
add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels) add_label(connection, task, dominant_type, next_action_label, overview_task_ids, overview_task_labels)
@ -1099,6 +1121,9 @@ def autodoist_magic(args, api, connection):
if child_task.content.startswith('*'): if child_task.content.startswith('*'):
continue continue
# Clean up for good measure.
remove_label(child_task, next_action_label, overview_task_ids, overview_task_labels)
# Pass task_type down to the children # Pass task_type down to the children
db_update_value( db_update_value(
connection, child_task, 'parent_type', dominant_type) connection, child_task, 'parent_type', dominant_type)