Skip to content

Commit

Permalink
Merge pull request #88 from molgen/update-and-fix-roomlinks
Browse files Browse the repository at this point in the history
Update and fix roomlinks
  • Loading branch information
donald authored Aug 17, 2020
2 parents 4cd030b + 3da67a8 commit 4018fc7
Show file tree
Hide file tree
Showing 23 changed files with 356 additions and 231 deletions.
1 change: 0 additions & 1 deletion config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'wagtail.core.middleware.SiteMiddleware',
'wagtail.contrib.redirects.middleware.RedirectMiddleware',
]

Expand Down
6 changes: 3 additions & 3 deletions config/settings/local.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@

# EMAIL
# ------------------------------------------------------------------------------
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
#EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
#EMAIL_HOST = 'localhost'
#EMAIL_PORT = 1025

# django-debug-toolbar
# ------------------------------------------------------------------------------
Expand Down
12 changes: 6 additions & 6 deletions mpicms/base/api.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from wagtail.api.v2.endpoints import PagesAPIEndpoint
from wagtail.api.v2.views import PagesAPIViewSet
from wagtail.api.v2.router import WagtailAPIRouter
from wagtail.images.api.v2.endpoints import ImagesAPIEndpoint
from wagtail.documents.api.v2.endpoints import DocumentsAPIEndpoint
from wagtail.images.api.v2.views import ImagesAPIViewSet
from wagtail.documents.api.v2.views import DocumentsAPIViewSet


api_router = WagtailAPIRouter('wagtailapi')

api_router.register_endpoint('pages', PagesAPIEndpoint)
api_router.register_endpoint('images', ImagesAPIEndpoint)
api_router.register_endpoint('documents', DocumentsAPIEndpoint)
api_router.register_endpoint('pages', PagesAPIViewSet)
api_router.register_endpoint('images', ImagesAPIViewSet)
api_router.register_endpoint('documents', DocumentsAPIViewSet)
18 changes: 18 additions & 0 deletions mpicms/base/migrations/0052_formfield_clean_name.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.1 on 2020-08-12 14:04

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('base', '0051_formfield_formpage'),
]

operations = [
migrations.AddField(
model_name='formfield',
name='clean_name',
field=models.CharField(blank=True, default='', help_text='Safe name of the form field, the label converted to ascii_snake_case', max_length=255, verbose_name='name'),
),
]
55 changes: 47 additions & 8 deletions mpicms/base/templatetags/base_tags.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
from django import template

from mpicms.base.utils import get_room_link
import re

from django import template
from django.template.defaultfilters import stringfilter
from django.utils.html import conditional_escape
from django.utils.safestring import mark_safe

register = template.Library()

Expand All @@ -16,13 +18,50 @@ def is_subscribed(page, user):
return user in page.subscribers.all()


@register.simple_tag
def room_link(room):
return get_room_link(room)


@register.filter
def remove_i18n(url):
if url.startswith('/en') or url.startswith('/de'):
return url[3:]
return url


# The ROOM_PATTERN should be in sync with the twiki plugin setting
# in http://twiki.molgen.mpg.de/foswiki/System/RoomsPlugin

ROOM_PATTERN = re.compile(
r"R[0-4]\d\d[abc]?"
r"|[012]\.[012][012]\d\.?\d?[ab]?"
r"|B[01]\.[01][0-9]"
r"|KB\.0[01]|E[012]\da?"
r"|K4?\.[012][012]\d?(?:\.\d)?"
r"|K[B123]\.\d\d\d?[abc]?"
r"|W[012]\d[abc]?"
r"|K[TV]1?\.[012]\d[abcdefg]?"
r"|TH[0-5]\d[ab]?"
r"|HS\d\d"
r"|GH[01]\d"
r"|[K0123]\.[1234]\.F?\d\d"
r"|SR ?([1234])" )

SR_MAP= {
"1": "0.3.73",
"2": "0.3.05",
"3": "0.3.06",
"4": "0.2.01",
}

def room_match_to_link(match):
room = match.group(0)
target_room = room
if room.startswith("SR"):
sr_number = match.group(1)
if sr_number in SR_MAP:
target_room = SR_MAP[sr_number]
return '<a href="http://twiki.molgen.mpg.de/foswiki/bin/room/' + target_room + '">' + room + '</a>'

@register.filter(needs_autoescape=True)
@stringfilter
def add_room_links(rooms, autoescape=True):
if autoescape:
rooms = conditional_escape(rooms)
return mark_safe(ROOM_PATTERN.sub(room_match_to_link, rooms))
5 changes: 0 additions & 5 deletions mpicms/base/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,3 @@ def can_create(request, model):
if request.user.is_staff or request.user.is_superuser:
return True
return not getattr(model, 'creation_limited', False)


def get_room_link(room):
if room:
return 'https://twiki.molgen.mpg.de/foswiki/bin/room/' + room.split()[0]
17 changes: 17 additions & 0 deletions mpicms/contrib/sites/migrations/0004_auto_20200812_1604.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated by Django 3.1 on 2020-08-12 14:04

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('sites', '0003_set_site_domain_and_name'),
]

operations = [
migrations.AlterModelOptions(
name='site',
options={'ordering': ['domain'], 'verbose_name': 'site', 'verbose_name_plural': 'sites'},
),
]
18 changes: 18 additions & 0 deletions mpicms/personal/migrations/0026_auto_20200813_1342.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.1 on 2020-08-13 11:42

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('personal', '0025_auto_20190902_1149'),
]

operations = [
migrations.AlterField(
model_name='contact',
name='room',
field=models.CharField(blank=True, max_length=50, verbose_name='room'),
),
]
15 changes: 6 additions & 9 deletions mpicms/personal/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class Contact(index.Indexed, ClusterableModel):
last_name = models.CharField(_("last name"), max_length=50, blank=True)
email = models.EmailField(_("email"), blank=True)
phone = models.CharField(_("phone number"), blank=True, max_length=50)
room = models.CharField(_("room"), max_length=25, blank=True)
room = models.CharField(_("room"), max_length=50, blank=True)
is_active = models.BooleanField(_("is active"), default=True)
priority = models.PositiveSmallIntegerField(
_("priority"), blank=True, default=0, validators=[MaxValueValidator(999)],
Expand Down Expand Up @@ -126,23 +126,20 @@ class Contact(index.Indexed, ClusterableModel):

search_fields = [
index.SearchField('first_name', partial_match=True),
index.AutocompleteField('first_name'),
index.SearchField('last_name', partial_match=True),
index.AutocompleteField('last_name'),
index.SearchField('email', partial_match=True),
index.AutocompleteField('email'),
index.SearchField('phone'),
index.SearchField('room'),
index.FilterField('is_active')
# index.SearchField('groups'),
]

def __str__(self):
if self.first_name and self.last_name:
if self.title:
return f'{self.title} {self.first_name} {self.last_name}'
return f'{self.first_name} {self.last_name}'
elif self.first_name:
return self.first_name
elif self.last_name:
return self.last_name
if self.first_name or self.last_name:
return " ".join(filter(None, (self.title, self.first_name, self.last_name)))
else:
return self.email

Expand Down
2 changes: 1 addition & 1 deletion mpicms/templates/base/blocks/contact_block.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
{% if value.contact.room %}
<tr>
<td><i class="fas fa-building"></i></td>
<td><a href="{% room_link value.contact.room %}">{{ value.contact.room }}</td>
<td>{{ value.contact.room | add_room_links }}</td>
</tr>
{% endif %}
</table>
Expand Down
8 changes: 4 additions & 4 deletions mpicms/templates/events/event.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ <h2 class="title is-2">{{ page.title }}</h2>


{% if page.room %}
<a href="{% room_link page.room %}" class="tag is-medium">
<div class="tag is-medium">
<i class="fa fa-building"></i>
{{ page.room }}
</a>
{{ page.room | add_room_links }}
</div>
{% endif %}

</div>
Expand All @@ -58,4 +58,4 @@ <h2 class="title is-2">{{ page.title }}</h2>
</p>
</div>
</div>
{% endblock %}
{% endblock %}
6 changes: 3 additions & 3 deletions mpicms/templates/footer.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{% load i18n %}

{% load i18n wagtailcore_tags %}
{% wagtail_site as current_site %}

<div class="footer-top"></div>

<footer class="footer">
<div class="container">
<div class="columns">

{% with request.site.root_page.specific.footer_items as footer_items %}
{% with current_site.root_page.specific.footer_items as footer_items %}
{% for menu in footer_items %}
<div class="column is-3">
<div class="menu">
Expand Down
9 changes: 5 additions & 4 deletions mpicms/templates/menus/main.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{% load static i18n wagtailcore_tags base_tags %}

{% get_current_language as LANGUAGE_CODE %}
{% wagtail_site as current_site %}

<nav class="navbar is-light is-transparent" role="navigation" aria-label="main navigation">
<div class="container is-hidden-touch navbar-container-top">
<div class="navbar-brand navbar-brand-top">
<a href="{% pageurl request.site.root_page %}" class="navbar-item">
<a href="{% pageurl current_site.root_page %}" class="navbar-item">
{% if LANGUAGE_CODE == "de" %}
<img src="{% static 'images/molgen-logo-intern.svg' %}" class="logo">
{% else %}
Expand Down Expand Up @@ -56,7 +57,7 @@
</div>
<div class="container">
<div class="navbar-brand">
<a href="{% pageurl request.site.root_page %}" class="navbar-item is-hidden-desktop">
<a href="{% pageurl current_site.root_page %}" class="navbar-item is-hidden-desktop">
<img src="{% static 'images/molgen-logo.svg' %}">
</a>
<a role="button" class="navbar-burger burger" data-target="navMenu" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
Expand All @@ -67,7 +68,7 @@
</div>
<div class="navbar-menu" id="navMenu" style="flex-shrink: 1">
<div class="navbar-start" style="flex-wrap: wrap;">
{% for item in request.site.root_page.get_children.live.in_menu %}
{% for item in current_site.root_page.get_children.live.in_menu %}
{% with item.get_children.live.in_menu as parents %}
{% if parents %}
<div class="navbar-item has-dropdown is-hoverable">
Expand Down Expand Up @@ -110,7 +111,7 @@
</div>

<div class="navbar-end" style="flex-shrink: 0">
{% for menu in request.site.root_page.specific.quick_links %}
{% for menu in current_site.root_page.specific.quick_links %}
<div class="navbar-item has-dropdown is-hoverable">
<div class="navbar-link navbar-title">
{{ menu.value.title }}
Expand Down
2 changes: 1 addition & 1 deletion mpicms/templates/personal/list.html
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ <h1 class="title has-text-centered">{% trans 'Contact List' %}</h1>
<td class="last_name">{{ contact.last_name }}</td>
<td class="email"><a href="mailto:{{ contact.email }}">{{ contact.email }}</a></td>
<td class="phone">{{ contact.phone }}</td>
<td class="room"><a href="{% room_link contact.room %}">{{ contact.room }}</a></td>
<td class="room">{{ contact.room | add_room_links }}</td>
<td class="positions">{% for contactposition in contact.positions.all %}{{ contactposition.position }}<br>{% endfor %}</td>
<td class="groups">{% for contactgroup in contact.groups.all %}{{ contactgroup.group }}<br>{% endfor %}</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion mpicms/users/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.utils.translation import ugettext as _

from wagtail.admin import messages
from wagtail.admin.utils import permission_required
from wagtail.admin.auth import permission_required
from wagtail.core import hooks

from wagtail.users.views.users import User, change_user_perm, get_user_edit_form
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From 360f59c74c5a3678c16b8e189a1674451d7adf9e Mon Sep 17 00:00:00 2001
From 41d351e97c1cc8d8c0bab812eacffb2dcd6e9ad2 Mon Sep 17 00:00:00 2001
From: Donald Buczek <buczek@molgen.mpg.de>
Date: Thu, 2 Jan 2020 14:53:04 +0100
Subject: [PATCH] django: Do not check ALLOWED_HOSTS for dummy requests.
Expand All @@ -13,10 +13,10 @@ handled by django. It is used by wagtail to implement preview.
1 file changed, 3 insertions(+)

diff --git a/lib/python3.7/site-packages/django/http/request.py b/lib/python3.7/site-packages/django/http/request.py
index 39298aac..da077044 100644
index 083bf2d..4b8c9a9 100644
--- a/lib/python3.7/site-packages/django/http/request.py
+++ b/lib/python3.7/site-packages/django/http/request.py
@@ -94,6 +94,9 @@ class HttpRequest:
@@ -120,6 +120,9 @@ class HttpRequest:
"""Return the HTTP host using the environment or request headers."""
host = self._get_raw_host()

Expand All @@ -27,5 +27,5 @@ index 39298aac..da077044 100644
allowed_hosts = settings.ALLOWED_HOSTS
if settings.DEBUG and not allowed_hosts:
--
2.24.1
2.26.2

Loading

0 comments on commit 4018fc7

Please sign in to comment.