diff --git a/wagtail_link_block/blocks.py b/wagtail_link_block/blocks.py index 8cbf817..4c1f499 100644 --- a/wagtail_link_block/blocks.py +++ b/wagtail_link_block/blocks.py @@ -36,6 +36,8 @@ def get_url(self): # If file or page check obj is not None if self.get(link_to): return self.get(link_to).url + elif link_to == "page_anchor": + return self.get("page").url + "#" + self.get("anchor") elif link_to == "custom_url": return self.get(link_to) elif link_to == "anchor": @@ -62,6 +64,7 @@ class LinkBlock(StructBlock): link_to = ChoiceBlock( choices=[ ("page", _("Page")), + ("page_anchor", _("Page + Anchor")), ("file", _("File")), ("custom_url", _("Custom URL")), ("email", _("Email")), @@ -131,14 +134,25 @@ def clean(self, value): url_type = clean_values.get("link_to") # Check that a value has been uploaded for the chosen link type - if url_type != "" and clean_values.get(url_type) in [None, ""]: + if url_type not in ["", "page_anchor"] and clean_values.get(url_type) in [None, ""]: errors[url_type] = ErrorList( ["You need to add a {} link".format(url_type.replace("_", " "))] ) + elif url_type == "page_anchor" and ( + clean_values.get("page") in [None, ""] or clean_values.get("anchor") in [None, ""] + ): + if clean_values.get("page") in [None, ""]: + errors["page"] = ErrorList(["You need to add a page link"]) + if clean_values.get("anchor") in [None, ""]: + errors["anchor"] = ErrorList(["You need to add an anchor link"]) else: try: - # Remove values added for link types not selected - url_default_values.pop(url_type, None) + if url_type == "page_anchor": + url_default_values.pop("page", None) + url_default_values.pop("anchor", None) + else: + # Remove values added for link types not selected + url_default_values.pop(url_type, None) for field in url_default_values: clean_values[field] = url_default_values[field] except KeyError: diff --git a/wagtail_link_block/locale/fr/LC_MESSAGES/django.mo b/wagtail_link_block/locale/fr/LC_MESSAGES/django.mo index 9e2edb6..1f324b3 100644 Binary files a/wagtail_link_block/locale/fr/LC_MESSAGES/django.mo and b/wagtail_link_block/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail_link_block/locale/fr/LC_MESSAGES/django.po b/wagtail_link_block/locale/fr/LC_MESSAGES/django.po index a689cbc..1b52cbe 100644 --- a/wagtail_link_block/locale/fr/LC_MESSAGES/django.po +++ b/wagtail_link_block/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-24 18:42+0200\n" +"POT-Creation-Date: 2025-06-05 14:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,30 +18,42 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: wagtail_link_block/blocks.py:56 wagtail_link_block/blocks.py:61 +#: wagtail_link_block/blocks.py:66 wagtail_link_block/blocks.py:78 msgid "Page" msgstr "Page" -#: wagtail_link_block/blocks.py:56 wagtail_link_block/blocks.py:62 +#: wagtail_link_block/blocks.py:67 +msgid "Page + Anchor" +msgstr "Page + Ancre" + +#: wagtail_link_block/blocks.py:68 wagtail_link_block/blocks.py:79 msgid "File" msgstr "Fichier" -#: wagtail_link_block/blocks.py:56 wagtail_link_block/blocks.py:68 +#: wagtail_link_block/blocks.py:69 wagtail_link_block/blocks.py:85 msgid "Custom URL" msgstr "URL" -#: wagtail_link_block/blocks.py:56 +#: wagtail_link_block/blocks.py:70 +msgid "Email" +msgstr "Email" + +#: wagtail_link_block/blocks.py:71 msgid "Anchor" msgstr "Ancre" -#: wagtail_link_block/blocks.py:59 +#: wagtail_link_block/blocks.py:72 wagtail_link_block/blocks.py:94 +msgid "Phone" +msgstr "Téléphone" + +#: wagtail_link_block/blocks.py:76 msgid "Link to" msgstr "Type de lien" -#: wagtail_link_block/blocks.py:74 +#: wagtail_link_block/blocks.py:91 msgid "#" msgstr "#" -#: wagtail_link_block/blocks.py:77 +#: wagtail_link_block/blocks.py:97 msgid "Open in new window" msgstr "Ouvrir dans une nouvelle fenêtre" diff --git a/wagtail_link_block/static/link_block/link_block.js b/wagtail_link_block/static/link_block/link_block.js index d4a4f9c..bac3029 100644 --- a/wagtail_link_block/static/link_block/link_block.js +++ b/wagtail_link_block/static/link_block/link_block.js @@ -29,6 +29,10 @@ if (value === 'page') { page_link.classList.remove('link-block__hidden'); new_window_toggle.classList.remove('link-block__hidden'); + } else if (value === 'page_anchor') { + page_link.classList.remove('link-block__hidden'); + anchor_link.classList.remove('link-block__hidden'); + new_window_toggle.classList.remove('link-block__hidden'); } else if (value === 'file') { file_link.classList.remove('link-block__hidden'); } else if (value === 'custom_url') {