date filtering, and squashed migrations
This commit is contained in:
parent
7b21ee837d
commit
67807992bc
12 changed files with 128 additions and 180 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -28,4 +28,4 @@ go.work.sum
|
||||||
|
|
||||||
tmp
|
tmp
|
||||||
tmp/main
|
tmp/main
|
||||||
foo.db
|
foo.db.bak
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,26 @@ import (
|
||||||
|
|
||||||
func (h *Server) orders(r *http.Request) (any, int, error) {
|
func (h *Server) orders(r *http.Request) (any, int, error) {
|
||||||
//r.URL.Query().Get()
|
//r.URL.Query().Get()
|
||||||
data, err := h.s.GetTopOrders(time.Now(), time.Now().Add(time.Hour*24))
|
orders, err := h.s.GetTopOrders(time.Now(), time.Now().Add(time.Hour*24))
|
||||||
|
data := struct {
|
||||||
|
Today string
|
||||||
|
Orders []models.Order
|
||||||
|
}{Today: time.Now().Format("2006-01-02"), Orders: orders}
|
||||||
return data, http.StatusOK, err
|
return data, http.StatusOK, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Server) ordersSearch(r *http.Request) (any, int, error) {
|
func (h *Server) ordersSearch(r *http.Request) (any, int, error) {
|
||||||
q := r.URL.Query().Get("q")
|
q := r.URL.Query().Get("q")
|
||||||
fmt.Println(q)
|
from, err := time.Parse("2006-01-02", r.URL.Query().Get("from"))
|
||||||
data, err := h.s.GetFilteredOrder(q, time.Time{}, time.Time{})
|
if err != nil {
|
||||||
|
from = time.Time{}
|
||||||
|
}
|
||||||
|
to, err := time.Parse("2006-01-02", r.URL.Query().Get("to"))
|
||||||
|
if err != nil {
|
||||||
|
to = time.Time{}
|
||||||
|
}
|
||||||
|
fmt.Println(from, to)
|
||||||
|
data, err := h.s.GetFilteredOrder(q, from, to)
|
||||||
return data, http.StatusOK, err
|
return data, http.StatusOK, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,25 +4,22 @@
|
||||||
{{end}}
|
{{end}}
|
||||||
{{define "main"}}
|
{{define "main"}}
|
||||||
<main>
|
<main>
|
||||||
<div class="search-container">
|
<form class="search-container" hx-get="/orders/search" hx-target="#results-table", hx-trigger="keyup delay:500ms, change">
|
||||||
<input
|
<input type="search" name="q" placeholder="Search orders...">
|
||||||
type="search"
|
|
||||||
name="q"
|
<label for="from">form</label>
|
||||||
hx-get="/orders/search"
|
<input type="date" value="{{.Today}}" id="from" name="from">
|
||||||
hx-trigger="keyup changed delay:500ms"
|
<label for="from">to</label>
|
||||||
hx-target="#results-table"
|
<input type="date" value="{{.Today}}" id="to" name="to">
|
||||||
hx-push-url="true"
|
|
||||||
placeholder="Search orders..."
|
|
||||||
>
|
|
||||||
|
|
||||||
<div class="htmx-indicator">
|
<div class="htmx-indicator">
|
||||||
Searching...
|
Searching...
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="results-table">
|
<div id="results-table">
|
||||||
{{template "orders-table" .}}
|
{{template "orders-table" .Orders}}
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</form>
|
||||||
</main>
|
</main>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
|
|
@ -35,7 +32,6 @@
|
||||||
<th>Phone</th>
|
<th>Phone</th>
|
||||||
<th>Location</th>
|
<th>Location</th>
|
||||||
<th>Date</th>
|
<th>Date</th>
|
||||||
<th>Accepted</th>
|
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th>Total</th>
|
<th>Total</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -47,7 +43,6 @@
|
||||||
<th>{{.Phone}}</th>
|
<th>{{.Phone}}</th>
|
||||||
<th>{{.Location}}</th>
|
<th>{{.Location}}</th>
|
||||||
<th>{{.Date.Format "2006-01-02"}}</th>
|
<th>{{.Date.Format "2006-01-02"}}</th>
|
||||||
<th>{{.Accepted.Format "2006-01-02"}}</th>
|
|
||||||
<th>{{.Status}}</th>
|
<th>{{.Status}}</th>
|
||||||
<th>{{.Total}}</th>
|
<th>{{.Total}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,14 @@
|
||||||
create table cake (
|
CREATE TABLE cake
|
||||||
|
(
|
||||||
id integer primary key autoincrement,
|
id integer primary key autoincrement,
|
||||||
name text not null unique,
|
name text not null unique,
|
||||||
price integer not null
|
price integer not null,
|
||||||
|
category text,
|
||||||
|
availability text
|
||||||
);
|
);
|
||||||
|
|
||||||
create table customer_order (
|
CREATE TABLE customer_order
|
||||||
|
(
|
||||||
id integer primary key autoincrement,
|
id integer primary key autoincrement,
|
||||||
name text,
|
name text,
|
||||||
surname text,
|
surname text,
|
||||||
|
|
@ -16,11 +20,93 @@ create table customer_order (
|
||||||
paid integer
|
paid integer
|
||||||
);
|
);
|
||||||
|
|
||||||
create table ordered_cake (
|
CREATE TABLE ordered_cake
|
||||||
|
(
|
||||||
customer_order integer references customer_order (id) not null,
|
customer_order integer references customer_order (id) not null,
|
||||||
cake integer references cake (id) not null,
|
cake integer references cake (id) not null,
|
||||||
amount integer not null,
|
amount integer not null,
|
||||||
primary key (customer_order, cake)
|
primary key (customer_order, cake)
|
||||||
);
|
);
|
||||||
|
|
||||||
pragma user_version = 1;
|
CREATE TABLE user
|
||||||
|
(
|
||||||
|
login text primary key,
|
||||||
|
password text,
|
||||||
|
role text,
|
||||||
|
salt text
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE session
|
||||||
|
(
|
||||||
|
token text primary key,
|
||||||
|
user text,
|
||||||
|
expiration text
|
||||||
|
);
|
||||||
|
|
||||||
|
create
|
||||||
|
virtual table order_fts using fts5 (
|
||||||
|
id,
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
|
phone,
|
||||||
|
location,
|
||||||
|
order_date,
|
||||||
|
delivery_date,
|
||||||
|
status,
|
||||||
|
paid,
|
||||||
|
content = 'customer_order'
|
||||||
|
);
|
||||||
|
|
||||||
|
create trigger order_fts_insert
|
||||||
|
after insert
|
||||||
|
on customer_order
|
||||||
|
begin
|
||||||
|
insert into order_fts (id,
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
|
phone,
|
||||||
|
location,
|
||||||
|
order_date,
|
||||||
|
delivery_date,
|
||||||
|
status,
|
||||||
|
paid)
|
||||||
|
values (new.id,
|
||||||
|
new.name,
|
||||||
|
new.surname,
|
||||||
|
new.phone,
|
||||||
|
new.location,
|
||||||
|
new.order_date,
|
||||||
|
new.delivery_date,
|
||||||
|
new.status,
|
||||||
|
new.paid);
|
||||||
|
end;
|
||||||
|
|
||||||
|
create trigger order_fts_delete
|
||||||
|
after delete
|
||||||
|
on customer_order
|
||||||
|
begin
|
||||||
|
delete
|
||||||
|
from order_fts
|
||||||
|
where id = old.id;
|
||||||
|
end;
|
||||||
|
|
||||||
|
create trigger order_fts_update
|
||||||
|
after
|
||||||
|
update
|
||||||
|
on customer_order
|
||||||
|
begin
|
||||||
|
update customer_order
|
||||||
|
set id = new.id,
|
||||||
|
name = new.name,
|
||||||
|
surname = new.surname,
|
||||||
|
phone = new.phone,
|
||||||
|
location = new.location,
|
||||||
|
order_date = new.order_date,
|
||||||
|
delivery_date = new.delivery_date,
|
||||||
|
status = new.status,
|
||||||
|
paid = new.paid
|
||||||
|
where id = old.id;
|
||||||
|
end;
|
||||||
|
|
||||||
|
pragma
|
||||||
|
user_version = 1;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
create table session (
|
|
||||||
token text primary key,
|
|
||||||
user_name text,
|
|
||||||
created text,
|
|
||||||
lastAccess text
|
|
||||||
);
|
|
||||||
|
|
||||||
pragma user_version = 2;
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
alter table cake
|
|
||||||
add column category text;
|
|
||||||
|
|
||||||
alter table cake
|
|
||||||
add column availability text;
|
|
||||||
|
|
||||||
pragma user_version = 3;
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
update cake
|
|
||||||
set
|
|
||||||
category = "common";
|
|
||||||
|
|
||||||
update cake
|
|
||||||
set
|
|
||||||
availability = "avaiable";
|
|
||||||
|
|
||||||
pragma user_version = 4;
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
update cake
|
|
||||||
set
|
|
||||||
availability = "available";
|
|
||||||
|
|
||||||
pragma user_version = 5;
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
drop table session;
|
|
||||||
|
|
||||||
create table session (
|
|
||||||
token text pirmary key,
|
|
||||||
user text,
|
|
||||||
expiration text
|
|
||||||
);
|
|
||||||
|
|
||||||
pragma user_version = 6;
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
create table user (login text primary key, password text, role text);
|
|
||||||
|
|
||||||
drop table session;
|
|
||||||
|
|
||||||
create table session (
|
|
||||||
token text primary key,
|
|
||||||
user text,
|
|
||||||
expiration text
|
|
||||||
);
|
|
||||||
|
|
||||||
pragma user_version = 7;
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
alter table user
|
|
||||||
add column salt text;
|
|
||||||
|
|
||||||
pragma user_version = 8;
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
||||||
create virtual table order_fts using fts5 (
|
|
||||||
id,
|
|
||||||
name,
|
|
||||||
surname,
|
|
||||||
phone,
|
|
||||||
location,
|
|
||||||
status,
|
|
||||||
order_date,
|
|
||||||
delivery_date,
|
|
||||||
paid,
|
|
||||||
content = 'customer_order'
|
|
||||||
);
|
|
||||||
|
|
||||||
insert into
|
|
||||||
order_fts (
|
|
||||||
id,
|
|
||||||
name,
|
|
||||||
surname,
|
|
||||||
phone,
|
|
||||||
location,
|
|
||||||
status,
|
|
||||||
order_date,
|
|
||||||
delivery_date,
|
|
||||||
paid
|
|
||||||
)
|
|
||||||
select
|
|
||||||
id,
|
|
||||||
name,
|
|
||||||
surname,
|
|
||||||
phone,
|
|
||||||
location,
|
|
||||||
status,
|
|
||||||
order_date,
|
|
||||||
delivery_date,
|
|
||||||
paid
|
|
||||||
from
|
|
||||||
customer_order;
|
|
||||||
|
|
||||||
create trigger order_fts_insert after insert on customer_order begin
|
|
||||||
insert into
|
|
||||||
order_fts (
|
|
||||||
id,
|
|
||||||
name,
|
|
||||||
surname,
|
|
||||||
phone,
|
|
||||||
location,
|
|
||||||
status,
|
|
||||||
order_date,
|
|
||||||
delivery_date,
|
|
||||||
paid
|
|
||||||
)
|
|
||||||
values
|
|
||||||
(
|
|
||||||
new.id,
|
|
||||||
new.name,
|
|
||||||
new.surname,
|
|
||||||
new.phone,
|
|
||||||
new.location,
|
|
||||||
new.status,
|
|
||||||
new.order_date,
|
|
||||||
new.delivery_date,
|
|
||||||
new.paid
|
|
||||||
);
|
|
||||||
|
|
||||||
end;
|
|
||||||
|
|
||||||
create trigger order_fts_delete after delete on customer_order begin
|
|
||||||
delete from order_fts
|
|
||||||
where
|
|
||||||
id = old.id;
|
|
||||||
|
|
||||||
end;
|
|
||||||
|
|
||||||
create trigger order_fts_update after
|
|
||||||
update on customer_order begin
|
|
||||||
update customer_order
|
|
||||||
set
|
|
||||||
id = new.id,
|
|
||||||
name = new.name,
|
|
||||||
surname = new.surname,
|
|
||||||
phone = new.phone,
|
|
||||||
location = new.location,
|
|
||||||
status = new.status,
|
|
||||||
order_date = new.order_date,
|
|
||||||
delivery_date = new.delivery_date,
|
|
||||||
paid = new.paid
|
|
||||||
where
|
|
||||||
id = old.id;
|
|
||||||
|
|
||||||
end;
|
|
||||||
|
|
||||||
pragma user_version = 9;
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue