preparing for task priorities
This commit is contained in:
@@ -25,7 +25,6 @@ import java.util.*;
|
||||
|
||||
public class SqliteDb extends BaseDb implements TaskDb {
|
||||
private static final System.Logger LOG = System.getLogger("TaskDb");
|
||||
private static final int INITIAL_DB_VERSION = 1;
|
||||
|
||||
public SqliteDb(Connection connection) {
|
||||
super(connection);
|
||||
@@ -41,9 +40,11 @@ public class SqliteDb extends BaseDb implements TaskDb {
|
||||
swapStates(TABLE_TASKS);
|
||||
case 2:
|
||||
createDependencyTable();
|
||||
case 3:
|
||||
createPriorityColumn();
|
||||
}
|
||||
|
||||
return setCurrentVersion(3);
|
||||
return setCurrentVersion(4);
|
||||
}
|
||||
|
||||
private void createDependencyTable() {
|
||||
@@ -59,6 +60,15 @@ public class SqliteDb extends BaseDb implements TaskDb {
|
||||
}
|
||||
}
|
||||
|
||||
private void createPriorityColumn() {
|
||||
var sql = format("ALTER TABLE {0} ADD {1} INT NOT NULL DEFAULT 0",TABLE_TASKS,PRIORITY);
|
||||
try {
|
||||
db.prepareStatement(sql).execute();
|
||||
} catch (SQLException e) {
|
||||
throw databaseException("Failed to add {0} column to {1}",PRIORITY,TABLE_TASKS);
|
||||
}
|
||||
}
|
||||
|
||||
private void createTaskTable() {
|
||||
var createTable = """
|
||||
CREATE TABLE IF NOT EXISTS "{0}" (
|
||||
@@ -299,15 +309,15 @@ CREATE TABLE IF NOT EXISTS {0} (
|
||||
public Task save(Task task) {
|
||||
try {
|
||||
if (task.id() == 0){ // new task
|
||||
var rs = insertInto(TABLE_TASKS,PROJECT_ID,PARENT_TASK_ID,NAME,DESCRIPTION,STATUS,EST_TIME,START_DATE,DUE_DATE,SHOW_CLOSED,NO_INDEX)
|
||||
.values(task.projectId(),task.parentTaskId(),task.name(),task.description(),task.status(),task.estimatedTime(),task.start(),task.dueDate(),task.showClosed(),task.noIndex())
|
||||
var rs = insertInto(TABLE_TASKS,PROJECT_ID,PARENT_TASK_ID,NAME,DESCRIPTION,STATUS,EST_TIME,START_DATE,DUE_DATE,SHOW_CLOSED,NO_INDEX,PRIORITY)
|
||||
.values(task.projectId(),task.parentTaskId(),task.name(),task.description(),task.status(),task.estimatedTime(),task.start(),task.dueDate(),task.showClosed(),task.noIndex(),task.priority())
|
||||
.execute(db)
|
||||
.getGeneratedKeys();
|
||||
Long taskId = null;
|
||||
if (rs.next()) taskId=rs.getLong(1);
|
||||
rs.close();
|
||||
if (taskId == null) throw new UmbrellaException("Failed to save task {0}",task.name());
|
||||
return new Task(taskId,task.projectId(),task.parentTaskId(),task.name(),task.description(),task.status(),task.estimatedTime(),task.start(),task.dueDate(),task.showClosed(),task.noIndex(),task.members());
|
||||
return new Task(taskId,task.projectId(),task.parentTaskId(),task.name(),task.description(),task.status(),task.estimatedTime(),task.start(),task.dueDate(),task.showClosed(),task.noIndex(),task.members(), task.priority());
|
||||
}
|
||||
if (task.isDirty(MEMBERS)){
|
||||
var query = replaceInto(TABLE_TASKS_USERS,TASK_ID,USER_ID,PERMISSIONS);
|
||||
@@ -332,9 +342,9 @@ CREATE TABLE IF NOT EXISTS {0} (
|
||||
task.clean(REQUIRED_TASKS_IDS);
|
||||
}
|
||||
if (task.isDirty()) {
|
||||
update(TABLE_TASKS).set(PROJECT_ID,PARENT_TASK_ID,NAME,DESCRIPTION,STATUS,EST_TIME,START_DATE,DUE_DATE,SHOW_CLOSED,NO_INDEX)
|
||||
update(TABLE_TASKS).set(PROJECT_ID,PARENT_TASK_ID,NAME,DESCRIPTION,STATUS,EST_TIME,START_DATE,DUE_DATE,SHOW_CLOSED,NO_INDEX,PRIORITY)
|
||||
.where(ID,equal(task.id())).prepare(db)
|
||||
.apply(task.projectId(),task.parentTaskId(),task.name(),task.description(),task.status(),task.estimatedTime(),task.start(),task.dueDate(),task.showClosed(),task.noIndex())
|
||||
.apply(task.projectId(),task.parentTaskId(),task.name(),task.description(),task.status(),task.estimatedTime(),task.start(),task.dueDate(),task.showClosed(),task.noIndex(),task.priority())
|
||||
.close();
|
||||
task.clean();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user