Skip to content

Commit

Permalink
fix deployment and custom app settings
Browse files Browse the repository at this point in the history
  • Loading branch information
enricofer committed Jan 17, 2025
1 parent db4814c commit 57d687a
Show file tree
Hide file tree
Showing 10 changed files with 121 additions and 72 deletions.
4 changes: 2 additions & 2 deletions .env
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SCHEME_EXTERNAL=http
#HOST_EXTERNAL=172.20.0.1
HOST_EXTERNAL=localhost
HOST_EXTERNAL = 172.25.193.89 # ping host.docker.internal
#HOST_EXTERNAL=localhost
POSTGRES_PORT_EXTERNAL=5435
WEBAPP_PORT_EXTERNAL=9889
POSTGRES_SERVER_EXTERNAL=${HOST_EXTERNAL}:${POSTGRES_PORT_EXTERNAL}
Expand Down
19 changes: 19 additions & 0 deletions build_nginx/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM nginx:latest
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV HTTPS_PROXY=http://172.20.0.252:3128
ENV HTTP_PROXY=http://172.20.0.252:3128

RUN apt-get update
#RUN apt-get install -y openssl

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC

RUN apt-get -y install tzdata
RUN apt-get install -y iputils-ping
RUN apt-get install -y wget

COPY --chmod=755 docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]
16 changes: 16 additions & 0 deletions build_nginx/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env sh
if [ -e /etc/nginx/conf.d/default.conf.template ]
then
set -eu
# ${HOST_EXTERNAL} ${WEBAPP_PORT_EXTERNAL} ${WEBAPP_EXTERNAL} ${QGIS_SERVER_EXTERNAL}
#envsubst '${SITE_SUBPATH}' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf

cat /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf

cat /etc/nginx/conf.d/default.conf

exec "$@"

else
echo "no template!"
fi
40 changes: 31 additions & 9 deletions djakart/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def wrapper(modeladmin, request, obj, **kwargs):
"conflicts": json.dumps(conflicts),
"crs": obj.crs,
"crscode": obj.crs.split(":")[-1],
"root_wms":settings.DJAKART_QGIS_SERVER_EXTERNAL + '?MAP=/kart_versions/',
"root_wms":settings.DJAKART_QGIS_SERVER_EXTERNAL + '?MAP=' + settings.DJAKART_REPO,
"base_name":obj.nome,
"version_name":version_name,
"version_id": obj.pk,
Expand Down Expand Up @@ -236,29 +236,29 @@ def get_fieldsets(self, request, obj=None):
if obj.base:
return (
("intestazione", {
'classes': ('grp-collapse grp-open',),
'fields': ('nome', ('base','merged','clean',),'note','get_project','mapping_service_url',('referente','riservato'),'mapa',('crs','extent','apply_map_extent'))
'classes': ('collapse', 'expand-first',),
'fields': ('nome', ('base','merged','clean',),'note','progetto','get_project','mapping_service_url',('referente','riservato'),'mapa',('crs','extent','apply_map_extent'))
}),
("rapporti", {
'classes': ('grp-collapse grp-open',),
'classes': ('collapse', 'expand-first',),
'fields': ('status', 'base_diff', 'log',)
}),
)
else:
return (
("intestazione", {
'classes': ('grp-collapse grp-open',),
'classes': ('collapse', 'expand-first',),
'fields': ('nome', ('base','merged','clean',),'reserved_ids','template_qgis','note','get_project','mapping_service_url',('referente','riservato'),'mapa',('crs','extent','apply_map_extent'))
}),
("rapporti", {
'classes': ('grp-collapse grp-open',),
'classes': ('collapse', 'expand-first',),
'fields': ('status', 'base_diff', 'log',)
}),
)
else:
return (
("intestazione", {
'classes': ('grp-collapse grp-open',),
'classes': ('collapse', 'expand-first',),
'fields': ('nome', 'base','reserved_ids','template_qgis','crs','note','referente','riservato')
}),
)
Expand Down Expand Up @@ -494,7 +494,7 @@ def restore(self, request, obj):
def rigen_local_gpkg(self,obj):
if not obj.base:
target_name = obj.nome+"_export"
target_path = os.path.join('/kart_versions', target_name) #settings.MEDIA_ROOT,
target_path = os.path.join(settings.DJAKART_REPO, target_name) #settings.MEDIA_ROOT,
gpkg_path = os.path.join(target_path, target_name + ".gpkg")
if os.path.exists(target_path):
shutil.rmtree(target_path)
Expand Down Expand Up @@ -530,7 +530,29 @@ def has_add_permission(self, request, obj=None):
return False

admin.site.register(modelli, templateAdmin)
admin.site.register(basemap)



class basemapAdmin(DjangoObjectActions, admin.GISModelAdmin):

model = basemap
exclude = []
changelist_actions = [
'add_openstreetmap',
]

def add_openstreetmap(self, request, obj):
osm = basemap.objects.filter(name="OpenStreetMap")
if not osm:
osm = basemap()
osm.name = "OpenStreetMap"
osm.oltype = "XYZ"
osm.srid = "EPSG:3857"
osm.url = "http://a.tile.openstreetmap.org/{z}/{x}/{y}.png"
osm.save()
return HttpResponseRedirect("/admin/djakart/basemap/")

admin.site.register(basemap, basemapAdmin)

admin.site.site_title = 'Djakart administration'
admin.site.site_header = 'Djakart'
Expand Down
56 changes: 28 additions & 28 deletions djakart/kart_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ def elimina_pg_schema(versione):
return None

def crea_nuovo_repository(repo_name,bare=True,readonly_workingcopy=None):
repo_path = os.path.join(settings.KART_REPO,repo_name)
repo_path = os.path.join(settings.DJAKART_REPO,repo_name)
cmds = ["init", repo_path]
if readonly_workingcopy:
crea_pg_schema(readonly_workingcopy, readonly=True)
Expand All @@ -240,14 +240,14 @@ def crea_nuovo_repository(repo_name,bare=True,readonly_workingcopy=None):


def get_config(v,key):
v_path = os.path.join(settings.KART_REPO,v)
v_path = os.path.join(settings.DJAKART_REPO,v)
res = executeCmd(["--repo",v_path,"config", "--get", 'key'])
return res


def crea_nuova_versione(nuova_versione,base,tipo="pg",riserva_id=100):
nuova_versione_path = os.path.join(settings.KART_REPO,nuova_versione)
master_path = os.path.join(settings.KART_REPO,base)
nuova_versione_path = os.path.join(settings.DJAKART_REPO,nuova_versione)
master_path = os.path.join(settings.DJAKART_REPO,base)
if tipo == 'pg':
crea_pg_schema(nuova_versione)
uri = get_pg_uri(nuova_versione)
Expand Down Expand Up @@ -278,7 +278,7 @@ def get_pg_uri(v):


def create_workingcopy(v, uri=None, force=False):
v_path = os.path.join(settings.KART_REPO,v)
v_path = os.path.join(settings.DJAKART_REPO,v)
cmds = ["--repo",v_path,"create-workingcopy"]
if force:
cmds.append('--delete-existing')
Expand All @@ -290,7 +290,7 @@ def create_workingcopy(v, uri=None, force=False):


def merge_versione(versione, abort=False, confirm=False):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
#clone master
#commit_versione(versione, '"merge %s"' % versione)
Expand All @@ -315,13 +315,13 @@ def merge_versione(versione, abort=False, confirm=False):


def clone_versione(versione, target):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
clone_cmd = executeCmd(["clone", versione_path, target])


def config_user_versione(versione, username, useremail):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
setuser = kart_cmd(versione_path, ["config", "user.name", username])
setmail = kart_cmd(versione_path, ["config", "user.email", useremail])
Expand All @@ -343,21 +343,21 @@ def aggiorna_riferimenti(versione):


def pull_versione(versione):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
#master_path = get_remote(versione)
if os.path.exists(versione_path):
push_cmd = executeCmd(["--repo", versione_path, "pull", "origin"])


def kart_cmd(versione,args):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
kart_cmd = executeCmd(["--repo", versione_path] + args)
return kart_cmd


def importa_dataset(versione,ds_path,max_extent=None):
versione_path = os.path.join(settings.KART_REPO, versione)
versione_path = os.path.join(settings.DJAKART_REPO, versione)
print ("versione_path", versione_path)
if os.path.exists(versione_path):
if not max_extent:
Expand Down Expand Up @@ -392,14 +392,14 @@ def importa_dataset(versione,ds_path,max_extent=None):


def commit_versione(versione, messaggio):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
#recover_uncommitted_nulls(versione) #necessario per evitare successive exceptions di kart
commit_cmd = executeCmd(["--repo", versione_path, "commit", "-m", messaggio])


def elimina_versione(canc_versione):
canc_versione_path = os.path.join(settings.KART_REPO,canc_versione)
canc_versione_path = os.path.join(settings.DJAKART_REPO,canc_versione)
pgschema = elimina_pg_schema(canc_versione)
if os.path.exists(canc_versione_path):
#clone master
Expand All @@ -410,7 +410,7 @@ def elimina_versione(canc_versione):


def undo_commit_versione(versione, force=None):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
jlog = log_versione(versione,jsonoutput=True)
hash = jlog[1]["commit"]
Expand All @@ -422,14 +422,14 @@ def undo_commit_versione(versione, force=None):


def restore_versione(versione):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
cmd = executeCmd(["--repo",versione_path,"restore"])
return cmd


def status_versione(versione, as_json=False):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
try:
params = ["--repo",versione_path,"status"]
Expand All @@ -444,15 +444,15 @@ def status_versione(versione, as_json=False):


def show_versione(versione, jsonoutput=False):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
cmd = executeCmd(["--repo",versione_path,"show"], jsonoutput=jsonoutput)
merged_list = cmd.replace("* ","").replace(" ","").split("\n")
return merged_list


def merged_list_versione(versione):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
try:
cmd = executeCmd(["--repo",versione_path,"branch","--merged"], jsonoutput=False)
Expand All @@ -463,7 +463,7 @@ def merged_list_versione(versione):


def log_versione(versione, jsonoutput=False):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
cmd = executeCmd(["--repo",versione_path,"log"], jsonoutput=jsonoutput)
return cmd
Expand All @@ -477,7 +477,7 @@ def _diff_view(crs,extent):


def genera_diff_versione(versione, hash=None, prev=None, crs=SRID, extent=[0,0,0,0], format='html'):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
jlog = log_versione(versione,jsonoutput=True)
commit = list(filter(lambda target: target["commit"] == hash, jlog))
Expand All @@ -496,7 +496,7 @@ def genera_diff_versione(versione, hash=None, prev=None, crs=SRID, extent=[0,0,0


def conflitti_versione(versione, crs=SRID):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
conflicts_dir = os.path.join(versione_path,'conflicts')
cmd = executeCmd(["--repo",versione_path,"conflicts", "--crs", crs,"-o","geojson","--output",conflicts_dir])
Expand All @@ -514,14 +514,14 @@ def conflitti_versione(versione, crs=SRID):


def resolve_conflitto(versione, tag_conflitto, risoluzione):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
cmd = executeCmd(["--repo",versione_path,"resolve","--with",risoluzione,tag_conflitto])
return cmd


def get_remote(versione, remote="origin", method='push'):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
cmd = executeCmd(["--repo",versione_path,"remote","-v"])
if cmd:
Expand All @@ -531,7 +531,7 @@ def get_remote(versione, remote="origin", method='push'):


def list_versioned_tables(versione):
versione_path = os.path.join(settings.KART_REPO,versione.replace("_pub",""))
versione_path = os.path.join(settings.DJAKART_REPO,versione.replace("_pub",""))
if os.path.exists(versione_path):
cmd = executeCmd(["--repo",versione_path,"data","ls"])
ds_list = cmd.split("\n")
Expand All @@ -544,7 +544,7 @@ def prevent_conflicts_on_ids(versione):
stepoverseq = ""

def geo_tables(versione):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
geom_tables = []
for tab in list_versioned_tables(versione):
Expand All @@ -559,7 +559,7 @@ def geo_tables(versione):


def get_metadata(versione,tab):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
try:
cmd = executeCmd(["--repo",versione_path,"meta","get",tab,"-o","json"])
Expand All @@ -569,7 +569,7 @@ def get_metadata(versione,tab):


def get_schema(versione,tab,**kwargs):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
metadata = get_metadata(versione,tab)
schema = {}
Expand All @@ -584,7 +584,7 @@ def get_schema(versione,tab,**kwargs):


def recover_uncommitted_nulls(versione):
versione_path = os.path.join(settings.KART_REPO,versione)
versione_path = os.path.join(settings.DJAKART_REPO,versione)
if os.path.exists(versione_path):
cmd = kart_cmd(versione,['diff','-o','json'])
uncommitted_diff = json.loads(cmd)
Expand Down
Loading

0 comments on commit 57d687a

Please sign in to comment.