def begin(nums): for item in task.items: if item['number'] in nums and item["type"] == "task": if item['status'] != "in-progress": item['status'] = "in-progress" else: item['status'] = "undone" render_prefs['success'] = True write_json_items() if render_prefs['success'] else None
def refactor(do_archive=True): for inx, item in enumerate(task.items): item['number'] = inx + 1 write_json_items() if do_archive: for inx, item in enumerate(task.archive): item['number'] = inx + 1 write_json_archive() render_prefs['success'] = True
def star(nums): for item in task.items: if item['number'] in nums: if item['starred']: item['starred'] = False else: item['starred'] = True render_prefs['success'] = True write_json_items() if render_prefs['success'] else None
def priority(arg): nums, prior = arg.rsplit(" ", 1) if " " in arg else (arg, "") nums = [int(s) for s in nums.split() if s.isdigit()] for item in task.items: if item["number"] in nums and prior in task.Task.prip_dict.keys(): item["priority"] = task.Task.prip_dict[prior] render_prefs['success'] = True write_json_items() if render_prefs['success'] else None
def attach_to_board(arg): nums, book = arg.rsplit(" ", 1) if " " in arg else (arg, "") nums = [int(s) for s in nums.split() if s.isdigit()] if not book or not nums: return for item in task.items: if item['number'] in nums and item['type']: if book not in item['board name']: item['board name'].append(book) render_prefs['success'] = True write_json_items() if render_prefs['success'] else None
def edit(arg): num, header = arg.lsplit(" ", 1) if " " in arg else (arg, "") header = header.strip() if not header: return for item in task.items: if item['number'] == num: render_prefs['success'] = True item['header'] = header break write_json_items() if render_prefs['success'] else None
def restore(nums): indexes = [x for x, y in enumerate(task.archive) if y['number'] in nums] for index in indexes: task.archive[index]["number"] = _get_newid_board() task.items.append(task.archive[index]) for index in reversed(indexes): del task.archive[-1 * (len(task.archive) - index)] if indexes: render_prefs['success'] = True write_json_items() write_json_archive()
def edit_content(nums): if len(nums) != 1: return findex = -1 for index, item in enumerate(task.items): if item['number'] == nums[0] and item['type'] == "snippet": findex = index break if findex != -1: render_prefs['success'] = True task.items[findex]['detail'] = editor.open_editor( contents=task.items[findex]['detail']).strip() write_json_items()
def move(arg): nums, book = arg.rsplit(" ", 1) if " " in arg else (arg, "") nums = [int(s) for s in nums.split() if s.isdigit()] if not nums: return for item in task.items: if item['number'] in nums: # there is some error. check later if book not in item['board name']: item['board name'].clear() bookst = book.strip() if bookst: item['board name'].append(bookst) render_prefs['success'] = True write_json_items() if render_prefs['success'] else None
def delete(nums): if not nums: return indexes = [x for x, y in enumerate(task.items) if y['number'] in nums] for index in indexes: task.items[index]["number"] = _get_newid_archive() task.archive.append(task.items[index]) for index in reversed(indexes): del task.items[-1 * (len(task.items) - index)] if indexes: render_prefs['success'] = True write_json_items() write_json_archive()
def add_item(arg, item_type): if not arg: return header, boards = _parse_boards(arg) if switch_param and switch_param not in boards: boards.append(switch_param) num = _get_newid_board() typee = item_type prior = "*1" det = editor.open_editor() if item_type == "snippet" else None if det is not None: det = det.strip() if not det or det.isspace(): return status = "undone" if item_type == "task" else None item = task.Task(typee, num, header, det, status, prior, boards).to_dict() task.items.append(item) write_json_items() render_prefs['success'] = True