diff --git a/ietf/group/tests_info.py b/ietf/group/tests_info.py index edd374733..006199025 100644 --- a/ietf/group/tests_info.py +++ b/ietf/group/tests_info.py @@ -271,6 +271,13 @@ class GroupPagesTests(TestCase): self.assertContains(r, milestone.desc) self.assertContains(r, milestone.docs.all()[0].name) + def test_about_rendertest(self): + group = CharterFactory().group + url = urlreverse('ietf.group.views.group_about_rendertest', kwargs=dict(acronym=group.acronym)) + r = self.client.get(url) + self.assertEqual(r.status_code,200) + + def test_group_about(self): interesting_users = [ 'plain','iana','iab-chair','irtf-chair', 'marschairman', 'teamchairman','ad', 'iab-member', 'secretary', ] diff --git a/ietf/group/urls.py b/ietf/group/urls.py index 9416610b9..a8d6a06e6 100644 --- a/ietf/group/urls.py +++ b/ietf/group/urls.py @@ -20,6 +20,7 @@ info_detail_urls = [ url(r'^documents/subscription/$', community_views.subscription), url(r'^charter/$', views.group_about), url(r'^about/$', views.group_about), + url(r'^about/rendertest/$', views.group_about_rendertest), url(r'^about/status/$', views.group_about_status), url(r'^about/status/edit/$', views.group_about_status_edit), url(r'^about/status/meeting/(?P\d+)/$', views.group_about_status_meeting), diff --git a/ietf/group/views.py b/ietf/group/views.py index 560819de6..d41a925f3 100644 --- a/ietf/group/views.py +++ b/ietf/group/views.py @@ -39,6 +39,7 @@ import datetime import itertools import io import json +import markdown import math import os import re @@ -575,6 +576,17 @@ def all_status(request): } ) +def group_about_rendertest(request, acronym, group_type=None): + group = get_group_or_404(acronym, group_type) + charter = None + if group.charter: + charter = get_charter_text(group) + try: + rendered = markdown.markdown(charter, extensions=['extra']) + except Exception as e: + rendered = f'Markdown rendering failed: {e}' + return render(request, 'group/group_about_rendertest.html', {'group':group, 'charter':charter, 'rendered':rendered}) + def group_about_status(request, acronym, group_type=None): group = get_group_or_404(acronym, group_type) status_update = group.latest_event(type='status_update') diff --git a/ietf/templates/group/group_about_rendertest.html b/ietf/templates/group/group_about_rendertest.html new file mode 100644 index 000000000..9d0a3f507 --- /dev/null +++ b/ietf/templates/group/group_about_rendertest.html @@ -0,0 +1,60 @@ +{% extends "group/group_base.html" %} + +{# Copyright The IETF Trust 2021, All Rights Reserved #} +{% load origin %} +{% load ietf_filters %} + +{% block morecss %} +.leftpanel { border-right: 1px solid #ccc;} +.header {text-align:center; background-color:#aaf; } +.buttonrow {text-align:center; border-bottom: 1px solid #000;} +{% endblock %} + +{% block group_content %} + {% if charter %} +{% comment %} +
+
Current about page rendering
+
Markdown rendering
+
+
+
 
+
Constrain width
+
+
+
{{charter|linebreaks}}
+
{{rendered|sanitize|safe}}
+
+{% endcomment %} +
+
+
Current about page rendering
+
 
+
{{charter|linebreaks}}
+
+
+
Markdown rendering
+
Constrain width
+
{{rendered|sanitize|safe}}
+
+
+ {% else %} +
Group has no charter document
+ {% endif %} +{% endblock %} + +{% block js %} + +{% endblock %} \ No newline at end of file