Skip to content

Commit d784140

Browse files
committed
Provide a page that shows how current charter text renders through markdown. Related to ietf-tools#2695. Commit ready for merge.
- Legacy-Id: 19357
1 parent b531a5c commit d784140

File tree

4 files changed

+80
-0
lines changed

4 files changed

+80
-0
lines changed

ietf/group/tests_info.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,13 @@ def test_group_charter(self):
271271
self.assertContains(r, milestone.desc)
272272
self.assertContains(r, milestone.docs.all()[0].name)
273273

274+
def test_about_rendertest(self):
275+
group = CharterFactory().group
276+
url = urlreverse('ietf.group.views.group_about_rendertest', kwargs=dict(acronym=group.acronym))
277+
r = self.client.get(url)
278+
self.assertEqual(r.status_code,200)
279+
280+
274281
def test_group_about(self):
275282

276283
interesting_users = [ 'plain','iana','iab-chair','irtf-chair', 'marschairman', 'teamchairman','ad', 'iab-member', 'secretary', ]

ietf/group/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
url(r'^documents/subscription/$', community_views.subscription),
2121
url(r'^charter/$', views.group_about),
2222
url(r'^about/$', views.group_about),
23+
url(r'^about/rendertest/$', views.group_about_rendertest),
2324
url(r'^about/status/$', views.group_about_status),
2425
url(r'^about/status/edit/$', views.group_about_status_edit),
2526
url(r'^about/status/meeting/(?P<num>\d+)/$', views.group_about_status_meeting),

ietf/group/views.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import itertools
4040
import io
4141
import json
42+
import markdown
4243
import math
4344
import os
4445
import re
@@ -575,6 +576,17 @@ def all_status(request):
575576
}
576577
)
577578

579+
def group_about_rendertest(request, acronym, group_type=None):
580+
group = get_group_or_404(acronym, group_type)
581+
charter = None
582+
if group.charter:
583+
charter = get_charter_text(group)
584+
try:
585+
rendered = markdown.markdown(charter, extensions=['extra'])
586+
except Exception as e:
587+
rendered = f'Markdown rendering failed: {e}'
588+
return render(request, 'group/group_about_rendertest.html', {'group':group, 'charter':charter, 'rendered':rendered})
589+
578590
def group_about_status(request, acronym, group_type=None):
579591
group = get_group_or_404(acronym, group_type)
580592
status_update = group.latest_event(type='status_update')
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{% extends "group/group_base.html" %}
2+
3+
{# Copyright The IETF Trust 2021, All Rights Reserved #}
4+
{% load origin %}
5+
{% load ietf_filters %}
6+
7+
{% block morecss %}
8+
.leftpanel { border-right: 1px solid #ccc;}
9+
.header {text-align:center; background-color:#aaf; }
10+
.buttonrow {text-align:center; border-bottom: 1px solid #000;}
11+
{% endblock %}
12+
13+
{% block group_content %}
14+
{% if charter %}
15+
{% comment %}
16+
<div class="row">
17+
<div class="col-md-6 header leftpanel">Current about page rendering</div>
18+
<div class="col-md-6 header">Markdown rendering</div>
19+
</div>
20+
<div class="row buttonrow">
21+
<div class="col-md-6 leftpanel">&nbsp;</div>
22+
<div class="col-md-6 "><input type="checkbox" name="widthconstraint"> Constrain width</input></div>
23+
</div>
24+
<div class="row">
25+
<div class="col-md-6 leftpanel">{{charter|linebreaks}}</div>
26+
<div class="col-md-6 rightcontent">{{rendered|sanitize|safe}}</div>
27+
</div>
28+
{% endcomment %}
29+
<div class="row">
30+
<div class="col-md-6 leftpanel">
31+
<div class="header">Current about page rendering</div>
32+
<div class="buttonrow">&nbsp;</div>
33+
<div>{{charter|linebreaks}}</div>
34+
</div>
35+
<div class="col-md-6 rightpanel">
36+
<div class="header">Markdown rendering</div>
37+
<div class="buttonrow"><input type="checkbox" name="widthconstraint"> Constrain width</input></div>
38+
<div class="rightcontent">{{rendered|sanitize|safe}}</div>
39+
</div>
40+
</div>
41+
{% else %}
42+
<div>Group has no charter document</div>
43+
{% endif %}
44+
{% endblock %}
45+
46+
{% block js %}
47+
<script>
48+
$(document).ready(function() {
49+
$('input[name=widthconstraint]').change(function() {
50+
if ($(this).is(':checked')) {
51+
$('.rightcontent').css('max-width','700px')
52+
} else {
53+
$('.rightcontent').css('max-width','')
54+
}
55+
});
56+
$('input[name=widthconstraint').prop('checked', true);
57+
$('.rightcontent').css('max-width','700px')
58+
});
59+
</script>
60+
{% endblock %}

0 commit comments

Comments
 (0)