diff --git a/CHANGELOG.md b/CHANGELOG.md index 582769b322..a2dcf8ddb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ UNRELEASED * [ [#1354](https://github.com/digitalfabrik/integreat-cms/issues/1354) ] Fix order of root pages * [ [#1353](https://github.com/digitalfabrik/integreat-cms/issues/1353) ] Add tunews setting to region model * [ [#1328](https://github.com/digitalfabrik/integreat-cms/issues/1328) ] Fix missing entries in broken link checker +* [ [#1289](https://github.com/digitalfabrik/integreat-cms/issues/1289) ] Prevent submitting feedback for a non-existent imprint +* [ [#1359](https://github.com/digitalfabrik/integreat-cms/issues/1359) ] Cascade delete imprint feedback when imprint is deleted 2022.4.0 diff --git a/integreat_cms/api/v3/feedback/imprint_page_feedback.py b/integreat_cms/api/v3/feedback/imprint_page_feedback.py index 2ed2c3cceb..1f06b9d447 100644 --- a/integreat_cms/api/v3/feedback/imprint_page_feedback.py +++ b/integreat_cms/api/v3/feedback/imprint_page_feedback.py @@ -1,11 +1,15 @@ """ APIv3 endpoint for feedback about the imprint """ -from django.http import JsonResponse +import logging + +from django.http import JsonResponse, Http404 from ....cms.models.feedback.imprint_page_feedback import ImprintPageFeedback from ...decorators import json_response, feedback_handler +logger = logging.getLogger(__name__) + @feedback_handler @json_response @@ -64,14 +68,24 @@ def imprint_page_feedback_internal( :param is_technical: is feedback on content or on tech :type is_technical: bool + :raises ~django.http.Http404: HTTP status 404 if the region has no imprint + :return: JSON object according to APIv3 imprint feedback endpoint definition :rtype: ~django.http.JsonResponse """ - ImprintPageFeedback.objects.create( - region=region, - language=language, - rating=rating, - comment=comment, - is_technical=is_technical, + if region.imprint: + ImprintPageFeedback.objects.create( + region=region, + language=language, + rating=rating, + comment=comment, + is_technical=is_technical, + ) + return JsonResponse({"success": "Feedback successfully submitted"}, status=201) + # If the corresponding imprint does not exist, return a 404 error + logger.info( + "The imprint for region %r in the language %s does not exist and no feedback can be given.", + region, + language, ) - return JsonResponse({"success": "Feedback successfully submitted"}, status=201) + raise Http404("The imprint does not exist in this region") diff --git a/integreat_cms/cms/fixtures/test_data.json b/integreat_cms/cms/fixtures/test_data.json index a991f96c4e..dac9fc6359 100644 --- a/integreat_cms/cms/fixtures/test_data.json +++ b/integreat_cms/cms/fixtures/test_data.json @@ -2265,6 +2265,25 @@ "publishers": [] } }, + { + "model": "cms.imprintpage", + "pk": 80, + "fields": { + "created_date": "2022-02-22T16:57:08.587Z", + "region": 1 + } + }, + { + "model": "cms.imprintpagetranslation", + "pk": 1, + "fields": { + "page": 80, + "title": "Rechtliches", + "content": "
Die Inhalte werden herausgegeben durch:
Stadt Augsburg
86143 Augsburg
Oberbürgermeisterin Eva Weber
Umsatzsteueridentifikationsnummer gemäß § 27a des Umsatzsteuergesetzes: DE 127508091
Dr. Margret Spohn
Leiterin des Büros für gesellschaftliche Integration
Maximilianstrasse 3
86150 Augsburg
Weitere Ansprechpartnerin:
Alina Dajnowicz
Bildungskoordinatorin für Zugewanderte
integreat@augsburg.de
0821-32434494
Texte, Bilder, Grafiken sowie die Gestaltung dieser Internetseiten unterliegen dem deutschen Urheberrecht. Sie dürfen von Ihnen nur zum privaten und sonstigen eigenen Gebrauch im Rahmen des § 53 Urheberrechtsgesetz (UrhG) verwendet werden. Eine Vervielfältigung oder Verwendung dieser Seiten oder Teilen davon in anderen elektronischen oder gedruckten Publikationen und deren Veröffentlichung ist nur mit unserer Einwilligung gestattet. Diese erteilt auf Anfrage die Onlineredaktion der Stadt Augsburg unter onlineredaktion(at)augsburg.de. Weiterhin können Texte, Bilder, Grafiken und sonstige Dateien ganz oder teilweise dem Urheberrecht Dritter unterliegen. Über das Bestehen möglicher Rechte Dritter erhalten Sie nähere Auskünfte unter onlineredaktion(at)augsburg.de.
Der Nachdruck und die Auswertung von Pressemitteilungen und Reden sind mit Quellenangabe allgemein gestattet.
Inhalte des Website-Angebots
Alle auf dieser Internetseite bereitgestellten Informationen haben wir nach bestem Wissen und Gewissen erarbeitet und geprüft. Eine Gewähr für die jederzeitige Aktualität, Richtigkeit, Vollständigkeit und Verfügbarkeit der bereit gestellten Informationen können wir allerdings nicht übernehmen. Dies gilt nicht für Informationen, die den Anwendungsbereich der Europäischen Dienstleistungsrichtlinie (Richtlinie 2006/123/EG - DLRL) fallen. Für diese Informationen wird die Richtigkeit und Aktualität gewährleistet.
Die Stadt Augsburg ist als Dienstanbieter für eigene Informationen auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich (§ 7 I TMG). Ein Vertragsverhältnis mit den Nutzern dieses Informationsangebotes kommt nicht zustande.
Die Stadt Augsburg behält es sich ausdrücklich vor, einzelne Webseiten oder das gesamte Angebot ohne gesonderte Ankündigung zu verändern, zu ergänzen, zu löschen oder die Veröffentlichung zeitweise oder endgültig einzustellen.
Links auf fremde Inhalte/Fremdeinträge
Von unseren eigenen Inhalten sind die Querverweise („Links“) auf die Webseiten anderer Anbieter zu unterscheiden. Durch die Links ermöglichen wir lediglich den Zugang zur Nutzung „fremder Inhalte“. Wir haben jedoch keinen Einfluss auf den Inhalt und die Gestaltung dieser externen Websites und machen uns die Inhalte dieser verlinkten Seiten nicht zu eigen. Für deren Inhalte und Richtigkeit ist allein der jeweilige Anbieter verantwortlich.
Bei der erstmaligen Verknüpfung mit diesen Internetangeboten haben wir diese fremden Inhalte auf Rechtsverletzungen überprüft. Zum Zeitpunkt der Verknüpfung waren keine Rechtsverstöße erkennbar. Sobald die Stadt Augsburg eine Rechtsverletzung feststellt oder von anderen darauf hingewiesen wird, wird sie die Verknüpfung zu den jeweiligen Websites unverzüglich entfernen.
Ferner distanzieren wir uns von Fremdeinträgen in Social-Media-Angeboten unserer städtischen Ämter und Einrichtungen, die unter der Social Media verzeichnet sind. Diese geben nicht unsere eigene Meinung wieder, sondern die persönliche Auffassung Dritter. Soweit wir Kenntnis von strafbaren oder rechtswidrigen Inhalten erlangen, werden diese Fremdeinträge umgehend von uns gelöscht.
Für die Inhalte der werblichen Einträge auf dem Portal www.augsburg-city.de sind die jeweils eintragenden Unternehmen selbst verantwortlich.
Last update: March 30, 2022
", + "last_updated": "2022-02-22T16:57:08.587Z", + "language": 1 + } + }, { "model": "cms.offertemplate", "pk": 1, diff --git a/integreat_cms/cms/views/imprint/imprint_actions.py b/integreat_cms/cms/views/imprint/imprint_actions.py index e804798c59..3b8a39fe12 100644 --- a/integreat_cms/cms/views/imprint/imprint_actions.py +++ b/integreat_cms/cms/views/imprint/imprint_actions.py @@ -12,7 +12,7 @@ from django.views.decorators.http import require_POST from ...decorators import permission_required -from ...models import ImprintPage, ImprintPageTranslation +from ...models import ImprintPage, ImprintPageTranslation, ImprintPageFeedback logger = logging.getLogger(__name__) @@ -45,6 +45,7 @@ def delete_imprint(request, region_slug): logger.debug("%r deleted by %r", imprint, request.user) imprint.delete() + ImprintPageFeedback.objects.filter(region=region).delete() messages.success(request, _("Imprint was successfully deleted")) return redirect( diff --git a/integreat_cms/locale/de/LC_MESSAGES/django.po b/integreat_cms/locale/de/LC_MESSAGES/django.po index e4ac353925..72ea9a29cb 100644 --- a/integreat_cms/locale/de/LC_MESSAGES/django.po +++ b/integreat_cms/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-13 10:46+0000\n" +"POT-Creation-Date: 2022-04-15 14:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Integreat