Current value on delete + no create without parent
This commit is contained in:
@@ -106,7 +106,7 @@ def record_action(
|
||||
|
||||
|
||||
def set_active(cursor, project_id=None, task_id=None, note_id=None):
|
||||
query = "UPDATE current SET {} = ? WHERE id = 0"
|
||||
query = "UPDATE current SET {} = ?"
|
||||
|
||||
if project_id:
|
||||
query = query.format("project_id")
|
||||
|
||||
5
note.py
5
note.py
@@ -61,9 +61,12 @@ def handle_note(args, last_action, conn):
|
||||
|
||||
|
||||
def create_note(note, active_project_id, active_task_id, conn):
|
||||
# TODO Don't create note if no project (nothing selected?) ==> foreign key is not a solution: there is no project ID :)
|
||||
logging.info(">> Create note")
|
||||
|
||||
if active_task_id == 0:
|
||||
print("No task selected")
|
||||
sys.exit(1)
|
||||
|
||||
query = """
|
||||
INSERT INTO note (project_id, task_id, username, message)
|
||||
VALUES (?, ?, ?, ?);
|
||||
|
||||
@@ -101,44 +101,59 @@ END;
|
||||
-- Current table with trigger --
|
||||
--------------------------------
|
||||
CREATE TABLE current (
|
||||
id integer,
|
||||
project_id integer,
|
||||
task_id integer,
|
||||
note_id integer
|
||||
);
|
||||
|
||||
INSERT INTO current VALUES (0,0,0,0);
|
||||
INSERT INTO current VALUES (0,0,0);
|
||||
|
||||
-- Trigger after insert for current values
|
||||
CREATE TRIGGER current_project AFTER INSERT ON project
|
||||
BEGIN
|
||||
UPDATE current SET project_id = new.id WHERE id = 0;
|
||||
UPDATE current SET project_id = new.id;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER current_task AFTER INSERT ON task
|
||||
BEGIN
|
||||
UPDATE current SET task_id = new.id WHERE id = 0;
|
||||
UPDATE current SET task_id = new.id;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER current_note AFTER INSERT ON note
|
||||
BEGIN
|
||||
UPDATE current SET note_id = new.id WHERE id = 0;
|
||||
UPDATE current SET note_id = new.id;
|
||||
END;
|
||||
|
||||
-- Trigger after update for current values
|
||||
CREATE TRIGGER update_project AFTER UPDATE ON project
|
||||
BEGIN
|
||||
UPDATE current SET project_id = new.id WHERE id = 0;
|
||||
UPDATE current SET project_id = new.id;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER update_task AFTER UPDATE ON task
|
||||
BEGIN
|
||||
UPDATE current SET task_id = new.id WHERE id = 0;
|
||||
UPDATE current SET task_id = new.id;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER update_note AFTER UPDATE ON note
|
||||
BEGIN
|
||||
UPDATE current SET note_id = new.id WHERE id = 0;
|
||||
UPDATE current SET note_id = new.id;
|
||||
END;
|
||||
|
||||
-- Trigger after delete for current values
|
||||
CREATE TRIGGER delete_project AFTER DELETE ON project
|
||||
BEGIN
|
||||
UPDATE current SET project_id = 0;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER delete_task AFTER DELETE ON task
|
||||
BEGIN
|
||||
UPDATE current SET task_id = 0;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER delete_note AFTER DELETE ON note
|
||||
BEGIN
|
||||
UPDATE current SET note_id = 0;
|
||||
END;
|
||||
--------------------------------
|
||||
|
||||
|
||||
6
task.py
6
task.py
@@ -96,6 +96,7 @@ def handle_task(args, last_action, conn):
|
||||
else:
|
||||
print(f"Invalid task option: {args[0]}")
|
||||
|
||||
|
||||
def parse_task_args(task, args):
|
||||
if not args:
|
||||
return
|
||||
@@ -126,9 +127,12 @@ def parse_task_args(task, args):
|
||||
|
||||
|
||||
def create_task(task, project_id, conn):
|
||||
# TODO Don't create task if no project (nothing selected?) ==> foreign key is not a solution: there is no project ID :)
|
||||
logging.info(">> Create task")
|
||||
|
||||
if project_id == 0:
|
||||
print("No project selected")
|
||||
sys.exit(1)
|
||||
|
||||
query = """
|
||||
INSERT INTO
|
||||
task (project_id, username, name, status, priority, date, time, created_at)
|
||||
|
||||
Reference in New Issue
Block a user