def add_card(config, title, message, edit, listname): '''Add a new card. If no title is provided, $EDITOR will be opened so you can write one.''' connection, board = BoardTool.start(config) if listname is None: inbox = BoardTool.get_inbox_list(connection, config) else: pattern = re.compile(listname, flags=re.I) target_lists = filter(lambda x: pattern.search(x.name), board.get_lists('open')) try: inbox = next(target_lists) except StopIteration: click.secho('No list names matched by {}'.format(listname), fg='red') raise GTDException(1) if not title: title = click.edit(require_save=True, text='<Title here>') if title is None: # No changes were made in $EDITOR click.secho('No title entered for the new card!', fg='red') raise GTDException(1) else: title = title.strip() returned = inbox.add_card(name=title, desc=message) if edit: display = Display(config.color) list_lookup = BoardTool.list_lookup(board) label_lookup = BoardTool.label_lookup(board) CardTool.smart_menu(returned, display.show_card, list_lookup, label_lookup, color=config.color) else: click.secho('Successfully added card {0}!'.format(returned), fg='green')
def add_card(config, title, message, edit): '''Add a new card. If no title is provided, $EDITOR will be opened so you can write one.''' connection, board = BoardTool.start(config) inbox = BoardTool.get_inbox_list(connection, config) if not title: title = click.edit(require_save=True, text='<Title here>') if title is None: # No changes were made in $EDITOR click.secho('No title entered for the new card!', fg='red') raise GTDException(1) else: title = title.strip() returned = inbox.add_card(name=title, desc=message) if edit: display = Display(config.color) list_lookup = BoardTool.list_lookup(board) label_lookup = BoardTool.label_lookup(board) CardTool.smart_menu(returned, display.show_card, list_lookup, label_lookup, Colors.yellow) else: click.secho('Successfully added card {0}!'.format(returned), fg='green')