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):
|
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:
|
if project_id:
|
||||||
query = query.format("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):
|
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")
|
logging.info(">> Create note")
|
||||||
|
|
||||||
|
if active_task_id == 0:
|
||||||
|
print("No task selected")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
query = """
|
query = """
|
||||||
INSERT INTO note (project_id, task_id, username, message)
|
INSERT INTO note (project_id, task_id, username, message)
|
||||||
VALUES (?, ?, ?, ?);
|
VALUES (?, ?, ?, ?);
|
||||||
|
|||||||
@@ -101,44 +101,59 @@ END;
|
|||||||
-- Current table with trigger --
|
-- Current table with trigger --
|
||||||
--------------------------------
|
--------------------------------
|
||||||
CREATE TABLE current (
|
CREATE TABLE current (
|
||||||
id integer,
|
|
||||||
project_id integer,
|
project_id integer,
|
||||||
task_id integer,
|
task_id integer,
|
||||||
note_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
|
-- Trigger after insert for current values
|
||||||
CREATE TRIGGER current_project AFTER INSERT ON project
|
CREATE TRIGGER current_project AFTER INSERT ON project
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE current SET project_id = new.id WHERE id = 0;
|
UPDATE current SET project_id = new.id;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
CREATE TRIGGER current_task AFTER INSERT ON task
|
CREATE TRIGGER current_task AFTER INSERT ON task
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE current SET task_id = new.id WHERE id = 0;
|
UPDATE current SET task_id = new.id;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
CREATE TRIGGER current_note AFTER INSERT ON note
|
CREATE TRIGGER current_note AFTER INSERT ON note
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE current SET note_id = new.id WHERE id = 0;
|
UPDATE current SET note_id = new.id;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
-- Trigger after update for current values
|
-- Trigger after update for current values
|
||||||
CREATE TRIGGER update_project AFTER UPDATE ON project
|
CREATE TRIGGER update_project AFTER UPDATE ON project
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE current SET project_id = new.id WHERE id = 0;
|
UPDATE current SET project_id = new.id;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
CREATE TRIGGER update_task AFTER UPDATE ON task
|
CREATE TRIGGER update_task AFTER UPDATE ON task
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE current SET task_id = new.id WHERE id = 0;
|
UPDATE current SET task_id = new.id;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
CREATE TRIGGER update_note AFTER UPDATE ON note
|
CREATE TRIGGER update_note AFTER UPDATE ON note
|
||||||
BEGIN
|
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;
|
END;
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
|
|||||||
6
task.py
6
task.py
@@ -96,6 +96,7 @@ def handle_task(args, last_action, conn):
|
|||||||
else:
|
else:
|
||||||
print(f"Invalid task option: {args[0]}")
|
print(f"Invalid task option: {args[0]}")
|
||||||
|
|
||||||
|
|
||||||
def parse_task_args(task, args):
|
def parse_task_args(task, args):
|
||||||
if not args:
|
if not args:
|
||||||
return
|
return
|
||||||
@@ -126,9 +127,12 @@ def parse_task_args(task, args):
|
|||||||
|
|
||||||
|
|
||||||
def create_task(task, project_id, conn):
|
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")
|
logging.info(">> Create task")
|
||||||
|
|
||||||
|
if project_id == 0:
|
||||||
|
print("No project selected")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
query = """
|
query = """
|
||||||
INSERT INTO
|
INSERT INTO
|
||||||
task (project_id, username, name, status, priority, date, time, created_at)
|
task (project_id, username, name, status, priority, date, time, created_at)
|
||||||
|
|||||||
Reference in New Issue
Block a user