remove tasks
This commit is contained in:
parent
c5eef57aeb
commit
ddf4662d78
@ -21,15 +21,15 @@ def add_generator(
|
|||||||
# JSON for future expansion
|
# JSON for future expansion
|
||||||
config = json.dumps({"val": val})
|
config = json.dumps({"val": val})
|
||||||
with db.atomic():
|
with db.atomic():
|
||||||
task = ThingGenerator.create(
|
thing = ThingGenerator.create(
|
||||||
template=template,
|
template=template,
|
||||||
type=type,
|
type=type,
|
||||||
config=config,
|
config=config,
|
||||||
)
|
)
|
||||||
return task
|
return thing
|
||||||
|
|
||||||
|
|
||||||
def generate_needed_tasks():
|
def generate_needed_things():
|
||||||
to_create = []
|
to_create = []
|
||||||
for g in get_generators():
|
for g in get_generators():
|
||||||
next = g.next_at()
|
next = g.next_at()
|
||||||
@ -62,5 +62,5 @@ def update_generator(
|
|||||||
with db.atomic():
|
with db.atomic():
|
||||||
query = ThingGenerator.update(kwargs).where(ThingGenerator.id == item_id)
|
query = ThingGenerator.update(kwargs).where(ThingGenerator.id == item_id)
|
||||||
query.execute()
|
query.execute()
|
||||||
task = ThingGenerator.get_by_id(item_id)
|
thing = ThingGenerator.get_by_id(item_id)
|
||||||
return task
|
return thing
|
||||||
|
@ -15,7 +15,7 @@ from playhouse.sqlite_ext import JSONField
|
|||||||
#
|
#
|
||||||
|
|
||||||
db = SqliteDatabase(
|
db = SqliteDatabase(
|
||||||
xdg_data_home() / "tt/tasks.db",
|
xdg_data_home() / "tt/tt.db",
|
||||||
pragmas={
|
pragmas={
|
||||||
"journal_mode": "wal",
|
"journal_mode": "wal",
|
||||||
"synchronous": "normal",
|
"synchronous": "normal",
|
||||||
@ -84,7 +84,7 @@ class ThingGenerator(BaseModel):
|
|||||||
month = 1
|
month = 1
|
||||||
year += 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:
|
if day_of_month >= 29 and month == 2:
|
||||||
maybe_next = date(year, month, 28)
|
maybe_next = date(year, month, 28)
|
||||||
else:
|
else:
|
||||||
|
@ -5,7 +5,7 @@ from ..controller.generators import (
|
|||||||
get_generators,
|
get_generators,
|
||||||
add_generator,
|
add_generator,
|
||||||
update_generator,
|
update_generator,
|
||||||
generate_needed_tasks,
|
generate_needed_things,
|
||||||
)
|
)
|
||||||
from .editor import ( TableEditor, )
|
from .editor import ( TableEditor, )
|
||||||
|
|
||||||
@ -19,9 +19,9 @@ class GenEditor(TableEditor):
|
|||||||
self.table_config = self._load_config("recurring")
|
self.table_config = self._load_config("recurring")
|
||||||
|
|
||||||
def refresh_items(self):
|
def refresh_items(self):
|
||||||
generated = generate_needed_tasks()
|
generated = generate_needed_things()
|
||||||
if num := len(generated):
|
if num := len(generated):
|
||||||
self.notify(f"created {num} tasks")
|
self.notify(f"created {num} things")
|
||||||
items = get_generators()
|
items = get_generators()
|
||||||
for item in items:
|
for item in items:
|
||||||
self.table.add_row(
|
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