From 0536386c0a9015521968debefb2c4dd324ae355b Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Thu, 13 Aug 2020 17:47:55 +0200 Subject: [PATCH] Create usable links for seminar rooms For "events", room specifications like "SR 1" are often used. However, this is not a valid room numer as expected by the twiki map. Translate "SR [1234]" to correct room numbers for the link target. --- mpicms/base/templatetags/base_tags.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/mpicms/base/templatetags/base_tags.py b/mpicms/base/templatetags/base_tags.py index ea0fa99..5df90d4 100644 --- a/mpicms/base/templatetags/base_tags.py +++ b/mpicms/base/templatetags/base_tags.py @@ -29,7 +29,6 @@ def remove_i18n(url): # 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]" @@ -42,11 +41,27 @@ def remove_i18n(url): 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 '' + room + '' @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(r'\1', rooms)) + return mark_safe(ROOM_PATTERN.sub(room_match_to_link, rooms))