Skip to content
Snippets Groups Projects
Commit cc83c972 authored by HeJ's avatar HeJ
Browse files

Merge branch 'develop' into 'production'

Archive mode fixes

See merge request hub/hub!975
parents 3d977dd6 8a960a78
No related branches found
No related tags found
No related merge requests found
...@@ -128,7 +128,7 @@ class ScheduleSourceImportDetailView(ScheduleAdminMixin, DetailView): ...@@ -128,7 +128,7 @@ class ScheduleSourceImportDetailView(ScheduleAdminMixin, DetailView):
if data := ctx['object'].data: if data := ctx['object'].data:
ctx['activity'] = sorted( ctx['activity'] = sorted(
data.get('_activity', []), data.get('_activity', []),
key=lambda item: (action2sort.get(item["action"], 99), type2sort.get(item["type"], 99), item["source_id"]), key=lambda item: (action2sort.get(item['action'], 99), type2sort.get(item['type'], 99), item['source_id']),
) )
else: else:
ctx['activity'] = None ctx['activity'] = None
......
from typing import Optional
from django.conf import settings from django.conf import settings
from django.conf.urls.i18n import i18n_patterns from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin from django.contrib import admin
from django.http import HttpRequest
from django.template.defaulttags import register from django.template.defaulttags import register
from django.urls import NoReverseMatch, get_script_prefix, include, path, reverse, set_script_prefix from django.urls import NoReverseMatch, get_script_prefix, include, path, reverse, set_script_prefix
from django.utils import translation
PREFIXES = { PREFIXES = {
'admin': settings.ADMIN_BASE_URL, 'admin': settings.ADMIN_BASE_URL,
...@@ -42,13 +46,28 @@ URL_CONFIGS = { ...@@ -42,13 +46,28 @@ URL_CONFIGS = {
@register.simple_tag @register.simple_tag
def hub_absolute(url: str, *args, i18n: bool = True, query_string: str = '', **kwargs): def hub_absolute(url: str, *args, i18n: bool = True, lang: Optional[str] = None, query_string: str = '', **kwargs):
try: try:
app, _ = url.split(':') app, _ = url.split(':')
except ValueError: except ValueError:
raise NoReverseMatch('No reverse found, missing namespace') raise NoReverseMatch('No reverse found, missing namespace')
thread_prefix = get_script_prefix() thread_prefix = get_script_prefix()
set_script_prefix(PREFIXES[app]) set_script_prefix(PREFIXES[app])
cur_language = translation.get_language()
try:
if lang:
# switch language if requested
translation.activate(lang)
reverse_url = reverse(url, URL_CONFIGS['i18n' if i18n else 'plain'][app], current_app=app, args=args, kwargs=kwargs) reverse_url = reverse(url, URL_CONFIGS['i18n' if i18n else 'plain'][app], current_app=app, args=args, kwargs=kwargs)
finally:
translation.activate(cur_language)
set_script_prefix(thread_prefix) set_script_prefix(thread_prefix)
return reverse_url if not query_string else f'{reverse_url}?{query_string}' return reverse_url if not query_string else f'{reverse_url}?{query_string}'
@register.simple_tag
def hub_absolute_self(request: HttpRequest, i18n: bool = True, lang: Optional[str] = None):
url = f'{request.resolver_match.app_name}:{request.resolver_match.url_name}'
query_string = request.META.get('QUERY_STRING')
return hub_absolute(url, i18n=i18n, lang=lang, query_string=query_string, *request.resolver_match.args, **request.resolver_match.kwargs)
import re import re
from datetime import datetime, timedelta from datetime import datetime, timedelta
from django.conf import settings
from typing import Any from typing import Any
from jinja2 import Environment, pass_context from jinja2 import Environment, pass_context
from jinja2.runtime import Context from jinja2.runtime import Context
from django.conf import settings
from django.contrib.humanize.templatetags.humanize import NaturalTimeFormatter from django.contrib.humanize.templatetags.humanize import NaturalTimeFormatter
from django.contrib.messages import get_messages from django.contrib.messages import get_messages
from django.http import HttpRequest from django.http import HttpRequest
...@@ -22,7 +22,7 @@ from modeltranslation.fields import build_localized_fieldname ...@@ -22,7 +22,7 @@ from modeltranslation.fields import build_localized_fieldname
from modeltranslation.settings import AVAILABLE_LANGUAGES from modeltranslation.settings import AVAILABLE_LANGUAGES
from core.models import PlatformUser, UserBadge from core.models import PlatformUser, UserBadge
from core.templatetags.hub_absolute import hub_absolute from core.templatetags.hub_absolute import hub_absolute, hub_absolute_self
from core.templatetags.update_parameters import update_parameters from core.templatetags.update_parameters import update_parameters
from plainui.utils import fetch_wiki_page from plainui.utils import fetch_wiki_page
...@@ -284,6 +284,7 @@ def environment(**options): ...@@ -284,6 +284,7 @@ def environment(**options):
'get_language': get_language, 'get_language': get_language,
'get_messages': get_messages, 'get_messages': get_messages,
'hub_absolute': hub_absolute, 'hub_absolute': hub_absolute,
'hub_absolute_self': hub_absolute_self,
'json_script': json_script, 'json_script': json_script,
'num_of_notifications': num_of_notifications, 'num_of_notifications': num_of_notifications,
'num_of_unread_messages': num_of_unread_messages, 'num_of_unread_messages': num_of_unread_messages,
......
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
{% if assembly.public_members %} {% if assembly.public_members %}
<div class="hub-tags"> <div class="hub-tags">
{%- for person in assembly.public_members %} {%- for person in assembly.public_members %}
{{ tagboxMacro.user(person.member.display_name, link=url('plainui:user', user_slug=person.member.slug) ) }} {{ tagboxMacro.user(person.member.display_name, link=url('plainui:user', user_slug=person.member.slug) if not archive_mode else None ) }}
{% endfor -%} {% endfor -%}
</div> </div>
{% else %} {% else %}
......
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
</svg> </svg>
</a> </a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="lang-select"> <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="lang-select">
{% if not archive_mode %}
<form <form
class="hub-header__additional-lang" class="hub-header__additional-lang"
method="POST" method="POST"
...@@ -74,6 +75,10 @@ ...@@ -74,6 +75,10 @@
{{ _("en") }} {{ _("en") }}
</button></li> </button></li>
</form> </form>
{% else %}
<li><a class="dropdown-item" href="{{ hub_absolute_self(request, lang='de') }}">{{ _("de") }}</a></li>
<li><a class="dropdown-item" href="{{ hub_absolute_self(request, lang='en') }}">{{ _("en") }}</a></li>
{% endif %}
</ul> </ul>
{%- endmacro %} {%- endmacro %}
...@@ -140,7 +145,7 @@ ...@@ -140,7 +145,7 @@
{% macro share(title=_("share this "), color="transparent" ) -%} {% macro share(title=_("share this "), color="transparent" ) -%}
{% if not disable_share %} {% if not disable_share %}
<a <a
href="{{ hub_absolute(request.resolver_match.view_name, i18n=False, query_string=request.META.QUERY_STRING, *view.args, **view.kwargs) if view else hub_absolute(request.resolver_match.view_name, i18n=False, query_string=request.META.QUERY_STRING) }}" href="{{ hub_absolute_self(request, i18n=archive_mode) }}"
class="btn-icon-big btn-{{ color }} nav-link" class="btn-icon-big btn-{{ color }} nav-link"
title="{{ title }}" title="{{ title }}"
target="_blank" target="_blank"
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<p class="mb-2 text-white">{{ _("login--cookieinfo") }}</p> <p class="mb-2 text-white">{{ _("login--cookieinfo") }}</p>
<hr class="hub-spacer"> <hr class="hub-spacer">
<h3>{{ _("New here?") }}</h2> <h3>{{ _("New here?") }}</h3>
<div class="d-grid"> <div class="d-grid">
<a href="{{ url('plainui:signup') }}" class="btn btn-primary" title="{{ _(" sign up (new <a href="{{ url('plainui:signup') }}" class="btn btn-primary" title="{{ _(" sign up (new
account)") }}"> account)") }}">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment