Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Add AG-64/96 extension #399

Draft
wants to merge 310 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
310 commits
Select commit Hold shift + click to select a range
75997a9
Export infrastrukturknoten
tschumpr Mar 19, 2024
b17e7e3
Export infrastrukturknoten
tschumpr Mar 19, 2024
fc31035
Fix typos
tschumpr Mar 20, 2024
a8789cc
Export GEPMassnahmen (#18)
tschumpr Mar 20, 2024
f5f5db7
Merge remote-tracking branch 'origin/main' into export_bautenausserha…
tschumpr Mar 20, 2024
725f548
Merge remote-tracking branch 'origin/main' into export-sbw_einzugsgebiet
tschumpr Mar 20, 2024
8136460
Merge remote-tracking branch 'origin/main' into export_einzugsgebiet
tschumpr Mar 20, 2024
f282fe8
Hard-code export value
tschumpr Mar 20, 2024
28d2996
Capitalize value
tschumpr Mar 20, 2024
83ef593
Export Einzugsgebiet (#21)
tschumpr Mar 20, 2024
a918ecf
Merge main
tschumpr Mar 20, 2024
ffc949f
Merge branch 'main' into export_bautenausserhalbbaugebiet
tschumpr Mar 20, 2024
198fa5f
Export BautenAusserhalbBaugebiet (#19)
tschumpr Mar 20, 2024
b54b767
Merge remote-tracking branch 'origin/main' into export-sbw_einzugsgebiet
tschumpr Mar 20, 2024
2c58046
Merge remote-tracking branch 'origin/main' into export_infrastrukturk…
tschumpr Mar 20, 2024
d19b426
Fix table name
tschumpr Mar 20, 2024
9377291
Remove invalid filter
tschumpr Mar 20, 2024
95737a7
Add missing ids
tschumpr Mar 20, 2024
2a7b1d9
Preserve obj_id
tschumpr Mar 20, 2024
43a9044
Export Infrastrukturknoten (#22)
tschumpr Mar 20, 2024
db6fe66
Export Infrastrukturhaltung (#23)
tschumpr Mar 20, 2024
7ebc0de
Export UeberlaufFoerderaggregat
tschumpr Mar 20, 2024
634c452
Remove invalid filter
tschumpr Mar 20, 2024
027aff7
Merge remote-tracking branch 'origin/main' into export-sbw_einzugsgebiet
tschumpr Mar 20, 2024
69c83c6
Update spacing
tschumpr Mar 20, 2024
57ea841
Export UeberlaufFoerderaggregat (#24)
tschumpr Mar 20, 2024
f341fb2
Merge remote-tracking branch 'origin/main' into export-sbw_einzugsgebiet
tschumpr Mar 20, 2024
0ba4cfd
Remove invalid filter
tschumpr Mar 21, 2024
ef82538
Fix t_id export
tschumpr Mar 21, 2024
d4d1ecb
Fix t_id export (#27)
tschumpr Mar 21, 2024
5d013f6
Export only largest geometry
tschumpr Mar 25, 2024
2430b66
Export sbw-einzugsgebiet (#20)
tschumpr Mar 25, 2024
462475e
Remove invalid filters (#28)
tschumpr Mar 25, 2024
ae0c3a0
Add filter
tschumpr Mar 27, 2024
1a4d998
Add filter for sbw_einzugsgebiet
tschumpr Mar 27, 2024
35f5a4b
Correctly handle mandatory references
tschumpr Mar 27, 2024
17095e4
Fix filter for haltungen
tschumpr Mar 27, 2024
78cac5f
Merge branch 'main' of github.com:teksi/wastewater into teksi-main
tschumpr Mar 27, 2024
32014e9
Fix filter
tschumpr Mar 27, 2024
3468ec1
Merge main repository into fork (#31)
tschumpr Mar 27, 2024
e9c7e1e
Unify duplicate code
tschumpr Mar 27, 2024
e732017
Add filter agxx (#29)
tschumpr Mar 28, 2024
5bb8ee2
Remove hardcoded value
tschumpr Mar 28, 2024
415ebd2
Fix retention_ist (#32)
tschumpr Mar 28, 2024
785cd6b
Merge branch 'teksi:main' into main
tschumpr Apr 15, 2024
cab2a04
Add bug template
tschumpr Apr 16, 2024
de9d0d7
Add bug template (#33)
tschumpr Apr 16, 2024
ef11ad8
alter bautenausserhalbbaugebiet.sanierungsbedarf
cymed Apr 16, 2024
ca7a97b
correct measure priority
cymed Apr 16, 2024
c7d2759
do not capitalize in python
cymed Apr 18, 2024
e038d94
Add GUI filter
cymed Apr 18, 2024
2b811f4
alter order_usage_current on db
cymed Apr 19, 2024
6f4d78f
add label functionality
cymed Apr 29, 2024
6654c2b
add .sql alterations in tww_sys
cymed Apr 30, 2024
8498a4d
alter order_fct_hierarchic
cymed May 3, 2024
55e1bed
Apply suggestions from code review
cymed May 3, 2024
af4ecac
remove restart text and alter formatting
cymed May 3, 2024
35be8b4
Merge branch 'gui_adaptations' of https://github.com/wapaAdmin/tww2ag…
cymed May 3, 2024
b6fa7aa
fix label export
cymed May 3, 2024
7ee8a40
Merge remote-tracking branch 'upstream/main' into merge-upstream
tschumpr May 8, 2024
2594b2c
Remove capitalization
tschumpr May 13, 2024
d0d9e26
Add GUI filtering (#35)
tschumpr May 13, 2024
bb6ab70
rename _export_labels_file_
cymed May 13, 2024
ef8e9aa
Remove capitalization (#38)
tschumpr May 13, 2024
9e2de9b
Merge remote-tracking branch 'origin/main' into cymed_adaptations_python
tschumpr May 13, 2024
70d593a
merge export labels file functionality in one function
cymed May 13, 2024
c4080a8
Merge branch 'cymed_adaptations_python' of https://github.com/wapaAdm…
cymed May 13, 2024
6caa1cf
Fix basket name
tschumpr May 14, 2024
4aa1b4b
Merge remote-tracking branch 'origin/main' into merge-upstream
tschumpr May 14, 2024
d76bf3d
Merge pull request #39 from wapaAdmin/fix-basket-name
tschumpr May 14, 2024
9e179f8
Merge remote-tracking branch 'origin/main' into merge-upstream
tschumpr May 14, 2024
8ce2c38
Merge remote-tracking branch 'origin/main' into cymed_adaptations_python
tschumpr May 14, 2024
2f227b7
Merge pull request #34 from wapaAdmin/cymed_adaptations_python
cymed May 14, 2024
3c765d6
Merge remote-tracking branch 'origin/main' into merge-upstream
tschumpr May 14, 2024
9a059a0
Add catchment labels to DSS export
cymed May 14, 2024
c543dbb
Merge pull request #40 from wapaAdmin/add_catchment_labels_to_dss
cymed May 14, 2024
fa18362
Merge upstream (#37)
tschumpr May 17, 2024
29c4d09
Merge branch 'teksi:main' into merge-upstream
cymed Jun 24, 2024
6c245d9
Merge pull request #41 from wapaAdmin/merge-upstream
cymed Jul 2, 2024
8c206c2
Separate working scripts from dev scripts (#44)
cymed Jul 3, 2024
ee576bb
Merge branch 'teksi:main' into merge-upstream
cymed Jul 3, 2024
ece7a7a
next sql adaptations (#47)
cymed Jul 4, 2024
a0da778
Sql adaptations (#50)
cymed Jul 5, 2024
449ba95
[WIP] Include official extensions in CI
cymed Jul 10, 2024
bfe7123
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 10, 2024
a65e22e
Cleanup extension_manager.py
cymed Jul 10, 2024
5b33ce0
Update create-dumps.py
cymed Jul 10, 2024
17e1101
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 10, 2024
9c96448
Update extension_manager.py
cymed Jul 10, 2024
283411f
Merge branch 'ci-for-extensions' of https://github.com/cymed/TEKSI-wa…
cymed Jul 10, 2024
4585e0a
typo fix
cymed Jul 10, 2024
0eb06e1
typo fix
cymed Jul 10, 2024
e4bf307
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 10, 2024
e0f6c13
parser fix
cymed Jul 12, 2024
28194bf
shell testing
cymed Jul 12, 2024
5558779
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 12, 2024
b038c8f
fix precommit errors
cymed Jul 16, 2024
2573588
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 16, 2024
398659e
dump fix
cymed Jul 16, 2024
8afde84
Merge branch 'ci-for-extensions' of https://github.com/cymed/TEKSI-wa…
cymed Jul 16, 2024
15853c5
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 16, 2024
2bc523e
moving init scripts to extension folder
cymed Jul 17, 2024
8e986ad
Alter sbw_einzugsgebiet Filter (#53)
cymed Jul 17, 2024
8c584ed
refresh knoten_bauwerksattribute (#49)
cymed Jul 17, 2024
aad1348
Merge upstream (#46)
cymed Jul 18, 2024
a9e669b
Revert "Merge upstream (#46)"
cymed Jul 18, 2024
0d7759e
Merge pull request #56 from wapaAdmin/revert-46-merge-upstream
cymed Jul 18, 2024
1b53c18
Merge branch 'merge-upstream' into fix-upstream-conflicts
cymed Jul 18, 2024
f9f4467
Merge pull request #57 from teksi/fix-upstream-conflicts
cymed Jul 18, 2024
1c8920f
fix typo from conflict management
cymed Jul 18, 2024
7044b21
Merge branch 'merge-upstream' into 58-merger
cymed Jul 18, 2024
b794273
Merge pull request #58 from teksi/58-merger
cymed Jul 18, 2024
14ee344
rollback on init_db.sh
cymed Jul 18, 2024
7d19dbb
rollback run_docker.sh
cymed Jul 18, 2024
018d92a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 18, 2024
0fbae9e
completely rollback run-docker
cymed Jul 18, 2024
63d81ef
Merge branch 'ci-for-extensions' of https://github.com/cymed/TEKSI-wa…
cymed Jul 18, 2024
7b49422
Merge pull request #59 from teksi/main
cymed Jul 23, 2024
2cad8b8
map update type to GUI
cymed Jul 23, 2024
daaffb6
fix extension manager
cymed Aug 6, 2024
03c6704
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 6, 2024
965b34e
feedback running py file too
cymed Aug 6, 2024
0f5cefc
make scripts psycopg-suitable
cymed Aug 6, 2024
f6e5bad
activate import trigger scripts
cymed Aug 6, 2024
dfa5a3e
Merge branch 'teksi:main' into merge-upstream
cymed Aug 7, 2024
5ba2012
Merge branch 'teksi:main' into ci-for-extensions
cymed Aug 7, 2024
5cd777b
minor fixes
cymed Aug 7, 2024
384c23d
rollback alterations to setup shell
cymed Aug 7, 2024
5125174
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 7, 2024
61b09cf
parser fix in create_dumps
cymed Aug 7, 2024
0800b5c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 7, 2024
f9c6ee9
also alter create_backup_complete
cymed Aug 7, 2024
c2c29cb
Add import functionality
cymed Aug 8, 2024
42d0de3
Merge branch 'teksi:main' into merge-upstream
cymed Aug 8, 2024
5f32b07
remove "ON CONFLICT"
cymed Aug 8, 2024
2892e94
symbology trigger alterations
cymed Aug 8, 2024
5211c67
alter order_fct_hierarchic name
cymed Aug 8, 2024
0b3bbed
add missing semicolons
cymed Aug 8, 2024
4e26234
remove one comma
cymed Aug 8, 2024
7fffda1
minor fixes
cymed Aug 8, 2024
d6d44cb
more fixes
cymed Aug 9, 2024
984632e
add fk_wastewater_node to cover
cymed Aug 12, 2024
55c9784
Merge pull request #55 from wapaAdmin/merge-upstream
cymed Aug 13, 2024
85054e8
Merge branch 'main' into merge-upstream
cymed Aug 14, 2024
0fa9a66
bauwerkstatus import vl
cymed Aug 14, 2024
e545a1f
jahr_umsetzung_geplant rename
cymed Aug 14, 2024
af3d076
renaming of jahr_umsetzung_planned to jahr_umsetzung_geplant
cymed Aug 14, 2024
ab71ebd
Revert "renaming of jahr_umsetzung_planned to jahr_umsetzung_geplant"
cymed Aug 14, 2024
f184ecf
rename planned to geplant
cymed Aug 14, 2024
aa5bf21
Add flag ignore_ws to determine creation of wastewater structure
cymed Aug 14, 2024
2064f22
Merge branch 'teksi:main' into merge-upstream
cymed Aug 15, 2024
c40ec59
Move sql scripts to extensions folder (#62)
cymed Aug 15, 2024
7b5afaa
Merge branch 'main' into cover-handling
cymed Aug 15, 2024
3c9f117
rename _import_einzugsgebiet to _import_einzugsgebiet_ag96
cymed Aug 15, 2024
69d91eb
Merge pull request #65 from cymed/merge-upstream
cymed Aug 15, 2024
b0bd6cc
Add GUI to set the update type
cymed Aug 16, 2024
8078cef
rename {ext_schema}.update_last_ag_modification to tww_sys.update_las…
cymed Aug 16, 2024
7a5cd56
add ws_type to gepknoten
cymed Aug 19, 2024
bac911b
ad meta attribute to overflow
cymed Aug 19, 2024
0f3b9ed
make trigger functions independent from app
cymed Aug 19, 2024
06b4b71
Merge branch 'teksi:main' into merge-upstream
cymed Aug 26, 2024
4a10b8d
various fixes
cymed Aug 26, 2024
dc00a70
Merge branch 'main' into add-assets-to-release
cymed Aug 26, 2024
29b2edf
make module independent
cymed Aug 26, 2024
0630c3e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 26, 2024
a8d0bb0
remove schemaname
cymed Aug 26, 2024
38304a1
Merge branch 'ci-for-extensions' of https://github.com/cymed/TEKSI-wa…
cymed Aug 26, 2024
4accd87
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 26, 2024
c69a389
drop extension schema
cymed Aug 26, 2024
3fc2977
drop ext schema from mapping def
cymed Aug 26, 2024
bb07fa2
refresh materialized view
cymed Aug 26, 2024
61ced94
alter all ag schema references to tww_app
cymed Aug 27, 2024
cd6c6ab
remove more ext_schema references
cymed Aug 27, 2024
89b9576
Add Organisationstabelle
cymed Aug 28, 2024
54274e9
Merge pull request #70 from cymed/merge-upstream
cymed Aug 29, 2024
12868cb
Merge branch 'main' into merge_upstream
cymed Aug 29, 2024
e1a55e7
Merge pull request #73 from teksi/merge_upstream
cymed Aug 29, 2024
0f4bbe5
Merge branch 'main' into ci-for-extensions
cymed Aug 29, 2024
bdcd0e9
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 29, 2024
31bc659
remove ag-xx project
cymed Aug 29, 2024
a7a4686
organisation fix
cymed Aug 29, 2024
063a33c
ignore_ws_fix
cymed Aug 29, 2024
b066739
Merge branch 'main' into add-import-functionality
cymed Aug 29, 2024
15cc71c
python syntax
cymed Aug 29, 2024
8710cc4
add missing attribute to import
cymed Aug 30, 2024
c74557b
convert perimeter_ist to multipart
cymed Aug 30, 2024
dcf5eb0
add lichte_hoehe
cymed Aug 30, 2024
fbe1bbf
remove commented code
cymed Aug 30, 2024
37314a3
Merge pull request #66 from wapaAdmin/cover-handling
cymed Aug 30, 2024
4d8a088
Merge branch 'main' into add-import-functionality
cymed Aug 30, 2024
5e64a5d
revert altering creation scripts
cymed Aug 30, 2024
63bc6c0
revert plugin alterations
cymed Aug 30, 2024
eb378f3
revert changiong bug report
cymed Aug 30, 2024
c823b89
revert readme
cymed Aug 30, 2024
0effe9b
REQ @Philippluca
cymed Aug 30, 2024
3c688e6
Renaming of functions and triggers
cymed Aug 30, 2024
1928902
renaming according to #72 changes
cymed Aug 30, 2024
66a6c04
Merge pull request #69 from wapaAdmin/add-update-type-selector-gui
cymed Aug 31, 2024
0de2ede
Update datamodel/extensions/config.yaml
cymed Aug 31, 2024
23add9e
Update datamodel/extensions/demo_extension/002_demo.py
cymed Aug 31, 2024
53d47c9
Update datamodel/scripts/create-dumps.py
cymed Aug 31, 2024
51f0bc3
request implementation
cymed Sep 2, 2024
46fa208
Merge branch 'ci-for-extensions' of https://github.com/cymed/TEKSI-wa…
cymed Sep 2, 2024
0bc3932
Update datamodel/extensions/extension_manager.py
cymed Sep 2, 2024
da7aa29
fix extension name
cymed Sep 2, 2024
f522690
Merge pull request #71 from cymed/ci-for-extensions
cymed Sep 2, 2024
fc04bcc
Merge branch 'main' into add-assets-to-release
cymed Sep 3, 2024
9064b8a
Merge pull request #63 from wapaAdmin/add-import-functionality
cymed Sep 3, 2024
65ed206
allow loading extensions on app schema creation
cymed Sep 3, 2024
8016d52
Merge pull request #68 from wapaAdmin/add-assets-to-release
cymed Sep 3, 2024
ac40603
Merge branch 'teksi:main' into main
cymed Sep 3, 2024
5d7aa13
Merge pull request #75 from wapaAdmin/main
cymed Sep 3, 2024
fab46ac
move extensions into app
cymed Sep 3, 2024
58f905c
docs
cymed Sep 3, 2024
81a474a
fix nameerror
cymed Sep 3, 2024
1976b16
allow NoneType for extension_names
cymed Sep 3, 2024
aa25fbe
Merge pull request #74 from wapaAdmin/link-extension-manager-to-app-s…
cymed Sep 3, 2024
56dd4fe
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 3, 2024
6780267
CI fixes
cymed Sep 3, 2024
bb5b2bc
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 3, 2024
b68406c
Merge branch 'main' into docu-fix
cymed Sep 4, 2024
9b3205d
fix CI errors
cymed Sep 4, 2024
829caea
fix precommit errors
cymed Sep 4, 2024
112339a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 4, 2024
9fea99f
Merge branch 'teksi:main' into docu-fix
cymed Sep 6, 2024
b23862c
Improve developer experience with VS Code & Docker-DB
Philippluca Sep 6, 2024
b3e120b
Cleanup tasks.json
Philippluca Sep 6, 2024
f08cf95
Merge pull request #76 from wapaAdmin/add-local-development-settings
cymed Sep 9, 2024
2cd71a2
Merge branch 'docu-fix' into main
cymed Sep 9, 2024
6874687
Merge pull request #77 from wapaAdmin/main
cymed Sep 9, 2024
0ebd5bb
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 9, 2024
4b5b218
remove unused extension attributes
cymed Sep 26, 2024
3567689
alterations to match developments in #381
cymed Sep 27, 2024
4609a39
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 27, 2024
f77f50d
Merge pull request #82 from cymed/merge_up_main
cymed Sep 27, 2024
29fd720
Merge branch 'main' into docu-fix
cymed Sep 30, 2024
1dc448d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 30, 2024
57a5f35
Revert "Merge pull request #76 from wapaAdmin/add-local-development-s…
Philippluca Sep 30, 2024
9137d34
Revert "Support debugging"
Philippluca Sep 30, 2024
6be56c7
fix schema ref for gepknoten
cymed Oct 1, 2024
ebf652d
Execute dump creation for each extension.
Philippluca Oct 1, 2024
67a2b98
Load extensions to schema when building database
Philippluca Oct 1, 2024
b72bbf6
Pass EXTENSION_NAMES as environment variables
Philippluca Oct 1, 2024
6e7b56f
Reuse running container for Schemaspy
Philippluca Oct 1, 2024
9e04cef
Run tests with and without extensions
Philippluca Oct 2, 2024
4b3039f
Merge pull request #83 from wapaAdmin/create-db-dumps-with-extensions
cymed Oct 3, 2024
667b0ad
Merge pull request #84 from wapaAdmin/run-ci-with-extensions
cymed Oct 3, 2024
136b2f9
fix mapping of lichte hoehe and second cover check
cymed Oct 3, 2024
dadfe89
Fix trailing whitespace
Philippluca Oct 4, 2024
4cdc081
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions .github/workflows/datamodel-create-dumps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,33 +25,41 @@ jobs:
env:
COMPOSE_PROFILES: schemaspy

strategy:
matrix:
extension: ["", "agxx"]

steps:
- uses: actions/checkout@v4

- name: Docker build
run: docker compose up -d --build
env:
EXTENSION_NAMES: ${{ matrix.extension }}

- name: Initialize container
run: docker compose exec db init_db.sh wait

- name: Create dumps
run: docker compose exec db /src/datamodel/scripts/create-dumps.py
run: docker compose exec db /src/datamodel/scripts/create-dumps.py --extension_name=${{ matrix.extension }}

- name: Schemaspy
run: docker compose run schemaspy
run: docker compose run schemaspy
env:
EXTENSION_NAMES: ${{ matrix.extension }}

- name: Docker logs
if: failure()
run: docker compose logs db

- uses: actions/upload-artifact@v4
with:
name: datamodel-dumps
name: ${{ matrix.extension && format('datamodel-dumps-{0}', matrix.extension) || 'datamodel-dumps' }}
path: datamodel/artifacts/
if-no-files-found: error

- uses: actions/upload-artifact@v4
with:
name: datamodel-schemaspy
name: ${{ matrix.extension && format('datamodel-schemaspy-{0}', matrix.extension) || 'datamodel-schemaspy' }}
path: datamodel/schemaspy/
if-no-files-found: error
3 changes: 2 additions & 1 deletion .github/workflows/datamodel-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jobs:
strategy:
matrix:
psycopg-version: [ 2, 3 ]
extension: ["", "agxx"]
fail-fast: true

steps:
Expand All @@ -43,7 +44,7 @@ jobs:

- name: Initialize container
run: |
docker run -d -p 5432:5432 --name teksi-wastewater teksi/wastewater:unstable
docker run -d -p 5432:5432 --name teksi-wastewater -e EXTENSION_NAMES=${{ matrix.extension }} teksi/wastewater:unstable
docker exec teksi-wastewater init_db.sh wait

- name: Run tests
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/plugin-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ jobs:
fail-fast: false
matrix:
qgis_version: [3.34-jammy, latest]
extension: ["", "agxx"]
env:
QGIS_TEST_VERSION: ${{ matrix.qgis_version }}
COMPOSE_PROFILES: qgis
Expand Down Expand Up @@ -57,12 +58,16 @@ jobs:

- name: Clear Database
run: docker compose exec db init_db.sh build
env:
EXTENSION_NAMES: ${{ matrix.extension }}

- name: Test on QGIS DSS dataset
run: docker compose run qgis /usr/src/plugin/.docker/run-docker-tests.sh teksi_wastewater/tests/test_interlis.py::TestInterlis::test_dss_dataset_import_export

- name: Clear Database
run: docker compose exec db init_db.sh build
env:
EXTENSION_NAMES: ${{ matrix.extension }}

- name: Test command line import orgs
run: docker compose run qgis sh -c 'xvfb-run /usr/src/plugin/tww_cmd.py interlis_import --xtf_file /usr/src/plugin/teksi_wastewater/tests/data/minimal-dataset-organisation-arbon-only.xtf --pghost db --pgdatabase tww --pguser postgres --pgpass postgres --pgport 5432'
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# TEKSI Wastewater module (TWW)

NEW TEKSI wastewater module, adapted datamodel to fit Swiss Norm VSA-DSS Release 2020.1 new standard.

This repository holds all code related to the TEKSI Wastewater module (formerly QGEP). <!--- // skip-keyword-check -->
Expand All @@ -10,7 +11,6 @@ It contains:
- A QGIS .qgs project : TEKSI wastewater and General Wastewater Management Plan (GWMP)
- The documentation : https://teksi.github.io/wastewater/

This will replace actual [QGIS QGEP Project](https://github.com/qgep) <!--- // skip-keyword-check -->

How to start [testing](https://github.com/teksi/wastewater/discussions/72)

Expand Down
14 changes: 14 additions & 0 deletions datamodel/app/create_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
except ImportError:
import psycopg2 as psycopg

from extensions.extension_manager import load_extension
from pirogue import MultipleInheritance, SimpleJoins, SingleInheritance
from triggers.set_defaults_and_triggers import set_defaults_and_triggers
from view.vw_tww_additional_ws import vw_tww_additional_ws
Expand Down Expand Up @@ -45,6 +46,7 @@ def create_app(
tww_wastewater_structure_extra: Optional[Path] = None,
tww_ii_extra: Optional[Path] = None,
wastewater_structure_extra: Optional[Path] = None,
extension_names: Optional[list] = [],
):
"""
Creates the schema tww_app for TEKSI Wastewater & GEP
Expand Down Expand Up @@ -75,6 +77,10 @@ def create_app(
run_sql_file("functions/organisation_functions.sql", pg_service, variables)
run_sql_file("functions/meta_functions.sql", pg_service, variables)

if extension_names:
for extension in extension_names:
load_extension(srid, pg_service, "tww", extension)

# open YAML files
if tww_reach_extra:
tww_reach_extra = safe_load(open(tww_reach_extra))
Expand Down Expand Up @@ -271,6 +277,13 @@ def create_app(
default=False,
action=BooleanOptionalAction,
)
parser.add_argument(
"-x",
"--extension_names",
nargs="*",
required=False,
help="extensions that should be loaded into application schema",
)
args = parser.parse_args()

create_app(
Expand All @@ -279,4 +292,5 @@ def create_app(
drop_schema=args.drop_schema,
tww_reach_extra=args.tww_reach_extra,
tww_wastewater_structure_extra=args.tww_wastewater_structure_extra,
extension_names=args.extension_names,
)
Empty file.
9 changes: 9 additions & 0 deletions datamodel/app/extensions/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
extensions:
- id: template
directory: template_extension
variables:
myVariable: "Hello World"
myNumber: 0
- id: agxx
directory: tww2ag6496
variables: {}
1 change: 1 addition & 0 deletions datamodel/app/extensions/demo_extension/001_demo.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SELECT 1;
17 changes: 17 additions & 0 deletions datamodel/app/extensions/demo_extension/002_demo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from argparse import ArgumentParser


def demo(myVariable, myNumber):
print(f"{myVariable}! My favorite number is {myNumber}")


if __name__ == "__main__":
parser = ArgumentParser()
parser.add_argument("-v", "--myVariable", help="my variable")
parser.add_argument("-n", "--myNumber", help="my number")
args = parser.parse_args()

demo(
args.myVariable,
args.myNumber,
)
118 changes: 118 additions & 0 deletions datamodel/app/extensions/extension_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
import os
import subprocess
import sys
from argparse import ArgumentParser
from pathlib import Path

from yaml import safe_load

try:
import psycopg
except ImportError:
import psycopg2 as psycopg


def read_config(config_file: str, extension_name: str):
abs_file_path = Path(__file__).parent.resolve() / config_file
with open(abs_file_path) as file:
config = safe_load(file)
for entry in config.get("extensions", []):
if entry.get("id") == extension_name:
return entry
raise ValueError(f"No entry found with id: {extension_name}")


def run_py_file(file_path: str, variables: dict = None):
abs_file_path = Path(__file__).parent.resolve() / file_path
varlist = [sys.executable, str(abs_file_path)]
for key, value in variables.iteritems():
varlist.append("--" + key)
varlist.append(value)
result = subprocess.run(varlist, capture_output=True, text=True)
if result.returncode != 0:
raise RuntimeError(f"Error running file: {result.stderr}")


def run_sql_file(file_path: str, pg_service: str, variables: dict = None):
abs_file_path = Path(__file__).parent.resolve() / file_path
with open(abs_file_path) as f:
sql = f.read()
run_sql(sql, pg_service, variables)


def run_sql(sql: str, pg_service: str, variables: dict = None):
if variables:
sql = psycopg.sql.SQL(sql).format(**variables)
conn = psycopg.connect(f"service={pg_service}")
cursor = conn.cursor()
cursor.execute(sql)
conn.commit()
conn.close()


def load_extension(
srid: int = 2056,
pg_service: str = "pg_tww",
module_name: str = "tww",
extension_name: str = None,
):
"""
initializes the TWW database for usage of an extension

Args:
pgservice: pg service string
extension_name: Name of the extension to load

"""

# load definitions from config
config = read_config("config.yaml", extension_name)
variables = config.get("variables", {})

# We also disable symbology triggers as they can badly affect performance. This must be done in a separate session as it
# would deadlock other sessions.
conn = psycopg.connect(f"service={pg_service}")
cursor = conn.cursor()
cursor.execute(f"SELECT {module_name}_app.alter_symbology_triggers('disable');")
conn.commit()
conn.close()

directory = config.get("directory", None)
if directory:
files = os.listdir(Path(__file__).parent.resolve() / directory)
files.sort()
for file in files:
filename = os.fsdecode(file)
if filename.lower().endswith(".sql"):
print(f"Running {filename}")
run_sql_file(os.path.join(directory, filename), pg_service, variables)
if filename.endswith(".py"):
print(f"Running {filename}")
run_py_file(os.path.join(directory, filename), variables)

# re-create symbology triggers
conn = psycopg.connect(f"service={pg_service}")
cursor = conn.cursor()
cursor.execute(f"SELECT {module_name}_app.alter_symbology_triggers('enable');")
conn.commit()
conn.close()


if __name__ == "__main__":
parser = ArgumentParser()
parser.add_argument("-p", "--pg_service", help="postgres service")
parser.add_argument("-m", "--module_name", help="name of TEKSI module", default="tww")
parser.add_argument(
"-s", "--srid", help="SRID EPSG code, defaults to 2056", type=int, default=2056
)
parser.add_argument(
"-x", "--extension_name", help="name of the database extension", type=str, default="demo"
)
args = parser.parse_args()

load_extension(
args.srid,
args.pg_service,
args.module_name,
args.extension_name,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
-- Funktion zum Mapping der Organisations-ID

CREATE OR REPLACE FUNCTION tww_app.fct_agxx_organisationid_to_vsa(oid varchar)
RETURNS varchar(16)
AS
$BODY$
DECLARE
out_oid varchar(16);
BEGIN
SELECT obj_id INTO out_oid FROM tww_od.organisation WHERE right(obj_id,8) = right(oid,8);
return out_oid;
END;
$BODY$
LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION tww_app.fct_agxx_linkup_secondary_nodes(oid varchar)
RETURNS VOID
AS
$BODY$
DECLARE
DECLARE
ws_oid varchar(16);
wn_oids varchar(16)[];
sp_oids varchar(16)[];
BEGIN
SELECT ws.obj_id, array_agg(wn.obj_id) INTO ws_oid, wn_oids
FROM (SELECT ws.obj_id,
st_buffer(detail_geometry3d_geometry,0.0001)
as detail_geometry2d_geometry
FROM tww_od.wastewater_structure ws
LEFT JOIN tww_od.channel ch on ws.obj_id=ch.obj_id
WHERE ws.detail_geometry3d_geometry IS NOT NULL
AND ch.obj_id is NULL) ws
LEFT JOIN (SELECT obj_id,situation3d_geometry
from tww_od.wastewater_node) wn ON
ST_CoveredBy(wn.situation3d_geometry
, detail_geometry2d_geometry)
LEFT JOIN (SELECT obj_id,fk_wastewater_structure FROM tww_od.wastewater_networkelement) ne on ne.obj_id=wn.obj_id
WHERE ne.fk_wastewater_structure IS NULL
GROUP BY ws.obj_id;

SELECT array_agg(co.obj_id) INTO sp_oids
FROM tww_od.wastewater_node wn
LEFT JOIN tww_od.cover co on co.ag64_fk_wastewater_node=wn.obj_id
WHERE wn.obj_id = any(wn_oids)
GROUP BY wn.obj_id;

CASE WHEN ws_oid is not NULL THEN
UPDATE tww_od.wastewater_networkelement
SET fk_wastewater_structure = ws_oid
WHERE obj_id = wn_oid;

UPDATE tww_od.structure_part
SET fk_wastewater_structure = ws_oid
WHERE obj_id = ANY(sp_oids);

ELSE NULL;
END CASE;
RETURN;
END;
$BODY$
LANGUAGE plpgsql;

-- wird für Updates von letzte_aenderung_wi/gep genutzt
CREATE TABLE IF NOT EXISTS tww_cfg.agxx_last_modification_updater(
username varchar(200) PRIMARY KEY
, ag_update_type varchar(4) NOT NULL
, CONSTRAINT ag_update_type_valid CHECK (ag_update_type = ANY(ARRAY['None','WI','GEP','Both'])));

------------------
-- System tables
------------------
INSERT INTO tww_sys.dictionary_od_table (id, tablename, shortcut_en) VALUES
(2999998,'measure_text','MX'),
(2999999,'building_group_text','GX')
ON CONFLICT DO NOTHING;
Loading