add selector functionality to generate script

This commit is contained in:
Wolfgang Hottgenroth 2021-08-28 19:00:49 +02:00
parent 4ec28e6064
commit a63076c07c
Signed by: wn
GPG Key ID: 6C1E5E531E0D5D7F
4 changed files with 57 additions and 19 deletions

View File

@ -7,6 +7,8 @@ SELECT
id id
,description ,description
FROM account_t FROM account_t
ORDER BY
description
""", """,
"params": () "params": ()
} }
@ -42,6 +44,9 @@ SELECT
,iban ,iban
,account ,account
FROM tenant_t FROM tenant_t
ORDER BY
lastname
,firstname
""", """,
"params": () "params": ()
} }
@ -80,6 +85,8 @@ SELECT
,zip ,zip
,city ,city
FROM premise_t FROM premise_t
ORDER BY
description
""", """,
"params": () "params": ()
} }
@ -110,6 +117,9 @@ SELECT
,area ,area
,flat_no ,flat_no
FROM flat_t FROM flat_t
ORDER BY
premise
,description
""", """,
"params": () "params": ()
} }
@ -140,6 +150,9 @@ SELECT
,startdate ,startdate
,enddate ,enddate
FROM overhead_advance_t FROM overhead_advance_t
ORDER BY
description
,startdate
""", """,
"params": () "params": ()
} }
@ -168,6 +181,9 @@ SELECT
,overhead_advance ,overhead_advance
,flat ,flat
FROM overhead_advance_flat_mapping_t FROM overhead_advance_flat_mapping_t
ORDER BY
overhead_advance
,flat
""", """,
"params": () "params": ()
} }
@ -194,6 +210,9 @@ SELECT
,description ,description
,premise ,premise
FROM parking_t FROM parking_t
ORDER BY
premise
,description
""", """,
"params": () "params": ()
} }
@ -220,6 +239,9 @@ SELECT
,description ,description
,premise ,premise
FROM commercial_premise_t FROM commercial_premise_t
ORDER BY
premise
,description
""", """,
"params": () "params": ()
} }
@ -251,6 +273,9 @@ SELECT
,startdate ,startdate
,enddate ,enddate
FROM tenancy_t FROM tenancy_t
ORDER BY
description
,startdate
""", """,
"params": () "params": ()
} }
@ -285,6 +310,9 @@ SELECT
,startdate ,startdate
,enddate ,enddate
FROM fee_t FROM fee_t
ORDER BY
description
,startdate
""", """,
"params": () "params": ()
} }

View File

@ -10,6 +10,14 @@ SELECT
,$column.name ,$column.name
#end for #end for
FROM ${table.name}_t FROM ${table.name}_t
#if $table.selectors
ORDER BY
#set $sep = ""
#for $selector in $table.selectors
$sep$selector
#set $sep = ","
#end for
#end if
""", """,
"params": () "params": ()
} }

View File

@ -20,7 +20,8 @@ with open(args.schema) as schemaFile:
schema = json.load(schemaFile) schema = json.load(schemaFile)
for table in schema["tables"]: for table in schema["tables"]:
for column in table["columns"]: columns = table["columns"]
for column in columns:
if column["sqltype"] == 'serial': if column["sqltype"] == 'serial':
column["apitype"] = 'integer' column["apitype"] = 'integer'
column["jstype"] = 'number' column["jstype"] = 'number'
@ -39,6 +40,7 @@ for table in schema["tables"]:
elif column["sqltype"].startswith('numeric'): elif column["sqltype"].startswith('numeric'):
column["apitype"] = 'number' column["apitype"] = 'number'
column["jstype"] = 'number' column["jstype"] = 'number'
table["selectors"] = [ y["name"] for y in sorted([ x for x in columns if "selector" in x ], key=lambda x: x["selector"])]
for f in glob.glob(args.template): for f in glob.glob(args.template):
print(f"process {f}") print(f"process {f}")

View File

@ -3,15 +3,15 @@
{ {
"name": "account", "name": "account",
"columns": [ "columns": [
{ "name": "description", "sqltype": "varchar(128)", "notnull": true } { "name": "description", "sqltype": "varchar(128)", "notnull": true, "selector": 0 }
] ]
}, },
{ {
"name": "tenant", "name": "tenant",
"columns": [ "columns": [
{ "name": "salutation", "sqltype": "varchar(128)" }, { "name": "salutation", "sqltype": "varchar(128)" },
{ "name": "firstname", "sqltype": "varchar(128)" }, { "name": "firstname", "sqltype": "varchar(128)", "selector": 1 },
{ "name": "lastname", "sqltype": "varchar(128)" }, { "name": "lastname", "sqltype": "varchar(128)", "selector": 0 },
{ "name": "address1", "sqltype": "varchar(128)" }, { "name": "address1", "sqltype": "varchar(128)" },
{ "name": "address2", "sqltype": "varchar(128)" }, { "name": "address2", "sqltype": "varchar(128)" },
{ "name": "address3", "sqltype": "varchar(128)" }, { "name": "address3", "sqltype": "varchar(128)" },
@ -26,7 +26,7 @@
{ {
"name": "premise", "name": "premise",
"columns": [ "columns": [
{ "name": "description", "sqltype": "varchar(128)" }, { "name": "description", "sqltype": "varchar(128)", "selector": 0 },
{ "name": "street", "sqltype": "varchar(128)", "notnull": true }, { "name": "street", "sqltype": "varchar(128)", "notnull": true },
{ "name": "zip", "sqltype": "varchar(10)", "notnull": true }, { "name": "zip", "sqltype": "varchar(10)", "notnull": true },
{ "name": "city", "sqltype": "varchar(128)", "notnull": true } { "name": "city", "sqltype": "varchar(128)", "notnull": true }
@ -35,8 +35,8 @@
{ {
"name": "flat", "name": "flat",
"columns": [ "columns": [
{ "name": "description", "sqltype": "varchar(128)" }, { "name": "description", "sqltype": "varchar(128)", "selector": 1 },
{ "name": "premise", "sqltype": "integer", "foreignkey": true }, { "name": "premise", "sqltype": "integer", "foreignkey": true, "selector": 0 },
{ "name": "area", "sqltype": "numeric(10,2)", "notnull": true }, { "name": "area", "sqltype": "numeric(10,2)", "notnull": true },
{ "name": "flat_no", "sqltype": "integer" } { "name": "flat_no", "sqltype": "integer" }
] ]
@ -44,42 +44,42 @@
{ {
"name": "overhead_advance", "name": "overhead_advance",
"columns": [ "columns": [
{ "name": "description", "sqltype": "varchar(128)" }, { "name": "description", "sqltype": "varchar(128)", "selector": 0 },
{ "name": "amount", "sqltype": "numeric(10,4)", "notnull": true }, { "name": "amount", "sqltype": "numeric(10,4)", "notnull": true },
{ "name": "startdate", "sqltype": "date" }, { "name": "startdate", "sqltype": "date", "selector": 1 },
{ "name": "enddate", "sqltype": "date" } { "name": "enddate", "sqltype": "date" }
] ]
}, },
{ {
"name": "overhead_advance_flat_mapping", "name": "overhead_advance_flat_mapping",
"columns": [ "columns": [
{ "name": "overhead_advance", "sqltype": "integer", "notnull": true, "foreignkey": true }, { "name": "overhead_advance", "sqltype": "integer", "notnull": true, "foreignkey": true, "selector": 0 },
{ "name": "flat", "sqltype": "integer", "notnull": true, "foreignkey": true } { "name": "flat", "sqltype": "integer", "notnull": true, "foreignkey": true, "selector": 1 }
] ]
}, },
{ {
"name": "parking", "name": "parking",
"columns": [ "columns": [
{ "name": "description", "sqltype": "varchar(128)" }, { "name": "description", "sqltype": "varchar(128)", "selector": 1 },
{ "name": "premise", "sqltype": "integer", "foreignkey": true } { "name": "premise", "sqltype": "integer", "foreignkey": true, "selector": 0 }
] ]
}, },
{ {
"name": "commercial_premise", "name": "commercial_premise",
"columns": [ "columns": [
{ "name": "description", "sqltype": "varchar(128)" }, { "name": "description", "sqltype": "varchar(128)", "selector": 1 },
{ "name": "premise", "sqltype": "integer", "foreignkey": true } { "name": "premise", "sqltype": "integer", "foreignkey": true, "selector": 0 }
] ]
}, },
{ {
"name": "tenancy", "name": "tenancy",
"columns": [ "columns": [
{ "name": "description", "sqltype": "varchar(128)" }, { "name": "description", "sqltype": "varchar(128)", "selector": 0 },
{ "name": "tenant", "sqltype": "integer", "notnull": true, "foreignkey": true }, { "name": "tenant", "sqltype": "integer", "notnull": true, "foreignkey": true },
{ "name": "flat", "sqltype": "integer", "notnull": false, "foreignkey": true }, { "name": "flat", "sqltype": "integer", "notnull": false, "foreignkey": true },
{ "name": "parking", "sqltype": "integer", "notnull": false, "foreignkey": true }, { "name": "parking", "sqltype": "integer", "notnull": false, "foreignkey": true },
{ "name": "commercial_premise", "sqltype": "integer", "notnull": false, "foreignkey": true }, { "name": "commercial_premise", "sqltype": "integer", "notnull": false, "foreignkey": true },
{ "name": "startdate", "sqltype": "date", "notnull": true }, { "name": "startdate", "sqltype": "date", "notnull": true, "selector": 1 },
{ "name": "enddate", "sqltype": "date", "notnull": false } { "name": "enddate", "sqltype": "date", "notnull": false }
], ],
"tableConstraints": [ "tableConstraints": [
@ -89,10 +89,10 @@
{ {
"name": "fee", "name": "fee",
"columns": [ "columns": [
{ "name": "description", "sqltype": "varchar(128)" }, { "name": "description", "sqltype": "varchar(128)", "selector": 0 },
{ "name": "amount", "sqltype": "numeric(10,2)", "notnull": true }, { "name": "amount", "sqltype": "numeric(10,2)", "notnull": true },
{ "name": "fee_type", "sqltype": "varchar(10)", "notnull": true }, { "name": "fee_type", "sqltype": "varchar(10)", "notnull": true },
{ "name": "startdate", "sqltype": "date" }, { "name": "startdate", "sqltype": "date", "selector": 1 },
{ "name": "enddate", "sqltype": "date" } { "name": "enddate", "sqltype": "date" }
], ],
"tableConstraints": [ "tableConstraints": [