From 4bb39d6120f0fafb68b0fff22712763951c9a1d6 Mon Sep 17 00:00:00 2001 From: Nick Visutsithiwong <2823112+nickvisut@users.noreply.github.com> Date: Wed, 6 Nov 2024 16:46:24 -0800 Subject: [PATCH 1/7] add created_at timestamp to task table Co-authored-by: Vincent Shuali --- src/backend/db/migrations/4_add-created-at-on-tasks.sql | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/backend/db/migrations/4_add-created-at-on-tasks.sql diff --git a/src/backend/db/migrations/4_add-created-at-on-tasks.sql b/src/backend/db/migrations/4_add-created-at-on-tasks.sql new file mode 100644 index 00000000..56f93d86 --- /dev/null +++ b/src/backend/db/migrations/4_add-created-at-on-tasks.sql @@ -0,0 +1,7 @@ +-- Each task should have a created_at date so that we can sort by assigned date +-- NOTE: This relies on the assigned date never changing; if the app allows changes, we will likely want create a dedicated assigned_on date in addition to (or instead of) this column +ALTER TABLE task +ADD COLUMN created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(); + +-- Add index to allow easy queries of tasks by date +CREATE INDEX idx_created_at ON task(created_at); From 60057b20b8c361521f431541f2b15933ac7d22ea Mon Sep 17 00:00:00 2001 From: Nick Visutsithiwong <2823112+nickvisut@users.noreply.github.com> Date: Wed, 6 Nov 2024 16:46:24 -0800 Subject: [PATCH 2/7] add created_at timestamp to task table Co-authored-by: Vincent Shuali --- src/backend/db/zapatos/schema.d.ts | 46 ++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/backend/db/zapatos/schema.d.ts b/src/backend/db/zapatos/schema.d.ts index 0d734ec7..353b9e6b 100644 --- a/src/backend/db/zapatos/schema.d.ts +++ b/src/backend/db/zapatos/schema.d.ts @@ -2030,6 +2030,14 @@ declare module 'zapatos/schema' { * - `NOT NULL`, default: `false` */ seen: boolean; + /** + * **task.created_at** + * - `timestamptz` in database + * - `NOT NULL`, default: `now()` + */ + created_at: Date; + } + export interface JSONSelectable { /** * **task.task_id** * - `uuid` in database @@ -2068,6 +2076,17 @@ declare module 'zapatos/schema' { * - `NOT NULL`, default: `false` */ seen: boolean; +<<<<<<< HEAD +======= + /** + * **task.created_at** + * - `timestamptz` in database + * - `NOT NULL`, default: `now()` + */ + created_at: db.TimestampTzString; + } + export interface Whereable { +>>>>>>> 6568904 (add created_at timestamp to task table) /** * **task.task_id** * - `uuid` in database @@ -2106,6 +2125,17 @@ declare module 'zapatos/schema' { * - `NOT NULL`, default: `false` */ seen?: boolean | db.Parameter | db.SQLFragment | db.ParentColumn | db.SQLFragment | db.SQLFragment | db.ParentColumn>; +<<<<<<< HEAD +======= + /** + * **task.created_at** + * - `timestamptz` in database + * - `NOT NULL`, default: `now()` + */ + created_at?: (db.TimestampTzString | Date) | db.Parameter<(db.TimestampTzString | Date)> | db.SQLFragment | db.ParentColumn | db.SQLFragment | db.SQLFragment | db.ParentColumn>; + } + export interface Insertable { +>>>>>>> 6568904 (add created_at timestamp to task table) /** * **task.task_id** * - `uuid` in database @@ -2144,6 +2174,17 @@ declare module 'zapatos/schema' { * - `NOT NULL`, default: `false` */ seen?: boolean | db.Parameter | db.DefaultType | db.SQLFragment; +<<<<<<< HEAD +======= + /** + * **task.created_at** + * - `timestamptz` in database + * - `NOT NULL`, default: `now()` + */ + created_at?: (db.TimestampTzString | Date) | db.Parameter<(db.TimestampTzString | Date)> | db.DefaultType | db.SQLFragment; + } + export interface Updatable { +>>>>>>> 6568904 (add created_at timestamp to task table) /** * **task.task_id** * - `uuid` in database @@ -2194,6 +2235,11 @@ declare module 'zapatos/schema' { * - Nullable, no default */ trial_count?: number | db.Parameter | null | db.DefaultType | db.SQLFragment | db.SQLFragment | null | db.DefaultType | db.SQLFragment>; + * **task.created_at** + * - `timestamptz` in database + * - `NOT NULL`, default: `now()` + */ + created_at?: (db.TimestampTzString | Date) | db.Parameter<(db.TimestampTzString | Date)> | db.DefaultType | db.SQLFragment | db.SQLFragment | db.DefaultType | db.SQLFragment>; } export type UniqueIndex = 'benchmark_assignee_unique' | 'task_pkey'; export type Column = keyof Selectable; From 03f8969e337d7a7ebb89ed49670fd9c725b350f2 Mon Sep 17 00:00:00 2001 From: Nick Visutsithiwong <2823112+nickvisut@users.noreply.github.com> Date: Tue, 3 Dec 2024 18:02:07 -0800 Subject: [PATCH 3/7] add sort by date button --- src/backend/routers/para.ts | 1 + src/pages/benchmarks/index.tsx | 14 ++++++++++++++ src/types/global.ts | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/backend/routers/para.ts b/src/backend/routers/para.ts index 4f331d96..78661095 100644 --- a/src/backend/routers/para.ts +++ b/src/backend/routers/para.ts @@ -83,6 +83,7 @@ export const para = router({ "task.due_date", "task.seen", "task.trial_count", + "task.created_at", eb .selectFrom("trial_data") diff --git a/src/pages/benchmarks/index.tsx b/src/pages/benchmarks/index.tsx index 79842d30..6db6ac7b 100644 --- a/src/pages/benchmarks/index.tsx +++ b/src/pages/benchmarks/index.tsx @@ -142,6 +142,20 @@ function Benchmarks() { */ } + {/* simple sort pill POC (see TODO above) */} + + {/* simple sort pill POC (see TODO above) */}