From b83d0c265e9bf7c3a19d5e793ce6aa26059d2738 Mon Sep 17 00:00:00 2001 From: Ponitac Date: Fri, 15 Apr 2022 17:52:55 +0300 Subject: [PATCH] Fix behaviour of imprint feedback --- CHANGELOG.md | 2 ++ .../api/v3/feedback/imprint_page_feedback.py | 30 ++++++++++++++----- integreat_cms/cms/fixtures/test_data.json | 19 ++++++++++++ .../cms/views/imprint/imprint_actions.py | 3 +- integreat_cms/locale/de/LC_MESSAGES/django.po | 4 +-- 5 files changed, 47 insertions(+), 11 deletions(-) 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:

Herausgeber:

Stadt Augsburg
(Gebietskörperschaft des öffentlichen Rechts)
Rathausplatz 1
86150 Augsburg

Postanschrift:

Stadt Augsburg
86143 Augsburg

Vertretungsberechtigt:

Oberbürgermeisterin Eva Weber

Umsatzsteueridentifikationsnummer gemäß § 27a des Umsatzsteuergesetzes: DE 127508091

Verantwortlichkeit für den Inhalt:

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

Urheberrecht

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 \n" "Language-Team: Integreat \n" @@ -6007,7 +6007,7 @@ msgstr "{} \"{}\" wurde erfolgreich gespeichert" msgid "{} \"{}\" was successfully created" msgstr "{} \"{}\" wurde erfolgreich erstellt" -#: cms/views/imprint/imprint_actions.py:48 +#: cms/views/imprint/imprint_actions.py:49 msgid "Imprint was successfully deleted" msgstr "Impressum wurde erfolgreich gelöscht"