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

View File

@ -10,6 +10,14 @@ SELECT
,$column.name
#end for
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": ()
}

View File

@ -20,7 +20,8 @@ with open(args.schema) as schemaFile:
schema = json.load(schemaFile)
for table in schema["tables"]:
for column in table["columns"]:
columns = table["columns"]
for column in columns:
if column["sqltype"] == 'serial':
column["apitype"] = 'integer'
column["jstype"] = 'number'
@ -39,6 +40,7 @@ for table in schema["tables"]:
elif column["sqltype"].startswith('numeric'):
column["apitype"] = '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):
print(f"process {f}")

View File

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