summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbuttle <chris@gatopelao.org>2023-10-15 10:02:02 +0200
committerbuttle <chris@gatopelao.org>2023-10-15 10:02:02 +0200
commit226ef18f7d2b1bbe15bd859e3fe2dac792382367 (patch)
tree9ea3c67ac2c2e854fa3b9dc87059d895f5d00ad5
parent58c7b10a4e27e437c5be87ec78c58a5226655d0f (diff)
parent67d5330839f0309f6c8d6804d870c249c2eace3a (diff)
Merge branch 'develop' into chore/L10n
-rw-r--r--assets/gdpr-wizard/disclaimer.es.md12
-rw-r--r--liberaforms/domain/form.py2
-rw-r--r--liberaforms/models/user.py7
-rw-r--r--liberaforms/static/css/main-backend.css3
-rw-r--r--liberaforms/static/js/inline_help.js50
-rw-r--r--liberaforms/static/sass/backend/_main.scss3
-rw-r--r--liberaforms/templates/answers/history.html2
-rw-r--r--liberaforms/templates/site/partials/inline_help_menu.html4
-rw-r--r--liberaforms/templates/user/user-settings.html2
-rw-r--r--liberaforms/translations/ca/LC_MESSAGES/messages.po39
-rw-r--r--liberaforms/translations/cs/LC_MESSAGES/messages.po30
-rw-r--r--liberaforms/translations/de/LC_MESSAGES/messages.po30
-rw-r--r--liberaforms/translations/eo/LC_MESSAGES/messages.po31
-rw-r--r--liberaforms/translations/es/LC_MESSAGES/messages.po39
-rw-r--r--liberaforms/translations/eu/LC_MESSAGES/messages.po39
-rw-r--r--liberaforms/translations/fr/LC_MESSAGES/messages.po31
-rw-r--r--liberaforms/translations/it/LC_MESSAGES/messages.po31
-rw-r--r--liberaforms/translations/messages.pot30
-rw-r--r--liberaforms/translations/nb_NO/LC_MESSAGES/messages.po31
-rw-r--r--liberaforms/translations/pl/LC_MESSAGES/messages.po30
-rw-r--r--liberaforms/translations/pt_BR/LC_MESSAGES/messages.po30
-rw-r--r--liberaforms/translations/ru/LC_MESSAGES/messages.po30
-rw-r--r--liberaforms/translations/zh_Hans/LC_MESSAGES/messages.po30
-rw-r--r--liberaforms/translations/zh_Hant/LC_MESSAGES/messages.po30
-rw-r--r--liberaforms/utils/dispatcher/dispatcher.py11
-rw-r--r--liberaforms/utils/i18n.py2
-rw-r--r--liberaforms/utils/inline_help.py82
-rw-r--r--liberaforms/views/site.py12
28 files changed, 428 insertions, 245 deletions
diff --git a/assets/gdpr-wizard/disclaimer.es.md b/assets/gdpr-wizard/disclaimer.es.md
index e2a6c5c1..37ec60e5 100644
--- a/assets/gdpr-wizard/disclaimer.es.md
+++ b/assets/gdpr-wizard/disclaimer.es.md
@@ -1,12 +1,12 @@
-This wizard will help you to use best practices when writing your Privacy statements.
+Este asistente te ayudará a hacer uso de los criterios más adecuados a la hora de escribir tus declaraciones de privacidad.
-Privacy statements generated by this wizard are best-effort only and are not legally binding.
+Las declaraciones de privacidad generadas por este asistente están hechas con la mejor intención, sin embargo no son legalmente vinculantes.
-Please keep in mind that:
+Por favor, ten en cuenta que:
-* The text provided by the wizard is only a recommendation and it's validity will depend on the information you provide.
-* We strongly advise you check our recommendations and legal texts with your legal department or a professional you trust, so you can adapt them to your local legislation.
+* El texto proporcionado por el asistente es solo una recomendación y su validez dependerá de la información que proporciones.
+* Te recomendamos que consultes nuestras recomendaciones y textos legales con tu departamento jurídico o con un profesional de confianza, para que puedas adaptarlos a tu legislación local.
-Please see the Terms of Service of {{ organization_name }} for more information.
+Consulta las Condiciones del servicio de {{organization_name }} para obtener más información.
diff --git a/liberaforms/domain/form.py b/liberaforms/domain/form.py
index 22663374..cb1370f6 100644
--- a/liberaforms/domain/form.py
+++ b/liberaforms/domain/form.py
@@ -148,7 +148,7 @@ def notify_public_form_submission(form,
emails.append(form_user.user.email)
if emails:
try:
- Dispatcher().send_edited_answer_notification(emails, form, answer)
+ Dispatcher().send_edited_answer_notification(emails, form)
except Exception as error:
current_app.logger.error(error)
else:
diff --git a/liberaforms/models/user.py b/liberaforms/models/user.py
index f5258ab8..a0186fb3 100644
--- a/liberaforms/models/user.py
+++ b/liberaforms/models/user.py
@@ -184,6 +184,13 @@ class User(db.Model, CRUD):
"""Has this user validated their email."""
return self.validated_email
+ def get_language(self) -> str:
+ if self.preferences["language"] not in current_app.config['LANGUAGES'].keys():
+ # lang_code translation may be missing after major version release
+ self.preferences["language"] = "en"
+ self.save()
+ return self.preferences["language"]
+
def get_avatar_src(self, as_base64=False):
avatars_dir = os.path.join(current_app.config['UPLOADS_DIR'],
current_app.config['AVATAR_DIR'])
diff --git a/liberaforms/static/css/main-backend.css b/liberaforms/static/css/main-backend.css
index 4a82b36b..8c600d69 100644
--- a/liberaforms/static/css/main-backend.css
+++ b/liberaforms/static/css/main-backend.css
@@ -14029,6 +14029,9 @@ a.badge {
.ds-inline-help .ds-inline-help-menu .nav-link:before {
content: " - ";
}
+.ds-inline-help .ds-inline-help-menu .ds-search {
+ background-color: var(--lf-gray-100);
+}
.ds-inline-help .ds-inline-help-page {
padding: 1rem;
background-color: var(--lf-gray-100);
diff --git a/liberaforms/static/js/inline_help.js b/liberaforms/static/js/inline_help.js
index f6e10ca1..e0c5cd97 100644
--- a/liberaforms/static/js/inline_help.js
+++ b/liberaforms/static/js/inline_help.js
@@ -78,6 +78,7 @@ function inline_help_go_back() {
function inline_help_reset() {
inline_help_cache = {}
inline_help_history = []
+ $("input[type='search']").val("")
}
function inline_help_retieve_page(file_name) {
return new Promise(function(resolve, reject) {
@@ -115,12 +116,61 @@ function inline_help_retieve_page(file_name) {
});
})
}
+function search_inline_help(event) {
+ if (event.key == "Enter") {
+ do_search().then(function(data) {
+ delete inline_help_cache["search"];
+ let search_item_pos = inline_help_history.indexOf("search");
+ if (search_item_pos > -1) {
+ inline_help_history.splice(search_item_pos, 1)
+ }
+ var html = ""
+ for (let page_name of Object.keys(data.result)) {
+ let block = "<h2>" + page_name + "</h2>"
+ lines = ""
+ for (let line of data.result[page_name]) {
+ lines = lines + line + "<br />"
+ }
+ html = html + block + lines
+ }
+ _inline_help_history_push("search")
+ let page_title = $("input[type='search']").attr('placeholder') + ": " + $("input[type=search]").val()
+ inline_help_cache["search"] = {"html": html, "title": page_title }
+ $('#inline_help_page').html(html)
+ $('#inline_help_page_title').html(page_title)
+ });
+ }
+}
+
+function do_search() {
+ return new Promise(function(resolve, reject) {
+ $.ajax({
+ url : "/site/search-help",
+ type: "POST",
+ contentType: "application/json",
+ data : JSON.stringify({"search_string": $("input[type=search]").val()}),
+ dataType: "json",
+ beforeSend: function(xhr, settings) {
+ if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
+ xhr.setRequestHeader("X-CSRFToken", csrftoken)
+ }
+ },
+ success: function(data, textStatus, jqXHR) {
+ resolve(data) // Resolve promise and goto then()
+ },
+ error: function(err) {
+ reject(err) // Reject the promise and goto catch()
+ }
+ });
+ });
+}
const inline_help_template = `
<div id="inline_help" class="grid ds-inline-help pt-2" style="display:none; --lf-gap: 0;">
<div class="navbar g-col-12 ds-inline-help-page-header">
<div>
<a id="inline_help_back_button" href="#" onclick="js:inline_help_go_back()"" class="align-middle"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-left" aria-hidden="true"><polyline points="15 18 9 12 15 6"></polyline></svg><span>%Go_back%</span></a>
</div>
+
<div class="d-flex">
<button class="ds-button-navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarHelpContent" aria-controls="navbarHelpContent" aria-expanded="false" aria-label="Toggle navigation">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-vertical"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
diff --git a/liberaforms/static/sass/backend/_main.scss b/liberaforms/static/sass/backend/_main.scss
index a061126e..b09d337c 100644
--- a/liberaforms/static/sass/backend/_main.scss
+++ b/liberaforms/static/sass/backend/_main.scss
@@ -51,6 +51,9 @@
content: ' - ';
}
}
+ .ds-search {
+ background-color: var(--lf-gray-100);
+ }
}
.ds-inline-help-page {
padding: $spacer;
diff --git a/liberaforms/templates/answers/history.html b/liberaforms/templates/answers/history.html
index 6d1dfd24..cfdab365 100644
--- a/liberaforms/templates/answers/history.html
+++ b/liberaforms/templates/answers/history.html
@@ -14,7 +14,7 @@
<div class="grid ds-header-title-nested mt-2">
<div class="g-col-12 d-flex align-items-center justify-content-between">
<h2>{{ _("Answer edition history") }}</h2>
- <a href="{{url_for('form_bp.list_log', form_id=form.id)}}" class="btn btn-sm btn-outline-primary">{{ _("View log") }}</a>
+ <a href="{{url_for('form_bp.list_log', form_id=form.id)}}" class="btn btn-sm btn-primary">{{ _("View log") }}</a>
</div>
</div>
diff --git a/liberaforms/templates/site/partials/inline_help_menu.html b/liberaforms/templates/site/partials/inline_help_menu.html
index fbc3e038..37cd9692 100644
--- a/liberaforms/templates/site/partials/inline_help_menu.html
+++ b/liberaforms/templates/site/partials/inline_help_menu.html
@@ -21,6 +21,10 @@
</li>
{% endfor %}
{% endif %}
+
+ <li class="nav-item mt-4">
+ <input id="search_text" class="form-control ds-search" type="search" placeholder='{{_("Search")}}' onkeypress="search_inline_help(event)" aria-label='{{_("Search")}}'>
+ </li>
</ul>
</div>
</nav>
diff --git a/liberaforms/templates/user/user-settings.html b/liberaforms/templates/user/user-settings.html
index e344df60..2bf5898a 100644
--- a/liberaforms/templates/user/user-settings.html
+++ b/liberaforms/templates/user/user-settings.html
@@ -40,7 +40,7 @@
<a class="ds-link-contain-icon" href="{{url_for('user_bp.set_avatar')}}">{{ _("Change") }} <i data-feather="chevron-right" aria-hidden="true"></i></a>
</li>
<li>
- <span>{{ _("Language") }}: <strong>{{ config['LANGUAGES'][current_user.preferences["language"]][0] }}</strong></span>
+ <span>{{ _("Language") }}: <strong>{{ config['LANGUAGES'][current_user.get_language()][0] }}</strong></span>
<a class="ds-link-contain-icon" href="{{url_for('user_bp.change_language')}}">{{ _("Change") }} <i data-feather="chevron-right" aria-hidden="true"></i></a>
</li>
<li>
diff --git a/liberaforms/translations/ca/LC_MESSAGES/messages.po b/liberaforms/translations/ca/LC_MESSAGES/messages.po
index 7e110685..cd191d94 100644
--- a/liberaforms/translations/ca/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/ca/LC_MESSAGES/messages.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2023-10-03 16:05+0000\n"
"Last-Translator: buttle <chris@liberaforms.org>\n"
-"Language-Team: Catalan <https://hosted.weblate.org/projects/liberaforms/"
-"server-liberaforms/ca/>\n"
"Language: ca\n"
+"Language-Team: Catalan <https://hosted.weblate.org/projects/liberaforms"
+"/server-liberaforms/ca/>\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.1-dev\n"
"Generated-By: Babel 2.10.3\n"
#: assets/inline_help/menu.json:4
@@ -5287,6 +5286,11 @@ msgstr "Les estadístiques corresponen als darrers dotze mesos."
msgid "Total users"
msgstr "Total d'usuaris"
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+#, fuzzy
+msgid "Search"
+msgstr "Usuari"
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr "Editar i eliminar declaracions de privacitat"
@@ -5678,7 +5682,7 @@ msgstr "Afegir aquí un nom de camp apropiat"
msgid "Privacy statement required"
msgstr "És necessària una declaració de privacitat"
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr "No s'ha pogut trobar el fitxer %(file_name)s"
@@ -5918,8 +5922,8 @@ msgstr "%(email)s ha acceptat la teva invitació."
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr "Salutacions."
@@ -5969,8 +5973,8 @@ msgstr "Nou usuari '%(username)s' creat a %(site_name)s."
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr "Hola"
@@ -5994,31 +5998,31 @@ msgstr "El formulari '%(form_name)s' a '%(site_name)s' ha estat contestat."
msgid "%(site_name)s. New form answer"
msgstr "%(site_name)s. Nova resposta de formulari"
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr "S'ha editat una resposta de '%(form_name)s'."
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr "%(site_name)s. Resposta de formulari editada"
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr "Missatge de confirmació"
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr "El formulari '%(form_name)s' ha caducat a %(site_name)s."
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr "%(site_name)s. Un formulari ha caducat"
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr "Error a %(site_name)s"
@@ -6474,7 +6478,7 @@ msgid "Changed data protection law OK"
msgstr "S'ha canviat la llei de protecció de dades correctament"
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr "%(sitename)s %(feed_type)s flux"
@@ -8229,3 +8233,4 @@ msgstr "Les credencials són errònies"
#~ msgid "Settings used for data protection."
#~ msgstr "Configuració usada per protecció de dades."
+
diff --git a/liberaforms/translations/cs/LC_MESSAGES/messages.po b/liberaforms/translations/cs/LC_MESSAGES/messages.po
index c28bf8be..366bcfd4 100644
--- a/liberaforms/translations/cs/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/cs/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2022-04-08 07:14+0000\n"
"Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
"Language: cs\n"
@@ -5067,6 +5067,10 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+msgid "Search"
+msgstr ""
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr ""
@@ -5453,7 +5457,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr ""
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr ""
@@ -5698,8 +5702,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5749,8 +5753,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5774,31 +5778,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr ""
@@ -6256,7 +6260,7 @@ msgid "Changed data protection law OK"
msgstr ""
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/de/LC_MESSAGES/messages.po b/liberaforms/translations/de/LC_MESSAGES/messages.po
index 049a4455..b4332cff 100644
--- a/liberaforms/translations/de/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/de/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2022-04-08 07:14+0000\n"
"Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
"Language: de\n"
@@ -5060,6 +5060,10 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+msgid "Search"
+msgstr ""
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr ""
@@ -5445,7 +5449,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr ""
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr ""
@@ -5685,8 +5689,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5736,8 +5740,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5761,31 +5765,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr ""
@@ -6241,7 +6245,7 @@ msgid "Changed data protection law OK"
msgstr ""
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/eo/LC_MESSAGES/messages.po b/liberaforms/translations/eo/LC_MESSAGES/messages.po
index 99558468..e2e4d704 100644
--- a/liberaforms/translations/eo/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/eo/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2021-12-18 15:32+0000\n"
"Last-Translator: LiberaForms <info@liberaforms.org>\n"
"Language: eo\n"
@@ -5324,6 +5324,11 @@ msgstr ""
msgid "Total users"
msgstr "Totala nombro de uzantoj"
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+#, fuzzy
+msgid "Search"
+msgstr "Uzanto"
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
#, fuzzy
msgid "Add and remove privacy statements"
@@ -5739,7 +5744,7 @@ msgstr "Aldonu taŭgan nomon de kampo ĉi tie"
msgid "Privacy statement required"
msgstr "Salutnomo ne kongruas"
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, fuzzy, python-format
msgid "Cannot find the file %(file_name)s"
msgstr "Ne troviĝas la salutnomo «%s»"
@@ -5988,8 +5993,8 @@ msgstr "Via invito estas akceptita de %s"
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -6044,8 +6049,8 @@ msgstr "Nova uzanto «%s» kreiĝis je %s"
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -6072,31 +6077,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr "LiberaForms. Nova respondo al formularo"
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, fuzzy, python-format
msgid "%(site_name)s. Edited form answer"
msgstr "LiberaForms. Nova respondo al formularo"
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr "Konfirma mesaĝo"
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, fuzzy, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr "La formularo «%s» eksvalidiĝis je %s"
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, fuzzy, python-format
msgid "%(site_name)s. A form has expired"
msgstr "LiberaForms. Formularo eksvalidiĝis"
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, fuzzy, python-format
msgid "Error at %(site_name)s"
msgstr "Saluton %(user)s!"
@@ -6573,7 +6578,7 @@ msgid "Changed data protection law OK"
msgstr "Datumprotekto"
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/es/LC_MESSAGES/messages.po b/liberaforms/translations/es/LC_MESSAGES/messages.po
index efe93ae8..7b16f671 100644
--- a/liberaforms/translations/es/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/es/LC_MESSAGES/messages.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2023-10-03 16:05+0000\n"
"Last-Translator: buttle <chris@liberaforms.org>\n"
-"Language-Team: Spanish <https://hosted.weblate.org/projects/liberaforms/"
-"server-liberaforms/es/>\n"
"Language: es\n"
+"Language-Team: Spanish <https://hosted.weblate.org/projects/liberaforms"
+"/server-liberaforms/es/>\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.1-dev\n"
"Generated-By: Babel 2.10.3\n"
#: assets/inline_help/menu.json:4
@@ -5310,6 +5309,11 @@ msgstr "Las estadísticas corresponden a los últimos doce meses."
msgid "Total users"
msgstr "Total de usuarios"
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+#, fuzzy
+msgid "Search"
+msgstr "Usuario"
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr "Editar y eliminar declaraciones de privacidad"
@@ -5701,7 +5705,7 @@ msgstr "Agrega un nombre de campo apropiado"
msgid "Privacy statement required"
msgstr "Es necesaria una declaración de privacidad"
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr "No se puede encontrar el fichero %(file_name)s"
@@ -5941,8 +5945,8 @@ msgstr "%(email)s ha aceptado tu invitación."
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr "Saludos."
@@ -5992,8 +5996,8 @@ msgstr "Nuevo usuario '%(username)s' creado en %(site_name)s."
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr "Hola"
@@ -6019,31 +6023,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr "%(site_name)s. Nueva respuesta"
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr "Se ha editado una respuesta de '%(form_name)s'."
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr "%(site_name)s. Respuesta de formulario editarda"
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr "Mensaje de confirmación"
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr "El formulario '%(form_name)s' ha caducado en %(site_name)s."
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr "%(site_name)s. Un formulario ha caducado"
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr "Error en %(site_name)s"
@@ -6499,7 +6503,7 @@ msgid "Changed data protection law OK"
msgstr "Se ha cambiado la ley de protección de datos correctamente"
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr "Feed %(feed_type)s de %(sitename)s"
@@ -8414,3 +8418,4 @@ msgstr "Las credenciales no son correctos"
#~ msgid "Settings used for data protection."
#~ msgstr "Configuración usada para protección de datos."
+
diff --git a/liberaforms/translations/eu/LC_MESSAGES/messages.po b/liberaforms/translations/eu/LC_MESSAGES/messages.po
index b82115e2..a51bd203 100644
--- a/liberaforms/translations/eu/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/eu/LC_MESSAGES/messages.po
@@ -8,17 +8,16 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2023-10-03 16:05+0000\n"
"Last-Translator: Porrumentzio <porrumentzio@riseup.net>\n"
-"Language-Team: Basque <https://hosted.weblate.org/projects/liberaforms/"
-"server-liberaforms/eu/>\n"
"Language: eu\n"
+"Language-Team: Basque <https://hosted.weblate.org/projects/liberaforms"
+"/server-liberaforms/eu/>\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.1-dev\n"
"Generated-By: Babel 2.10.3\n"
#: assets/inline_help/menu.json:4
@@ -5333,6 +5332,11 @@ msgstr "Azken hamabi hilabeteetako estatistikak."
msgid "Total users"
msgstr "Guztizko erabiltzaileak"
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+#, fuzzy
+msgid "Search"
+msgstr "Erabiltzailea"
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr "Gehitu eta kendu pribatutasun-adierazpenak"
@@ -5728,7 +5732,7 @@ msgstr "Gehitu eremu-izen egoki bat hemen"
msgid "Privacy statement required"
msgstr "Pribatutasun-adierazpena behar da"
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr "Ez dugu topatu %(file_name)s fitxategia"
@@ -5968,8 +5972,8 @@ msgstr "%(email)s(e)k zure gonbidapena onartu du."
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr "Ondo segi."
@@ -6019,8 +6023,8 @@ msgstr "\"%(username)s\" erabiltzailea sortu da %(site_name)s(e)n."
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr "Kaixo"
@@ -6046,31 +6050,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr "%(site_name)s. Beste erantzun bat galdetegian"
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr "\"%(form_name)s\" galdetegiko erantzun bat zuzendu dute."
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr "%(site_name)s. Erantzun bat zuzendu dute galdetegian"
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr "Berrespen mezua"
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr "\"%(form_name)s\" galdetegia iraungi da, %(site_name)s webgunean."
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr "%(site_name)s. Galdetegi bat iraungi zaizu"
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr "Akatsa %(site_name)s(e)n"
@@ -6526,7 +6530,7 @@ msgid "Changed data protection law OK"
msgstr "Ongi aldatu da datuak babesteko legea"
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr "%(sitename)s(e)ko %(feed_type)s jarioa"
@@ -7962,3 +7966,4 @@ msgstr "Kredentzial okerrak"
#~ msgid "Settings used for data protection."
#~ msgstr "Datuak babesteko erabilitako ezarpenak."
+
diff --git a/liberaforms/translations/fr/LC_MESSAGES/messages.po b/liberaforms/translations/fr/LC_MESSAGES/messages.po
index f5b0d217..75e360b2 100644
--- a/liberaforms/translations/fr/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/fr/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2022-04-08 07:14+0000\n"
"Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
"Language: fr\n"
@@ -5289,6 +5289,11 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+#, fuzzy
+msgid "Search"
+msgstr "Utilisateur·rice"
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
#, fuzzy
msgid "Add and remove privacy statements"
@@ -5696,7 +5701,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr "Ce texte n’était pas valide"
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, fuzzy, python-format
msgid "Cannot find the file %(file_name)s"
msgstr "Impossible de trouver le nom d'utilisateur %s"
@@ -5944,8 +5949,8 @@ msgstr "Votre invitation a été acceptée par %s"
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5998,8 +6003,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -6026,31 +6031,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, fuzzy, python-format
msgid "%(site_name)s. A form has expired"
msgstr "Ce formulaire a expiré"
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, fuzzy, python-format
msgid "Error at %(site_name)s"
msgstr "Bonjour %(user)s !"
@@ -6522,7 +6527,7 @@ msgid "Changed data protection law OK"
msgstr "Protection des données"
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/it/LC_MESSAGES/messages.po b/liberaforms/translations/it/LC_MESSAGES/messages.po
index 25f01efa..1c6887bd 100644
--- a/liberaforms/translations/it/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/it/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2022-04-08 07:14+0000\n"
"Last-Translator: LiberaForms <info@liberaforms.org>\n"
"Language: it\n"
@@ -5325,6 +5325,11 @@ msgstr ""
msgid "Total users"
msgstr "Utenti totali"
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+#, fuzzy
+msgid "Search"
+msgstr "Utente"
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
#, fuzzy
msgid "Add and remove privacy statements"
@@ -5738,7 +5743,7 @@ msgstr "Aggiungi un nome appropriato per il campo"
msgid "Privacy statement required"
msgstr "L’uername non coincide"
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, fuzzy, python-format
msgid "Cannot find the file %(file_name)s"
msgstr "È impossibile trovare l’username %s"
@@ -5987,8 +5992,8 @@ msgstr "Il tuo invito è stato accettato da %s"
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -6041,8 +6046,8 @@ msgstr "Nuovo utente “%s” creato su %s"
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -6069,31 +6074,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr "LiberaForms. Nuova risposta al modulo"
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, fuzzy, python-format
msgid "%(site_name)s. Edited form answer"
msgstr "LiberaForms. Nuova risposta al modulo"
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr "Messaggio di conferma"
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, fuzzy, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr "Il modulo “%s” è scaduto su %s"
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, fuzzy, python-format
msgid "%(site_name)s. A form has expired"
msgstr "LiberaForm. Un modulo è scaduto"
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, fuzzy, python-format
msgid "Error at %(site_name)s"
msgstr "Ciao %(user)s!"
@@ -6574,7 +6579,7 @@ msgid "Changed data protection law OK"
msgstr "Protezione dei dati"
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/messages.pot b/liberaforms/translations/messages.pot
index 76610177..bc060c1e 100644
--- a/liberaforms/translations/messages.pot
+++ b/liberaforms/translations/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -5045,6 +5045,10 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+msgid "Search"
+msgstr ""
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr ""
@@ -5430,7 +5434,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr ""
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr ""
@@ -5670,8 +5674,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5721,8 +5725,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5746,31 +5750,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr ""
@@ -6226,7 +6230,7 @@ msgid "Changed data protection law OK"
msgstr ""
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/nb_NO/LC_MESSAGES/messages.po b/liberaforms/translations/nb_NO/LC_MESSAGES/messages.po
index 0821065c..0f447e4d 100644
--- a/liberaforms/translations/nb_NO/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/nb_NO/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2021-11-10 17:04+0000\n"
"Last-Translator: LiberaForms <info@liberaforms.org>\n"
"Language: nb_NO\n"
@@ -5261,6 +5261,11 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+#, fuzzy
+msgid "Search"
+msgstr "Bruker"
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
#, fuzzy
msgid "Add and remove privacy statements"
@@ -5667,7 +5672,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr "Brukernavn stemmer ikke overens"
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, fuzzy, python-format
msgid "Cannot find the file %(file_name)s"
msgstr "Finner ikke brukernavnet «%s»"
@@ -5918,8 +5923,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5971,8 +5976,8 @@ msgstr "Nytt skjema «%s» opprettet i %s"
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5996,31 +6001,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr "Bekreftelsesmelding"
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, fuzzy, python-format
msgid "%(site_name)s. A form has expired"
msgstr "LiberaForms. Et skjema har utløpt"
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, fuzzy, python-format
msgid "Error at %(site_name)s"
msgstr "Hei %(user)s."
@@ -6489,7 +6494,7 @@ msgid "Changed data protection law OK"
msgstr "Databeskyttelse"
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/pl/LC_MESSAGES/messages.po b/liberaforms/translations/pl/LC_MESSAGES/messages.po
index 9f1e1cca..ae735f50 100644
--- a/liberaforms/translations/pl/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/pl/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2022-04-08 07:14+0000\n"
"Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
"Language: pl\n"
@@ -5068,6 +5068,10 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+msgid "Search"
+msgstr ""
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr ""
@@ -5454,7 +5458,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr ""
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr ""
@@ -5699,8 +5703,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5750,8 +5754,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5775,31 +5779,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr ""
@@ -6257,7 +6261,7 @@ msgid "Changed data protection law OK"
msgstr ""
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/pt_BR/LC_MESSAGES/messages.po b/liberaforms/translations/pt_BR/LC_MESSAGES/messages.po
index 9ef8ec2a..ad32ad03 100644
--- a/liberaforms/translations/pt_BR/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/pt_BR/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2022-04-08 07:14+0000\n"
"Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
"Language: pt_BR\n"
@@ -5217,6 +5217,10 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+msgid "Search"
+msgstr ""
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
#, fuzzy
msgid "Add and remove privacy statements"
@@ -5614,7 +5618,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr "Deletar usuário e formulários"
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, fuzzy, python-format
msgid "Cannot find the file %(file_name)s"
msgstr "Deletar usuário e formulários"
@@ -5859,8 +5863,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5910,8 +5914,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5935,31 +5939,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, fuzzy, python-format
msgid "%(site_name)s. A form has expired"
msgstr "Este formulário expirou"
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, fuzzy, python-format
msgid "Error at %(site_name)s"
msgstr "Deletar usuário e formulários"
@@ -6421,7 +6425,7 @@ msgid "Changed data protection law OK"
msgstr "Proteção de Dados"
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/ru/LC_MESSAGES/messages.po b/liberaforms/translations/ru/LC_MESSAGES/messages.po
index d6aed331..ff5201c8 100644
--- a/liberaforms/translations/ru/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/ru/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: 2021-09-08 20:50+0000\n"
"Last-Translator: Artem <Localizer_in_Russian@protonmail.com>\n"
"Language: ru\n"
@@ -5086,6 +5086,10 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+msgid "Search"
+msgstr ""
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr ""
@@ -5472,7 +5476,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr ""
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr ""
@@ -5717,8 +5721,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5768,8 +5772,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5793,31 +5797,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr ""
@@ -6275,7 +6279,7 @@ msgid "Changed data protection law OK"
msgstr ""
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/zh_Hans/LC_MESSAGES/messages.po b/liberaforms/translations/zh_Hans/LC_MESSAGES/messages.po
index 868b7345..ac379ac4 100644
--- a/liberaforms/translations/zh_Hans/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/zh_Hans/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language: zh_Hans\n"
@@ -5052,6 +5052,10 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+msgid "Search"
+msgstr ""
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr ""
@@ -5436,7 +5440,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr ""
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr ""
@@ -5671,8 +5675,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5722,8 +5726,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5747,31 +5751,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr ""
@@ -6225,7 +6229,7 @@ msgid "Changed data protection law OK"
msgstr ""
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/translations/zh_Hant/LC_MESSAGES/messages.po b/liberaforms/translations/zh_Hant/LC_MESSAGES/messages.po
index 71491750..bdec0eb8 100644
--- a/liberaforms/translations/zh_Hant/LC_MESSAGES/messages.po
+++ b/liberaforms/translations/zh_Hant/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: info@liberaforms.org\n"
-"POT-Creation-Date: 2023-10-03 17:06+0200\n"
+"POT-Creation-Date: 2023-10-15 09:59+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language: zh_Hant\n"
@@ -5052,6 +5052,10 @@ msgstr ""
msgid "Total users"
msgstr ""
+#: liberaforms/templates/site/partials/inline_help_menu.html:26
+msgid "Search"
+msgstr ""
+
#: liberaforms/templates/site/partials/new_user_form_options.html:8
msgid "Add and remove privacy statements"
msgstr ""
@@ -5436,7 +5440,7 @@ msgstr ""
msgid "Privacy statement required"
msgstr ""
-#: liberaforms/utils/inline_help.py:84
+#: liberaforms/utils/inline_help.py:142
#, python-format
msgid "Cannot find the file %(file_name)s"
msgstr ""
@@ -5671,8 +5675,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:120
#: liberaforms/utils/dispatcher/dispatcher.py:145
#: liberaforms/utils/dispatcher/dispatcher.py:165
-#: liberaforms/utils/dispatcher/dispatcher.py:184
-#: liberaforms/utils/dispatcher/dispatcher.py:217
+#: liberaforms/utils/dispatcher/dispatcher.py:183
+#: liberaforms/utils/dispatcher/dispatcher.py:216
msgid "Regards."
msgstr ""
@@ -5722,8 +5726,8 @@ msgstr ""
#: liberaforms/utils/dispatcher/dispatcher.py:119
#: liberaforms/utils/dispatcher/dispatcher.py:144
#: liberaforms/utils/dispatcher/dispatcher.py:164
-#: liberaforms/utils/dispatcher/dispatcher.py:183
-#: liberaforms/utils/dispatcher/dispatcher.py:216
+#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:215
msgid "Hello"
msgstr ""
@@ -5747,31 +5751,31 @@ msgstr ""
msgid "%(site_name)s. New form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:182
+#: liberaforms/utils/dispatcher/dispatcher.py:181
#, python-format
msgid "An answer for '%(form_name)s' has been edited."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:187
+#: liberaforms/utils/dispatcher/dispatcher.py:186
#, python-format
msgid "%(site_name)s. Edited form answer"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:203
+#: liberaforms/utils/dispatcher/dispatcher.py:202
msgid "Confirmation message"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:213
+#: liberaforms/utils/dispatcher/dispatcher.py:212
#, python-format
msgid "The form '%(form_name)s' has expired at %(site_name)s."
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:220
+#: liberaforms/utils/dispatcher/dispatcher.py:219
#, python-format
msgid "%(site_name)s. A form has expired"
msgstr ""
-#: liberaforms/utils/dispatcher/dispatcher.py:234
+#: liberaforms/utils/dispatcher/dispatcher.py:233
#, python-format
msgid "Error at %(site_name)s"
msgstr ""
@@ -6225,7 +6229,7 @@ msgid "Changed data protection law OK"
msgstr ""
#. i18n: feed_type can be, for example, RSS or Atom
-#: liberaforms/views/site.py:708
+#: liberaforms/views/site.py:720
#, python-format
msgid "%(sitename)s %(feed_type)s feed"
msgstr ""
diff --git a/liberaforms/utils/dispatcher/dispatcher.py b/liberaforms/utils/dispatcher/dispatcher.py
index fe5b0220..2ad777a3 100644
--- a/liberaforms/utils/dispatcher/dispatcher.py
+++ b/liberaforms/utils/dispatcher/dispatcher.py
@@ -174,15 +174,14 @@ class Dispatcher(EmailServer):
)
thr.start()
- def send_edited_answer_notification(self, formuser_emails, form, answer):
- answer_url = url_for("answers_bp.answer_history",
- form_id=form.id,
- answer_id=answer.id,
- _external=True)
+ def send_edited_answer_notification(self, formuser_emails, form):
+ form_logs_url = url_for("form_bp.list_log",
+ form_id=form.id,
+ _external=True)
body = _("An answer for '%(form_name)s' has been edited.", form_name=form.name)
greeting = _('Hello')
regards = _('Regards.')
- body = f"{greeting},\n\n{body}\n\n{answer_url}\n\n{regards}"
+ body = f"{greeting},\n\n{body}\n\n{form_logs_url}\n\n{regards}"
message = MIMEText(body, _subtype='plain', _charset='UTF-8')
message['Subject'] = Header(_("%(site_name)s. Edited form answer",
site_name=self.site.name)).encode()
diff --git a/liberaforms/utils/i18n.py b/liberaforms/utils/i18n.py
index 59794f7a..91153924 100644
--- a/liberaforms/utils/i18n.py
+++ b/liberaforms/utils/i18n.py
@@ -59,7 +59,7 @@ def get_interface_locale() -> str:
if flask_login.current_user and \
flask_login.current_user.is_authenticated and \
flask_login.current_user.is_validated:
- return flask_login.current_user.preferences["language"]
+ return flask_login.current_user.get_language()
return get_best_match_lang_code()
current_app.logger.debug("APP - No request context")
return os.getenv('DEFAULT_LANGUAGE')
diff --git a/liberaforms/utils/inline_help.py b/liberaforms/utils/inline_help.py
index 901e1d26..7851981c 100644
--- a/liberaforms/utils/inline_help.py
+++ b/liberaforms/utils/inline_help.py
@@ -13,6 +13,7 @@ from flask import current_app, g, render_template, jsonify, url_for
from flask_babel import gettext, force_locale
import flask_login
from liberaforms.utils import utils
+from liberaforms.utils import sanitizers
from liberaforms.utils import i18n
@@ -58,6 +59,63 @@ class InlineHelp():
def _external_link_icon(self):
return '<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-right"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg>'
+ def render_markdown(self, j2_env, file_name) -> str:
+ #print(file_name)
+ template = j2_env.get_template(file_name)
+ markdown_help = template.render({
+ "help_page": self._help_page_link,
+ "is_admin": self.is_admin,
+ "is_editor": self.is_editor,
+ "is_guest": self.is_guest,
+ "is_root_user": self.is_root_user,
+ "is_multilanguage_site": bool(len(g.site.custom_languages) > 1),
+ "_": self.translate,
+ "url_for": url_for,
+ "BASE_URL": current_app.config["BASE_URL"],
+ #"external_link_icon": self._external_link_icon,
+ "default_enabled_language": self._get_default_enabled_language,
+ "token_lifespan": self._token_lifespan(),
+ "current_user": flask_login.current_user,
+ "site": g.site,
+ "with_link": self._build_link,
+ "app_config": current_app.config,
+ "human_readable_bytes": utils.human_readable_bytes,
+ "mimetype_risks": self.mimetype_risks,
+ "i18n_docs_site_url": i18n.get_docs_site_url})
+ return markdown_help
+
+ def search(self, search_string: str) -> dict:
+ result: dict = {}
+ j2_env = Environment(loader=FileSystemLoader(self.pages_dir))
+
+ pages = []
+ def load_pages(menu: dict):
+ for key, value in menu.items():
+ pages.append(key)
+ if "sub_pages" in value and value["sub_pages"]:
+ load_pages(value["sub_pages"])
+
+ load_pages(self.menu_data["user"])
+ if self.is_admin:
+ load_pages(self.menu_data["admin"])
+
+ for file_name in pages:
+ if file_name.startswith("_"):
+ continue
+ try:
+ rendered_markdown = self.render_markdown(j2_env, file_name)
+ for line in rendered_markdown.splitlines():
+ if search_string in line:
+ page_name = self.get_page_label(file_name)
+ page_link = '<a href="#" onclick=\'inline_help_goto_page("'+file_name+'")\'>'+page_name+'</a>'
+ if page_link not in result:
+ result[page_link] = []
+ text = sanitizers.remove_html_tags(markdown.markdown(line))
+ result[page_link].append(text)
+ except:
+ current_app.logger.debug(f"APP - Inline help. Cannot find {file_name}")
+ return result
+
def get_page_label(self, file_name):
for menu in self.menu_data.values():
for item, item_value in menu.items():
@@ -83,28 +141,8 @@ class InlineHelp():
current_app.logger.debug(f"INLINE-HELP - Cannot file help page: {file_name}")
return _("Cannot find the file %(file_name)s", file_name=file_name)
j2_env = Environment(loader=FileSystemLoader(self.pages_dir))
- template = j2_env.get_template(file_name)
- markdown_help = template.render({
- "help_page": self._help_page_link,
- "is_admin": self.is_admin,
- "is_editor": self.is_editor,
- "is_guest": self.is_guest,
- "is_root_user": self.is_root_user,
- "is_multilanguage_site": bool(len(g.site.custom_languages) > 1),
- "_": self.translate,
- "url_for": url_for,
- "BASE_URL": current_app.config["BASE_URL"],
- #"external_link_icon": self._external_link_icon,
- "default_enabled_language": self._get_default_enabled_language,
- "token_lifespan": self._token_lifespan(),
- "current_user": flask_login.current_user,
- "site": g.site,
- "with_link": self._build_link,
- "app_config": current_app.config,
- "human_readable_bytes": utils.human_readable_bytes,
- "mimetype_risks": self.mimetype_risks,
- "i18n_docs_site_url": i18n.get_docs_site_url})
- html = markdown.markdown(markdown_help)
+ rendered_markdown = self.render_markdown(j2_env, file_name)
+ html = markdown.markdown(rendered_markdown)
return html
def get_menu(self):
diff --git a/liberaforms/views/site.py b/liberaforms/views/site.py
index 1aac0946..faf8e1d5 100644
--- a/liberaforms/views/site.py
+++ b/liberaforms/views/site.py
@@ -693,6 +693,18 @@ def get_inline_help():
return jsonify(payload), 200
+@site_bp.route('/site/search-help', methods=['POST'])
+@auth.authenticated_user_required__json
+def search_help():
+ data = request.get_json()
+ search_string = data["search_string"] if "search_string" in data else None
+ if search_string:
+ inline_help = InlineHelp(g.language, flask_login.current_user.role)
+ result = inline_help.search(search_string)
+ return jsonify(result=result), 200
+ return jsonify(result={}), 200
+
+
# RSS
@site_bp.route('/feed', methods=['GET'])