From 2673af0000d109d0034a430f0e0b917fae2ce16c Mon Sep 17 00:00:00 2001 From: ederag Date: Sun, 22 Mar 2020 09:54:38 +0100 Subject: [PATCH 1/6] rename _date to _day --- src/hamster/edit_activity.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hamster/edit_activity.py b/src/hamster/edit_activity.py index 59c2d6f43..565516333 100644 --- a/src/hamster/edit_activity.py +++ b/src/hamster/edit_activity.py @@ -45,7 +45,7 @@ class CustomFactController(Controller): def __init__(self, action, fact_id=None): Controller.__init__(self) - self._date = None # for the date property + self._day = None # for the day property self._gui = load_ui_file("edit_activity.ui") self.window = self.get_widget('custom_fact_window') @@ -131,12 +131,12 @@ def __init__(self, action, fact_id=None): @property def date(self): """Default hamster day.""" - return self._date + return self._day @date.setter def date(self, value): - delta = value - self._date if self._date else None - self._date = value + delta = value - self._day if self._day else None + self._day = value self.cmdline.default_day = value if self.fact and delta: if self.fact.start_time: From 7fc52281f1e31588ae6c83fe5e6f304c502de13b Mon Sep 17 00:00:00 2001 From: ederag Date: Sun, 22 Mar 2020 10:00:05 +0100 Subject: [PATCH 2/6] rename date to day --- src/hamster/edit_activity.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/hamster/edit_activity.py b/src/hamster/edit_activity.py index 565516333..46e321afe 100644 --- a/src/hamster/edit_activity.py +++ b/src/hamster/edit_activity.py @@ -101,7 +101,7 @@ def __init__(self, action, fact_id=None): original_fact = self.fact # TODO: should use hday, not date. - self.date = self.fact.date + self.day = self.fact.date self.update_fields() self.update_cmdline(select=True) @@ -129,12 +129,12 @@ def __init__(self, action, fact_id=None): self.window.show_all() @property - def date(self): + def day(self): """Default hamster day.""" return self._day - @date.setter - def date(self, value): + @day.setter + def day(self, value): delta = value - self._day if self._day else None self._day = value self.cmdline.default_day = value @@ -152,8 +152,8 @@ def on_next_day_clicked(self, button): self.increment_date(+1) def draw_preview(self, start_time, end_time=None): - day_facts = runtime.storage.get_facts(self.date) - self.dayline.plot(self.date, day_facts, start_time, end_time) + day_facts = runtime.storage.get_facts(self.day) + self.dayline.plot(self.day, day_facts, start_time, end_time) def get_widget(self, name): """ skip one variable (huh) """ @@ -161,7 +161,7 @@ def get_widget(self, name): def increment_date(self, days): delta = dt.timedelta(days=days) - self.date += delta + self.day += delta self.update_fields() def show(self): @@ -186,7 +186,7 @@ def on_category_changed(self, widget): def on_cmdline_changed(self, widget): if self.master_is_cmdline: - fact = Fact.parse(self.cmdline.get_text(), default_day=self.date) + fact = Fact.parse(self.cmdline.get_text(), default_day=self.day) previous_cmdline_fact = self.cmdline_fact # copy the entered fact before any modification self.cmdline_fact = fact.copy() @@ -249,7 +249,7 @@ def on_start_date_changed(self, widget): # preserve fact duration self.fact.end_time += delta self.end_date.date = self.fact.end_time - self.date = self.fact.date or dt.hday.today() + self.day = self.fact.date or dt.hday.today() self.validate_fields() self.update_cmdline() @@ -289,7 +289,7 @@ def present(self): def update_cmdline(self, select=None): """Update the cmdline entry content.""" self.cmdline_fact = self.fact.copy(description=None) - label = self.cmdline_fact.serialized(default_day=self.date) + label = self.cmdline_fact.serialized(default_day=self.day) with self.cmdline.handler_block(self.cmdline.checker): self.cmdline.set_text(label) if select: @@ -329,30 +329,30 @@ def validate_fields(self): """Check fields information. Update gui status about entry and description validity. - Try to merge date, activity and description informations. + Try to merge day, activity and description informations. Return the consolidated fact if successful, or None. """ fact = self.fact now = dt.datetime.now() - self.get_widget("button-next-day").set_sensitive(self.date < now.date()) + self.get_widget("button-next-day").set_sensitive(self.day < now.date()) - if self.date == now.date(): + if self.day == now.date(): default_dt = now else: - default_dt = dt.datetime.combine(self.date, now.time()) + default_dt = dt.datetime.combine(self.day, now.time()) self.draw_preview(fact.start_time or default_dt, fact.end_time or default_dt) try: - runtime.storage.check_fact(fact, default_day=self.date) + runtime.storage.check_fact(fact, default_day=self.day) except FactError as error: self.update_status(status="wrong", markup=str(error)) return None - roundtrip_fact = Fact.parse(fact.serialized(), default_day=self.date) + roundtrip_fact = Fact.parse(fact.serialized(), default_day=self.day) if roundtrip_fact != fact: self.update_status(status="wrong", markup="Fact could not be parsed back") return None From 14facb334fc4611e67a7b9ac4bce5a1a5219034e Mon Sep 17 00:00:00 2001 From: ederag Date: Sun, 22 Mar 2020 10:15:17 +0100 Subject: [PATCH 3/6] rename increment_date to increment_day --- src/hamster/edit_activity.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hamster/edit_activity.py b/src/hamster/edit_activity.py index 46e321afe..972ade5ae 100644 --- a/src/hamster/edit_activity.py +++ b/src/hamster/edit_activity.py @@ -146,10 +146,10 @@ def day(self, value): # self.update_fields() here would enter an infinite loop def on_prev_day_clicked(self, button): - self.increment_date(-1) + self.increment_day(-1) def on_next_day_clicked(self, button): - self.increment_date(+1) + self.increment_day(+1) def draw_preview(self, start_time, end_time=None): day_facts = runtime.storage.get_facts(self.day) @@ -159,7 +159,7 @@ def get_widget(self, name): """ skip one variable (huh) """ return self._gui.get_object(name) - def increment_date(self, days): + def increment_day(self, days): delta = dt.timedelta(days=days) self.day += delta self.update_fields() From 27a9d32a52ec91e69ef3af413536cd7aa709cf1c Mon Sep 17 00:00:00 2001 From: ederag Date: Sun, 22 Mar 2020 10:21:10 +0100 Subject: [PATCH 4/6] comment: move TODO to Fact --- src/hamster/edit_activity.py | 1 - src/hamster/lib/fact.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hamster/edit_activity.py b/src/hamster/edit_activity.py index 972ade5ae..d37f00d6c 100644 --- a/src/hamster/edit_activity.py +++ b/src/hamster/edit_activity.py @@ -100,7 +100,6 @@ def __init__(self, action, fact_id=None): self.fact = Fact(start_time=dt.datetime.now()) original_fact = self.fact - # TODO: should use hday, not date. self.day = self.fact.date self.update_fields() diff --git a/src/hamster/lib/fact.py b/src/hamster/lib/fact.py index aa31d38f5..73da6b64b 100644 --- a/src/hamster/lib/fact.py +++ b/src/hamster/lib/fact.py @@ -109,6 +109,7 @@ def copy(self, **kwds): fact._set(**kwds) return fact + # TODO: rename "date" to "day" or "hday" @property def date(self): """hamster day, determined from start_time. From 592bbc76ca3395bd10a826bd0681b2b9e1b561e3 Mon Sep 17 00:00:00 2001 From: ederag Date: Sun, 22 Mar 2020 10:36:08 +0100 Subject: [PATCH 5/6] use now.hday() instead of now.date() --- src/hamster/edit_activity.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/hamster/edit_activity.py b/src/hamster/edit_activity.py index d37f00d6c..94c195e41 100644 --- a/src/hamster/edit_activity.py +++ b/src/hamster/edit_activity.py @@ -335,12 +335,13 @@ def validate_fields(self): fact = self.fact now = dt.datetime.now() - self.get_widget("button-next-day").set_sensitive(self.day < now.date()) + today = now.hday() + self.get_widget("button-next-day").set_sensitive(self.day < today) - if self.day == now.date(): + if self.day == today: default_dt = now else: - default_dt = dt.datetime.combine(self.day, now.time()) + default_dt = dt.datetime.from_day_time(self.day, now.time()) self.draw_preview(fact.start_time or default_dt, fact.end_time or default_dt) From fadaf45d5546206441280e12c01ba3811b532df2 Mon Sep 17 00:00:00 2001 From: ederag Date: Fri, 17 Apr 2020 19:21:34 +0200 Subject: [PATCH 6/6] change default day only if date is set --- src/hamster/edit_activity.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/hamster/edit_activity.py b/src/hamster/edit_activity.py index 94c195e41..af1b3f53e 100644 --- a/src/hamster/edit_activity.py +++ b/src/hamster/edit_activity.py @@ -248,7 +248,9 @@ def on_start_date_changed(self, widget): # preserve fact duration self.fact.end_time += delta self.end_date.date = self.fact.end_time - self.day = self.fact.date or dt.hday.today() + if self.fact.date: + # change default day only if date is set + self.day = self.fact.date self.validate_fields() self.update_cmdline() @@ -268,7 +270,7 @@ def on_start_time_changed(self, widget): new_time) else: # date not specified; result must fall in current hamster_day - new_start_time = dt.datetime.from_day_time(dt.hday.today(), new_time) + new_start_time = dt.datetime.from_day_time(self.day, new_time) else: new_start_time = None self.fact.start_time = new_start_time