Compare commits
No commits in common. "4bc94e78e0a74d900b07d6b00a3215e8b689b3a7" and "452b418ade040c7019b16b8e568234836cf454a1" have entirely different histories.
4bc94e78e0
...
452b418ade
@ -61,7 +61,7 @@ class AbstractModelAPISerializerV1(AbstractModelAPISerializer):
|
|||||||
if konova_code is None:
|
if konova_code is None:
|
||||||
return None
|
return None
|
||||||
return {
|
return {
|
||||||
"id": konova_code.id,
|
"atom_id": konova_code.atom_id,
|
||||||
"long_name": konova_code.long_name,
|
"long_name": konova_code.long_name,
|
||||||
"short_name": konova_code.short_name,
|
"short_name": konova_code.short_name,
|
||||||
}
|
}
|
||||||
@ -70,7 +70,7 @@ class AbstractModelAPISerializerV1(AbstractModelAPISerializer):
|
|||||||
""" Returns a konova code instance
|
""" Returns a konova code instance
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
json_str (str): The value for the code (id)
|
json_str (str): The value for the code (atom id)
|
||||||
code_list_identifier (str): From which konova code list this code is supposed to be from
|
code_list_identifier (str): From which konova code list this code is supposed to be from
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
@ -83,7 +83,7 @@ class AbstractModelAPISerializerV1(AbstractModelAPISerializer):
|
|||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
code = KonovaCode.objects.get(
|
code = KonovaCode.objects.get(
|
||||||
id=json_str,
|
atom_id=json_str,
|
||||||
code_lists__in=[code_list_identifier]
|
code_lists__in=[code_list_identifier]
|
||||||
)
|
)
|
||||||
except ObjectDoesNotExist as e:
|
except ObjectDoesNotExist as e:
|
||||||
@ -297,12 +297,9 @@ class AbstractCompensationAPISerializerV1Mixin:
|
|||||||
"""
|
"""
|
||||||
deadlines = []
|
deadlines = []
|
||||||
for entry in deadline_data:
|
for entry in deadline_data:
|
||||||
try:
|
deadline_type = entry["type"]
|
||||||
deadline_type = entry["type"]
|
date = entry["date"]
|
||||||
date = entry["date"]
|
comment = entry["comment"]
|
||||||
comment = entry["comment"]
|
|
||||||
except KeyError:
|
|
||||||
raise ValueError(f"Invalid deadline content. Content was {entry} but should follow the specification")
|
|
||||||
|
|
||||||
# Check on validity
|
# Check on validity
|
||||||
if deadline_type not in DeadlineType:
|
if deadline_type not in DeadlineType:
|
||||||
@ -344,14 +341,11 @@ class AbstractCompensationAPISerializerV1Mixin:
|
|||||||
"""
|
"""
|
||||||
states = []
|
states = []
|
||||||
for entry in states_data:
|
for entry in states_data:
|
||||||
try:
|
biotope_type = entry["biotope"]
|
||||||
biotope_type = entry["biotope"]
|
biotope_details = [
|
||||||
biotope_details = [
|
self._konova_code_from_json(e, CODELIST_BIOTOPES_EXTRA_CODES_ID) for e in entry["biotope_details"]
|
||||||
self._konova_code_from_json(e, CODELIST_BIOTOPES_EXTRA_CODES_ID) for e in entry["biotope_details"]
|
]
|
||||||
]
|
surface = float(entry["surface"])
|
||||||
surface = float(entry["surface"])
|
|
||||||
except KeyError:
|
|
||||||
raise ValueError(f"Invalid biotope content. Content was {entry} but should follow the specification ")
|
|
||||||
|
|
||||||
# Check on validity
|
# Check on validity
|
||||||
if surface <= 0:
|
if surface <= 0:
|
||||||
@ -360,7 +354,7 @@ class AbstractCompensationAPISerializerV1Mixin:
|
|||||||
# If this exact data is already existing, we do not create it new. Instead put it's id in the list of
|
# If this exact data is already existing, we do not create it new. Instead put it's id in the list of
|
||||||
# entries, we will use to set the new actions
|
# entries, we will use to set the new actions
|
||||||
state = states_manager.filter(
|
state = states_manager.filter(
|
||||||
biotope_type__id=biotope_type,
|
biotope_type__atom_id=biotope_type,
|
||||||
surface=surface,
|
surface=surface,
|
||||||
).exclude(
|
).exclude(
|
||||||
id__in=states
|
id__in=states
|
||||||
@ -391,19 +385,16 @@ class AbstractCompensationAPISerializerV1Mixin:
|
|||||||
"""
|
"""
|
||||||
actions = []
|
actions = []
|
||||||
for entry in actions_data:
|
for entry in actions_data:
|
||||||
try:
|
action_types = [
|
||||||
action_types = [
|
self._konova_code_from_json(e, CODELIST_COMPENSATION_ACTION_ID) for e in entry["action_types"]
|
||||||
self._konova_code_from_json(e, CODELIST_COMPENSATION_ACTION_ID) for e in entry["action_types"]
|
]
|
||||||
]
|
action_details = [
|
||||||
action_details = [
|
self._konova_code_from_json(e, CODELIST_COMPENSATION_ACTION_DETAIL_ID) for e in entry["action_details"]
|
||||||
self._konova_code_from_json(e, CODELIST_COMPENSATION_ACTION_DETAIL_ID) for e in entry["action_details"]
|
]
|
||||||
]
|
amount = float(entry["amount"])
|
||||||
amount = float(entry["amount"])
|
# Mapping of old "qm" into "m²"
|
||||||
# Mapping of old "qm" into "m²"
|
unit = UnitChoices.m2.value if entry["unit"] == "qm" else entry["unit"]
|
||||||
unit = UnitChoices.m2.value if entry["unit"] == "qm" else entry["unit"]
|
comment = entry["comment"]
|
||||||
comment = entry["comment"]
|
|
||||||
except KeyError:
|
|
||||||
raise ValueError(f"Invalid action content. Content was {entry} but should follow specification")
|
|
||||||
|
|
||||||
# Check on validity
|
# Check on validity
|
||||||
if amount <= 0:
|
if amount <= 0:
|
||||||
|
@ -55,12 +55,10 @@ class CheckboxCompensationTableFilter(CheckboxTableFilter):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
if not value:
|
if not value:
|
||||||
user_teams = self.user.shared_teams
|
return queryset.filter(
|
||||||
result = queryset.filter(
|
|
||||||
Q(intervention__users__in=[self.user]) | # requesting user has access
|
Q(intervention__users__in=[self.user]) | # requesting user has access
|
||||||
Q(intervention__teams__in=user_teams)
|
Q(intervention__teams__in=self.user.shared_teams)
|
||||||
).distinct()
|
).distinct()
|
||||||
return result
|
|
||||||
else:
|
else:
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
@ -8,7 +8,6 @@ Created on: 18.08.22
|
|||||||
from django.http import HttpRequest
|
from django.http import HttpRequest
|
||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.formats import number_format
|
|
||||||
from django.utils.html import format_html
|
from django.utils.html import format_html
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
@ -112,7 +111,6 @@ class EcoAccountTable(BaseTable, TableRenderMixin, TableOrderMixin):
|
|||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
value_relative = 0
|
value_relative = 0
|
||||||
html = render_to_string("konova/widgets/progressbar.html", {"value": value_relative})
|
html = render_to_string("konova/widgets/progressbar.html", {"value": value_relative})
|
||||||
html += f"{number_format(record.deductable_rest, decimal_pos=2)} m²"
|
|
||||||
return format_html(html)
|
return format_html(html)
|
||||||
|
|
||||||
def render_r(self, value, record: EcoAccount):
|
def render_r(self, value, record: EcoAccount):
|
||||||
|
@ -204,11 +204,7 @@ def detail_view(request: HttpRequest, id: str):
|
|||||||
"""
|
"""
|
||||||
template = "compensation/detail/compensation/view.html"
|
template = "compensation/detail/compensation/view.html"
|
||||||
comp = get_object_or_404(
|
comp = get_object_or_404(
|
||||||
Compensation.objects.select_related(
|
Compensation,
|
||||||
"modified",
|
|
||||||
"created",
|
|
||||||
"geometry"
|
|
||||||
),
|
|
||||||
id=id,
|
id=id,
|
||||||
deleted=None,
|
deleted=None,
|
||||||
intervention__deleted=None,
|
intervention__deleted=None,
|
||||||
|
@ -142,8 +142,6 @@ def detail_view(request: HttpRequest, id: str):
|
|||||||
"geometry",
|
"geometry",
|
||||||
"legal",
|
"legal",
|
||||||
"responsible",
|
"responsible",
|
||||||
).prefetch_related(
|
|
||||||
"legal__revocations",
|
|
||||||
),
|
),
|
||||||
id=id,
|
id=id,
|
||||||
deleted=None
|
deleted=None
|
||||||
@ -160,10 +158,7 @@ def detail_view(request: HttpRequest, id: str):
|
|||||||
last_checked = intervention.get_last_checked_action()
|
last_checked = intervention.get_last_checked_action()
|
||||||
last_checked_tooltip = ""
|
last_checked_tooltip = ""
|
||||||
if last_checked:
|
if last_checked:
|
||||||
last_checked_tooltip = DATA_CHECKED_PREVIOUSLY_TEMPLATE.format(
|
last_checked_tooltip = DATA_CHECKED_PREVIOUSLY_TEMPLATE.format(last_checked.get_timestamp_str_formatted(), last_checked.user)
|
||||||
last_checked.get_timestamp_str_formatted(),
|
|
||||||
last_checked.user
|
|
||||||
)
|
|
||||||
|
|
||||||
has_payment_without_document = intervention.payments.exists() and not intervention.get_documents()[1].exists()
|
has_payment_without_document = intervention.payments.exists() and not intervention.get_documents()[1].exists()
|
||||||
|
|
||||||
|
@ -50,11 +50,9 @@ class ShareableTableFilterMixin(django_filters.FilterSet):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
if not value:
|
if not value:
|
||||||
user_teams = self.user.shared_teams
|
return queryset.filter(
|
||||||
result = queryset.filter(
|
|
||||||
Q(users__in=[self.user]) | # requesting user has access
|
Q(users__in=[self.user]) | # requesting user has access
|
||||||
Q(teams__in=user_teams)
|
Q(teams__in=self.user.shared_teams)
|
||||||
).distinct()
|
).distinct()
|
||||||
return result
|
|
||||||
else:
|
else:
|
||||||
return queryset
|
return queryset
|
@ -276,22 +276,6 @@ class Geometry(BaseResource):
|
|||||||
|
|
||||||
return parcels
|
return parcels
|
||||||
|
|
||||||
def get_underlying_municipals(self, parcels=None):
|
|
||||||
""" Getter for related municipals
|
|
||||||
|
|
||||||
If no QuerySet of parcels is provided, the parcels will be fetched
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
municipals (QuerySet): The related municipals as queryset
|
|
||||||
"""
|
|
||||||
from konova.models import Municipal
|
|
||||||
|
|
||||||
if parcels is None:
|
|
||||||
parcels = self.get_underlying_parcels()
|
|
||||||
municipals = parcels.order_by("municipal").distinct("municipal").values("municipal__id")
|
|
||||||
municipals = Municipal.objects.filter(id__in=municipals).order_by("name")
|
|
||||||
return municipals
|
|
||||||
|
|
||||||
def count_underlying_parcels(self):
|
def count_underlying_parcels(self):
|
||||||
""" Getter for number of underlying parcels
|
""" Getter for number of underlying parcels
|
||||||
|
|
||||||
|
@ -120,14 +120,13 @@ class DeletableObjectMixin(models.Model):
|
|||||||
if send_mail:
|
if send_mail:
|
||||||
# Send mail
|
# Send mail
|
||||||
shared_users = self.shared_users.values_list("id", flat=True)
|
shared_users = self.shared_users.values_list("id", flat=True)
|
||||||
municipals_names = list(self.geometry.get_underlying_municipals().values_list("name", flat=True))
|
|
||||||
for user_id in shared_users:
|
for user_id in shared_users:
|
||||||
celery_send_mail_shared_data_deleted.delay(self.identifier, self.title, user_id, municipals_names)
|
celery_send_mail_shared_data_deleted.delay(self.identifier, self.title, user_id)
|
||||||
|
|
||||||
# Send mail
|
# Send mail
|
||||||
shared_teams = self.shared_teams.values_list("id", flat=True)
|
shared_teams = self.shared_teams.values_list("id", flat=True)
|
||||||
for team_id in shared_teams:
|
for team_id in shared_teams:
|
||||||
celery_send_mail_shared_data_deleted_team.delay(self.identifier, self.title, team_id, municipals_names)
|
celery_send_mail_shared_data_deleted_team.delay(self.identifier, self.title, team_id)
|
||||||
|
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
@ -278,13 +277,12 @@ class RecordableObjectMixin(models.Model):
|
|||||||
|
|
||||||
shared_users = self.shared_users.values_list("id", flat=True)
|
shared_users = self.shared_users.values_list("id", flat=True)
|
||||||
shared_teams = self.shared_teams.values_list("id", flat=True)
|
shared_teams = self.shared_teams.values_list("id", flat=True)
|
||||||
municipals_names = list(self.geometry.get_underlying_municipals().values_list("name", flat=True))
|
|
||||||
|
|
||||||
for user_id in shared_users:
|
for user_id in shared_users:
|
||||||
celery_send_mail_shared_data_unrecorded.delay(self.identifier, self.title, user_id, municipals_names)
|
celery_send_mail_shared_data_unrecorded.delay(self.identifier, self.title, user_id)
|
||||||
|
|
||||||
for team_id in shared_teams:
|
for team_id in shared_teams:
|
||||||
celery_send_mail_shared_data_unrecorded_team.delay(self.identifier, self.title, team_id, municipals_names)
|
celery_send_mail_shared_data_unrecorded_team.delay(self.identifier, self.title, team_id)
|
||||||
|
|
||||||
return action
|
return action
|
||||||
|
|
||||||
@ -309,13 +307,12 @@ class RecordableObjectMixin(models.Model):
|
|||||||
|
|
||||||
shared_users = self.shared_users.values_list("id", flat=True)
|
shared_users = self.shared_users.values_list("id", flat=True)
|
||||||
shared_teams = self.shared_teams.values_list("id", flat=True)
|
shared_teams = self.shared_teams.values_list("id", flat=True)
|
||||||
municipals_names = list(self.geometry.get_underlying_municipals().values_list("name", flat=True))
|
|
||||||
|
|
||||||
for user_id in shared_users:
|
for user_id in shared_users:
|
||||||
celery_send_mail_shared_data_recorded.delay(self.identifier, self.title, user_id, municipals_names)
|
celery_send_mail_shared_data_recorded.delay(self.identifier, self.title, user_id)
|
||||||
|
|
||||||
for team_id in shared_teams:
|
for team_id in shared_teams:
|
||||||
celery_send_mail_shared_data_recorded_team.delay(self.identifier, self.title, team_id, municipals_names)
|
celery_send_mail_shared_data_recorded_team.delay(self.identifier, self.title, team_id)
|
||||||
|
|
||||||
return action
|
return action
|
||||||
|
|
||||||
@ -407,17 +404,15 @@ class CheckableObjectMixin(models.Model):
|
|||||||
self.checked = action
|
self.checked = action
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
municipals_names = list(self.geometry.get_underlying_municipals().values_list("name", flat=True))
|
|
||||||
|
|
||||||
# Send mail
|
# Send mail
|
||||||
shared_users = self.shared_users.values_list("id", flat=True)
|
shared_users = self.shared_users.values_list("id", flat=True)
|
||||||
for user_id in shared_users:
|
for user_id in shared_users:
|
||||||
celery_send_mail_shared_data_checked.delay(self.identifier, self.title, user_id, municipals_names)
|
celery_send_mail_shared_data_checked.delay(self.identifier, self.title, user_id)
|
||||||
|
|
||||||
# Send mail
|
# Send mail
|
||||||
shared_teams = self.shared_teams.values_list("id", flat=True)
|
shared_teams = self.shared_teams.values_list("id", flat=True)
|
||||||
for team_id in shared_teams:
|
for team_id in shared_teams:
|
||||||
celery_send_mail_shared_data_checked_team.delay(self.identifier, self.title, team_id, municipals_names)
|
celery_send_mail_shared_data_checked_team.delay(self.identifier, self.title, team_id)
|
||||||
|
|
||||||
self.log.add(action)
|
self.log.add(action)
|
||||||
return action
|
return action
|
||||||
@ -506,13 +501,10 @@ class ShareableObjectMixin(models.Model):
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
obj_shared_teams = self.shared_teams
|
directly_shared = self.shared_users.filter(id=user.id).exists()
|
||||||
obj_shared_users = self.shared_users
|
team_shared = self.shared_teams.filter(
|
||||||
user_shared_teams = user.shared_teams
|
users__in=[user]
|
||||||
|
).exists()
|
||||||
directly_shared = obj_shared_users.filter(id=user.id).exists()
|
|
||||||
team_shared = (obj_shared_teams & user_shared_teams).exists()
|
|
||||||
|
|
||||||
is_shared = directly_shared or team_shared
|
is_shared = directly_shared or team_shared
|
||||||
return is_shared
|
return is_shared
|
||||||
|
|
||||||
@ -582,11 +574,10 @@ class ShareableObjectMixin(models.Model):
|
|||||||
id__in=shared_teams
|
id__in=shared_teams
|
||||||
).values_list("id", flat=True)
|
).values_list("id", flat=True)
|
||||||
|
|
||||||
municipals_names = list(self.geometry.get_underlying_municipals().values_list("name", flat=True))
|
|
||||||
for team_id in new_teams:
|
for team_id in new_teams:
|
||||||
celery_send_mail_shared_access_given_team.delay(self.identifier, self.title, team_id, municipals_names)
|
celery_send_mail_shared_access_given_team.delay(self.identifier, self.title, team_id)
|
||||||
for team_id in removed_teams:
|
for team_id in removed_teams:
|
||||||
celery_send_mail_shared_access_removed_team.delay(self.identifier, self.title, team_id, municipals_names)
|
celery_send_mail_shared_access_removed_team.delay(self.identifier, self.title, team_id)
|
||||||
|
|
||||||
self.share_with_team_list(accessing_teams)
|
self.share_with_team_list(accessing_teams)
|
||||||
|
|
||||||
@ -611,12 +602,11 @@ class ShareableObjectMixin(models.Model):
|
|||||||
id__in=shared_users
|
id__in=shared_users
|
||||||
).values_list("id", flat=True)
|
).values_list("id", flat=True)
|
||||||
|
|
||||||
municipals_names = list(self.geometry.get_underlying_municipals().values_list("name", flat=True))
|
|
||||||
# Send mails
|
# Send mails
|
||||||
for user_id in removed_users:
|
for user_id in removed_users:
|
||||||
celery_send_mail_shared_access_removed.delay(self.identifier, self.title, user_id, municipals_names)
|
celery_send_mail_shared_access_removed.delay(self.identifier, self.title, user_id)
|
||||||
for user_id in new_users:
|
for user_id in new_users:
|
||||||
celery_send_mail_shared_access_given.delay(self.identifier, self.title, user_id, municipals_names)
|
celery_send_mail_shared_access_given.delay(self.identifier, self.title, user_id)
|
||||||
|
|
||||||
# Set new shared users
|
# Set new shared users
|
||||||
self.share_with_user_list(accessing_users)
|
self.share_with_user_list(accessing_users)
|
||||||
@ -679,9 +669,8 @@ class ShareableObjectMixin(models.Model):
|
|||||||
default_users.append(user)
|
default_users.append(user)
|
||||||
self.share_with_user_list(cleaned_users)
|
self.share_with_user_list(cleaned_users)
|
||||||
|
|
||||||
municipals_names = list(self.geometry.get_underlying_municipals().values_list("name", flat=True))
|
|
||||||
for user in default_users:
|
for user in default_users:
|
||||||
celery_send_mail_shared_access_removed.delay(self.identifier, self.title, user.id, municipals_names)
|
celery_send_mail_shared_access_removed.delay(self.identifier, self.title, user.id)
|
||||||
|
|
||||||
|
|
||||||
class GeoReferencedMixin(models.Model):
|
class GeoReferencedMixin(models.Model):
|
||||||
@ -778,6 +767,5 @@ class ResubmitableObjectMixin(models.Model):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
resubmissions = self.resubmissions.all()
|
resubmissions = self.resubmissions.all()
|
||||||
municipal_names = list(self.geometry.get_underlying_municipals().values_list("name", flat=True))
|
|
||||||
for resubmission in resubmissions:
|
for resubmission in resubmissions:
|
||||||
resubmission.send_resubmission_mail(self.identifier, municipal_names)
|
resubmission.send_resubmission_mail(self.identifier)
|
||||||
|
@ -31,7 +31,7 @@ class Resubmission(BaseResource):
|
|||||||
help_text="Optional comment for the user itself"
|
help_text="Optional comment for the user itself"
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_resubmission_mail(self, obj_identifier, municipal_names):
|
def send_resubmission_mail(self, obj_identifier):
|
||||||
""" Sends a resubmission mail
|
""" Sends a resubmission mail
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -41,6 +41,6 @@ class Resubmission(BaseResource):
|
|||||||
return
|
return
|
||||||
|
|
||||||
mailer = Mailer()
|
mailer = Mailer()
|
||||||
mailer.send_mail_resubmission(obj_identifier, self, municipal_names)
|
mailer.send_mail_resubmission(obj_identifier, self)
|
||||||
self.resubmission_sent = True
|
self.resubmission_sent = True
|
||||||
self.save()
|
self.save()
|
||||||
|
@ -25,87 +25,87 @@ def celery_update_parcels(geometry_id: str, recheck: bool = True):
|
|||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_access_removed(obj_identifier, obj_title=None, user_id=None, municipals_names=[]):
|
def celery_send_mail_shared_access_removed(obj_identifier, obj_title=None, user_id=None):
|
||||||
from user.models import User
|
from user.models import User
|
||||||
user = User.objects.get(id=user_id)
|
user = User.objects.get(id=user_id)
|
||||||
user.send_mail_shared_access_removed(obj_identifier, obj_title, municipals_names)
|
user.send_mail_shared_access_removed(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_access_given(obj_identifier, obj_title=None, user_id=None, municipals_names=[]):
|
def celery_send_mail_shared_access_given(obj_identifier, obj_title=None, user_id=None):
|
||||||
from user.models import User
|
from user.models import User
|
||||||
user = User.objects.get(id=user_id)
|
user = User.objects.get(id=user_id)
|
||||||
user.send_mail_shared_access_given(obj_identifier, obj_title, municipals_names)
|
user.send_mail_shared_access_given(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_access_removed_team(obj_identifier, obj_title=None, team_id=None, municipals_names=[]):
|
def celery_send_mail_shared_access_removed_team(obj_identifier, obj_title=None, team_id=None):
|
||||||
from user.models import Team
|
from user.models import Team
|
||||||
team = Team.objects.get(id=team_id)
|
team = Team.objects.get(id=team_id)
|
||||||
team.send_mail_shared_access_removed(obj_identifier, obj_title, municipals_names)
|
team.send_mail_shared_access_removed(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_access_given_team(obj_identifier, obj_title=None, team_id=None, municipals_names=[]):
|
def celery_send_mail_shared_access_given_team(obj_identifier, obj_title=None, team_id=None):
|
||||||
from user.models import Team
|
from user.models import Team
|
||||||
team = Team.objects.get(id=team_id)
|
team = Team.objects.get(id=team_id)
|
||||||
team.send_mail_shared_access_given_team(obj_identifier, obj_title, municipals_names)
|
team.send_mail_shared_access_given_team(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_data_recorded(obj_identifier, obj_title=None, user_id=None, municipals_names=[]):
|
def celery_send_mail_shared_data_recorded(obj_identifier, obj_title=None, user_id=None):
|
||||||
from user.models import User
|
from user.models import User
|
||||||
user = User.objects.get(id=user_id)
|
user = User.objects.get(id=user_id)
|
||||||
user.send_mail_shared_data_recorded(obj_identifier, obj_title, municipals_names)
|
user.send_mail_shared_data_recorded(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_data_unrecorded(obj_identifier, obj_title=None, user_id=None, municipals_names=[]):
|
def celery_send_mail_shared_data_unrecorded(obj_identifier, obj_title=None, user_id=None):
|
||||||
from user.models import User
|
from user.models import User
|
||||||
user = User.objects.get(id=user_id)
|
user = User.objects.get(id=user_id)
|
||||||
user.send_mail_shared_data_unrecorded(obj_identifier, obj_title, municipals_names)
|
user.send_mail_shared_data_unrecorded(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_data_recorded_team(obj_identifier, obj_title=None, team_id=None, municipals_names=[]):
|
def celery_send_mail_shared_data_recorded_team(obj_identifier, obj_title=None, team_id=None):
|
||||||
from user.models import Team
|
from user.models import Team
|
||||||
team = Team.objects.get(id=team_id)
|
team = Team.objects.get(id=team_id)
|
||||||
team.send_mail_shared_data_recorded(obj_identifier, obj_title, municipals_names)
|
team.send_mail_shared_data_recorded(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_data_unrecorded_team(obj_identifier, obj_title=None, team_id=None, municipals_names=[]):
|
def celery_send_mail_shared_data_unrecorded_team(obj_identifier, obj_title=None, team_id=None):
|
||||||
from user.models import Team
|
from user.models import Team
|
||||||
team = Team.objects.get(id=team_id)
|
team = Team.objects.get(id=team_id)
|
||||||
team.send_mail_shared_data_unrecorded(obj_identifier, obj_title, municipals_names)
|
team.send_mail_shared_data_unrecorded(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_data_deleted(obj_identifier, obj_title=None, user_id=None, municipals_names=[]):
|
def celery_send_mail_shared_data_deleted(obj_identifier, obj_title=None, user_id=None):
|
||||||
from user.models import User
|
from user.models import User
|
||||||
user = User.objects.get(id=user_id)
|
user = User.objects.get(id=user_id)
|
||||||
user.send_mail_shared_data_deleted(obj_identifier, obj_title, municipals_names)
|
user.send_mail_shared_data_deleted(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_data_checked(obj_identifier, obj_title=None, user_id=None, municipals_names=[]):
|
def celery_send_mail_shared_data_checked(obj_identifier, obj_title=None, user_id=None):
|
||||||
from user.models import User
|
from user.models import User
|
||||||
user = User.objects.get(id=user_id)
|
user = User.objects.get(id=user_id)
|
||||||
user.send_mail_shared_data_checked(obj_identifier, obj_title, municipals_names)
|
user.send_mail_shared_data_checked(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_data_deleted_team(obj_identifier, obj_title=None, team_id=None, municipals_names=[]):
|
def celery_send_mail_shared_data_deleted_team(obj_identifier, obj_title=None, team_id=None):
|
||||||
from user.models import Team
|
from user.models import Team
|
||||||
team = Team.objects.get(id=team_id)
|
team = Team.objects.get(id=team_id)
|
||||||
team.send_mail_shared_data_deleted(obj_identifier, obj_title, municipals_names)
|
team.send_mail_shared_data_deleted(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def celery_send_mail_shared_data_checked_team(obj_identifier, obj_title=None, team_id=None, municipals_names=[]):
|
def celery_send_mail_shared_data_checked_team(obj_identifier, obj_title=None, team_id=None):
|
||||||
from user.models import Team
|
from user.models import Team
|
||||||
team = Team.objects.get(id=team_id)
|
team = Team.objects.get(id=team_id)
|
||||||
team.send_mail_shared_data_checked(obj_identifier, obj_title, municipals_names)
|
team.send_mail_shared_data_checked(obj_identifier, obj_title)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
|
@ -9,7 +9,7 @@ from django.contrib.gis.db.models.functions import Translate
|
|||||||
|
|
||||||
from konova.models import Geometry, GeometryConflict
|
from konova.models import Geometry, GeometryConflict
|
||||||
from konova.tests.test_views import BaseTestCase
|
from konova.tests.test_views import BaseTestCase
|
||||||
from konova.utils.schneider.fetcher import ParcelFetcher
|
from konova.utils.wfs.spatial import ParcelWFSFetcher
|
||||||
|
|
||||||
|
|
||||||
class GeometryTestCase(BaseTestCase):
|
class GeometryTestCase(BaseTestCase):
|
||||||
@ -63,14 +63,18 @@ class GeometryTestCase(BaseTestCase):
|
|||||||
num_conflict = GeometryConflict.objects.all().count()
|
num_conflict = GeometryConflict.objects.all().count()
|
||||||
self.assertEqual(0, num_conflict)
|
self.assertEqual(0, num_conflict)
|
||||||
|
|
||||||
def test_fetch(self):
|
def test_wfs_fetch(self):
|
||||||
""" Tests the fetching functionality of ParcelFetcher
|
""" Tests the fetching functionality of ParcelWFSFetcher
|
||||||
|
|
||||||
+++ Test relies on the availability of the spatial computation component 'Schneider' +++
|
+++ Test relies on the availability of the RLP Flurstück WFS +++
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
fetcher = ParcelFetcher(geometry=self.geom_1)
|
fetcher = ParcelWFSFetcher(
|
||||||
features = fetcher.get_parcels()
|
geometry_id=self.geom_1.id,
|
||||||
self.assertNotEqual(0, len(features), msg="Spatial fetcher get feature did not work!")
|
)
|
||||||
|
features = fetcher.get_features(
|
||||||
|
"ave:Flurstueck",
|
||||||
|
)
|
||||||
|
self.assertNotEqual(0, len(features), msg="Spatial wfs get feature did not work!")
|
||||||
|
@ -45,14 +45,12 @@ class Mailer:
|
|||||||
auth_password=self.auth_password
|
auth_password=self.auth_password
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_access_removed(self, obj_identifier, obj_title, user, municipals_names):
|
def send_mail_shared_access_removed(self, obj_identifier, obj_title, user):
|
||||||
""" Send a mail if user has no access to the object anymore
|
""" Send a mail if user has no access to the object anymore
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The object identifier
|
obj_identifier (str): The object identifier
|
||||||
obj_title (str): The object title
|
obj_title (str): The object title
|
||||||
user (User): Related user
|
|
||||||
municipals_names (iterable): List of municipals of the entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -61,7 +59,6 @@ class Mailer:
|
|||||||
"user": user,
|
"user": user,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/sharing/shared_access_removed.html", context)
|
msg = render_to_string("email/sharing/shared_access_removed.html", context)
|
||||||
@ -72,14 +69,11 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_access_given(self, obj_identifier, obj_title, user, municipals_names):
|
def send_mail_shared_access_given(self, obj_identifier, obj_title, user):
|
||||||
""" Send a mail if user just got access to the object
|
""" Send a mail if user just got access to the object
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The object identifier
|
obj_identifier (str): The object identifier
|
||||||
obj_title (str): The object title
|
|
||||||
user (User): The related user
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -88,7 +82,6 @@ class Mailer:
|
|||||||
"user": user,
|
"user": user,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/sharing/shared_access_given.html", context)
|
msg = render_to_string("email/sharing/shared_access_given.html", context)
|
||||||
@ -99,7 +92,7 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_access_given_team(self, obj_identifier, obj_title, team, users_to_notify, municipals_names):
|
def send_mail_shared_access_given_team(self, obj_identifier, obj_title, team, users_to_notify):
|
||||||
""" Send a mail if a team just got access to the object
|
""" Send a mail if a team just got access to the object
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -107,7 +100,6 @@ class Mailer:
|
|||||||
obj_title (str): Title of the main object
|
obj_title (str): Title of the main object
|
||||||
team (Team): Team to be notified
|
team (Team): Team to be notified
|
||||||
users_to_notify (QueryDict): Contains the team users which should be notified
|
users_to_notify (QueryDict): Contains the team users which should be notified
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -116,7 +108,6 @@ class Mailer:
|
|||||||
"team": team,
|
"team": team,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/sharing/shared_access_given_team.html", context)
|
msg = render_to_string("email/sharing/shared_access_given_team.html", context)
|
||||||
@ -127,7 +118,7 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_access_removed_team(self, obj_identifier, obj_title, team, users_to_notify, municipals_names):
|
def send_mail_shared_access_removed_team(self, obj_identifier, obj_title, team, users_to_notify):
|
||||||
""" Send a mail if a team just lost access to the object
|
""" Send a mail if a team just lost access to the object
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -135,7 +126,6 @@ class Mailer:
|
|||||||
obj_title (str): Title of the main object
|
obj_title (str): Title of the main object
|
||||||
team (Team): Team to be notified
|
team (Team): Team to be notified
|
||||||
users_to_notify (QueryDict): Contains the team users which should be notified
|
users_to_notify (QueryDict): Contains the team users which should be notified
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -144,7 +134,6 @@ class Mailer:
|
|||||||
"team": team,
|
"team": team,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/sharing/shared_access_removed_team.html", context)
|
msg = render_to_string("email/sharing/shared_access_removed_team.html", context)
|
||||||
@ -155,7 +144,7 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_data_unrecorded_team(self, obj_identifier, obj_title, team, users_to_notify, municipals_names):
|
def send_mail_shared_data_unrecorded_team(self, obj_identifier, obj_title, team, users_to_notify):
|
||||||
""" Send a mail if data has just been unrecorded
|
""" Send a mail if data has just been unrecorded
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -163,7 +152,6 @@ class Mailer:
|
|||||||
obj_title (str): Title of the main object
|
obj_title (str): Title of the main object
|
||||||
team (Team): Team to be notified
|
team (Team): Team to be notified
|
||||||
users_to_notify (QueryDict): Contains the team users which should be notified
|
users_to_notify (QueryDict): Contains the team users which should be notified
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -172,7 +160,6 @@ class Mailer:
|
|||||||
"team": team,
|
"team": team,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/recording/shared_data_unrecorded_team.html", context)
|
msg = render_to_string("email/recording/shared_data_unrecorded_team.html", context)
|
||||||
@ -183,7 +170,7 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_data_recorded_team(self, obj_identifier, obj_title, team, users_to_notify, municipals_names):
|
def send_mail_shared_data_recorded_team(self, obj_identifier, obj_title, team, users_to_notify):
|
||||||
""" Send a mail if data has just been recorded
|
""" Send a mail if data has just been recorded
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -191,7 +178,6 @@ class Mailer:
|
|||||||
obj_title (str): Title of the main object
|
obj_title (str): Title of the main object
|
||||||
team (Team): Team to be notified
|
team (Team): Team to be notified
|
||||||
users_to_notify (QueryDict): Contains the team users which should be notified
|
users_to_notify (QueryDict): Contains the team users which should be notified
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -200,7 +186,6 @@ class Mailer:
|
|||||||
"team": team,
|
"team": team,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/recording/shared_data_recorded_team.html", context)
|
msg = render_to_string("email/recording/shared_data_recorded_team.html", context)
|
||||||
@ -211,7 +196,7 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_data_checked_team(self, obj_identifier, obj_title, team, users_to_notify, municipals_names):
|
def send_mail_shared_data_checked_team(self, obj_identifier, obj_title, team, users_to_notify):
|
||||||
""" Send a mail if data has just been checked
|
""" Send a mail if data has just been checked
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -219,7 +204,6 @@ class Mailer:
|
|||||||
obj_title (str): Title of the main object
|
obj_title (str): Title of the main object
|
||||||
team (Team): Team to be notified
|
team (Team): Team to be notified
|
||||||
users_to_notify (QueryDict): Contains the team users which should be notified
|
users_to_notify (QueryDict): Contains the team users which should be notified
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -228,7 +212,6 @@ class Mailer:
|
|||||||
"team": team,
|
"team": team,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/checking/shared_data_checked_team.html", context)
|
msg = render_to_string("email/checking/shared_data_checked_team.html", context)
|
||||||
@ -266,15 +249,11 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_data_deleted_team(self, obj_identifier, obj_title, team, users_to_notify, municipals_names):
|
def send_mail_shared_data_deleted_team(self, obj_identifier, obj_title, team, users_to_notify):
|
||||||
""" Send a mail if data has just been deleted
|
""" Send a mail if data has just been deleted
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The object identifier
|
obj_identifier (str): The object identifier
|
||||||
obj_title (str): The object title
|
|
||||||
team (Team): The related team
|
|
||||||
users_to_notify (QuerySet): Contains team users who want to be notified
|
|
||||||
municipals_names (iterable): List of municipals for the entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -283,7 +262,6 @@ class Mailer:
|
|||||||
"team": team,
|
"team": team,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/deleting/shared_data_deleted_team.html", context)
|
msg = render_to_string("email/deleting/shared_data_deleted_team.html", context)
|
||||||
@ -294,14 +272,11 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_data_recorded(self, obj_identifier, obj_title, user, municipals_names):
|
def send_mail_shared_data_recorded(self, obj_identifier, obj_title, user):
|
||||||
""" Send a mail if the user's shared data has just been unrecorded
|
""" Send a mail if the user's shared data has just been unrecorded
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The object identifier
|
obj_identifier (str): The object identifier
|
||||||
obj_title (str): The object title
|
|
||||||
user (User): The related user
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -310,7 +285,6 @@ class Mailer:
|
|||||||
"user": user,
|
"user": user,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/recording/shared_data_recorded.html", context)
|
msg = render_to_string("email/recording/shared_data_recorded.html", context)
|
||||||
@ -321,14 +295,11 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_data_unrecorded(self, obj_identifier, obj_title, user, municipals_names):
|
def send_mail_shared_data_unrecorded(self, obj_identifier, obj_title, user):
|
||||||
""" Send a mail if the user's shared data has just been unrecorded
|
""" Send a mail if the user's shared data has just been unrecorded
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The object identifier
|
obj_identifier (str): The object identifier
|
||||||
obj_title (str): The object title
|
|
||||||
user (User): The related user
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -337,7 +308,6 @@ class Mailer:
|
|||||||
"user": user,
|
"user": user,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/recording/shared_data_unrecorded.html", context)
|
msg = render_to_string("email/recording/shared_data_unrecorded.html", context)
|
||||||
@ -348,14 +318,11 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_data_deleted(self, obj_identifier, obj_title, user, municipals_names):
|
def send_mail_shared_data_deleted(self, obj_identifier, obj_title, user):
|
||||||
""" Send a mail if shared data has just been deleted
|
""" Send a mail if shared data has just been deleted
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The object identifier
|
obj_identifier (str): The object identifier
|
||||||
obj_title (str): The object title
|
|
||||||
user (User): The related user
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -364,7 +331,6 @@ class Mailer:
|
|||||||
"user": user,
|
"user": user,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/deleting/shared_data_deleted.html", context)
|
msg = render_to_string("email/deleting/shared_data_deleted.html", context)
|
||||||
@ -375,14 +341,11 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_shared_data_checked(self, obj_identifier, obj_title, user, municipals_names):
|
def send_mail_shared_data_checked(self, obj_identifier, obj_title, user):
|
||||||
""" Send a mail if shared data just has been checked
|
""" Send a mail if shared data just has been checked
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The object identifier
|
obj_identifier (str): The object identifier
|
||||||
obj_title (str): The object title
|
|
||||||
user (User): The related user
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -391,7 +354,6 @@ class Mailer:
|
|||||||
"user": user,
|
"user": user,
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"obj_title": obj_title,
|
"obj_title": obj_title,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/checking/shared_data_checked.html", context)
|
msg = render_to_string("email/checking/shared_data_checked.html", context)
|
||||||
@ -451,13 +413,12 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
def send_mail_resubmission(self, obj_identifier, resubmission, municipals_names):
|
def send_mail_resubmission(self, obj_identifier, resubmission):
|
||||||
""" Send a resubmission mail for a user
|
""" Send a resubmission mail for a user
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The (resubmitted) object's identifier
|
obj_identifier (str): The (resubmitted) object's identifier
|
||||||
resubmission (Resubmission): The resubmission
|
resubmission (Resubmission): The resubmission
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -465,7 +426,6 @@ class Mailer:
|
|||||||
context = {
|
context = {
|
||||||
"obj_identifier": obj_identifier,
|
"obj_identifier": obj_identifier,
|
||||||
"resubmission": resubmission,
|
"resubmission": resubmission,
|
||||||
"municipals_names": municipals_names,
|
|
||||||
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
}
|
}
|
||||||
msg = render_to_string("email/resubmission/resubmission.html", context)
|
msg = render_to_string("email/resubmission/resubmission.html", context)
|
||||||
|
@ -44,7 +44,9 @@ def get_geom_parcels(request: HttpRequest, id: str):
|
|||||||
status_code = 200
|
status_code = 200
|
||||||
|
|
||||||
if parcels_available or not geometry_exists:
|
if parcels_available or not geometry_exists:
|
||||||
municipals = geom.get_underlying_municipals(parcels)
|
parcels = parcels.order_by("-municipal", "flr", "flrstck_zhlr", "flrstck_nnr")
|
||||||
|
municipals = parcels.order_by("municipal").distinct("municipal").values("municipal__id")
|
||||||
|
municipals = Municipal.objects.filter(id__in=municipals)
|
||||||
|
|
||||||
rpp = 100
|
rpp = 100
|
||||||
num_all_parcels = parcels.count()
|
num_all_parcels = parcels.count()
|
||||||
|
@ -35,7 +35,6 @@ def home_view(request: HttpRequest):
|
|||||||
template = "konova/home.html"
|
template = "konova/home.html"
|
||||||
now = timezone.now()
|
now = timezone.now()
|
||||||
user = request.user
|
user = request.user
|
||||||
user_teams = user.shared_teams
|
|
||||||
|
|
||||||
# Fetch the four newest active and published ServerMessages
|
# Fetch the four newest active and published ServerMessages
|
||||||
msgs = ServerMessage.objects.filter(
|
msgs = ServerMessage.objects.filter(
|
||||||
@ -52,7 +51,7 @@ def home_view(request: HttpRequest):
|
|||||||
)
|
)
|
||||||
# Then fetch only user related ones
|
# Then fetch only user related ones
|
||||||
user_interventions = interventions.filter(
|
user_interventions = interventions.filter(
|
||||||
Q(users__in=[user]) | Q(teams__in=user_teams)
|
Q(users__in=[user]) | Q(teams__in=user.shared_teams)
|
||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
# Repeat for other objects
|
# Repeat for other objects
|
||||||
@ -60,13 +59,13 @@ def home_view(request: HttpRequest):
|
|||||||
deleted=None,
|
deleted=None,
|
||||||
)
|
)
|
||||||
user_comps = comps.filter(
|
user_comps = comps.filter(
|
||||||
Q(intervention__users__in=[user]) | Q(intervention__teams__in=user_teams)
|
Q(intervention__users__in=[user]) | Q(intervention__teams__in=user.shared_teams)
|
||||||
).distinct()
|
).distinct()
|
||||||
eco_accs = EcoAccount.objects.filter(
|
eco_accs = EcoAccount.objects.filter(
|
||||||
deleted=None,
|
deleted=None,
|
||||||
)
|
)
|
||||||
user_ecco_accs = eco_accs.filter(
|
user_ecco_accs = eco_accs.filter(
|
||||||
Q(users__in=[user]) | Q(teams__in=user_teams)
|
Q(users__in=[user]) | Q(teams__in=user.shared_teams)
|
||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
additional_context = {
|
additional_context = {
|
||||||
|
Binary file not shown.
@ -9,8 +9,8 @@
|
|||||||
#: compensation/forms/modals/payment.py:23
|
#: compensation/forms/modals/payment.py:23
|
||||||
#: compensation/forms/modals/payment.py:34
|
#: compensation/forms/modals/payment.py:34
|
||||||
#: compensation/forms/modals/payment.py:50
|
#: compensation/forms/modals/payment.py:50
|
||||||
#: intervention/forms/intervention.py:56 intervention/forms/intervention.py:176
|
#: intervention/forms/intervention.py:55 intervention/forms/intervention.py:175
|
||||||
#: intervention/forms/intervention.py:188
|
#: intervention/forms/intervention.py:187
|
||||||
#: intervention/forms/modals/revocation.py:20
|
#: intervention/forms/modals/revocation.py:20
|
||||||
#: intervention/forms/modals/revocation.py:33
|
#: intervention/forms/modals/revocation.py:33
|
||||||
#: intervention/forms/modals/revocation.py:46
|
#: intervention/forms/modals/revocation.py:46
|
||||||
@ -43,7 +43,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-02-23 08:48+0100\n"
|
"POT-Creation-Date: 2022-12-06 08:23+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -74,7 +74,7 @@ msgstr "Einträge erstellt bis..."
|
|||||||
#: compensation/templates/compensation/report/eco_account/report.html:16
|
#: compensation/templates/compensation/report/eco_account/report.html:16
|
||||||
#: compensation/utils/quality.py:111 ema/templates/ema/detail/view.html:49
|
#: compensation/utils/quality.py:111 ema/templates/ema/detail/view.html:49
|
||||||
#: ema/templates/ema/report/report.html:16 ema/utils/quality.py:26
|
#: ema/templates/ema/report/report.html:16 ema/utils/quality.py:26
|
||||||
#: intervention/forms/intervention.py:104
|
#: intervention/forms/intervention.py:103
|
||||||
#: intervention/templates/intervention/detail/view.html:56
|
#: intervention/templates/intervention/detail/view.html:56
|
||||||
#: intervention/templates/intervention/report/report.html:37
|
#: intervention/templates/intervention/report/report.html:37
|
||||||
#: intervention/utils/quality.py:62 konova/filters/mixins/office.py:34
|
#: intervention/utils/quality.py:62 konova/filters/mixins/office.py:34
|
||||||
@ -85,11 +85,11 @@ msgstr "Eintragungsstelle"
|
|||||||
msgid "Select the responsible office"
|
msgid "Select the responsible office"
|
||||||
msgstr "Verantwortliche Stelle"
|
msgstr "Verantwortliche Stelle"
|
||||||
|
|
||||||
#: analysis/forms.py:60 compensation/forms/compensation.py:94
|
#: analysis/forms.py:60 compensation/forms/compensation.py:93
|
||||||
#: compensation/forms/mixins.py:32 compensation/forms/mixins.py:62
|
#: compensation/forms/mixins.py:32 compensation/forms/mixins.py:62
|
||||||
#: intervention/forms/intervention.py:66 intervention/forms/intervention.py:83
|
#: intervention/forms/intervention.py:65 intervention/forms/intervention.py:82
|
||||||
#: intervention/forms/intervention.py:99 intervention/forms/intervention.py:115
|
#: intervention/forms/intervention.py:98 intervention/forms/intervention.py:114
|
||||||
#: intervention/forms/intervention.py:156 intervention/forms/modals/share.py:41
|
#: intervention/forms/intervention.py:155 intervention/forms/modals/share.py:41
|
||||||
#: intervention/forms/modals/share.py:55 user/forms/modals/team.py:48
|
#: intervention/forms/modals/share.py:55 user/forms/modals/team.py:48
|
||||||
#: user/forms/modals/team.py:112
|
#: user/forms/modals/team.py:112
|
||||||
msgid "Click for selection"
|
msgid "Click for selection"
|
||||||
@ -309,7 +309,7 @@ msgstr ""
|
|||||||
" "
|
" "
|
||||||
|
|
||||||
#: analysis/templates/analysis/reports/includes/intervention/laws.html:14
|
#: analysis/templates/analysis/reports/includes/intervention/laws.html:14
|
||||||
#: intervention/forms/intervention.py:71
|
#: intervention/forms/intervention.py:70
|
||||||
#: intervention/templates/intervention/detail/view.html:39
|
#: intervention/templates/intervention/detail/view.html:39
|
||||||
#: intervention/templates/intervention/report/report.html:20
|
#: intervention/templates/intervention/report/report.html:20
|
||||||
msgid "Law"
|
msgid "Law"
|
||||||
@ -368,7 +368,7 @@ msgstr "Kennung"
|
|||||||
msgid "Generated automatically - not editable"
|
msgid "Generated automatically - not editable"
|
||||||
msgstr "Automatisch generiert - nicht bearbeitbar"
|
msgstr "Automatisch generiert - nicht bearbeitbar"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:43 compensation/tables/compensation.py:28
|
#: compensation/forms/compensation.py:42 compensation/tables/compensation.py:28
|
||||||
#: compensation/tables/eco_account.py:28
|
#: compensation/tables/eco_account.py:28
|
||||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:28
|
#: compensation/templates/compensation/detail/compensation/includes/documents.html:28
|
||||||
#: compensation/templates/compensation/detail/compensation/view.html:32
|
#: compensation/templates/compensation/detail/compensation/view.html:32
|
||||||
@ -379,7 +379,7 @@ msgstr "Automatisch generiert - nicht bearbeitbar"
|
|||||||
#: ema/tables.py:31 ema/templates/ema/detail/includes/documents.html:28
|
#: ema/tables.py:31 ema/templates/ema/detail/includes/documents.html:28
|
||||||
#: ema/templates/ema/detail/view.html:31
|
#: ema/templates/ema/detail/view.html:31
|
||||||
#: ema/templates/ema/report/report.html:12
|
#: ema/templates/ema/report/report.html:12
|
||||||
#: intervention/forms/intervention.py:42 intervention/tables.py:28
|
#: intervention/forms/intervention.py:41 intervention/tables.py:28
|
||||||
#: intervention/templates/intervention/detail/includes/compensations.html:33
|
#: intervention/templates/intervention/detail/includes/compensations.html:33
|
||||||
#: intervention/templates/intervention/detail/includes/documents.html:33
|
#: intervention/templates/intervention/detail/includes/documents.html:33
|
||||||
#: intervention/templates/intervention/detail/view.html:31
|
#: intervention/templates/intervention/detail/view.html:31
|
||||||
@ -388,15 +388,15 @@ msgstr "Automatisch generiert - nicht bearbeitbar"
|
|||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Bezeichnung"
|
msgstr "Bezeichnung"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:45 intervention/forms/intervention.py:44
|
#: compensation/forms/compensation.py:44 intervention/forms/intervention.py:43
|
||||||
msgid "An explanatory name"
|
msgid "An explanatory name"
|
||||||
msgstr "Aussagekräftiger Titel"
|
msgstr "Aussagekräftiger Titel"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:49 ema/forms.py:51 ema/forms.py:114
|
#: compensation/forms/compensation.py:48 ema/forms.py:51 ema/forms.py:114
|
||||||
msgid "Compensation XY; Location ABC"
|
msgid "Compensation XY; Location ABC"
|
||||||
msgstr "Kompensation XY; Flur ABC"
|
msgstr "Kompensation XY; Flur ABC"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:56
|
#: compensation/forms/compensation.py:55
|
||||||
#: compensation/forms/modals/compensation_action.py:81
|
#: compensation/forms/modals/compensation_action.py:81
|
||||||
#: compensation/forms/modals/deadline.py:49
|
#: compensation/forms/modals/deadline.py:49
|
||||||
#: compensation/forms/modals/payment.py:49
|
#: compensation/forms/modals/payment.py:49
|
||||||
@ -409,7 +409,7 @@ msgstr "Kompensation XY; Flur ABC"
|
|||||||
#: ema/templates/ema/detail/includes/actions.html:34
|
#: ema/templates/ema/detail/includes/actions.html:34
|
||||||
#: ema/templates/ema/detail/includes/deadlines.html:39
|
#: ema/templates/ema/detail/includes/deadlines.html:39
|
||||||
#: ema/templates/ema/detail/includes/documents.html:34
|
#: ema/templates/ema/detail/includes/documents.html:34
|
||||||
#: intervention/forms/intervention.py:200
|
#: intervention/forms/intervention.py:199
|
||||||
#: intervention/forms/modals/revocation.py:45
|
#: intervention/forms/modals/revocation.py:45
|
||||||
#: intervention/templates/intervention/detail/includes/documents.html:39
|
#: intervention/templates/intervention/detail/includes/documents.html:39
|
||||||
#: intervention/templates/intervention/detail/includes/payments.html:34
|
#: intervention/templates/intervention/detail/includes/payments.html:34
|
||||||
@ -420,29 +420,29 @@ msgstr "Kompensation XY; Flur ABC"
|
|||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
msgstr "Kommentar"
|
msgstr "Kommentar"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:58
|
#: compensation/forms/compensation.py:57
|
||||||
#: compensation/forms/modals/compensation_action.py:83
|
#: compensation/forms/modals/compensation_action.py:83
|
||||||
#: intervention/forms/intervention.py:202
|
#: intervention/forms/intervention.py:201
|
||||||
#: konova/forms/modals/resubmission_form.py:37
|
#: konova/forms/modals/resubmission_form.py:37
|
||||||
msgid "Additional comment"
|
msgid "Additional comment"
|
||||||
msgstr "Zusätzlicher Kommentar"
|
msgstr "Zusätzlicher Kommentar"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:85
|
#: compensation/forms/compensation.py:84
|
||||||
#: compensation/templates/compensation/detail/compensation/view.html:36
|
#: compensation/templates/compensation/detail/compensation/view.html:36
|
||||||
#: compensation/templates/compensation/report/compensation/report.html:16
|
#: compensation/templates/compensation/report/compensation/report.html:16
|
||||||
msgid "compensates intervention"
|
msgid "compensates intervention"
|
||||||
msgstr "kompensiert Eingriff"
|
msgstr "kompensiert Eingriff"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:87
|
#: compensation/forms/compensation.py:86
|
||||||
msgid "Select the intervention for which this compensation compensates"
|
msgid "Select the intervention for which this compensation compensates"
|
||||||
msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist"
|
msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:114
|
#: compensation/forms/compensation.py:113
|
||||||
#: compensation/views/compensation/compensation.py:115
|
#: compensation/views/compensation/compensation.py:115
|
||||||
msgid "New compensation"
|
msgid "New compensation"
|
||||||
msgstr "Neue Kompensation"
|
msgstr "Neue Kompensation"
|
||||||
|
|
||||||
#: compensation/forms/compensation.py:190
|
#: compensation/forms/compensation.py:189
|
||||||
msgid "Edit compensation"
|
msgid "Edit compensation"
|
||||||
msgstr "Bearbeite Kompensation"
|
msgstr "Bearbeite Kompensation"
|
||||||
|
|
||||||
@ -488,14 +488,14 @@ msgstr ""
|
|||||||
#: compensation/templates/compensation/report/eco_account/report.html:20
|
#: compensation/templates/compensation/report/eco_account/report.html:20
|
||||||
#: compensation/utils/quality.py:113 ema/templates/ema/detail/view.html:53
|
#: compensation/utils/quality.py:113 ema/templates/ema/detail/view.html:53
|
||||||
#: ema/templates/ema/report/report.html:20 ema/utils/quality.py:28
|
#: ema/templates/ema/report/report.html:20 ema/utils/quality.py:28
|
||||||
#: intervention/forms/intervention.py:132
|
#: intervention/forms/intervention.py:131
|
||||||
#: intervention/templates/intervention/detail/view.html:60
|
#: intervention/templates/intervention/detail/view.html:60
|
||||||
#: intervention/templates/intervention/report/report.html:41
|
#: intervention/templates/intervention/report/report.html:41
|
||||||
#: intervention/utils/quality.py:55
|
#: intervention/utils/quality.py:55
|
||||||
msgid "Conservation office file number"
|
msgid "Conservation office file number"
|
||||||
msgstr "Aktenzeichen Eintragungsstelle"
|
msgstr "Aktenzeichen Eintragungsstelle"
|
||||||
|
|
||||||
#: compensation/forms/mixins.py:43 intervention/forms/intervention.py:138
|
#: compensation/forms/mixins.py:43 intervention/forms/intervention.py:137
|
||||||
msgid "ETS-123/ABC.456"
|
msgid "ETS-123/ABC.456"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -511,11 +511,11 @@ msgstr "Zu welcher Kategorie dieser Maßnahmenträger gehört"
|
|||||||
msgid "Eco-Account handler detail"
|
msgid "Eco-Account handler detail"
|
||||||
msgstr "Detailangabe zum Maßnahmenträger"
|
msgstr "Detailangabe zum Maßnahmenträger"
|
||||||
|
|
||||||
#: compensation/forms/mixins.py:71 intervention/forms/intervention.py:165
|
#: compensation/forms/mixins.py:71 intervention/forms/intervention.py:164
|
||||||
msgid "Detail input on the handler"
|
msgid "Detail input on the handler"
|
||||||
msgstr "Name der Behörde, Stadt, Firma, ..."
|
msgstr "Name der Behörde, Stadt, Firma, ..."
|
||||||
|
|
||||||
#: compensation/forms/mixins.py:74 intervention/forms/intervention.py:168
|
#: compensation/forms/mixins.py:74 intervention/forms/intervention.py:167
|
||||||
msgid "Company Mustermann"
|
msgid "Company Mustermann"
|
||||||
msgstr "Firma Mustermann"
|
msgstr "Firma Mustermann"
|
||||||
|
|
||||||
@ -1284,7 +1284,7 @@ msgstr "Kompensation {} bearbeitet"
|
|||||||
|
|
||||||
#: compensation/views/compensation/compensation.py:187
|
#: compensation/views/compensation/compensation.py:187
|
||||||
#: compensation/views/eco_account/eco_account.py:161 ema/views/ema.py:212
|
#: compensation/views/eco_account/eco_account.py:161 ema/views/ema.py:212
|
||||||
#: intervention/views/intervention.py:231
|
#: intervention/views/intervention.py:230
|
||||||
msgid "Edit {}"
|
msgid "Edit {}"
|
||||||
msgstr "Bearbeite {}"
|
msgstr "Bearbeite {}"
|
||||||
|
|
||||||
@ -1306,7 +1306,7 @@ msgstr "Ökokonto {} hinzugefügt"
|
|||||||
msgid "Eco-Account {} edited"
|
msgid "Eco-Account {} edited"
|
||||||
msgstr "Ökokonto {} bearbeitet"
|
msgstr "Ökokonto {} bearbeitet"
|
||||||
|
|
||||||
#: compensation/views/eco_account/eco_account.py:268
|
#: compensation/views/eco_account/eco_account.py:267
|
||||||
msgid "Eco-account removed"
|
msgid "Eco-account removed"
|
||||||
msgstr "Ökokonto entfernt"
|
msgstr "Ökokonto entfernt"
|
||||||
|
|
||||||
@ -1354,70 +1354,70 @@ msgstr "EMA {} bearbeitet"
|
|||||||
msgid "EMA removed"
|
msgid "EMA removed"
|
||||||
msgstr "EMA entfernt"
|
msgstr "EMA entfernt"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:48
|
#: intervention/forms/intervention.py:47
|
||||||
msgid "Construction XY; Location ABC"
|
msgid "Construction XY; Location ABC"
|
||||||
msgstr "Bauvorhaben XY; Flur ABC"
|
msgstr "Bauvorhaben XY; Flur ABC"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:54
|
#: intervention/forms/intervention.py:53
|
||||||
#: intervention/templates/intervention/detail/view.html:35
|
#: intervention/templates/intervention/detail/view.html:35
|
||||||
#: intervention/templates/intervention/report/report.html:16
|
#: intervention/templates/intervention/report/report.html:16
|
||||||
#: intervention/utils/quality.py:95
|
#: intervention/utils/quality.py:95
|
||||||
msgid "Process type"
|
msgid "Process type"
|
||||||
msgstr "Verfahrenstyp"
|
msgstr "Verfahrenstyp"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:73
|
#: intervention/forms/intervention.py:72
|
||||||
msgid "Multiple selection possible"
|
msgid "Multiple selection possible"
|
||||||
msgstr "Mehrfachauswahl möglich"
|
msgstr "Mehrfachauswahl möglich"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:88
|
#: intervention/forms/intervention.py:87
|
||||||
#: intervention/templates/intervention/detail/view.html:48
|
#: intervention/templates/intervention/detail/view.html:48
|
||||||
#: intervention/templates/intervention/report/report.html:29
|
#: intervention/templates/intervention/report/report.html:29
|
||||||
#: intervention/utils/quality.py:59 konova/filters/mixins/office.py:66
|
#: intervention/utils/quality.py:59 konova/filters/mixins/office.py:66
|
||||||
msgid "Registration office"
|
msgid "Registration office"
|
||||||
msgstr "Zulassungsbehörde"
|
msgstr "Zulassungsbehörde"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:120
|
#: intervention/forms/intervention.py:119
|
||||||
#: intervention/templates/intervention/detail/view.html:52
|
#: intervention/templates/intervention/detail/view.html:52
|
||||||
#: intervention/templates/intervention/report/report.html:33
|
#: intervention/templates/intervention/report/report.html:33
|
||||||
#: intervention/utils/quality.py:52
|
#: intervention/utils/quality.py:52
|
||||||
msgid "Registration office file number"
|
msgid "Registration office file number"
|
||||||
msgstr "Aktenzeichen Zulassungsbehörde"
|
msgstr "Aktenzeichen Zulassungsbehörde"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:126
|
#: intervention/forms/intervention.py:125
|
||||||
msgid "ZB-123/ABC.456"
|
msgid "ZB-123/ABC.456"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:144
|
#: intervention/forms/intervention.py:143
|
||||||
msgid "Intervention handler type"
|
msgid "Intervention handler type"
|
||||||
msgstr "Art des Eingriffsverursachers"
|
msgstr "Art des Eingriffsverursachers"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:146
|
#: intervention/forms/intervention.py:145
|
||||||
msgid "What type of handler is responsible for the intervention?"
|
msgid "What type of handler is responsible for the intervention?"
|
||||||
msgstr "Zu welcher Kategorie dieser Eingriffsverursacher gehört"
|
msgstr "Zu welcher Kategorie dieser Eingriffsverursacher gehört"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:161
|
#: intervention/forms/intervention.py:160
|
||||||
msgid "Intervention handler detail"
|
msgid "Intervention handler detail"
|
||||||
msgstr "Detailangabe zum Eingriffsverursacher"
|
msgstr "Detailangabe zum Eingriffsverursacher"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:175
|
#: intervention/forms/intervention.py:174
|
||||||
#: intervention/templates/intervention/detail/view.html:101
|
#: intervention/templates/intervention/detail/view.html:101
|
||||||
#: intervention/templates/intervention/report/report.html:81
|
#: intervention/templates/intervention/report/report.html:81
|
||||||
#: intervention/utils/quality.py:86
|
#: intervention/utils/quality.py:86
|
||||||
msgid "Registration date"
|
msgid "Registration date"
|
||||||
msgstr "Datum Zulassung bzw. Satzungsbeschluss"
|
msgstr "Datum Zulassung bzw. Satzungsbeschluss"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:187
|
#: intervention/forms/intervention.py:186
|
||||||
#: intervention/templates/intervention/detail/view.html:105
|
#: intervention/templates/intervention/detail/view.html:105
|
||||||
#: intervention/templates/intervention/report/report.html:85
|
#: intervention/templates/intervention/report/report.html:85
|
||||||
msgid "Binding on"
|
msgid "Binding on"
|
||||||
msgstr "Datum Bestandskraft bzw. Rechtskraft"
|
msgstr "Datum Bestandskraft bzw. Rechtskraft"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:213
|
#: intervention/forms/intervention.py:212
|
||||||
#: intervention/views/intervention.py:100
|
#: intervention/views/intervention.py:100
|
||||||
msgid "New intervention"
|
msgid "New intervention"
|
||||||
msgstr "Neuer Eingriff"
|
msgstr "Neuer Eingriff"
|
||||||
|
|
||||||
#: intervention/forms/intervention.py:303
|
#: intervention/forms/intervention.py:302
|
||||||
msgid "Edit intervention"
|
msgid "Edit intervention"
|
||||||
msgstr "Eingriff bearbeiten"
|
msgstr "Eingriff bearbeiten"
|
||||||
|
|
||||||
@ -1653,11 +1653,11 @@ msgstr "Eingriffe - Übersicht"
|
|||||||
msgid "Intervention {} added"
|
msgid "Intervention {} added"
|
||||||
msgstr "Eingriff {} hinzugefügt"
|
msgstr "Eingriff {} hinzugefügt"
|
||||||
|
|
||||||
#: intervention/views/intervention.py:219
|
#: intervention/views/intervention.py:218
|
||||||
msgid "Intervention {} edited"
|
msgid "Intervention {} edited"
|
||||||
msgstr "Eingriff {} bearbeitet"
|
msgstr "Eingriff {} bearbeitet"
|
||||||
|
|
||||||
#: intervention/views/intervention.py:256
|
#: intervention/views/intervention.py:255
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} entfernt"
|
msgstr "{} entfernt"
|
||||||
|
|
||||||
@ -1744,8 +1744,7 @@ msgstr "Verzeichnete anzeigen"
|
|||||||
|
|
||||||
#: konova/filters/mixins/record.py:27
|
#: konova/filters/mixins/record.py:27
|
||||||
msgid "If activated also shows entries which have been already recorded"
|
msgid "If activated also shows entries which have been already recorded"
|
||||||
msgstr ""
|
msgstr "Wenn aktiviert werden auch Einträge angezeigt, die bereits verzeichnet wurden"
|
||||||
"Wenn aktiviert werden auch Einträge angezeigt, die bereits verzeichnet wurden"
|
|
||||||
|
|
||||||
#: konova/filters/mixins/self_created.py:23
|
#: konova/filters/mixins/self_created.py:23
|
||||||
msgid "Show only self created"
|
msgid "Show only self created"
|
||||||
@ -1753,9 +1752,7 @@ msgstr "Nur selbst erstellte anzeigen"
|
|||||||
|
|
||||||
#: konova/filters/mixins/self_created.py:28
|
#: konova/filters/mixins/self_created.py:28
|
||||||
msgid "If activated only shows entries which have been created by you"
|
msgid "If activated only shows entries which have been created by you"
|
||||||
msgstr ""
|
msgstr "Wenn aktiviert werden nur Einträge angezeigt, die von Ihnen erstellt worden sind"
|
||||||
"Wenn aktiviert werden nur Einträge angezeigt, die von Ihnen erstellt worden "
|
|
||||||
"sind"
|
|
||||||
|
|
||||||
#: konova/filters/mixins/share.py:22
|
#: konova/filters/mixins/share.py:22
|
||||||
msgid "Show unshared"
|
msgid "Show unshared"
|
||||||
@ -1763,15 +1760,13 @@ msgstr "Nicht freigegebene anzeigen"
|
|||||||
|
|
||||||
#: konova/filters/mixins/share.py:27
|
#: konova/filters/mixins/share.py:27
|
||||||
msgid "If activated also shows entries which are not shared with you"
|
msgid "If activated also shows entries which are not shared with you"
|
||||||
msgstr ""
|
msgstr "Wenn aktiviert werden auch Einträge angezeigt, die nicht für Sie freigegeben sind"
|
||||||
"Wenn aktiviert werden auch Einträge angezeigt, die nicht für Sie freigegeben "
|
|
||||||
"sind"
|
|
||||||
|
|
||||||
#: konova/forms/base_form.py:23 templates/form/collapsable/form.html:62
|
#: konova/forms/base_form.py:23 templates/form/collapsable/form.html:62
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: konova/forms/base_form.py:72
|
#: konova/forms/base_form.py:57
|
||||||
msgid "Not editable"
|
msgid "Not editable"
|
||||||
msgstr "Nicht editierbar"
|
msgstr "Nicht editierbar"
|
||||||
|
|
||||||
@ -1827,11 +1822,11 @@ msgstr ""
|
|||||||
msgid "Confirm"
|
msgid "Confirm"
|
||||||
msgstr "Bestätige"
|
msgstr "Bestätige"
|
||||||
|
|
||||||
#: konova/forms/modals/remove_form.py:32 konova/forms/remove_form.py:30
|
#: konova/forms/modals/remove_form.py:31 konova/forms/remove_form.py:30
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: konova/forms/modals/remove_form.py:33
|
#: konova/forms/modals/remove_form.py:32
|
||||||
msgid "Are you sure?"
|
msgid "Are you sure?"
|
||||||
msgstr "Sind Sie sicher?"
|
msgstr "Sind Sie sicher?"
|
||||||
|
|
||||||
@ -1981,39 +1976,39 @@ msgstr "In Zwischenablage kopiert"
|
|||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Suchen"
|
msgstr "Suchen"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:71 konova/utils/mailer.py:154
|
#: konova/utils/mailer.py:68 konova/utils/mailer.py:143
|
||||||
msgid "{} - Shared access removed"
|
msgid "{} - Shared access removed"
|
||||||
msgstr "{} - Zugriff entzogen"
|
msgstr "{} - Zugriff entzogen"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:98 konova/utils/mailer.py:126
|
#: konova/utils/mailer.py:91 konova/utils/mailer.py:117
|
||||||
msgid "{} - Shared access given"
|
msgid "{} - Shared access given"
|
||||||
msgstr "{} - Zugriff freigegeben"
|
msgstr "{} - Zugriff freigegeben"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:182 konova/utils/mailer.py:346
|
#: konova/utils/mailer.py:169 konova/utils/mailer.py:317
|
||||||
msgid "{} - Shared data unrecorded"
|
msgid "{} - Shared data unrecorded"
|
||||||
msgstr "{} - Freigegebene Daten entzeichnet"
|
msgstr "{} - Freigegebene Daten entzeichnet"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:210 konova/utils/mailer.py:319
|
#: konova/utils/mailer.py:195 konova/utils/mailer.py:294
|
||||||
msgid "{} - Shared data recorded"
|
msgid "{} - Shared data recorded"
|
||||||
msgstr "{} - Freigegebene Daten verzeichnet"
|
msgstr "{} - Freigegebene Daten verzeichnet"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:238 konova/utils/mailer.py:400
|
#: konova/utils/mailer.py:221 konova/utils/mailer.py:363
|
||||||
msgid "{} - Shared data checked"
|
msgid "{} - Shared data checked"
|
||||||
msgstr "{} - Freigegebene Daten geprüft"
|
msgstr "{} - Freigegebene Daten geprüft"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:265 konova/utils/mailer.py:428
|
#: konova/utils/mailer.py:248 konova/utils/mailer.py:391
|
||||||
msgid "{} - Deduction changed"
|
msgid "{} - Deduction changed"
|
||||||
msgstr "{} - Abbuchung geändert"
|
msgstr "{} - Abbuchung geändert"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:293 konova/utils/mailer.py:373
|
#: konova/utils/mailer.py:271 konova/utils/mailer.py:340
|
||||||
msgid "{} - Shared data deleted"
|
msgid "{} - Shared data deleted"
|
||||||
msgstr "{} - Freigegebene Daten gelöscht"
|
msgstr "{} - Freigegebene Daten gelöscht"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:449 templates/email/api/verify_token.html:4
|
#: konova/utils/mailer.py:412 templates/email/api/verify_token.html:4
|
||||||
msgid "Request for new API token"
|
msgid "Request for new API token"
|
||||||
msgstr "Anfrage für neuen API Token"
|
msgstr "Anfrage für neuen API Token"
|
||||||
|
|
||||||
#: konova/utils/mailer.py:474
|
#: konova/utils/mailer.py:435
|
||||||
msgid "Resubmission - {}"
|
msgid "Resubmission - {}"
|
||||||
msgstr "Wiedervorlage - {}"
|
msgstr "Wiedervorlage - {}"
|
||||||
|
|
||||||
@ -2374,7 +2369,7 @@ msgstr ""
|
|||||||
#: templates/email/recording/shared_data_unrecorded.html:20
|
#: templates/email/recording/shared_data_unrecorded.html:20
|
||||||
#: templates/email/recording/shared_data_unrecorded_team.html:20
|
#: templates/email/recording/shared_data_unrecorded_team.html:20
|
||||||
#: templates/email/resubmission/resubmission.html:21
|
#: templates/email/resubmission/resubmission.html:21
|
||||||
#: templates/email/sharing/shared_access_given.html:29
|
#: templates/email/sharing/shared_access_given.html:21
|
||||||
#: templates/email/sharing/shared_access_given_team.html:21
|
#: templates/email/sharing/shared_access_given_team.html:21
|
||||||
#: templates/email/sharing/shared_access_removed.html:21
|
#: templates/email/sharing/shared_access_removed.html:21
|
||||||
#: templates/email/sharing/shared_access_removed_team.html:21
|
#: templates/email/sharing/shared_access_removed_team.html:21
|
||||||
@ -2540,19 +2535,11 @@ msgid "the following dataset has just been shared with you"
|
|||||||
msgstr "der folgende Datensatz wurde soeben für Sie freigegeben "
|
msgstr "der folgende Datensatz wurde soeben für Sie freigegeben "
|
||||||
|
|
||||||
#: templates/email/sharing/shared_access_given.html:17
|
#: templates/email/sharing/shared_access_given.html:17
|
||||||
msgid "This entry is located in"
|
|
||||||
msgstr "Dieser Eintrag befindet sich in"
|
|
||||||
|
|
||||||
#: templates/email/sharing/shared_access_given.html:23
|
|
||||||
msgid "Unknown - No administrative location recognized"
|
|
||||||
msgstr "Unbekannt - Keine administrative Verortung möglich"
|
|
||||||
|
|
||||||
#: templates/email/sharing/shared_access_given.html:25
|
|
||||||
#: templates/email/sharing/shared_access_given_team.html:17
|
#: templates/email/sharing/shared_access_given_team.html:17
|
||||||
msgid "This means you can now edit this dataset."
|
msgid "This means you can now edit this dataset."
|
||||||
msgstr "Das bedeutet, dass Sie diesen Datensatz nun auch bearbeiten können."
|
msgstr "Das bedeutet, dass Sie diesen Datensatz nun auch bearbeiten können."
|
||||||
|
|
||||||
#: templates/email/sharing/shared_access_given.html:26
|
#: templates/email/sharing/shared_access_given.html:18
|
||||||
#: templates/email/sharing/shared_access_given_team.html:18
|
#: templates/email/sharing/shared_access_given_team.html:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"The shared dataset appears now by default on your overview for this dataset "
|
"The shared dataset appears now by default on your overview for this dataset "
|
||||||
@ -2561,7 +2548,7 @@ msgstr ""
|
|||||||
"Der freigegebene Datensatz ist nun standardmäßig in Ihrer Übersicht für den "
|
"Der freigegebene Datensatz ist nun standardmäßig in Ihrer Übersicht für den "
|
||||||
"Datensatztyp im KSP gelistet."
|
"Datensatztyp im KSP gelistet."
|
||||||
|
|
||||||
#: templates/email/sharing/shared_access_given.html:36
|
#: templates/email/sharing/shared_access_given.html:28
|
||||||
#: templates/email/sharing/shared_access_given_team.html:28
|
#: templates/email/sharing/shared_access_given_team.html:28
|
||||||
msgid ""
|
msgid ""
|
||||||
"Please note: Shared access on an intervention means you automatically have "
|
"Please note: Shared access on an intervention means you automatically have "
|
||||||
@ -2678,7 +2665,7 @@ msgstr ""
|
|||||||
"Vergessen Sie nicht ihn anschließend wieder zu verzeichnen.\n"
|
"Vergessen Sie nicht ihn anschließend wieder zu verzeichnen.\n"
|
||||||
" "
|
" "
|
||||||
|
|
||||||
#: templates/form/table/generic_table_form_body.html:30
|
#: templates/form/table/generic_table_form_body.html:24
|
||||||
msgid "Fields with * are required."
|
msgid "Fields with * are required."
|
||||||
msgstr "* sind Pflichtfelder."
|
msgstr "* sind Pflichtfelder."
|
||||||
|
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>{{obj_title}}</strong>
|
<strong>{{obj_title}}</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'This means, the responsible registration office just confirmed the correctness of this dataset.' %}
|
{% trans 'This means, the responsible registration office just confirmed the correctness of this dataset.' %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>{{obj_title}}</strong>
|
<strong>{{obj_title}}</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'This means, the responsible registration office just confirmed the correctness of this dataset.' %}
|
{% trans 'This means, the responsible registration office just confirmed the correctness of this dataset.' %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'If this should not have been happened, please contact us. See the signature for details.' %}
|
{% trans 'If this should not have been happened, please contact us. See the signature for details.' %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'If this should not have been happened, please contact us. See the signature for details.' %}
|
{% trans 'If this should not have been happened, please contact us. See the signature for details.' %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'This means the data is now publicly available, e.g. in LANIS' %}
|
{% trans 'This means the data is now publicly available, e.g. in LANIS' %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'This means the data is now publicly available, e.g. in LANIS' %}
|
{% trans 'This means the data is now publicly available, e.g. in LANIS' %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'This means the data is no longer publicly available.' %}
|
{% trans 'This means the data is no longer publicly available.' %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,17 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
<br>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'This means the data is no longer publicly available.' %}
|
{% trans 'This means the data is no longer publicly available.' %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -18,16 +18,6 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
<br>
|
|
||||||
{% trans 'Best regards' %}
|
{% trans 'Best regards' %}
|
||||||
<br>
|
<br>
|
||||||
KSP
|
KSP
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'This means you can now edit this dataset.' %}
|
{% trans 'This means you can now edit this dataset.' %}
|
||||||
{% trans 'The shared dataset appears now by default on your overview for this dataset type.' %}
|
{% trans 'The shared dataset appears now by default on your overview for this dataset type.' %}
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,17 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<br>
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'This means you can now edit this dataset.' %}
|
{% trans 'This means you can now edit this dataset.' %}
|
||||||
{% trans 'The shared dataset appears now by default on your overview for this dataset type.' %}
|
{% trans 'The shared dataset appears now by default on your overview for this dataset type.' %}
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'However, you are still able to view the dataset content.' %}
|
{% trans 'However, you are still able to view the dataset content.' %}
|
||||||
{% trans 'Please use the provided search filter on the dataset`s overview pages to find them.' %}
|
{% trans 'Please use the provided search filter on the dataset`s overview pages to find them.' %}
|
||||||
<br>
|
<br>
|
||||||
|
@ -14,16 +14,6 @@
|
|||||||
<br>
|
<br>
|
||||||
<strong>"{{obj_title}}"</strong>
|
<strong>"{{obj_title}}"</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
{% trans 'This entry is located in' %}
|
|
||||||
<ul>
|
|
||||||
{% for municipal in municipals_names %}
|
|
||||||
<li>{{municipal}}</li>
|
|
||||||
{% empty %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'Unknown - No administrative location recognized' %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% trans 'However, you are still able to view the dataset content.' %}
|
{% trans 'However, you are still able to view the dataset content.' %}
|
||||||
{% trans 'Please use the provided search filter on the dataset`s overview pages to find them.' %}
|
{% trans 'Please use the provided search filter on the dataset`s overview pages to find them.' %}
|
||||||
<br>
|
<br>
|
||||||
|
@ -31,13 +31,12 @@ class Team(UuidModel, DeletableObjectMixin):
|
|||||||
self.deleted = delete_action
|
self.deleted = delete_action
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def send_mail_shared_access_given_team(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_access_given_team(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the team members in case of given shared access
|
""" Sends a mail to the team members in case of given shared access
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
obj_title ():
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -46,15 +45,14 @@ class Team(UuidModel, DeletableObjectMixin):
|
|||||||
users_to_notify = self.users.filter(
|
users_to_notify = self.users.filter(
|
||||||
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_GAINED.value]
|
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_GAINED.value]
|
||||||
)
|
)
|
||||||
mailer.send_mail_shared_access_given_team(obj_identifier, obj_title, self, users_to_notify, municipals_names)
|
mailer.send_mail_shared_access_given_team(obj_identifier, obj_title, self, users_to_notify)
|
||||||
|
|
||||||
def send_mail_shared_access_removed(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_access_removed(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the team members in case of removed shared access
|
""" Sends a mail to the team members in case of removed shared access
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
obj_title ():
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -63,15 +61,14 @@ class Team(UuidModel, DeletableObjectMixin):
|
|||||||
users_to_notify = self.users.filter(
|
users_to_notify = self.users.filter(
|
||||||
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_REMOVED.value]
|
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_REMOVED.value]
|
||||||
)
|
)
|
||||||
mailer.send_mail_shared_access_removed_team(obj_identifier, obj_title, self, users_to_notify, municipals_names)
|
mailer.send_mail_shared_access_removed_team(obj_identifier, obj_title, self, users_to_notify)
|
||||||
|
|
||||||
def send_mail_shared_data_unrecorded(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_data_unrecorded(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the team members in case of unrecorded data
|
""" Sends a mail to the team members in case of unrecorded data
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
obj_title ():
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -80,15 +77,14 @@ class Team(UuidModel, DeletableObjectMixin):
|
|||||||
users_to_notify = self.users.filter(
|
users_to_notify = self.users.filter(
|
||||||
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_DATA_RECORDED.value]
|
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_DATA_RECORDED.value]
|
||||||
)
|
)
|
||||||
mailer.send_mail_shared_data_unrecorded_team(obj_identifier, obj_title, self, users_to_notify, municipals_names)
|
mailer.send_mail_shared_data_unrecorded_team(obj_identifier, obj_title, self, users_to_notify)
|
||||||
|
|
||||||
def send_mail_shared_data_recorded(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_data_recorded(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the team members in case of unrecorded data
|
""" Sends a mail to the team members in case of unrecorded data
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
obj_title ():
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -97,15 +93,14 @@ class Team(UuidModel, DeletableObjectMixin):
|
|||||||
users_to_notify = self.users.filter(
|
users_to_notify = self.users.filter(
|
||||||
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_DATA_RECORDED.value]
|
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_DATA_RECORDED.value]
|
||||||
)
|
)
|
||||||
mailer.send_mail_shared_data_recorded_team(obj_identifier, obj_title, self, users_to_notify, municipals_names)
|
mailer.send_mail_shared_data_recorded_team(obj_identifier, obj_title, self, users_to_notify)
|
||||||
|
|
||||||
def send_mail_shared_data_checked(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_data_checked(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the team members in case of checked data
|
""" Sends a mail to the team members in case of checked data
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
obj_title ():
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -114,7 +109,7 @@ class Team(UuidModel, DeletableObjectMixin):
|
|||||||
users_to_notify = self.users.filter(
|
users_to_notify = self.users.filter(
|
||||||
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_DATA_CHECKED.value]
|
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_DATA_CHECKED.value]
|
||||||
)
|
)
|
||||||
mailer.send_mail_shared_data_checked_team(obj_identifier, obj_title, self, users_to_notify, municipals_names)
|
mailer.send_mail_shared_data_checked_team(obj_identifier, obj_title, self, users_to_notify)
|
||||||
|
|
||||||
def send_mail_deduction_changed(self, obj_identifier, obj_title, data_changes):
|
def send_mail_deduction_changed(self, obj_identifier, obj_title, data_changes):
|
||||||
""" Sends a mail to the team members in case of changed deduction values
|
""" Sends a mail to the team members in case of changed deduction values
|
||||||
@ -133,13 +128,12 @@ class Team(UuidModel, DeletableObjectMixin):
|
|||||||
)
|
)
|
||||||
mailer.send_mail_deduction_changed_team(obj_identifier, obj_title, self, data_changes, users_to_notify)
|
mailer.send_mail_deduction_changed_team(obj_identifier, obj_title, self, data_changes, users_to_notify)
|
||||||
|
|
||||||
def send_mail_shared_data_deleted(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_data_deleted(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the team members in case of deleted data
|
""" Sends a mail to the team members in case of deleted data
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
obj_title ():
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -148,7 +142,7 @@ class Team(UuidModel, DeletableObjectMixin):
|
|||||||
users_to_notify = self.users.filter(
|
users_to_notify = self.users.filter(
|
||||||
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_DATA_DELETED.value]
|
notifications__in=[UserNotificationEnum.NOTIFY_ON_SHARED_DATA_DELETED.value]
|
||||||
)
|
)
|
||||||
mailer.send_mail_shared_data_deleted_team(obj_identifier, obj_title, self, users_to_notify, municipals_names)
|
mailer.send_mail_shared_data_deleted_team(obj_identifier, obj_title, self, users_to_notify)
|
||||||
|
|
||||||
def remove_user(self, user):
|
def remove_user(self, user):
|
||||||
""" Removes a user from the team
|
""" Removes a user from the team
|
||||||
|
@ -60,13 +60,12 @@ class User(AbstractUser):
|
|||||||
name=ETS_GROUP
|
name=ETS_GROUP
|
||||||
).exists()
|
).exists()
|
||||||
|
|
||||||
def send_mail_shared_access_removed(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_access_removed(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the user in case of removed shared access
|
""" Sends a mail to the user in case of removed shared access
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier ():
|
obj_identifier ():
|
||||||
obj_title ():
|
obj_title ():
|
||||||
municipals_names ():
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -74,15 +73,13 @@ class User(AbstractUser):
|
|||||||
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_REMOVED)
|
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_REMOVED)
|
||||||
if notification_set:
|
if notification_set:
|
||||||
mailer = Mailer()
|
mailer = Mailer()
|
||||||
mailer.send_mail_shared_access_removed(obj_identifier, obj_title, self, municipals_names)
|
mailer.send_mail_shared_access_removed(obj_identifier, obj_title, self)
|
||||||
|
|
||||||
def send_mail_shared_access_given(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_access_given(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the user in case of given shared access
|
""" Sends a mail to the user in case of given shared access
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -90,15 +87,13 @@ class User(AbstractUser):
|
|||||||
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_GAINED)
|
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_GAINED)
|
||||||
if notification_set:
|
if notification_set:
|
||||||
mailer = Mailer()
|
mailer = Mailer()
|
||||||
mailer.send_mail_shared_access_given(obj_identifier, obj_title, self, municipals_names)
|
mailer.send_mail_shared_access_given(obj_identifier, obj_title, self)
|
||||||
|
|
||||||
def send_mail_shared_data_recorded(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_data_recorded(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the user in case of shared data has been recorded
|
""" Sends a mail to the user in case of shared data has been recorded
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -106,15 +101,13 @@ class User(AbstractUser):
|
|||||||
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_RECORDED)
|
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_RECORDED)
|
||||||
if notification_set:
|
if notification_set:
|
||||||
mailer = Mailer()
|
mailer = Mailer()
|
||||||
mailer.send_mail_shared_data_recorded(obj_identifier, obj_title, self, municipals_names)
|
mailer.send_mail_shared_data_recorded(obj_identifier, obj_title, self)
|
||||||
|
|
||||||
def send_mail_shared_data_unrecorded(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_data_unrecorded(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the user in case of shared data has been unrecorded
|
""" Sends a mail to the user in case of shared data has been unrecorded
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -122,15 +115,13 @@ class User(AbstractUser):
|
|||||||
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_RECORDED)
|
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_RECORDED)
|
||||||
if notification_set:
|
if notification_set:
|
||||||
mailer = Mailer()
|
mailer = Mailer()
|
||||||
mailer.send_mail_shared_data_unrecorded(obj_identifier, obj_title, self, municipals_names)
|
mailer.send_mail_shared_data_unrecorded(obj_identifier, obj_title, self)
|
||||||
|
|
||||||
def send_mail_shared_data_deleted(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_data_deleted(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the user in case of shared data has been deleted
|
""" Sends a mail to the user in case of shared data has been deleted
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -138,15 +129,13 @@ class User(AbstractUser):
|
|||||||
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_DELETED)
|
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_DELETED)
|
||||||
if notification_set:
|
if notification_set:
|
||||||
mailer = Mailer()
|
mailer = Mailer()
|
||||||
mailer.send_mail_shared_data_deleted(obj_identifier, obj_title, self, municipals_names)
|
mailer.send_mail_shared_data_deleted(obj_identifier, obj_title, self)
|
||||||
|
|
||||||
def send_mail_shared_data_checked(self, obj_identifier, obj_title, municipals_names):
|
def send_mail_shared_data_checked(self, obj_identifier, obj_title):
|
||||||
""" Sends a mail to the user in case of shared data has been deleted
|
""" Sends a mail to the user in case of shared data has been deleted
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
obj_identifier (str): The entry identifier
|
obj_identifier ():
|
||||||
obj_title (str): The entry title
|
|
||||||
municipals_names (iterable): List of municipals for this entry
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -154,7 +143,7 @@ class User(AbstractUser):
|
|||||||
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_CHECKED)
|
notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_DATA_CHECKED)
|
||||||
if notification_set:
|
if notification_set:
|
||||||
mailer = Mailer()
|
mailer = Mailer()
|
||||||
mailer.send_mail_shared_data_checked(obj_identifier, obj_title, self, municipals_names)
|
mailer.send_mail_shared_data_checked(obj_identifier, obj_title, self)
|
||||||
|
|
||||||
def send_mail_deduction_changed(self, obj_identifier, obj_title, data_changes):
|
def send_mail_deduction_changed(self, obj_identifier, obj_title, data_changes):
|
||||||
""" Sends a mail to the user in case of a changed deduction
|
""" Sends a mail to the user in case of a changed deduction
|
||||||
|
Loading…
Reference in New Issue
Block a user