From 3c422f363aae913fe36bc447b31ceb5c945e4ce8 Mon Sep 17 00:00:00 2001 From: jpt Date: Fri, 11 Apr 2025 21:49:14 -0500 Subject: [PATCH] moving from category to project --- src/tt/db.py | 1 + src/tt/tui/editor.py | 2 +- src/tt/tui/modals.py | 2 +- src/tt/tui/tasks.py | 4 ---- src/tt/utils.py | 11 ++--------- tt.toml | 5 ++++- 6 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/tt/db.py b/src/tt/db.py index 69b042b..1c38e69 100644 --- a/src/tt/db.py +++ b/src/tt/db.py @@ -39,6 +39,7 @@ class Task(BaseModel): due = DateTimeField(null=True) category = ForeignKeyField(Category, backref="tasks", null=True) type = CharField() + project = CharField() created_at = DateTimeField(default=datetime.now) updated_at = DateTimeField(default=datetime.now) deleted = BooleanField(default=False) diff --git a/src/tt/tui/editor.py b/src/tt/tui/editor.py index 81543b2..8f15d34 100644 --- a/src/tt/tui/editor.py +++ b/src/tt/tui/editor.py @@ -71,7 +71,7 @@ class EnumColumnConfig(TableColumnConfig): raise NotifyValidationError(f"Invalid value {val}. Use: {list(self.enum)}") def format_for_display(self, val): - return get_color_enum(val, self.enum, "red") + return get_color_enum(val, self.enum) def start_change(self, app, current_value): diff --git a/src/tt/tui/modals.py b/src/tt/tui/modals.py index e0c18cc..059a46d 100644 --- a/src/tt/tui/modals.py +++ b/src/tt/tui/modals.py @@ -61,7 +61,7 @@ class ChoiceModal(ModalScreen): yield RadioSet( *[ RadioButton( - get_color_enum(e.value, config.STATUSES, "red"), value=self.selected == str(e.value) + get_color_enum(e.value, config.STATUSES), value=self.selected == str(e.value) ) for e in self._enum ] diff --git a/src/tt/tui/tasks.py b/src/tt/tui/tasks.py index 35832ea..da99652 100644 --- a/src/tt/tui/tasks.py +++ b/src/tt/tui/tasks.py @@ -87,7 +87,3 @@ class TT(TableEditor): def run(default_view): app = TT(default_view) app.run() - - -if __name__ == "__main__": - run() diff --git a/src/tt/utils.py b/src/tt/utils.py index 578c391..831c7bd 100644 --- a/src/tt/utils.py +++ b/src/tt/utils.py @@ -32,18 +32,11 @@ def advance_enum_val(enum_type, cur_val): return members[next_idx] -def get_color_enum(value: str, enum: dict[str, dict], default: str) -> str: - color = enum.get(value, {"color": default})["color"] +def get_color_enum(value: str, enum: dict[str, dict]) -> str: + color = enum.get(value, {"color": "#ff0000"})["color"] return f"[{color}]{value}[/]" -def get_colored_category(category: str) -> str: - hash_val = sum(ord(c) for c in category) - hue = hash_val % 360 - color = f"rgb({hue},200,200) on default" - return f"[{color}]{category}[/]" - - def get_colored_date(date: datetime.date) -> str: if not isinstance(date, datetime.date): return "" diff --git a/tt.toml b/tt.toml index 803a649..f7dc3e8 100644 --- a/tt.toml +++ b/tt.toml @@ -55,8 +55,11 @@ field_type = "date" default = "" [[views.columns]] -field_name = "category" +field_name = "project" +display_name = "Project" default = "" +field_type = "enum" +enum = "projects" [[views]] name = "recurring"