Merge pull request '#55 Celery parcel updating' (#58) from 55_Parcel_calculation_to_background into master
Reviewed-on: SGD-Nord/konova#58
This commit is contained in:
commit
ea4dc636c8
README.md
codelist/management/commands
konova
locale/de/LC_MESSAGES
requirements.txt@ -3,6 +3,14 @@ Konova is the successor of KSP. It's build using the python webframework Django,
|
||||
the database postgresql and the css library bootstrap as well as the icon package
|
||||
fontawesome for a modern look, following best practices from the industry.
|
||||
|
||||
## Background processes
|
||||
Konova uses celery for background processing. To start the worker you need to run
|
||||
```shell
|
||||
$ celery -A konova worker -l INFO
|
||||
```
|
||||
More info can be found [here](https://docs.celeryproject.org/en/stable/getting-started/first-steps-with-celery.html#running-the-celery-worker-server).
|
||||
Redis must be installed.
|
||||
|
||||
## Technical documentation
|
||||
Technical documention is provided in the projects git wiki.
|
||||
|
||||
|
@ -15,6 +15,7 @@ from codelist.settings import CODELIST_INTERVENTION_HANDLER_ID, CODELIST_CONSERV
|
||||
CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_CLASS_ID, CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID, \
|
||||
CODELIST_BASE_URL, CODELIST_PROCESS_TYPE_ID
|
||||
from konova.management.commands.setup import BaseKonovaCommand
|
||||
from konova.settings import PROXIES
|
||||
|
||||
bool_map = {
|
||||
"true": True,
|
||||
@ -43,7 +44,7 @@ class Command(BaseKonovaCommand):
|
||||
|
||||
for list_id in codelist_ids:
|
||||
_url = CODELIST_BASE_URL + "/" + str(list_id)
|
||||
result = requests.get(url=_url)
|
||||
result = requests.get(url=_url, proxies=PROXIES)
|
||||
|
||||
if result.status_code != 200:
|
||||
self._write_error("Error on codelist url '{}'".format(_url))
|
||||
|
@ -0,0 +1,5 @@
|
||||
# This will make sure the app is always imported when
|
||||
# Django starts so that shared_task will use this app.
|
||||
from .celery import app as celery_app
|
||||
|
||||
__all__ = ('celery_app',)
|
25
konova/celery.py
Normal file
25
konova/celery.py
Normal file
@ -0,0 +1,25 @@
|
||||
import os
|
||||
|
||||
from celery import Celery
|
||||
|
||||
# Set the default Django settings module for the 'celery' program.
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'konova.settings')
|
||||
|
||||
app = Celery('konova')
|
||||
|
||||
# Using a string here means the worker doesn't have to serialize
|
||||
# the configuration object to child processes.
|
||||
# - namespace='CELERY' means all celery-related configuration keys
|
||||
# should have a `CELERY_` prefix.
|
||||
app.config_from_object('django.conf:settings', namespace='CELERY')
|
||||
|
||||
# Load task modules from all registered Django apps.
|
||||
app.autodiscover_tasks()
|
||||
|
||||
# Declare redis as broker
|
||||
app.conf.broker_url = 'redis://localhost:6379/0'
|
||||
|
||||
|
||||
@app.task(bind=True)
|
||||
def debug_task(self):
|
||||
print(f'Request: {self.request!r}')
|
@ -23,6 +23,7 @@ from django.utils.translation import gettext_lazy as _
|
||||
from konova.contexts import BaseContext
|
||||
from konova.models import BaseObject, Geometry, RecordableObjectMixin
|
||||
from konova.settings import DEFAULT_SRID
|
||||
from konova.tasks import celery_update_parcels
|
||||
from konova.utils.message_templates import FORM_INVALID
|
||||
from user.models import UserActionLogEntry
|
||||
|
||||
@ -287,7 +288,7 @@ class SimpleGeomForm(BaseForm):
|
||||
geometry = self.instance.geometry
|
||||
geometry.geom = self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID))
|
||||
geometry.modified = action
|
||||
geometry.update_parcels()
|
||||
|
||||
geometry.save()
|
||||
except LookupError:
|
||||
# No geometry or linked instance holding a geometry exist --> create a new one!
|
||||
@ -295,6 +296,8 @@ class SimpleGeomForm(BaseForm):
|
||||
geom=self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID)),
|
||||
created=action,
|
||||
)
|
||||
# Start the parcel update procedure in a background process
|
||||
celery_update_parcels.delay(geometry.id)
|
||||
return geometry
|
||||
|
||||
|
||||
|
@ -14,6 +14,12 @@ from django.utils.translation import gettext_lazy as _
|
||||
# Load other settings
|
||||
from konova.sub_settings.django_settings import *
|
||||
|
||||
proxy = "CHANGE_ME"
|
||||
PROXIES = {
|
||||
"http": proxy,
|
||||
"https": proxy,
|
||||
}
|
||||
|
||||
# ALLOWED FILE UPLOAD DEFINITIONS
|
||||
# Default: Upload into upper folder of code
|
||||
MEDIA_ROOT = BASE_DIR + "/.."
|
||||
|
14
konova/tasks.py
Normal file
14
konova/tasks.py
Normal file
@ -0,0 +1,14 @@
|
||||
from celery import shared_task
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
|
||||
from konova.models import Geometry
|
||||
|
||||
|
||||
@shared_task
|
||||
def celery_update_parcels(geometry_id: str):
|
||||
try:
|
||||
geom = Geometry.objects.get(id=geometry_id)
|
||||
geom.parcels.clear()
|
||||
geom.update_parcels()
|
||||
except ObjectDoesNotExist:
|
||||
return
|
@ -3,6 +3,13 @@
|
||||
<h3>{% trans 'Spatial reference' %}</h3>
|
||||
</div>
|
||||
<div class="table-container w-100 scroll-300">
|
||||
{% if parcels|length == 0 %}
|
||||
<article class="alert alert-info">
|
||||
{% blocktrans %}
|
||||
If the geometry is not empty, the parcels are currently recalculated. Please refresh this page in a few moments.
|
||||
{% endblocktrans %}
|
||||
</article>
|
||||
{% else %}
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -26,4 +33,5 @@
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
</div>
|
@ -11,7 +11,7 @@ import requests
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from konova.settings import SSO_SERVER_BASE, SSO_PUBLIC_KEY
|
||||
from konova.settings import SSO_SERVER_BASE, SSO_PUBLIC_KEY, PROXIES
|
||||
from konova.sub_settings.context_settings import BASE_TITLE_SHORT
|
||||
|
||||
|
||||
@ -52,7 +52,8 @@ class Messenger:
|
||||
requests.post(
|
||||
self.server_url,
|
||||
data=data,
|
||||
headers=headers
|
||||
headers=headers,
|
||||
proxies=PROXIES
|
||||
)
|
||||
|
||||
def send_object_checked(self, obj_identifier: str, performing_user: User, detail_view_url: str = ""):
|
||||
|
@ -12,7 +12,7 @@ import xmltodict
|
||||
from django.contrib.gis.db.models.functions import AsGML, Transform
|
||||
from requests.auth import HTTPDigestAuth
|
||||
|
||||
from konova.settings import DEFAULT_SRID_RLP, PARCEL_WFS_USER, PARCEL_WFS_PW
|
||||
from konova.settings import DEFAULT_SRID_RLP, PARCEL_WFS_USER, PARCEL_WFS_PW, PROXIES
|
||||
|
||||
|
||||
class AbstractWFSFetcher:
|
||||
@ -148,7 +148,8 @@ class ParcelWFSFetcher(AbstractWFSFetcher):
|
||||
response = requests.post(
|
||||
url=self.base_url,
|
||||
data=post_body,
|
||||
auth=self.auth_digest_obj
|
||||
auth=self.auth_digest_obj,
|
||||
proxies=PROXIES,
|
||||
)
|
||||
|
||||
content = response.content.decode("utf-8")
|
||||
|
Binary file not shown.
@ -11,15 +11,15 @@
|
||||
#: intervention/forms/forms.py:52 intervention/forms/forms.py:154
|
||||
#: intervention/forms/forms.py:166 intervention/forms/modalForms.py:125
|
||||
#: intervention/forms/modalForms.py:138 intervention/forms/modalForms.py:151
|
||||
#: konova/forms.py:139 konova/forms.py:240 konova/forms.py:309
|
||||
#: konova/forms.py:336 konova/forms.py:346 konova/forms.py:359
|
||||
#: konova/forms.py:371 konova/forms.py:389 user/forms.py:38
|
||||
#: konova/forms.py:140 konova/forms.py:241 konova/forms.py:312
|
||||
#: konova/forms.py:339 konova/forms.py:349 konova/forms.py:362
|
||||
#: konova/forms.py:374 konova/forms.py:392 user/forms.py:38
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-05 14:04+0100\n"
|
||||
"POT-Creation-Date: 2022-01-06 12:04+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -40,7 +40,7 @@ msgstr "Bis"
|
||||
#: analysis/forms.py:47 compensation/forms/forms.py:77
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:58
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:16
|
||||
#: compensation/utils/quality.py:100 ema/templates/ema/detail/view.html:42
|
||||
#: compensation/utils/quality.py:100 ema/templates/ema/detail/view.html:49
|
||||
#: ema/templates/ema/report/report.html:16 ema/utils/quality.py:26
|
||||
#: intervention/forms/forms.py:100
|
||||
#: intervention/templates/intervention/detail/view.html:56
|
||||
@ -68,7 +68,7 @@ msgstr "Bericht generieren"
|
||||
msgid "Select a timespan and the desired conservation office"
|
||||
msgstr "Wählen Sie die Zeitspanne und die gewünschte Eintragungsstelle"
|
||||
|
||||
#: analysis/forms.py:69 konova/forms.py:187
|
||||
#: analysis/forms.py:69 konova/forms.py:188
|
||||
msgid "Continue"
|
||||
msgstr "Weiter"
|
||||
|
||||
@ -149,7 +149,7 @@ msgstr "Geprüft"
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:77
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:31
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:44
|
||||
#: ema/tables.py:38 ema/templates/ema/detail/view.html:28
|
||||
#: ema/tables.py:38 ema/templates/ema/detail/view.html:35
|
||||
#: intervention/tables.py:39
|
||||
#: intervention/templates/intervention/detail/view.html:82
|
||||
#: user/models/user_action.py:20
|
||||
@ -322,14 +322,14 @@ msgstr "Automatisch generiert"
|
||||
#: compensation/templates/compensation/report/compensation/report.html:12
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:12
|
||||
#: ema/tables.py:33 ema/templates/ema/detail/includes/documents.html:28
|
||||
#: ema/templates/ema/detail/view.html:24
|
||||
#: ema/templates/ema/detail/view.html:31
|
||||
#: ema/templates/ema/report/report.html:12 intervention/forms/forms.py:38
|
||||
#: intervention/tables.py:28
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:33
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:28
|
||||
#: intervention/templates/intervention/detail/view.html:31
|
||||
#: intervention/templates/intervention/report/report.html:12
|
||||
#: konova/forms.py:335
|
||||
#: konova/forms.py:338
|
||||
msgid "Title"
|
||||
msgstr "Bezeichnung"
|
||||
|
||||
@ -356,7 +356,7 @@ msgstr "Kompensation XY; Flur ABC"
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:31
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:34
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:38
|
||||
#: konova/forms.py:370 konova/templates/konova/includes/comment_card.html:16
|
||||
#: konova/forms.py:373 konova/templates/konova/includes/comment_card.html:16
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
@ -367,7 +367,7 @@ msgstr "Zusätzlicher Kommentar"
|
||||
#: compensation/forms/forms.py:93
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:62
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:20
|
||||
#: compensation/utils/quality.py:102 ema/templates/ema/detail/view.html:46
|
||||
#: compensation/utils/quality.py:102 ema/templates/ema/detail/view.html:53
|
||||
#: ema/templates/ema/report/report.html:20 ema/utils/quality.py:28
|
||||
#: intervention/forms/forms.py:128
|
||||
#: intervention/templates/intervention/detail/view.html:60
|
||||
@ -472,7 +472,7 @@ msgstr "Zahlung wird an diesem Datum erwartet"
|
||||
|
||||
#: compensation/forms/modalForms.py:62 compensation/forms/modalForms.py:239
|
||||
#: compensation/forms/modalForms.py:317 intervention/forms/modalForms.py:152
|
||||
#: konova/forms.py:372
|
||||
#: konova/forms.py:375
|
||||
msgid "Additional comment, maximum {} letters"
|
||||
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
|
||||
|
||||
@ -504,7 +504,7 @@ msgstr "Neuer Zustand"
|
||||
msgid "Insert data for the new state"
|
||||
msgstr "Geben Sie die Daten des neuen Zustandes ein"
|
||||
|
||||
#: compensation/forms/modalForms.py:155 konova/forms.py:189
|
||||
#: compensation/forms/modalForms.py:155 konova/forms.py:190
|
||||
msgid "Object removed"
|
||||
msgstr "Objekt entfernt"
|
||||
|
||||
@ -660,7 +660,7 @@ msgstr "Am {} von {} geprüft worden"
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:80
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:56
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:47
|
||||
#: ema/tables.py:101 ema/templates/ema/detail/view.html:31
|
||||
#: ema/tables.py:101 ema/templates/ema/detail/view.html:38
|
||||
#: intervention/tables.py:131
|
||||
#: intervention/templates/intervention/detail/view.html:85
|
||||
msgid "Not recorded yet"
|
||||
@ -793,7 +793,7 @@ msgstr "Dokumente"
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:14
|
||||
#: ema/templates/ema/detail/includes/documents.html:14
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:14
|
||||
#: konova/forms.py:388
|
||||
#: konova/forms.py:391
|
||||
msgid "Add new document"
|
||||
msgstr "Neues Dokument hinzufügen"
|
||||
|
||||
@ -889,7 +889,7 @@ msgstr "Geprüft am "
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:84
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:54
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:51
|
||||
#: ema/templates/ema/detail/view.html:35
|
||||
#: ema/templates/ema/detail/view.html:42
|
||||
#: intervention/templates/intervention/detail/view.html:75
|
||||
#: intervention/templates/intervention/detail/view.html:89
|
||||
msgid "by"
|
||||
@ -897,7 +897,7 @@ msgstr "von"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:84
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:51
|
||||
#: ema/templates/ema/detail/view.html:35
|
||||
#: ema/templates/ema/detail/view.html:42
|
||||
#: intervention/templates/intervention/detail/view.html:89
|
||||
msgid "Recorded on "
|
||||
msgstr "Verzeichnet am"
|
||||
@ -906,7 +906,7 @@ msgstr "Verzeichnet am"
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:74
|
||||
#: compensation/templates/compensation/report/compensation/report.html:24
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:41
|
||||
#: ema/templates/ema/detail/view.html:54
|
||||
#: ema/templates/ema/detail/view.html:61
|
||||
#: ema/templates/ema/report/report.html:28
|
||||
#: intervention/templates/intervention/detail/view.html:108
|
||||
#: intervention/templates/intervention/report/report.html:91
|
||||
@ -915,7 +915,7 @@ msgstr "Zuletzt bearbeitet"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:99
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:82
|
||||
#: ema/templates/ema/detail/view.html:69 intervention/forms/modalForms.py:52
|
||||
#: ema/templates/ema/detail/view.html:76 intervention/forms/modalForms.py:52
|
||||
#: intervention/templates/intervention/detail/view.html:116
|
||||
msgid "Shared with"
|
||||
msgstr "Freigegeben für"
|
||||
@ -976,8 +976,8 @@ msgstr "Keine Flächenmenge für Abbuchungen eingegeben. Bitte bearbeiten."
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:61
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:65
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:69
|
||||
#: ema/templates/ema/detail/view.html:41 ema/templates/ema/detail/view.html:45
|
||||
#: ema/templates/ema/detail/view.html:49
|
||||
#: ema/templates/ema/detail/view.html:48 ema/templates/ema/detail/view.html:52
|
||||
#: ema/templates/ema/detail/view.html:56
|
||||
#: intervention/templates/intervention/detail/view.html:30
|
||||
#: intervention/templates/intervention/detail/view.html:34
|
||||
#: intervention/templates/intervention/detail/view.html:38
|
||||
@ -993,7 +993,7 @@ msgstr "fehlt"
|
||||
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:70
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:24
|
||||
#: ema/templates/ema/detail/view.html:50
|
||||
#: ema/templates/ema/detail/view.html:57
|
||||
#: ema/templates/ema/report/report.html:24
|
||||
msgid "Action handler"
|
||||
msgstr "Maßnahmenträger"
|
||||
@ -1005,17 +1005,17 @@ msgstr "Maßnahmenträger"
|
||||
msgid "Report"
|
||||
msgstr "Bericht"
|
||||
|
||||
#: compensation/templates/compensation/report/compensation/report.html:42
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:59
|
||||
#: ema/templates/ema/report/report.html:46
|
||||
#: intervention/templates/intervention/report/report.html:105
|
||||
#: compensation/templates/compensation/report/compensation/report.html:45
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:62
|
||||
#: ema/templates/ema/report/report.html:49
|
||||
#: intervention/templates/intervention/report/report.html:108
|
||||
msgid "Open in browser"
|
||||
msgstr "Im Browser öffnen"
|
||||
|
||||
#: compensation/templates/compensation/report/compensation/report.html:46
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:63
|
||||
#: ema/templates/ema/report/report.html:50
|
||||
#: intervention/templates/intervention/report/report.html:109
|
||||
#: compensation/templates/compensation/report/compensation/report.html:49
|
||||
#: compensation/templates/compensation/report/eco_account/report.html:66
|
||||
#: ema/templates/ema/report/report.html:53
|
||||
#: intervention/templates/intervention/report/report.html:112
|
||||
msgid "View in LANIS"
|
||||
msgstr "In LANIS öffnen"
|
||||
|
||||
@ -1057,7 +1057,7 @@ msgid "Compensation {} edited"
|
||||
msgstr "Kompensation {} bearbeitet"
|
||||
|
||||
#: compensation/views/compensation.py:230 compensation/views/eco_account.py:309
|
||||
#: ema/views.py:181 intervention/views.py:477
|
||||
#: ema/views.py:183 intervention/views.py:477
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
@ -1066,32 +1066,32 @@ msgid "Compensation removed"
|
||||
msgstr "Kompensation entfernt"
|
||||
|
||||
#: compensation/views/compensation.py:274 compensation/views/eco_account.py:461
|
||||
#: ema/views.py:348 intervention/views.py:129
|
||||
#: ema/views.py:350 intervention/views.py:129
|
||||
msgid "Document added"
|
||||
msgstr "Dokument hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:343 compensation/views/eco_account.py:355
|
||||
#: ema/views.py:286
|
||||
#: ema/views.py:288
|
||||
msgid "State added"
|
||||
msgstr "Zustand hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:364 compensation/views/eco_account.py:376
|
||||
#: ema/views.py:307
|
||||
#: ema/views.py:309
|
||||
msgid "Action added"
|
||||
msgstr "Maßnahme hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:385 compensation/views/eco_account.py:441
|
||||
#: ema/views.py:328
|
||||
#: ema/views.py:330
|
||||
msgid "Deadline added"
|
||||
msgstr "Frist/Termin hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:407 compensation/views/eco_account.py:398
|
||||
#: ema/views.py:418
|
||||
#: ema/views.py:420
|
||||
msgid "State removed"
|
||||
msgstr "Zustand gelöscht"
|
||||
|
||||
#: compensation/views/compensation.py:429 compensation/views/eco_account.py:420
|
||||
#: ema/views.py:440
|
||||
#: ema/views.py:442
|
||||
msgid "Action removed"
|
||||
msgstr "Maßnahme entfernt"
|
||||
|
||||
@ -1111,12 +1111,12 @@ msgstr "Ökokonto entfernt"
|
||||
msgid "Deduction removed"
|
||||
msgstr "Abbuchung entfernt"
|
||||
|
||||
#: compensation/views/eco_account.py:330 ema/views.py:261
|
||||
#: compensation/views/eco_account.py:330 ema/views.py:263
|
||||
#: intervention/views.py:519
|
||||
msgid "{} unrecorded"
|
||||
msgstr "{} entzeichnet"
|
||||
|
||||
#: compensation/views/eco_account.py:330 ema/views.py:261
|
||||
#: compensation/views/eco_account.py:330 ema/views.py:263
|
||||
#: intervention/views.py:519
|
||||
msgid "{} recorded"
|
||||
msgstr "{} verzeichnet"
|
||||
@ -1125,22 +1125,22 @@ msgstr "{} verzeichnet"
|
||||
msgid "Deduction added"
|
||||
msgstr "Abbuchung hinzugefügt"
|
||||
|
||||
#: compensation/views/eco_account.py:614 ema/views.py:516
|
||||
#: compensation/views/eco_account.py:616 ema/views.py:520
|
||||
#: intervention/views.py:375
|
||||
msgid "{} has already been shared with you"
|
||||
msgstr "{} wurde bereits für Sie freigegeben"
|
||||
|
||||
#: compensation/views/eco_account.py:619 ema/views.py:521
|
||||
#: compensation/views/eco_account.py:621 ema/views.py:525
|
||||
#: intervention/views.py:380
|
||||
msgid "{} has been shared with you"
|
||||
msgstr "{} ist nun für Sie freigegeben"
|
||||
|
||||
#: compensation/views/eco_account.py:626 ema/views.py:528
|
||||
#: compensation/views/eco_account.py:628 ema/views.py:532
|
||||
#: intervention/views.py:387
|
||||
msgid "Share link invalid"
|
||||
msgstr "Freigabelink ungültig"
|
||||
|
||||
#: compensation/views/eco_account.py:649 ema/views.py:551
|
||||
#: compensation/views/eco_account.py:651 ema/views.py:555
|
||||
#: intervention/views.py:410
|
||||
msgid "Share settings updated"
|
||||
msgstr "Freigabe Einstellungen aktualisiert"
|
||||
@ -1177,7 +1177,7 @@ msgstr ""
|
||||
msgid "EMA"
|
||||
msgstr ""
|
||||
|
||||
#: ema/templates/ema/detail/view.html:12
|
||||
#: ema/templates/ema/detail/view.html:19
|
||||
msgid "Payment funded compensation"
|
||||
msgstr "Ersatzzahlungsmaßnahme"
|
||||
|
||||
@ -1185,11 +1185,11 @@ msgstr "Ersatzzahlungsmaßnahme"
|
||||
msgid "EMA {} added"
|
||||
msgstr "EMA {} hinzugefügt"
|
||||
|
||||
#: ema/views.py:210
|
||||
#: ema/views.py:212
|
||||
msgid "EMA {} edited"
|
||||
msgstr "EMA {} bearbeitet"
|
||||
|
||||
#: ema/views.py:242
|
||||
#: ema/views.py:244
|
||||
msgid "EMA removed"
|
||||
msgstr "EMA entfernt"
|
||||
|
||||
@ -1333,7 +1333,7 @@ msgstr "Kompensationen und Zahlungen geprüft"
|
||||
msgid "Run check"
|
||||
msgstr "Prüfung vornehmen"
|
||||
|
||||
#: intervention/forms/modalForms.py:196 konova/forms.py:454
|
||||
#: intervention/forms/modalForms.py:196 konova/forms.py:457
|
||||
msgid ""
|
||||
"I, {} {}, confirm that all necessary control steps have been performed by "
|
||||
"myself."
|
||||
@ -1517,81 +1517,81 @@ msgstr ""
|
||||
"somit nichts eingeben, bearbeiten oder sonstige Aktionen ausführen. "
|
||||
"Kontaktieren Sie bitte einen Administrator. +++"
|
||||
|
||||
#: konova/forms.py:36 templates/form/collapsable/form.html:62
|
||||
#: konova/forms.py:37 templates/form/collapsable/form.html:62
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: konova/forms.py:68
|
||||
#: konova/forms.py:69
|
||||
msgid "Not editable"
|
||||
msgstr "Nicht editierbar"
|
||||
|
||||
#: konova/forms.py:138 konova/forms.py:308
|
||||
#: konova/forms.py:139 konova/forms.py:311
|
||||
msgid "Confirm"
|
||||
msgstr "Bestätige"
|
||||
|
||||
#: konova/forms.py:150 konova/forms.py:317
|
||||
#: konova/forms.py:151 konova/forms.py:320
|
||||
msgid "Remove"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: konova/forms.py:152
|
||||
#: konova/forms.py:153
|
||||
msgid "You are about to remove {} {}"
|
||||
msgstr "Sie sind dabei {} {} zu löschen"
|
||||
|
||||
#: konova/forms.py:239 konova/utils/quality.py:44 konova/utils/quality.py:46
|
||||
#: konova/forms.py:240 konova/utils/quality.py:44 konova/utils/quality.py:46
|
||||
#: templates/form/collapsable/form.html:45
|
||||
msgid "Geometry"
|
||||
msgstr "Geometrie"
|
||||
|
||||
#: konova/forms.py:318
|
||||
#: konova/forms.py:321
|
||||
msgid "Are you sure?"
|
||||
msgstr "Sind Sie sicher?"
|
||||
|
||||
#: konova/forms.py:345
|
||||
#: konova/forms.py:348
|
||||
msgid "Created on"
|
||||
msgstr "Erstellt"
|
||||
|
||||
#: konova/forms.py:347
|
||||
#: konova/forms.py:350
|
||||
msgid "When has this file been created? Important for photos."
|
||||
msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?"
|
||||
|
||||
#: konova/forms.py:358
|
||||
#: konova/forms.py:361
|
||||
#: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231
|
||||
msgid "File"
|
||||
msgstr "Datei"
|
||||
|
||||
#: konova/forms.py:360
|
||||
#: konova/forms.py:363
|
||||
msgid "Allowed formats: pdf, jpg, png. Max size 15 MB."
|
||||
msgstr "Formate: pdf, jpg, png. Maximal 15 MB."
|
||||
|
||||
#: konova/forms.py:406
|
||||
#: konova/forms.py:409
|
||||
msgid "Unsupported file type"
|
||||
msgstr "Dateiformat nicht unterstützt"
|
||||
|
||||
#: konova/forms.py:413
|
||||
#: konova/forms.py:416
|
||||
msgid "File too large"
|
||||
msgstr "Datei zu groß"
|
||||
|
||||
#: konova/forms.py:422
|
||||
#: konova/forms.py:425
|
||||
msgid "Added document"
|
||||
msgstr "Dokument hinzugefügt"
|
||||
|
||||
#: konova/forms.py:445
|
||||
#: konova/forms.py:448
|
||||
msgid "Confirm record"
|
||||
msgstr "Verzeichnen bestätigen"
|
||||
|
||||
#: konova/forms.py:453
|
||||
#: konova/forms.py:456
|
||||
msgid "Record data"
|
||||
msgstr "Daten verzeichnen"
|
||||
|
||||
#: konova/forms.py:460
|
||||
#: konova/forms.py:463
|
||||
msgid "Confirm unrecord"
|
||||
msgstr "Entzeichnen bestätigen"
|
||||
|
||||
#: konova/forms.py:461
|
||||
#: konova/forms.py:464
|
||||
msgid "Unrecord data"
|
||||
msgstr "Daten entzeichnen"
|
||||
|
||||
#: konova/forms.py:462
|
||||
#: konova/forms.py:465
|
||||
msgid "I, {} {}, confirm that this data must be unrecorded."
|
||||
msgstr ""
|
||||
"Ich, {} {}, bestätige, dass diese Daten wieder entzeichnet werden müssen."
|
||||
@ -1667,23 +1667,35 @@ msgstr "Abbuchen"
|
||||
msgid "Spatial reference"
|
||||
msgstr "Raumreferenz"
|
||||
|
||||
#: konova/templates/konova/includes/parcels.html:9
|
||||
#: konova/templates/konova/includes/parcels.html:8
|
||||
msgid ""
|
||||
"\n"
|
||||
" If the geometry is not empty, the parcels are currently "
|
||||
"recalculated. Please refresh this page in a few moments.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Falls die Geometrie nicht leer ist, werden die Flurstücke aktuell berechnet. "
|
||||
"Bitte laden Sie diese Seite in ein paar Augenblicken erneut... \n"
|
||||
" "
|
||||
|
||||
#: konova/templates/konova/includes/parcels.html:16
|
||||
msgid "Kreis"
|
||||
msgstr "Kreis"
|
||||
|
||||
#: konova/templates/konova/includes/parcels.html:10
|
||||
#: konova/templates/konova/includes/parcels.html:17
|
||||
msgid "Gemarkung"
|
||||
msgstr "Gemarkung"
|
||||
|
||||
#: konova/templates/konova/includes/parcels.html:11
|
||||
#: konova/templates/konova/includes/parcels.html:18
|
||||
msgid "Parcel"
|
||||
msgstr "Flur"
|
||||
|
||||
#: konova/templates/konova/includes/parcels.html:12
|
||||
#: konova/templates/konova/includes/parcels.html:19
|
||||
msgid "Parcel counter"
|
||||
msgstr "Flurstückzähler"
|
||||
|
||||
#: konova/templates/konova/includes/parcels.html:13
|
||||
#: konova/templates/konova/includes/parcels.html:20
|
||||
msgid "Parcel number"
|
||||
msgstr "Flurstücknenner"
|
||||
|
||||
@ -1769,15 +1781,15 @@ msgstr "Maßnahme hinzufügen"
|
||||
msgid "Geometry conflict detected with {}"
|
||||
msgstr "Geometriekonflikt mit folgenden Einträgen erkannt: {}"
|
||||
|
||||
#: konova/utils/messenger.py:69
|
||||
#: konova/utils/messenger.py:70
|
||||
msgid "{} checked"
|
||||
msgstr "{} geprüft"
|
||||
|
||||
#: konova/utils/messenger.py:71
|
||||
#: konova/utils/messenger.py:72
|
||||
msgid "<a href=\"{}\">Check it out</a>"
|
||||
msgstr "<a href=\"{}\">Schauen Sie rein</a>"
|
||||
|
||||
#: konova/utils/messenger.py:72
|
||||
#: konova/utils/messenger.py:73
|
||||
msgid "{} has been checked successfully by user {}! {}"
|
||||
msgstr "{} wurde erfolgreich vom Nutzer {} geprüft! {}"
|
||||
|
||||
@ -2051,6 +2063,315 @@ msgstr "Benachrichtigungen bearbeitet"
|
||||
msgid "close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/_termui_impl.py:496
|
||||
#, python-brace-format
|
||||
msgid "{editor}: Editing failed"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/_termui_impl.py:500
|
||||
#, python-brace-format
|
||||
msgid "{editor}: Editing failed: {e}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/_unicodefun.py:20
|
||||
msgid ""
|
||||
"Click will abort further execution because Python was configured to use "
|
||||
"ASCII as encoding for the environment. Consult https://click.palletsprojects."
|
||||
"com/unicode-support/ for mitigation steps."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/_unicodefun.py:56
|
||||
msgid ""
|
||||
"Additional information: on this system no suitable UTF-8 locales were "
|
||||
"discovered. This most likely requires resolving by reconfiguring the locale "
|
||||
"system."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/_unicodefun.py:65
|
||||
msgid ""
|
||||
"This system supports the C.UTF-8 locale which is recommended. You might be "
|
||||
"able to resolve your issue by exporting the following environment variables:"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/_unicodefun.py:75
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"This system lists some UTF-8 supporting locales that you can pick from. The "
|
||||
"following suitable locales were discovered: {locales}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/_unicodefun.py:93
|
||||
msgid ""
|
||||
"Click discovered that you exported a UTF-8 locale but the locale system "
|
||||
"could not pick up from it because it does not exist. The exported locale is "
|
||||
"{locale!r} but it is not supported."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1095
|
||||
msgid "Aborted!"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1279
|
||||
#: venv/lib/python3.7/site-packages/click/decorators.py:434
|
||||
msgid "Show this message and exit."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1308
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1334
|
||||
#, python-brace-format
|
||||
msgid "(Deprecated) {text}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1351
|
||||
msgid "Options"
|
||||
msgstr "Optionen"
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1375
|
||||
#, python-brace-format
|
||||
msgid "Got unexpected extra argument ({args})"
|
||||
msgid_plural "Got unexpected extra arguments ({args})"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1390
|
||||
msgid "DeprecationWarning: The command {name!r} is deprecated."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1607
|
||||
msgid "Commands"
|
||||
msgstr "Befehle"
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1639
|
||||
msgid "Missing command."
|
||||
msgstr "Befehl fehlt"
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:1717
|
||||
msgid "No such command {name!r}."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:2258
|
||||
msgid "Value must be an iterable."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:2278
|
||||
#, python-brace-format
|
||||
msgid "Takes {nargs} values but 1 was given."
|
||||
msgid_plural "Takes {nargs} values but {len} were given."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:2701
|
||||
#, python-brace-format
|
||||
msgid "env var: {var}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:2724
|
||||
msgid "(dynamic)"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:2735
|
||||
#, python-brace-format
|
||||
msgid "default: {default}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/core.py:2748
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/decorators.py:339
|
||||
#, python-format
|
||||
msgid "%(prog)s, version %(version)s"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/decorators.py:403
|
||||
msgid "Show the version and exit."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:43
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:79
|
||||
#, python-brace-format
|
||||
msgid "Error: {message}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:71
|
||||
#, python-brace-format
|
||||
msgid "Try '{command} {option}' for help."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:120
|
||||
#, python-brace-format
|
||||
msgid "Invalid value: {message}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:122
|
||||
#, python-brace-format
|
||||
msgid "Invalid value for {param_hint}: {message}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:178
|
||||
msgid "Missing argument"
|
||||
msgstr "Argument fehlt"
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:180
|
||||
msgid "Missing option"
|
||||
msgstr "Option fehlt"
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:182
|
||||
msgid "Missing parameter"
|
||||
msgstr "Parameter fehlt"
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:184
|
||||
#, python-brace-format
|
||||
msgid "Missing {param_type}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:191
|
||||
#, python-brace-format
|
||||
msgid "Missing parameter: {param_name}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:211
|
||||
#, python-brace-format
|
||||
msgid "No such option: {name}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:223
|
||||
#, python-brace-format
|
||||
msgid "Did you mean {possibility}?"
|
||||
msgid_plural "(Possible options: {possibilities})"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:261
|
||||
msgid "unknown error"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/exceptions.py:268
|
||||
msgid "Could not open file {filename!r}: {message}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/parser.py:231
|
||||
msgid "Argument {name!r} takes {nargs} values."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/parser.py:413
|
||||
msgid "Option {name!r} does not take a value."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/parser.py:474
|
||||
msgid "Option {name!r} requires an argument."
|
||||
msgid_plural "Option {name!r} requires {nargs} arguments."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/shell_completion.py:316
|
||||
msgid "Shell completion is not supported for Bash versions older than 4.4."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/shell_completion.py:322
|
||||
msgid "Couldn't detect Bash version, shell completion is not supported."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/termui.py:161
|
||||
msgid "Repeat for confirmation"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/termui.py:178
|
||||
msgid "Error: The value you entered was invalid."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/termui.py:180
|
||||
#, python-brace-format
|
||||
msgid "Error: {e.message}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/termui.py:191
|
||||
msgid "Error: The two entered values do not match."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/termui.py:247
|
||||
msgid "Error: invalid input"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/termui.py:798
|
||||
msgid "Press any key to continue..."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:258
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Choose from:\n"
|
||||
"\t{choices}"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:290
|
||||
msgid "{value!r} is not {choice}."
|
||||
msgid_plural "{value!r} is not one of {choices}."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:380
|
||||
msgid "{value!r} does not match the format {format}."
|
||||
msgid_plural "{value!r} does not match the formats {formats}."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:402
|
||||
msgid "{value!r} is not a valid {number_type}."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:458
|
||||
#, python-brace-format
|
||||
msgid "{value} is not in the range {range}."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:599
|
||||
msgid "{value!r} is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:623
|
||||
msgid "{value!r} is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:801
|
||||
msgid "file"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:803
|
||||
msgid "directory"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:805
|
||||
msgid "path"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:851
|
||||
msgid "{name} {filename!r} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:860
|
||||
msgid "{name} {filename!r} is a file."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:868
|
||||
msgid "{name} {filename!r} is a directory."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:876
|
||||
msgid "{name} {filename!r} is not writable."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:884
|
||||
msgid "{name} {filename!r} is not readable."
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/click/types.py:951
|
||||
#, python-brace-format
|
||||
msgid "{len_type} values are required, but {len_value} was given."
|
||||
msgid_plural "{len_type} values are required, but {len_value} were given."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/django/contrib/messages/apps.py:7
|
||||
msgid "Messages"
|
||||
msgstr "Nachrichten"
|
||||
@ -3224,6 +3545,21 @@ msgstr ""
|
||||
msgid "A fontawesome icon field"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/kombu/transport/qpid.py:1310
|
||||
#, python-format
|
||||
msgid "Attempting to connect to qpid with SASL mechanism %s"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/kombu/transport/qpid.py:1315
|
||||
#, python-format
|
||||
msgid "Connected to qpid with SASL mechanism %s"
|
||||
msgstr ""
|
||||
|
||||
#: venv/lib/python3.7/site-packages/kombu/transport/qpid.py:1333
|
||||
#, python-format
|
||||
msgid "Unable to connect to qpid with SASL mechanism %s"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "No file given!"
|
||||
#~ msgstr "Keine Datei angegeben!"
|
||||
|
||||
|
@ -1,7 +1,16 @@
|
||||
amqp==5.0.9
|
||||
asgiref==3.3.1
|
||||
beautifulsoup4==4.9.3
|
||||
billiard==3.6.4.0
|
||||
cached-property==1.5.2
|
||||
celery==5.2.3
|
||||
certifi==2020.11.8
|
||||
chardet==3.0.4
|
||||
click==8.0.3
|
||||
click-didyoumean==0.3.0
|
||||
click-plugins==1.1.1
|
||||
click-repl==0.2.0
|
||||
Deprecated==1.2.13
|
||||
Django==3.1.3
|
||||
django-autocomplete-light==3.8.2
|
||||
django-bootstrap-modal-forms==2.2.0
|
||||
@ -15,19 +24,27 @@ et-xmlfile==1.1.0
|
||||
idna==2.10
|
||||
importlib-metadata==2.1.1
|
||||
itsdangerous==0.24
|
||||
kombu==5.2.3
|
||||
openpyxl==3.0.9
|
||||
OWSLib==0.25.0
|
||||
packaging==21.3
|
||||
prompt-toolkit==3.0.24
|
||||
psycopg2-binary==2.9.1
|
||||
pyparsing==3.0.6
|
||||
pyproj==3.2.1
|
||||
python-dateutil==2.8.2
|
||||
pytz==2020.4
|
||||
pytz==2021.3
|
||||
PyYAML==6.0
|
||||
qrcode==7.3.1
|
||||
redis==4.1.0
|
||||
requests==2.25.0
|
||||
six==1.15.0
|
||||
soupsieve==2.2.1
|
||||
sqlparse==0.4.1
|
||||
urllib3==1.26.2
|
||||
vine==5.0.0
|
||||
wcwidth==0.2.5
|
||||
webservices==0.7
|
||||
wrapt==1.13.3
|
||||
xmltodict==0.12.0
|
||||
zipp==3.4.1
|
||||
|
Loading…
Reference in New Issue
Block a user