Fixes and improvements
This commit is contained in:
parent
436075f11c
commit
c1796c22a6
12 changed files with 199 additions and 67 deletions
3
backend/.dockerignore
Normal file
3
backend/.dockerignore
Normal file
|
@ -0,0 +1,3 @@
|
|||
__pycache__/
|
||||
staticfiles/
|
||||
*.pyc
|
15
backend/.gitignore
vendored
15
backend/.gitignore
vendored
|
@ -2,7 +2,18 @@
|
|||
*.sqlite3
|
||||
__pycache__
|
||||
|
||||
resources
|
||||
right_tree/api/data/resources/*.cpg
|
||||
right_tree/api/data/resources/*.dbf
|
||||
right_tree/api/data/resources/*.pdf
|
||||
right_tree/api/data/resources/*.prj
|
||||
right_tree/api/data/resources/*.sbn
|
||||
right_tree/api/data/resources/*.sbx
|
||||
right_tree/api/data/resources/*.shp
|
||||
right_tree/api/data/resources/*.shx
|
||||
right_tree/api/data/resources/*.txt
|
||||
right_tree/api/data/resources/*.xml
|
||||
right_tree/api/data/resources/*.zip
|
||||
|
||||
right_tree/api/data/fixtures/plants.json
|
||||
right_tree/staticfiles
|
||||
right_tree/api/data/generated_resources/*
|
||||
right_tree/api/data/generated_resources/*
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
FROM python:3.8-slim-bullseye
|
||||
FROM python:3.11-slim-bullseye
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y --no-install-recommends \
|
||||
gdal-bin \
|
||||
libxml2 libxml2-dev gettext \
|
||||
libxslt1-dev libjpeg-dev libpng-dev libpq-dev libgdal-dev \
|
||||
software-properties-common g++ \
|
||||
zlib1g-dev libgeos-dev libproj-dev \
|
||||
sqlite3 spatialite-bin libsqlite3-mod-spatialite \
|
||||
wkhtmltopdf && \
|
||||
apt clean
|
||||
RUN apt update \
|
||||
&& apt install -y --no-install-recommends gdal-bin \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& apt clean
|
||||
|
||||
COPY ./requirements.txt /app/requirements.txt
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
Django==3.2.8
|
||||
psycopg2-binary>=2.8
|
||||
djangorestframework==3.12.4
|
||||
django-cors-headers==3.10.0
|
||||
openpyxl==3.0.9
|
||||
requests==2.26.0
|
||||
Django==3.2.17
|
||||
psycopg2-binary>=2.9.5
|
||||
djangorestframework==3.14.0
|
||||
django-cors-headers==3.13.0
|
||||
openpyxl==3.1.0
|
||||
requests==2.28.2
|
||||
gunicorn==20.1.0
|
||||
pandas==1.3.4
|
||||
pandas==1.5.3
|
||||
pdfkit==1.0.0
|
||||
PyPDF2==1.26.0
|
||||
PyPDF2==1.28.6
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"model": "api.ecologicalregion",
|
||||
"pk": 1,
|
||||
"fields": {
|
||||
"name": "Aorrangi"
|
||||
"name": "Aorangi"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -549,7 +549,7 @@
|
|||
"model": "api.ecologicalregion",
|
||||
"pk": 79,
|
||||
"fields": {
|
||||
"name": "Whatkatane"
|
||||
"name": "Whakatane"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
BIN
backend/right_tree/api/data/resources/plant_data.xlsx
Normal file
BIN
backend/right_tree/api/data/resources/plant_data.xlsx
Normal file
Binary file not shown.
|
@ -1,7 +1,9 @@
|
|||
from django.core.management.base import BaseCommand
|
||||
from django.contrib.gis.utils import LayerMapping
|
||||
|
||||
from glob import iglob
|
||||
from pathlib import Path
|
||||
from zipfile import ZipFile, is_zipfile
|
||||
|
||||
import right_tree.api.data
|
||||
from right_tree.api.models import SoilLayer, EcologicalDistrictLayer, ChristchurchRegion
|
||||
|
@ -32,15 +34,24 @@ christchurchregion_mapping = {
|
|||
'geom': 'MULTIPOLYGON',
|
||||
}
|
||||
|
||||
# Shapefiles
|
||||
soillayer_shp = Path(right_tree.api.data.__file__).resolve().parent / 'resources' / 'fundamental_soil_layers' / 'fundamental-soil-layers-new-zealand-soil-classification.shp'
|
||||
ecologicaldistrictlayer_shp = Path(right_tree.api.data.__file__).resolve().parent / 'resources' / 'ecological_districts' / 'DOC_EcologicalDistricts_2021_08_02.shp'
|
||||
christchurchregion_shp = Path(right_tree.api.data.__file__).resolve().parent / 'resources' / 'chch_zone' / 'Greater_Christchurch_Area.shp'
|
||||
resources_path = Path(right_tree.api.data.__file__).resolve().parent / "resources"
|
||||
|
||||
soillayer_shp = resources_path / "fundamental-soil-layers-new-zealand-soil-classification.shp"
|
||||
ecologicaldistrictlayer_shp = resources_path / "Ecological_Districts.shp"
|
||||
christchurchregion_shp = resources_path / "Greater_Christchurch_Area.shp"
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Ingests the shapefile data for ecological regions and soil layers.'
|
||||
|
||||
def handle(self, *args, **options):
|
||||
query = str(resources_path / "*.zip")
|
||||
sources = [ZipFile(path) for path in iglob(query) if is_zipfile(path)]
|
||||
|
||||
for zf in sources:
|
||||
zf.extractall(resources_path)
|
||||
zf.close()
|
||||
|
||||
self.stdout.write('Loading soil layers...')
|
||||
soil_lm = LayerMapping(SoilLayer, soillayer_shp, soillayer_mapping, transform=False)
|
||||
soil_lm.save(strict=True)
|
||||
|
|
|
@ -27,7 +27,7 @@ SECRET_KEY = os.getenv("DJANGO_SECRET_KEY", 'django-insecure-5t05qc2&14xuot4lgs#
|
|||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = os.getenv('DJANGO_DEBUG_MODE', '') != 'False'
|
||||
|
||||
# os.getenv("ALLOWED_HOSTS", "").split(","),
|
||||
# os.getenv("ALLOWED_HOSTS", "").split(","),
|
||||
ALLOWED_HOSTS = [BASE_URL, "localhost"]
|
||||
|
||||
|
||||
|
@ -85,11 +85,11 @@ WSGI_APPLICATION = 'right_tree.wsgi.application'
|
|||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.contrib.gis.db.backends.postgis',
|
||||
'NAME': os.getenv("RIGHTTREE_DB", "postgres"),
|
||||
'USER': os.getenv("RIGHTTREE_DB_USER", "postgres"),
|
||||
'PASSWORD': os.getenv("RIGHTTREE_DB_PASSWORD", "postgres"),
|
||||
'HOST': "postgres",
|
||||
'PORT': 5432,
|
||||
'NAME': os.getenv("DATABASE_NAME", "righttree"),
|
||||
'USER': os.getenv("DATABASE_USER", "righttree"),
|
||||
'PASSWORD': os.getenv("DATABASE_PASSWORD", "righttree"),
|
||||
'HOST': os.getenv("DATABASE_HOST", "postgres"),
|
||||
'PORT': int(os.getenv("DATABASE_PORT", 5432)),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -139,13 +139,6 @@ STATIC_ROOT = os.path.join(PROJECT_DIR, 'staticfiles')
|
|||
|
||||
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
||||
|
||||
frontend_url = os.getenv('FRONTEND_BASE_URL', 'localhost:3000')
|
||||
|
||||
CORS_ALLOWED_ORIGINS = [
|
||||
f"https://{frontend_url}",
|
||||
f"http://{frontend_url}"
|
||||
]
|
||||
|
||||
CORS_ALLOW_HEADERS = [
|
||||
'access-control-allow-origin'
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue