remove tasks

This commit is contained in:
jpt 2025-05-03 15:34:33 -05:00
parent c5eef57aeb
commit ddf4662d78
4 changed files with 10 additions and 88 deletions

View File

@ -21,15 +21,15 @@ def add_generator(
# JSON for future expansion
config = json.dumps({"val": val})
with db.atomic():
task = ThingGenerator.create(
thing = ThingGenerator.create(
template=template,
type=type,
config=config,
)
return task
return thing
def generate_needed_tasks():
def generate_needed_things():
to_create = []
for g in get_generators():
next = g.next_at()
@ -62,5 +62,5 @@ def update_generator(
with db.atomic():
query = ThingGenerator.update(kwargs).where(ThingGenerator.id == item_id)
query.execute()
task = ThingGenerator.get_by_id(item_id)
return task
thing = ThingGenerator.get_by_id(item_id)
return thing

View File

@ -15,7 +15,7 @@ from playhouse.sqlite_ext import JSONField
#
db = SqliteDatabase(
xdg_data_home() / "tt/tasks.db",
xdg_data_home() / "tt/tt.db",
pragmas={
"journal_mode": "wal",
"synchronous": "normal",
@ -84,7 +84,7 @@ class ThingGenerator(BaseModel):
month = 1
year += 1
# recurring tasks on 29-31 in Feb will just happen on 28th
# recurring on 29-31 in Feb will just happen on 28th
if day_of_month >= 29 and month == 2:
maybe_next = date(year, month, 28)
else:

View File

@ -5,7 +5,7 @@ from ..controller.generators import (
get_generators,
add_generator,
update_generator,
generate_needed_tasks,
generate_needed_things,
)
from .editor import ( TableEditor, )
@ -19,9 +19,9 @@ class GenEditor(TableEditor):
self.table_config = self._load_config("recurring")
def refresh_items(self):
generated = generate_needed_tasks()
generated = generate_needed_things()
if num := len(generated):
self.notify(f"created {num} tasks")
self.notify(f"created {num} things")
items = get_generators()
for item in items:
self.table.add_row(

View File

@ -1,78 +0,0 @@
import json
from textual.widgets import Input
from ..controller.tasks import (
get_task,
get_tasks,
add_task,
update_task,
save_view,
get_saved_view,
)
from .editor import TableEditor
class TT(TableEditor):
BINDINGS = [
# saved views
("ctrl+s", "save_view", "save current view"),
("ctrl+o", "load_view", "load saved view"),
]
def __init__(self, default_view="default"):
super().__init__("tasks")
self.update_item_callback = update_task
self.add_item_callback = add_task
self.get_item_callback = get_task
def _load_db_view(self, name):
try:
saved = get_saved_view(name)
self.filters = json.loads(saved.filters)
self.sort_string = saved.sort_string
except Exception:
self.notify(f"Could not load {name}")
def action_save_view(self):
self._show_input("save-view", "default")
def action_load_view(self):
self._show_input("load-view", "")
def on_input_submitted(self, event: Input.Submitted):
# Override to add save/load view
if self.mode == "save-view":
save_view(event.value, filters=self.filters, sort_string=self.sort_string)
self._hide_input()
event.prevent_default()
elif self.mode == "load-view":
self._load_view(event.value)
self.refresh_tasks(restore_cursor=False)
self._hide_input()
# if event isn't handled here it will bubble to parent
event.prevent_default()
def refresh_items(self):
items = get_tasks(
self.search_query,
projects=self._filters_to_list("project"),
statuses=self._filters_to_list("status"),
sort=self.sort_string,
)
for item in items:
self.table.add_row(
*self._db_item_to_row(item),
key=str(item.id),
)
def _filters_to_list(self, key):
filters = self.filters.get(key)
if filters:
return filters.split(",")
else:
return None
def run(default_view):
app = TT(default_view)
app.run()