Compare commits
No commits in common. "af0afec77d8611acb38533bcea38bdf0f79778c1" and "44c11fd89b1f738308e2bfcefc33c927fb157bbd" have entirely different histories.
af0afec77d
...
44c11fd89b
42
.env.sample
42
.env.sample
@ -1,42 +0,0 @@
|
|||||||
# General
|
|
||||||
SECRET_KEY=CHANGE_ME
|
|
||||||
DEBUG=True
|
|
||||||
ALLOWED_HOSTS=127.0.0.1,localhost,example.org
|
|
||||||
BASE_URL=http://localhost:8002
|
|
||||||
ADMINS=Admin1:mail@example.org,Admin2:mail2@example.org
|
|
||||||
|
|
||||||
# Database
|
|
||||||
DB_USER=postgres
|
|
||||||
DB_PASSWORD=
|
|
||||||
DB_NAME=konova
|
|
||||||
DB_HOST=127.0.0.1
|
|
||||||
DB_PORT=5432
|
|
||||||
|
|
||||||
# E-Mail
|
|
||||||
SMTP_HOST=localhost
|
|
||||||
SMTP_PORT=25
|
|
||||||
REPLY_TO_ADDR=ksp-servicestelle@sgdnord.rlp.de
|
|
||||||
DEFAULT_FROM_EMAIL=service@ksp.de
|
|
||||||
|
|
||||||
# Proxy
|
|
||||||
PROXY=CHANGE_ME
|
|
||||||
GEOPORTAL_RLP_USER=CHANGE_ME
|
|
||||||
GEOPORTAL_RLP_PASSWORD=CHANGE_ME
|
|
||||||
|
|
||||||
# Schneider
|
|
||||||
SCHNEIDER_BASE_URL=https://schneider.naturschutz.rlp.de
|
|
||||||
SCHNEIDER_AUTH_TOKEN=CHANGE_ME
|
|
||||||
SCHNEIDER_AUTH_HEADER=auth
|
|
||||||
|
|
||||||
# SSO
|
|
||||||
SSO_SERVER_BASE_URL=https://login.naturschutz.rlp.de
|
|
||||||
OAUTH_CODE_VERIFIER=CHANGE_ME
|
|
||||||
OAUTH_CLIENT_ID=CHANGE_ME
|
|
||||||
OAUTH_CLIENT_SECRET=CHANGE_ME
|
|
||||||
|
|
||||||
# RabbitMQ
|
|
||||||
## For connections to EGON
|
|
||||||
EGON_RABBITMQ_HOST=CHANGE_ME
|
|
||||||
EGON_RABBITMQ_PORT=CHANGE_ME
|
|
||||||
EGON_RABBITMQ_USER=CHANGE_ME
|
|
||||||
EGON_RABBITMQ_PW=CHANGE_ME
|
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,4 +3,3 @@
|
|||||||
/.idea/
|
/.idea/
|
||||||
/.coverage
|
/.coverage
|
||||||
/htmlcov/
|
/htmlcov/
|
||||||
/.env
|
|
||||||
|
@ -5,8 +5,6 @@ Contact: michel.peltriaux@sgdnord.rlp.de
|
|||||||
Created on: 30.11.20
|
Created on: 30.11.20
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from konova.sub_settings.django_settings import env
|
|
||||||
|
|
||||||
INTERVENTION_IDENTIFIER_LENGTH = 6
|
INTERVENTION_IDENTIFIER_LENGTH = 6
|
||||||
INTERVENTION_IDENTIFIER_TEMPLATE = "EIV-{}"
|
INTERVENTION_IDENTIFIER_TEMPLATE = "EIV-{}"
|
||||||
|
|
||||||
@ -16,7 +14,7 @@ INTERVENTION_LANIS_LAYER_NAME_UNRECORDED_OLD_ENTRY = "eiv_unrecorded_old_entries
|
|||||||
|
|
||||||
# EGON connection settings via rabbitmq
|
# EGON connection settings via rabbitmq
|
||||||
# NEEDED FOR BACKWARDS COMPATIBILITY
|
# NEEDED FOR BACKWARDS COMPATIBILITY
|
||||||
EGON_RABBITMQ_HOST = env("EGON_RABBITMQ_HOST")
|
EGON_RABBITMQ_HOST = "CHANGE_ME"
|
||||||
EGON_RABBITMQ_PORT = env("EGON_RABBITMQ_PORT")
|
EGON_RABBITMQ_PORT = "CHANGE_ME"
|
||||||
EGON_RABBITMQ_USER = env("EGON_RABBITMQ_USER")
|
EGON_RABBITMQ_USER = "CHANGE_ME"
|
||||||
EGON_RABBITMQ_PW = env("EGON_RABBITMQ_PW")
|
EGON_RABBITMQ_PW = "CHANGE_ME"
|
||||||
|
@ -18,6 +18,7 @@ from konova.sub_settings.proxy_settings import *
|
|||||||
from konova.sub_settings.sso_settings import *
|
from konova.sub_settings.sso_settings import *
|
||||||
from konova.sub_settings.table_settings import *
|
from konova.sub_settings.table_settings import *
|
||||||
from konova.sub_settings.lanis_settings import *
|
from konova.sub_settings.lanis_settings import *
|
||||||
|
from konova.sub_settings.wfs_parcel_settings import *
|
||||||
from konova.sub_settings.logging_settings import *
|
from konova.sub_settings.logging_settings import *
|
||||||
|
|
||||||
# Max upload size for POST forms
|
# Max upload size for POST forms
|
||||||
|
@ -10,8 +10,6 @@ For the full list of settings and their values, see
|
|||||||
https://docs.djangoproject.com/en/3.1/ref/settings/
|
https://docs.djangoproject.com/en/3.1/ref/settings/
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import environ
|
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.conf.locale.de import formats as de_formats
|
from django.conf.locale.de import formats as de_formats
|
||||||
|
|
||||||
@ -26,24 +24,28 @@ BASE_DIR = os.path.dirname(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
env = environ.Env()
|
# Quick-start development settings - unsuitable for production
|
||||||
# Take environment variables from .env.dev file
|
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
|
||||||
environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
|
|
||||||
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
# SECURITY WARNING: keep the secret key used in production secret!
|
||||||
SECRET_KEY = env("SECRET_KEY")
|
SECRET_KEY = '5=9-)2)h$u9=!zrhia9=lj-2#cpcb8=#$7y+)l$5tto$3q(n_+'
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = env.bool("DEBUG", default=False)
|
DEBUG = True
|
||||||
|
|
||||||
ADMINS = [x.split(':') for x in env.list('ADMINS')]
|
ADMINS = [
|
||||||
|
('KSP-Servicestelle', 'ksp-servicestelle@sgdnord.rlp.de'),
|
||||||
|
]
|
||||||
|
|
||||||
ALLOWED_HOSTS = env.list("ALLOWED_HOSTS")
|
BASE_URL = "http://localhost:8001"
|
||||||
|
|
||||||
BASE_URL = env("BASE_URL")
|
ALLOWED_HOSTS = [
|
||||||
|
"127.0.0.1",
|
||||||
|
"localhost",
|
||||||
|
]
|
||||||
|
|
||||||
CSRF_TRUSTED_ORIGINS = [
|
CSRF_TRUSTED_ORIGINS = [
|
||||||
BASE_URL
|
"http://localhost", # not only host but schema (http/s) as well!
|
||||||
]
|
]
|
||||||
|
|
||||||
# Authentication settings
|
# Authentication settings
|
||||||
@ -121,11 +123,10 @@ WSGI_APPLICATION = 'konova.wsgi.application'
|
|||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'django.contrib.gis.db.backends.postgis',
|
'ENGINE': 'django.contrib.gis.db.backends.postgis',
|
||||||
'NAME': env("DB_NAME"),
|
'NAME': 'konova',
|
||||||
'USER': env("DB_USER"),
|
'USER': 'postgres',
|
||||||
'PASSWORD': env("DB_PASSWORD"),
|
'HOST': '127.0.0.1',
|
||||||
'HOST': env("DB_HOST"),
|
'PORT': '5432',
|
||||||
'PORT': env("DB_PORT"),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||||
@ -199,10 +200,13 @@ if DEBUG:
|
|||||||
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
|
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
|
||||||
EMAIL_FILE_PATH = '/tmp/app-messages' # change this to a proper location
|
EMAIL_FILE_PATH = '/tmp/app-messages' # change this to a proper location
|
||||||
|
|
||||||
DEFAULT_FROM_EMAIL = env("DEFAULT_FROM_EMAIL") # The default email address for the 'from' element
|
DEFAULT_FROM_EMAIL = "service@ksp.de" # The default email address for the 'from' element
|
||||||
SERVER_EMAIL = DEFAULT_FROM_EMAIL # The default email sender address, which is used by Django to send errors via mail
|
SERVER_EMAIL = DEFAULT_FROM_EMAIL # The default email sender address, which is used by Django to send errors via mail
|
||||||
EMAIL_HOST = env("SMTP_HOST")
|
EMAIL_HOST = "localhost"
|
||||||
EMAIL_REPLY_TO = env("REPLY_TO_ADDR")
|
EMAIL_REPLY_TO = "ksp-servicestelle@sgdnord.rlp.de"
|
||||||
EMAIL_PORT = env("SMTP_PORT")
|
SUPPORT_MAIL_RECIPIENT = EMAIL_REPLY_TO
|
||||||
|
EMAIL_PORT = "25"
|
||||||
|
#EMAIL_HOST_USER = ""
|
||||||
|
#EMAIL_HOST_PASSWORD = ""
|
||||||
EMAIL_USE_TLS = False
|
EMAIL_USE_TLS = False
|
||||||
EMAIL_USE_SSL = False
|
EMAIL_USE_SSL = False
|
||||||
|
@ -5,13 +5,12 @@ Contact: michel.peltriaux@sgdnord.rlp.de
|
|||||||
Created on: 31.01.22
|
Created on: 31.01.22
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from konova.sub_settings.django_settings import env
|
|
||||||
|
|
||||||
proxy = env("PROXY")
|
proxy = ""
|
||||||
PROXIES = {
|
PROXIES = {
|
||||||
"http": proxy,
|
"http": proxy,
|
||||||
"https": proxy,
|
"https": proxy,
|
||||||
}
|
}
|
||||||
|
|
||||||
GEOPORTAL_RLP_USER = env("GEOPORTAL_RLP_USER")
|
CLIENT_PROXY_AUTH_USER = "CHANGE_ME"
|
||||||
GEOPORTAL_RLP_PASSWORD = env("GEOPORTAL_RLP_PASSWORD")
|
CLIENT_PROXY_AUTH_PASSWORD = "CHANGE_ME"
|
@ -5,8 +5,7 @@ Contact: ksp-servicestelle@sgdnord.rlp.de
|
|||||||
Created on: 14.12.22
|
Created on: 14.12.22
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from konova.sub_settings.django_settings import env
|
|
||||||
|
|
||||||
base_url = env("SCHNEIDER_BASE_URL")
|
base_url = "http://127.0.0.1:8002"
|
||||||
auth_header = env("SCHNEIDER_AUTH_HEADER")
|
auth_header = "auth"
|
||||||
auth_header_token = env("SCHNEIDER_AUTH_TOKEN")
|
auth_header_token = "CHANGE_ME"
|
||||||
|
@ -5,14 +5,13 @@ Contact: michel.peltriaux@sgdnord.rlp.de
|
|||||||
Created on: 31.01.22
|
Created on: 31.01.22
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from konova.sub_settings.django_settings import env
|
|
||||||
|
|
||||||
# SSO settings
|
# SSO settings
|
||||||
SSO_SERVER_BASE = env("SSO_SERVER_BASE_URL")
|
SSO_SERVER_BASE = "http://127.0.0.1:8000/"
|
||||||
SSO_SERVER = f"{SSO_SERVER_BASE}sso/"
|
SSO_SERVER = f"{SSO_SERVER_BASE}sso/"
|
||||||
|
|
||||||
# OAuth settings
|
# OAuth settings
|
||||||
OAUTH_CODE_VERIFIER = env("OAUTH_CODE_VERIFIER")
|
OAUTH_CODE_VERIFIER = "CHANGE_ME"
|
||||||
|
|
||||||
OAUTH_CLIENT_ID = env("OAUTH_CLIENT_ID")
|
OAUTH_CLIENT_ID = "CHANGE_ME"
|
||||||
OAUTH_CLIENT_SECRET = env("OAUTH_CLIENT_SECRET")
|
OAUTH_CLIENT_SECRET = "CHANGE_ME"
|
12
konova/sub_settings/wfs_parcel_settings.py
Normal file
12
konova/sub_settings/wfs_parcel_settings.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
"""
|
||||||
|
Author: Michel Peltriaux
|
||||||
|
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
||||||
|
Contact: michel.peltriaux@sgdnord.rlp.de
|
||||||
|
Created on: 31.01.22
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Parcel WFS settings
|
||||||
|
PARCEL_WFS_BASE_URL = "https://www.geoportal.rlp.de/registry/wfs/519"
|
||||||
|
PARCEL_WFS_USER = "ksp"
|
||||||
|
PARCEL_WFS_PW = "CHANGE_ME"
|
@ -7,7 +7,7 @@ from django.core.exceptions import ObjectDoesNotExist
|
|||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_update_parcels(geometry_id: str, recheck: bool = True):
|
def celery_update_parcels(geometry_id: str, recheck: bool = True):
|
||||||
from konova.models import Geometry
|
from konova.models import Geometry, ParcelIntersection
|
||||||
try:
|
try:
|
||||||
geom = Geometry.objects.get(id=geometry_id)
|
geom = Geometry.objects.get(id=geometry_id)
|
||||||
geom.parcels.clear()
|
geom.parcels.clear()
|
||||||
|
@ -9,7 +9,7 @@ from django.core.mail import send_mail
|
|||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from konova.sub_settings.django_settings import DEFAULT_FROM_EMAIL, EMAIL_REPLY_TO
|
from konova.sub_settings.django_settings import DEFAULT_FROM_EMAIL, EMAIL_REPLY_TO, SUPPORT_MAIL_RECIPIENT
|
||||||
|
|
||||||
|
|
||||||
class Mailer:
|
class Mailer:
|
||||||
@ -416,7 +416,7 @@ class Mailer:
|
|||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/api/verify_token.html", context)
|
msg = render_to_string("email/api/verify_token.html", context)
|
||||||
user_mail_address = [EMAIL_REPLY_TO]
|
user_mail_address = [SUPPORT_MAIL_RECIPIENT]
|
||||||
self.send(
|
self.send(
|
||||||
user_mail_address,
|
user_mail_address,
|
||||||
_("Request for new API token"),
|
_("Request for new API token"),
|
||||||
|
@ -11,7 +11,6 @@ from json import JSONDecodeError
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
from konova.sub_settings import schneider_settings
|
from konova.sub_settings import schneider_settings
|
||||||
from konova.sub_settings.proxy_settings import PROXIES
|
|
||||||
|
|
||||||
|
|
||||||
class ParcelFetcher:
|
class ParcelFetcher:
|
||||||
@ -44,7 +43,6 @@ class ParcelFetcher:
|
|||||||
|
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
url=post_url,
|
url=post_url,
|
||||||
proxies=PROXIES,
|
|
||||||
data=self.geojson,
|
data=self.geojson,
|
||||||
headers={
|
headers={
|
||||||
self.auth_header: self.auth_header_token
|
self.auth_header: self.auth_header_token
|
||||||
|
@ -18,7 +18,7 @@ from django.utils.translation import gettext_lazy as _
|
|||||||
|
|
||||||
from requests.auth import HTTPDigestAuth
|
from requests.auth import HTTPDigestAuth
|
||||||
|
|
||||||
from konova.sub_settings.proxy_settings import PROXIES, GEOPORTAL_RLP_USER, GEOPORTAL_RLP_PASSWORD
|
from konova.sub_settings.proxy_settings import PROXIES, CLIENT_PROXY_AUTH_USER, CLIENT_PROXY_AUTH_PASSWORD
|
||||||
|
|
||||||
|
|
||||||
class BaseClientProxyView(View):
|
class BaseClientProxyView(View):
|
||||||
@ -90,7 +90,7 @@ class ClientProxyParcelWFS(BaseClientProxyView):
|
|||||||
url = f"{base_url}?{urlencode(params, doseq=True)}"
|
url = f"{base_url}?{urlencode(params, doseq=True)}"
|
||||||
|
|
||||||
url = url.replace("typename", "typenames")
|
url = url.replace("typename", "typenames")
|
||||||
auth = HTTPDigestAuth(GEOPORTAL_RLP_USER, GEOPORTAL_RLP_PASSWORD)
|
auth = HTTPDigestAuth(CLIENT_PROXY_AUTH_USER, CLIENT_PROXY_AUTH_PASSWORD)
|
||||||
|
|
||||||
content, response_code = self.perform_url_call(url, auth=auth)
|
content, response_code = self.perform_url_call(url, auth=auth)
|
||||||
error_detected = response_code != 200
|
error_detected = response_code != 200
|
||||||
|
Loading…
Reference in New Issue
Block a user