# HG changeset patch # User Paul Boddie # Date 1517697355 -3600 # Node ID 31ebbe000061c65ca22ecb63b2b2d54f95c7526e # Parent 04fc45977b5fffe3d90a1cc259ad978872024198 Added a way of specifying dates without times. Introduced use of form date output representations instead of converted "calendar" representations. This affects periods employing dates. diff -r 04fc45977b5f -r 31ebbe000061 imip_text_client.py --- a/imip_text_client.py Sat Feb 03 23:34:24 2018 +0100 +++ b/imip_text_client.py Sat Feb 03 23:35:55 2018 +0100 @@ -320,7 +320,8 @@ label = "New" error_label = errors and " (errors: %s)" % ", ".join(errors) or "" - print "(%d) %s%s:" % (index, label, error_label), p.get_start(), p.get_end(), p.origin + print "(%d) %s%s:" % (index, label, error_label), \ + str(p.get_form_start()), str(p.get_form_end()), p.origin def show_periods_raw(periods): @@ -334,7 +335,7 @@ "Show period 'p' in a simple raw form." - print p.get_start(), p.get_end(), p.origin + print str(p.get_form_start()), str(p.get_form_end()), p.origin def show_rule(selectors): @@ -562,7 +563,6 @@ end = self.get_window_end() or None selector = vRecurrence.get_selector(start, selectors) - until = None inclusive = False # Generate the periods from the rule. @@ -912,15 +912,24 @@ print "Editing end (%s)" % period.get_end() edit_date(period.end, args) + period.reset() + def edit_date(date, args=None): "Edit the given 'date' object attributes." date.date = next_arg(args) or input_with_default("Date (%s)? ", date.date) date.hour = next_arg(args) or input_with_default("Hour (%s)? ", date.hour) - date.minute = next_arg(args) or input_with_default("Minute (%s)? ", date.minute) - date.second = next_arg(args) or input_with_default("Second (%s)? ", date.second) - date.tzid = next_arg(args) or input_with_default("Time zone (%s)? ", date.tzid) + + # Permit day-level datetimes. + + if date.hour == "-": + date.set_as_day() + else: + date.minute = next_arg(args) or input_with_default("Minute (%s)? ", date.minute) + date.second = next_arg(args) or input_with_default("Second (%s)? ", date.second) + date.tzid = next_arg(args) or input_with_default("Time zone (%s)? ", date.tzid) + date.reset() def add_rule_selector_count(selectors, args, selector=None):