2.4. Setup workstation
2.4.1. Database configuration
To tell a workstation, where the database is (on the local system or on a network server) you will have to create some files initially on every device on which you will have QGIS/TWW running (client). It is not required to do that on the server itself.
These instructions depend on your operating system.
2.4.1.1. Windows pg_service
Create a new directory where you want to store the configuration in. (E.g. a new folder pgconfig
in your home folder). This directory will be referred to as PGSYSCONFDIR
in this guide.
Set the environment variable PGSYSCONFDIR
to the path to PGSYSCONFDIR
.
Note
Search for environment variable in your windows system settings, then click one of the following options, for either a user or a system variable:
Click
New
to add a new variable name and value. Click an existing variable, and then clickEdit
to change its name or value. Click an existing variable, and then clickDelete
to remove it.
You can check your environment variables also within QGIS: Menu Settings
–> Options...
–> System
Tab –> Environment
Inside this folder, there will be two files
pg_service.conf
pgpass
(If you do not want to enter the password for the db every time)
Attention
On Windows, you need to save pg_service.conf
in Unix format in order to work.
One way to do it is to open it with Notepad++
and Edit
–> EOL Conversion
–> UNIX Format
–> File save
.
2.4.1.2. Linux/macOS pg_service
On Unix systems (linux/macOS etc.) you may put the files .pg_service.conf
and .pgpass
into your home folder (normally /home/[username]
). Pay attention to the starting . (<> Windows)!
If your QGIS doesn’t find the .pg_service.conf
file, set the environment variable PGSYSCONFDIR:
In QGIS go to Settings
> Options
> System
tab. Near the bottom you’ll find Environment
. Tick Use custom variables
and click on the plus on the right. Add the PGSYSCONFDIR variable using Append (to make sure you don’t delete anything - doesn’t matter probably) and its value (probably /home/[username]
see above). Then click OK
at the bottom right.
After closing and reopening QGIS, you should be able to see the added PGSYSCONFDIR at the bottom of the same window under Current environment variables
.
.. figure:: images/macEnvVarCheck.png
2.4.1.3. All systems
Put the following content in the file pg_service.conf
or .pg_service.conf
.
You may have to adapt the variables for your setup.
[pg_tww]
host=localhost
port=5432
dbname=tww
user=twwuser
To save the password as well on the system you may use the file pgpass.
localhost:5432:*:twwuser:password
Note
If you don’t have the database on your local machine replace any
occurence of localhost
with the network address of your database
server.
Alternative: put your password directly into the pg_service.conf
(on Windows) / .pg_service.conf
(on *nix) file:
[pg_tww]
host=localhost
port=5432
dbname=tww
user=twwuser
password=***
2.4.2. Install QGIS
Minimum requirement 3.34.8
We recommend using the latest master build (called qgis-dev on Windows) which often offers a better experience in combination with TWW. For Windows installation, download the OSGeo4W Installer choose advanced installation and install qgis-dev.
2.4.3. Install TWW plugin
Plugin requirements:
networkx >= 3.3
You can install them on Debian based systems with:
sudo pip install networkx
sudo apt-get install libqt4-sql-psql
Or for Windows users, directly in QGIS via the Python Console with:
import pip; pip.main(["install", "networkx"])
Open QGIS
Go to
Plugins
Manage and Install Plugins
Settings
Enable
Show also experimental plugins
Activate the plugin (see image below):
All
Search TWW
Click the checkbox next to it
TWW uses a data historization process. The pg history viewer
plugin allows you to view the changes made and replay some of them.
2.4.4. Install the demo data
as described here
2.4.5. Install the demo project
Download from https://github.com/TWW/tww/releases the qgs project file and its translations
project-translations.zip
Extract the file
If you leave the teksi_wastewater_[language].qm files in the same directory as the teksi_wastewater.qgs file and start QGIS with one of these languages, your project will be translated to that langue when you start the project. E.g. you start teksi_wastewater.qgs with a QGIS Installation that is set to German, then the teksi_wastewater.qgs project will appear in German.
Note
You need to explicitly set the language in QGIS in settings. If QGIS is configured to take the system language, the TWW translation is not loaded.
Open project-translations/teksi_wastewater.qgs with QGIS
When you save that project it will keep it’s language and it cannot be changed in the same way.
2.4.6. If you are a data owner: Add your own OID to the project
If you are a data owner (Datenherr), you should add your OID data in the table tww_sys.oid_prefixes:
Edit
02_oid_generation.sql
with your OID if you want it permanently in the TWW project and hand in a pull request
https://github.com/TWW/datamodel/blob/master/02_oid_generation.sql
-- sample entry for the City of Uster - you need to add an entry for your own organization
INSERT INTO tww_sys.oid_prefixes (prefix,organization,active) VALUES ('ch11h8mw','Stadt Uster',TRUE);
INSERT INTO tww_sys.oid_prefixes (prefix,organization,active) VALUES ('ch15z36d','SIGE',FALSE);
INSERT INTO tww_sys.oid_prefixes (prefix,organization,active) VALUES ('ch13p7mz','Arbon',FALSE);
and set the OID you want to use in your project to TRUE.
or add it locally to your project with an INSERT statement.
OID prefixes have to be ordered at https://www.interlis.ch/en/dienste/oid-bestellen
Note
If you work with different databases for different communities, you should use different OID prefixes for each database.
2.4.7. Working with more than one database
Create a new database in pgAdmin with a new name, e.g. communityA
Create a new schema tww in this database (do not choose another name, because all scripts works with the schema-name tww)
Go further on as described in 1.2 Database initialization
Change the
pg_service.conf
- file
[pg_tww]
host=localhost
port=5432
dbname=tww
user=twwuser
[pg_communityA]
host=localhost
port=5432
dbname=communityA
user=twwuser
Search and replace in the copy of
tww_en.qgs
all ‘pg_tww’ with ‘pg_communityA’