diff options
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/context_processors.py | 1 | ||||
-rw-r--r-- | ishtar_common/migrations/0251_data_default_welcome.py | 39 | ||||
-rw-r--r-- | ishtar_common/models.py | 4 | ||||
-rw-r--r-- | ishtar_common/templates/index.html | 4 | ||||
-rw-r--r-- | ishtar_common/templates/welcome.html | 10 | ||||
-rw-r--r-- | ishtar_common/utils_migrations.py | 26 | ||||
-rw-r--r-- | ishtar_common/views.py | 15 |
7 files changed, 81 insertions, 18 deletions
diff --git a/ishtar_common/context_processors.py b/ishtar_common/context_processors.py index 4f507b65f..74e38efc4 100644 --- a/ishtar_common/context_processors.py +++ b/ishtar_common/context_processors.py @@ -85,7 +85,6 @@ def get_base_context(request): "URL_PATH": settings.URL_PATH, "BASE_URL": "", "ISHTAR_MAP_MAX_ITEMS": settings.ISHTAR_MAP_MAX_ITEMS, - "ISHTAR_DOCUMENT_VERSION": settings.ISHTAR_DOCUMENT_VERSION } if "HTTP_HOST" in request.META: dct["BASE_URL"] = "{}://{}".format(request.scheme, request.META["HTTP_HOST"]) diff --git a/ishtar_common/migrations/0251_data_default_welcome.py b/ishtar_common/migrations/0251_data_default_welcome.py new file mode 100644 index 000000000..df1f10a5e --- /dev/null +++ b/ishtar_common/migrations/0251_data_default_welcome.py @@ -0,0 +1,39 @@ +# Generated by Django 2.2.24 on 2024-09-26 11:53 + +from django.conf import settings +from django.db import migrations +from django.template import Context, Template +from django.utils import translation + +from ishtar_common.utils_migrations import HOMEPAGE_DEFAULT, HOMEPAGE_TITLE + + +def default_welcome(apps, __): + IshtarSiteProfile = apps.get_model("ishtar_common", "IshtarSiteProfile") + old_language = translation.get_language() + translation.activate(settings.LANGUAGE_CODE) + homepage = Template(HOMEPAGE_DEFAULT).render(Context({}, use_l10n=True)) + title = str(HOMEPAGE_TITLE) + translation.activate(old_language) + for profile in IshtarSiteProfile.objects.all(): + changed = False + if not profile.homepage: + changed = True + profile.homepage = homepage + if not profile.homepage_title: + changed = True + profile.homepage_title = title + if changed: + profile.save() + + + +class Migration(migrations.Migration): + + dependencies = [ + ('ishtar_common', '0250_profile_homepage'), + ] + + operations = [ + migrations.RunPython(default_welcome) + ] diff --git a/ishtar_common/models.py b/ishtar_common/models.py index f45ebe069..f7512b606 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -36,7 +36,6 @@ import os import re import string import tempfile -import time from io import BytesIO # nosec: only script inside the script directory can be executed # script directory is not web available @@ -1174,8 +1173,7 @@ class IshtarSiteProfile(models.Model, Cached): default="", help_text=_( "Homepage of Ishtar - if not defined a default homepage " - "will appear. Use the markdown syntax. {random_image} " - "can be used to display a random image." + "will appear. Use HTML or markdown syntax." ), ) homepage_title = models.CharField(_("Homepage - Title"), max_length=100, default="", blank=True) diff --git a/ishtar_common/templates/index.html b/ishtar_common/templates/index.html index d1000396a..69bc52617 100644 --- a/ishtar_common/templates/index.html +++ b/ishtar_common/templates/index.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {% load i18n %} {% block content %}<div id="welcome" class="container"> - <h2>{% if welcome_title %}{{welcome_title}}{% else %}{% trans "Welcome in Ishtar, open source software for management and inventory of archaeological data" %}{% endif %}</h2> + <h2>{{welcome_title}}</h2> <div class="row"> {% if display_random_image %} {{random_image}} @@ -9,7 +9,7 @@ <div class="col col-lg-9"> <div class="card"> <div class="card-body"> - {% if homepage %}{{homepage|safe}}{% else %}{% include "welcome.html" %}{% endif %} + {{homepage|safe}} </div> </div> </div> diff --git a/ishtar_common/templates/welcome.html b/ishtar_common/templates/welcome.html deleted file mode 100644 index c5d21cecc..000000000 --- a/ishtar_common/templates/welcome.html +++ /dev/null @@ -1,10 +0,0 @@ -{% load i18n %} - -<p>{% trans "Some useful links:" %}</p> -<ul> - <li><a href='https://ishtar-archeo.net' target="_blank">{% trans "Presentation site and blog" %}</a>{% trans ":"%} {% trans "stay tuned with Ishtar news!" %}</li> - <li><a href="https://ishtar.readthedocs.io/fr/{{ISHTAR_DOCUMENT_VERSION}}/" target="_blank">{% trans "Documentation" %}</a>{% trans ":"%} {% trans "inline documentation." %}</li> - <li><a href="{% url 'admin:index' %}" target="_blank">{% trans "Admin interface" %}</a>{% trans ":"%} {% trans "for admin only." %}</li> - <li><a href="https://discourse.ishtar-archeo.net/" target="_blank">{% trans "Forum" %}</a>{% trans ":"%} {% trans "need help? find a new bug? a fantastic feature to propose? Here is the place to go." %}</li> - <li><a href="https://gitlab.com/iggdrasil/ishtar" target="_blank">{% trans "Source code" %}</a> – <a href="https://tickets.iggdrasil.net/projects/ishtar" target="_blank">{% trans "tickets" %}</a>{% trans ":"%} {% trans "where the magic happens." %}</li> -</ul> diff --git a/ishtar_common/utils_migrations.py b/ishtar_common/utils_migrations.py index 72697f48b..3400e1738 100644 --- a/ishtar_common/utils_migrations.py +++ b/ishtar_common/utils_migrations.py @@ -8,6 +8,32 @@ import uuid from django.core.files import File from django.core.management import call_command from django.db import connection +from django.utils.translation import ugettext_lazy + +HOMEPAGE_TITLE = ugettext_lazy("Welcome in Ishtar, open source software for management and inventory of archaeological data") + +HOMEPAGE_DEFAULT = """{% load i18n %} +<p>{% trans "Some useful links:" %}</p> +<ul> + <li><a href="https://ishtar.readthedocs.io/fr/ISHTAR_DOCUMENT_VERSION/" target="_blank"> + {% trans "Documentation" %}</a>{% trans ":"%} + {% trans "inline documentation." %} + </li> + <li><a href="https://discourse.ishtar-archeo.net/" target="_blank"> + {% trans "Forum" %}</a>{% trans ":"%} + {% trans "need help? find a new bug? a fantastic feature to propose? Here is the place to go." %} + </li> + <li><a href='https://ishtar-archeo.net' target="_blank"> + {% trans "Presentation site and blog" %}</a>{% trans ":"%} + {% trans "stay tuned with Ishtar news!" %} + </li> + <li><a href="https://gitlab.com/iggdrasil/ishtar" target="_blank"> + {% trans "Source code" %}</a> – + <a href="https://tickets.iggdrasil.net/projects/ishtar" target="_blank">{% trans "tickets" %}</a>{% trans ":"%} + {% trans "where the magic happens." %} + </li> +</ul> +""" def migrations_load_data(module_name, migration_filename): diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 2772bd44f..5b675eb52 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -53,7 +53,9 @@ from django.http import ( JsonResponse, ) from django.shortcuts import redirect, render, get_object_or_404 +from django.template import Context, Template from django.urls import reverse, NoReverseMatch +from django.utils import translation from django.utils.decorators import method_decorator from django.utils.translation import ugettext, ugettext_lazy as _ from django.views.generic import ListView, TemplateView, View @@ -73,6 +75,7 @@ from ishtar_common.data_importer import ImporterError from ishtar_common.forms import FinalForm, FinalDeleteForm, reverse_lazy from ishtar_common.models import get_current_profile from ishtar_common.templatetags.link_to_window import simple_link_to_window +from ishtar_common.utils_migrations import HOMEPAGE_DEFAULT, HOMEPAGE_TITLE from ishtar_common.utils import ( clean_session_cache, CSV_OPTIONS, @@ -182,8 +185,9 @@ def index(request): Main page """ profile = get_current_profile() + welcome_title = profile.homepage_title or str(HOMEPAGE_TITLE) dct = {"warnings": [], "extra_form_modals": wizards.EXTRA_FORM_MODALS, - "welcome_title": profile.homepage_title} + "welcome_title": welcome_title} if settings.PROJECT_SLUG == "default": dct["warnings"].append( _( @@ -204,11 +208,18 @@ def index(request): dct["display_random_image"] = True dct["random_image"] = get_random_item_image_link(request) - if hasattr(profile, "homepage") and profile.homepage: + if profile.homepage: dct["homepage"] = markdown(profile.homepage) # remove old hardcoded "{random_image}" from custom templates if "{random_image}" in dct["homepage"]: dct["homepage"] = dct["homepage"].replace("{random_image}", "") + else: + old_language = translation.get_language() + translation.activate(settings.LANGUAGE_CODE) + dct["homepage"] = Template(HOMEPAGE_DEFAULT).render(Context({}, use_l10n=True)) + translation.activate(old_language) + + dct["homepage"] = dct["homepage"].replace("ISHTAR_DOCUMENT_VERSION", settings.ISHTAR_DOCUMENT_VERSION) display_statistics = profile.homepage_statistics_available and ( authenticated or profile.homepage_statistics_available_offline |