Exemplo n.º 1
0
    def setUp(self):
        self.taskrc_path = "tests/test_data/.taskrc"
        self.task_dir_path = "tests/test_data/.task"
        self.assertEqual(os.path.isdir(self.taskrc_path), False)
        self.assertEqual(os.path.isdir(self.task_dir_path), False)

        # Create a sample .taskrc
        with open(self.taskrc_path, "w+") as file:
            file.write("# User Defined Attributes\n")
            file.write("uda.estimate.type=duration\n")
            file.write("uda.estimate.label=Est\n")
            file.write("# User Defined Attributes\n")
            file.write("uda.tb_estimate.type=numeric\n")
            file.write("uda.tb_estimate.label=Est\n")
            file.write("uda.tb_real.type=numeric\n")
            file.write("uda.tb_real.label=Real\n")

        # Create a sample empty .task directory
        os.makedirs(self.task_dir_path)

        self.screen = Screen(
            tw_data_dir=self.task_dir_path,
            taskrc_location=self.taskrc_path,
            scheduled="today",
        )
Exemplo n.º 2
0
    def main(self):
        """Initialize the screen and notifier, and start the main loop of
           the interface."""

        if self.show_notifications:
            self.notifier = Notifier(self.backend)
        else:
            self.notifier = None

        self.screen = Screen(
            self.schedule,
            scheduled_after=self.scheduled_after,
            scheduled_before=self.scheduled_before,
            hide_empty=self.hide_empty,
            hide_projects=self.hide_projects,
        )

        try:
            self.run()
        except TaskDirDoesNotExistError as err:
            print("Error: {}".format(err))
            sys.exit(1)
        except TaskrcDoesNotExistError as err:
            print("Error: {}".format(err))
            sys.exit(1)
        except KeyboardInterrupt:
            self.screen.close()
        except ValueError as err:
            self.screen.close()
            print("Error: {}".format(err))
            sys.exit(1)
        except UDADoesNotExistError as err:
            self.screen.close()
            print("Error: {}".format(err))
            sys.exit(1)
        except SoundDoesNotExistError as err:
            self.screen.close()
            print("Error: {}".format(err))
            sys.exit(1)
        else:
            try:
                self.screen.close()
            except curses_error as err:
                print(err.with_traceback)
Exemplo n.º 3
0
def main(argv):
    """Display a schedule report for taskwarrior."""
    parser = argparse.ArgumentParser(
        description="""Display a schedule report for taskwarrior.""")
    parser.add_argument('-r',
                        '--refresh',
                        help="refresh every n seconds",
                        type=int,
                        default=1)
    parser.add_argument('--from',
                        help="scheduled from date: ex. 'today', 'tomorrow'",
                        type=str,
                        dest='after')
    parser.add_argument('--until',
                        help="scheduled until date: ex. 'today', 'tomorrow'",
                        type=str,
                        dest='before')
    parser.add_argument('-s',
                        '--scheduled',
                        help="""scheduled date: ex. 'today', 'tomorrow'
                (overrides --from and --until)""",
                        type=str)
    parser.add_argument('-a',
                        '--all',
                        help="show all hours, even if empty",
                        action='store_true',
                        default=False)
    parser.add_argument('-c',
                        '--completed',
                        help="hide completed tasks",
                        action='store_false',
                        default=True)
    parser.add_argument('-p',
                        '--project',
                        help="hide project column",
                        action='store_true',
                        default=False)
    args = parser.parse_args(argv)

    hide_empty = not args.all

    if args.scheduled:
        if args.before or args.after:
            print('Error: The --scheduled option can not be used together '
                  'with --until and/or --from.')
            sys.exit(1)
    else:
        if args.before and not args.after or not args.before and args.after:
            print('Error: Either both --until and --from or neither options '
                  'must be used.')
            sys.exit(1)

        if not args.before and not args.after:
            args.scheduled = 'today'
        elif not args.before:
            args.before = 'tomorrow'
        elif not args.after:
            args.after = 'yesterday'

    screen = Screen(hide_empty=hide_empty,
                    scheduled_before=args.before,
                    scheduled_after=args.after,
                    scheduled=args.scheduled,
                    completed=args.completed,
                    hide_projects=args.project)

    last_refresh_time = 0
    try:
        while True:
            key = screen.stdscr.getch()
            if key == 113:
                break

            if (key == KEY_RESIZE
                    or time.time() > last_refresh_time + args.refresh):
                last_refresh_time = time.time()
                screen.refresh_buffer()
                screen.draw()

            napms(50)
    except KeyboardInterrupt:
        pass
    finally:
        screen.close()
Exemplo n.º 4
0
def screen(tw, schedule):
    screen = Screen(schedule, schedule.scheduled_after,
                    schedule.scheduled_before)
    yield screen