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