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))