Compare commits

...

8 Commits
1.4.1 ... 1.4.3

Author SHA1 Message Date
fa86cc142f Merge pull request 'requirements_update' (#394) from requirements_update into master
Reviewed-on: SGD-Nord/konova#394
2024-04-12 08:08:00 +02:00
6523891703 # Itsdangerous update
* adds itsdangerous package update
2024-04-12 07:51:18 +02:00
18f590f4a6 # Requirements update
* updates requirements.txt
2024-04-12 07:51:17 +02:00
04dc7fcd30 # Admin backends
* disables certain admin backends
* adds proper ordering to server message admin overview
2024-04-03 08:29:19 +02:00
09546212b9 # Admin button
* adds button for easier admin backend access
2024-04-03 08:26:00 +02:00
b1cd7dee40 # JSON Decode error catch
* adds error catching on wfs parcel resolving
2024-03-15 09:10:06 +01:00
c772e1de06 Merge remote-tracking branch 'origin/master' 2024-03-12 10:32:17 +01:00
4332a750d1 # Message rendering
* adds icons to message danger, info and success rendering
2024-03-12 10:32:05 +01:00
10 changed files with 65 additions and 25 deletions

View File

@@ -148,7 +148,7 @@ class CompensationActionAdmin(admin.ModelAdmin):
admin.site.register(Compensation, CompensationAdmin) admin.site.register(Compensation, CompensationAdmin)
admin.site.register(EcoAccount, EcoAccountAdmin) admin.site.register(EcoAccount, EcoAccountAdmin)
admin.site.register(EcoAccountDeduction, EcoAccountDeductionAdmin) #admin.site.register(EcoAccountDeduction, EcoAccountDeductionAdmin)
# For a more cleaner admin interface these rarely used admin views are not important for deployment # For a more cleaner admin interface these rarely used admin views are not important for deployment
#admin.site.register(Payment, PaymentAdmin) #admin.site.register(Payment, PaymentAdmin)

View File

@@ -16,4 +16,5 @@ class EmaAdmin(AbstractCompensationAdmin):
"teams", "teams",
] ]
admin.site.register(Ema, EmaAdmin) admin.site.register(Ema, EmaAdmin)

View File

@@ -151,7 +151,7 @@ class ResubmissionAdmin(BaseResourceAdmin):
# Outcommented for a cleaner admin backend on production # Outcommented for a cleaner admin backend on production
admin.site.register(Geometry, GeometryAdmin) #admin.site.register(Geometry, GeometryAdmin)
#admin.site.register(Parcel, ParcelAdmin) #admin.site.register(Parcel, ParcelAdmin)
#admin.site.register(District, DistrictAdmin) #admin.site.register(District, DistrictAdmin)
#admin.site.register(Municipal, MunicipalAdmin) #admin.site.register(Municipal, MunicipalAdmin)

View File

@@ -276,3 +276,6 @@ Similar to bootstraps 'shadow-lg'
.tree-label.badge{ .tree-label.badge{
font-size: 90%; font-size: 90%;
} }
.alert{
margin-bottom: 0 !important;
}

View File

@@ -93,14 +93,23 @@ class ClientProxyParcelWFS(BaseClientProxyView):
auth = HTTPDigestAuth(CLIENT_PROXY_AUTH_USER, CLIENT_PROXY_AUTH_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_code = f"response code:{response_code}"
try:
body = json.loads(content) body = json.loads(content)
except JSONDecodeError:
body = {}
error_code = "json invalid"
error_detected = True
body["crs"] = { body["crs"] = {
"type": "name", "type": "name",
"properties": { "properties": {
"name": "urn:ogc:def:crs:EPSG::25832" "name": "urn:ogc:def:crs:EPSG::25832",
} }
} }
if response_code != 200: if error_detected:
body["crs"]["properties"]["msg"] = f"Error detected ({error_code})"
return JsonResponse({ return JsonResponse({
"status_code": response_code, "status_code": response_code,
"content": body, "content": body,

View File

@@ -17,6 +17,9 @@ class ServerMessageAdmin(admin.ModelAdmin):
search_fields = [ search_fields = [
"subject" "subject"
] ]
ordering = [
"-publish_on"
]
def save_model(self, request, obj, form, change): def save_model(self, request, obj, form, change):
obj.save(user=request.user) obj.save(user=request.user)

View File

@@ -1,33 +1,34 @@
amqp==5.2.0 amqp==5.2.0
asgiref==3.7.2 asgiref==3.8.1
async-timeout==4.0.3 async-timeout==4.0.3
beautifulsoup4==4.12.3 beautifulsoup4==4.13.0b2
billiard==4.2.0 billiard==4.2.0
cached-property==1.5.2 cached-property==1.5.2
celery==5.3.6 celery==5.4.0rc2
certifi==2024.2.2 certifi==2024.2.2
chardet==5.2.0 chardet==5.2.0
charset-normalizer==3.3.2 charset-normalizer==3.3.2
click==8.1.7 click==8.1.7
click-didyoumean==0.3.0 click-didyoumean==0.3.1
click-plugins==1.1.1 click-plugins==1.1.1
click-repl==0.3.0 click-repl==0.3.0
coverage==7.3.3 coverage==7.4.4
Deprecated==1.2.14 Deprecated==1.2.14
Django==5.0.3 Django==5.0.4
django-autocomplete-light==3.11.0 django-autocomplete-light==3.11.0
django-bootstrap-modal-forms==3.0.4 django-bootstrap-modal-forms==3.0.4
django-bootstrap4==24.1 django-bootstrap4==24.1
django-debug-toolbar==4.2.0 django-debug-toolbar==4.3.0
django-filter==24.1 django-environ==0.11.2
django-filter==24.2
django-fontawesome-5==1.0.18 django-fontawesome-5==1.0.18
django-simple-sso==1.2.0 django-simple-sso==1.2.0
django-tables2==2.7.0 django-tables2==2.7.0
et-xmlfile==1.1.0 et-xmlfile==1.1.0
idna==3.6 idna==3.7
importlib_metadata==7.0.2 importlib_metadata==7.1.0
itsdangerous==0.24 itsdangerous==2.1.2
kombu==5.3.5 kombu==5.3.7
openpyxl==3.2.0b1 openpyxl==3.2.0b1
packaging==24.0 packaging==24.0
pika==1.3.2 pika==1.3.2
@@ -41,17 +42,17 @@ python-dateutil==2.9.0.post0
pytz==2024.1 pytz==2024.1
PyYAML==6.0.1 PyYAML==6.0.1
qrcode==7.3.1 qrcode==7.3.1
redis==5.1.0a1 redis==5.1.0b4
requests==2.31.0 requests==2.31.0
six==1.16.0 six==1.16.0
soupsieve==2.5 soupsieve==2.5
sqlparse==0.4.4 sqlparse==0.4.4
typing_extensions==4.10.0 typing_extensions==4.11.0
tzdata==2024.1 tzdata==2024.1
urllib3==2.2.1 urllib3==2.2.1
vine==5.1.0 vine==5.1.0
wcwidth==0.2.12 wcwidth==0.2.13
webservices==0.7 webservices==0.7
wrapt==1.16.0 wrapt==1.16.0
xmltodict==0.13.0 xmltodict==0.13.0
zipp==3.17.0 zipp==3.18.1

View File

@@ -27,8 +27,19 @@
<div class="col"> <div class="col">
{% for message in messages %} {% for message in messages %}
<div class="row alert alert-{{ message.tags }}"> <div class="row alert alert-{{ message.tags }}">
<div>
<span class="mr-3">
{% if "danger" in message.tags %}
{% fa5_icon 'exclamation' %}
{% elif "info" in message.tags %}
{% fa5_icon 'info' %}
{% elif "success" in message.tags %}
{% fa5_icon 'check' %}
{% endif %}
</span>
{{ message }} {{ message }}
</div> </div>
</div>
{% endfor %} {% endfor %}
</div> </div>
<div class="container-fluid mt-3 mb-5 px-4"> <div class="container-fluid mt-3 mb-5 px-4">

View File

@@ -53,6 +53,9 @@
{{ user.username }} {{ user.username }}
</div> </div>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
{% if user.is_staff or user.is_superuser %}
<a class="dropdown-item" target="_blank" href="{% url 'admin:index' %}">{% fa5_icon 'tools' %} {% trans 'Admin' %}</a>
{% endif %}
<a class="dropdown-item" href="{% url 'user:index' %}">{% fa5_icon 'cogs' %} {% trans 'Settings' %}</a> <a class="dropdown-item" href="{% url 'user:index' %}">{% fa5_icon 'cogs' %} {% trans 'Settings' %}</a>
<a class="dropdown-item" href="{% url 'logout' %}">{% fa5_icon 'sign-out-alt' %} {% trans 'Logout' %}</a> <a class="dropdown-item" href="{% url 'logout' %}">{% fa5_icon 'sign-out-alt' %} {% trans 'Logout' %}</a>
</div> </div>

View File

@@ -23,13 +23,22 @@
{% endblock %} {% endblock %}
</header> </header>
<div class="container-fluid mt-3 px-5"> <div class="container-fluid mt-3 px-5">
<div class="">
{% for message in messages %} {% for message in messages %}
<div class="row alert alert-{{ message.tags }}"> <div class="row alert alert-{{ message.tags }}">
<div>
<span class="mr-3">
{% if "danger" in message.tags %}
{% fa5_icon 'exclamation' %}
{% elif "info" in message.tags %}
{% fa5_icon 'info' %}
{% elif "success" in message.tags %}
{% fa5_icon 'check' %}
{% endif %}
</span>
{{ message }} {{ message }}
</div> </div>
{% endfor %}
</div> </div>
{% endfor %}
{% block body %} {% block body %}