remove tasks
This commit is contained in:
parent
c5eef57aeb
commit
ddf4662d78
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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(
|
||||
|
@ -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()
|
Loading…
Reference in New Issue
Block a user