Many more HTML fixes.
- Legacy-Id: 19908
This commit is contained in:
parent
64d2ba2558
commit
ed30521e14
|
@ -8,7 +8,7 @@ from pathlib import Path
|
|||
from pyquery import PyQuery
|
||||
from random import randint
|
||||
from tempfile import NamedTemporaryFile
|
||||
from html import escape
|
||||
from html import escape, unescape
|
||||
|
||||
from django.conf import settings
|
||||
from django.urls import reverse as urlreverse
|
||||
|
@ -191,7 +191,7 @@ This test section has some text.
|
|||
self.client.login(username=username,password=username+'+password')
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
unescaped = unicontent(r).encode('utf-8').decode('unicode-escape')
|
||||
unescaped = unescape(unicontent(r).encode('utf-8').decode('unicode-escape'))
|
||||
for editor in previous_editors:
|
||||
self.assertIn(editor.name,unescaped)
|
||||
new_editors = set(previous_editors)
|
||||
|
@ -231,9 +231,9 @@ This test section has some text.
|
|||
self.client.login(username=username,password=username+'+password')
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
unescaped = unicontent(r).encode('utf-8').decode('unicode-escape')
|
||||
unescaped = unescape(unicontent(r).encode('utf-8').decode('unicode-escape'))
|
||||
for responsible in previous_responsible:
|
||||
self.assertIn(escape(responsible.name), unescaped)
|
||||
self.assertIn(responsible.name, unescaped)
|
||||
new_responsible = set(previous_responsible)
|
||||
new_responsible.add(RoleFactory(group__type_id='area',name_id='ad').person)
|
||||
postdict = dict(responsible=[str(p.pk) for p in new_responsible])
|
||||
|
|
|
@ -29,7 +29,7 @@ class LiaisonStatementAdmin(admin.ModelAdmin):
|
|||
inlines = [ RelatedLiaisonStatementInline, LiaisonStatementAttachmentInline ]
|
||||
|
||||
def related_to(self, obj):
|
||||
return '<br />'.join(['<a href="%s">%s</a>' % (reverse('admin:liaisons_liaisonstatement_change', None, (i.target.id, )), str(i.target)) for i in obj.source_of_set.select_related('target').all()])
|
||||
return '<br>'.join(['<a href="%s">%s</a>' % (reverse('admin:liaisons_liaisonstatement_change', None, (i.target.id, )), str(i.target)) for i in obj.source_of_set.select_related('target').all()])
|
||||
related_to.allow_tags = True # type: ignore # https://github.com/python/mypy/issues/2087
|
||||
|
||||
class LiaisonStatementAttachmentAdmin(admin.ModelAdmin):
|
||||
|
@ -50,4 +50,4 @@ class LiaisonStatementEventAdmin(admin.ModelAdmin):
|
|||
raw_id_fields = ["statement", "by"]
|
||||
|
||||
admin.site.register(LiaisonStatement, LiaisonStatementAdmin)
|
||||
admin.site.register(LiaisonStatementEvent, LiaisonStatementEventAdmin)
|
||||
admin.site.register(LiaisonStatementEvent, LiaisonStatementEventAdmin)
|
|
@ -211,13 +211,13 @@ class CustomModelMultipleChoiceField(forms.ModelMultipleChoiceField):
|
|||
|
||||
class LiaisonModelForm(BetterModelForm):
|
||||
'''Specify fields which require a custom widget or that are not part of the model.
|
||||
NOTE: from_groups and to_groups are marked as not required because select2 has
|
||||
a problem with validating
|
||||
'''
|
||||
from_groups = forms.ModelMultipleChoiceField(queryset=Group.objects.all(),label='Groups',required=False)
|
||||
from_groups.widget.attrs["class"] = "select2-field"
|
||||
from_contact = forms.EmailField() # type: Union[forms.EmailField, SearchableEmailField]
|
||||
to_contacts = forms.CharField(label="Contacts", widget=forms.Textarea(attrs={'rows':'3', }), strip=False)
|
||||
to_groups = forms.ModelMultipleChoiceField(queryset=Group.objects,label='Groups',required=False)
|
||||
to_groups.widget.attrs["class"] = "select2-field"
|
||||
deadline = DatepickerDateField(date_format="yyyy-mm-dd", picker_settings={"autoclose": "1" }, label='Deadline', required=True)
|
||||
related_to = SearchableLiaisonStatementsField(label='Related Liaison Statement', required=False)
|
||||
submitted_date = DatepickerDateField(date_format="yyyy-mm-dd", picker_settings={"autoclose": "1" }, label='Submission date', required=True, initial=datetime.date.today())
|
||||
|
@ -247,8 +247,8 @@ class LiaisonModelForm(BetterModelForm):
|
|||
self.person = get_person_for_user(user)
|
||||
self.is_new = not self.instance.pk
|
||||
|
||||
self.fields["from_groups"].widget.attrs["placeholder"] = "Type in name to search for group"
|
||||
self.fields["to_groups"].widget.attrs["placeholder"] = "Type in name to search for group"
|
||||
self.fields["from_groups"].widget.attrs["data-placeholder"] = "Type in name to search for group"
|
||||
self.fields["to_groups"].widget.attrs["data-placeholder"] = "Type in name to search for group"
|
||||
self.fields["to_contacts"].label = 'Contacts'
|
||||
self.fields["other_identifiers"].widget.attrs["rows"] = 2
|
||||
|
||||
|
@ -449,7 +449,7 @@ class IncomingLiaisonForm(LiaisonModelForm):
|
|||
else:
|
||||
queryset = Group.objects.filter(type="sdo", state="active", role__person=self.person, role__name__in=("liaiman", "auth")).distinct().order_by('name')
|
||||
self.fields['from_contact'].initial = self.person.role_set.filter(group=queryset[0]).first().email.address
|
||||
self.fields['from_contact'].widget.attrs['readonly'] = True
|
||||
self.fields['from_contact'].widget.attrs['disabled'] = True
|
||||
self.fields['from_groups'].queryset = queryset
|
||||
self.fields['from_groups'].widget.submitter = str(self.person)
|
||||
|
||||
|
@ -504,7 +504,7 @@ class OutgoingLiaisonForm(LiaisonModelForm):
|
|||
else:
|
||||
email = self.person.email_address()
|
||||
self.fields['from_contact'].initial = email
|
||||
self.fields['from_contact'].widget.attrs['readonly'] = True
|
||||
self.fields['from_contact'].widget.attrs['disabled'] = True
|
||||
|
||||
def set_to_fields(self):
|
||||
'''Set to_groups and to_contacts options and initial value based on user
|
||||
|
@ -551,7 +551,7 @@ class EditLiaisonForm(LiaisonModelForm):
|
|||
queryset = Group.objects.filter(type="sdo").order_by('name')
|
||||
else:
|
||||
queryset = Group.objects.filter(type="sdo", role__person=self.person, role__name__in=("liaiman", "auth")).distinct().order_by('name')
|
||||
self.fields['from_contact'].widget.attrs['readonly'] = True
|
||||
self.fields['from_contact'].widget.attrs['disabled'] = True
|
||||
self.fields['from_groups'].queryset = queryset
|
||||
|
||||
def set_to_fields(self):
|
||||
|
@ -571,5 +571,4 @@ class EditLiaisonForm(LiaisonModelForm):
|
|||
|
||||
|
||||
class EditAttachmentForm(forms.Form):
|
||||
title = forms.CharField(max_length=255)
|
||||
|
||||
title = forms.CharField(max_length=255)
|
|
@ -25,7 +25,7 @@ class ButtonWidget(Widget):
|
|||
html += '<span style="display: none" class="attachRequiredField">%s</span>' % conditional_escape(i)
|
||||
required_str = 'Please fill in %s to attach a new file' % conditional_escape(self.required_label)
|
||||
html += '<span style="display: none" class="attachDisabledLabel">%s</span>' % conditional_escape(required_str)
|
||||
html += '<input type="button" class="addAttachmentWidget btn btn-primary btn-sm" value="%s" />' % conditional_escape(self.label)
|
||||
html += '<input type="button" class="addAttachmentWidget btn btn-primary btn-sm" value="%s">' % conditional_escape(self.label)
|
||||
return mark_safe(html)
|
||||
|
||||
|
||||
|
@ -39,8 +39,8 @@ class ShowAttachmentsWidget(Widget):
|
|||
html += '<a class="initialAttach" href="%s">%s</a> ' % (conditional_escape(attachment.document.get_href()), conditional_escape(attachment.document.title))
|
||||
html += '<a class="btn btn-primary btn-sm" href="{}">Edit</a> '.format(urlreverse("ietf.liaisons.views.liaison_edit_attachment", kwargs={'object_id':attachment.statement.pk,'doc_id':attachment.document.pk}))
|
||||
html += '<a class="btn btn-primary btn-sm" href="{}">Delete</a> '.format(urlreverse("ietf.liaisons.views.liaison_delete_attachment", kwargs={'object_id':attachment.statement.pk,'attach_id':attachment.pk}))
|
||||
html += '<br />'
|
||||
html += '<br>'
|
||||
else:
|
||||
html += 'No files attached'
|
||||
html += '</div></div>'
|
||||
return mark_safe(html)
|
||||
return mark_safe(html)
|
|
@ -3941,7 +3941,7 @@ class EditScheduleListTests(TestCase):
|
|||
self.assertTrue(r.status_code, 200)
|
||||
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q(".schedule-diffs tr")), 3)
|
||||
self.assertEqual(len(q(".schedule-diffs tr")), 3+1)
|
||||
|
||||
def test_delete_schedule(self):
|
||||
url = urlreverse('ietf.meeting.views.delete_schedule',
|
||||
|
@ -5758,14 +5758,14 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(session_overview_url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertFalse(q('#uploadslides'))
|
||||
self.assertFalse(q('#proposeslides'))
|
||||
self.assertFalse(q('.uploadslides'))
|
||||
self.assertFalse(q('.proposeslides'))
|
||||
|
||||
self.client.login(username=newperson.user.username,password=newperson.user.username+"+password")
|
||||
r = self.client.get(session_overview_url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue(q('#proposeslides'))
|
||||
self.assertTrue(q('.proposeslides'))
|
||||
self.client.logout()
|
||||
|
||||
login_testing_unauthorized(self,newperson.user.username,propose_url)
|
||||
|
@ -5783,7 +5783,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(session_overview_url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('#proposedslidelist p')), 1)
|
||||
self.assertEqual(len(q('.proposedslidelist p')), 1)
|
||||
|
||||
SlideSubmissionFactory(session = session)
|
||||
|
||||
|
@ -5792,7 +5792,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(session_overview_url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('#proposedslidelist p')), 2)
|
||||
self.assertEqual(len(q('.proposedslidelist p')), 2)
|
||||
self.client.logout()
|
||||
|
||||
def test_disapprove_proposed_slides(self):
|
||||
|
|
|
@ -92,7 +92,7 @@ class PersonTests(TestCase):
|
|||
#debug.show('person.photo_name()')
|
||||
self.assertContains(r, person.photo_name(), status_code=200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertIn("Photo of %s"%person, q("div.bio-text img").attr("alt"))
|
||||
self.assertIn("Photo of %s"%person.name, q("div.bio-text img").attr("alt"))
|
||||
|
||||
bio_text = q("div.bio-text").text()
|
||||
self.assertIsNotNone(bio_text)
|
||||
|
|
|
@ -73,7 +73,7 @@ def get_to_choices():
|
|||
|
||||
class AnnounceForm(forms.ModelForm):
|
||||
nomcom = forms.ModelChoiceField(queryset=Group.objects.filter(acronym__startswith='nomcom',type='nomcom',state='active'),required=False)
|
||||
to_custom = MultiEmailField(required=False,label='')
|
||||
to_custom = MultiEmailField(required=False)
|
||||
|
||||
class Meta:
|
||||
model = Message
|
||||
|
@ -131,4 +131,4 @@ class AnnounceForm(forms.ModelForm):
|
|||
if nomcom:
|
||||
message.related_groups.add(nomcom)
|
||||
|
||||
return message
|
||||
return message
|
|
@ -24,9 +24,7 @@
|
|||
{% block footer %}
|
||||
<div id="footer">
|
||||
<div id="footer-extras">
|
||||
<ul>
|
||||
{% block footer-extras %}{% endblock %}
|
||||
</ul>
|
||||
{% block footer-extras %}{% endblock %}
|
||||
</div>
|
||||
<div id="footer-version">
|
||||
<p>IETF Secretariat Tools v. {{ secr_version_num }}</p>
|
||||
|
@ -36,4 +34,4 @@
|
|||
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -24,9 +24,7 @@
|
|||
{% block footer %}
|
||||
<div id="footer">
|
||||
<div id="footer-extras">
|
||||
<ul>
|
||||
{% block footer-extras %}{% endblock %}
|
||||
</ul>
|
||||
{% block footer-extras %}{% endblock %}
|
||||
</div>
|
||||
<div id="footer-version">
|
||||
<p>IETF Secretariat Tools v. {{ secr_version_num }}</p>
|
||||
|
@ -36,4 +34,4 @@
|
|||
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -28,16 +28,18 @@
|
|||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for role in group.role_set.all %}
|
||||
<tr class="{% cycle 'row1' 'row2' %}">
|
||||
<td>{{ role.name }}</td>
|
||||
<td>{{ role.person }}</td>
|
||||
<td>{{ role.email }}</td>
|
||||
<td><a href="{% url 'ietf.secr.groups.views.delete_role' acronym=group.acronym id=role.id %}">Delete</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if group.role_set.all %}
|
||||
<tbody>
|
||||
{% for role in group.role_set.all %}
|
||||
<tr class="{% cycle 'row1' 'row2' %}">
|
||||
<td>{{ role.name }}</td>
|
||||
<td>{{ role.person }}</td>
|
||||
<td>{{ role.email }}</td>
|
||||
<td><a href="{% url 'ietf.secr.groups.views.delete_role' acronym=group.acronym id=role.id %}">Delete</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
|
||||
<div class="inline-related">
|
||||
|
@ -65,4 +67,4 @@
|
|||
|
||||
</div> <!-- module -->
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -7,8 +7,6 @@
|
|||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}{% endblock %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}{{ block.super }}
|
||||
|
|
|
@ -63,38 +63,46 @@
|
|||
<div id="groups-view-col2">
|
||||
<div class="inline-related">
|
||||
<h2>Chairperson(s)</h2>
|
||||
<table>
|
||||
{% for role in group.chairs %}
|
||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% if group.chairs %}
|
||||
<table>
|
||||
{% for role in group.chairs %}
|
||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
</div> <!-- inline-related -->
|
||||
|
||||
<div class="inline-related">
|
||||
<h2>Document Editor(s)</h2>
|
||||
<table>
|
||||
{% for role in group.editors %}
|
||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% if group.editors %}
|
||||
<table>
|
||||
{% for role in group.editors %}
|
||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
</div> <!-- inline-related -->
|
||||
|
||||
<div class="inline-related">
|
||||
<h2>Technical Advisor(s)</h2>
|
||||
<table>
|
||||
{% for role in group.techadvisors %}
|
||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% if group.techadvisors %}
|
||||
<table>
|
||||
{% for role in group.techadvisors %}
|
||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
</div> <!-- inline-related -->
|
||||
|
||||
<div class="inline-related">
|
||||
<h2>Secretary(ies)</h2>
|
||||
<table>
|
||||
{% for role in group.secretaries %}
|
||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% if group.secretaries %}
|
||||
<table>
|
||||
{% for role in group.secretaries %}
|
||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
</div> <!-- inline-related -->
|
||||
|
||||
</div> <!-- groups-view-col2 -->
|
||||
|
@ -111,4 +119,4 @@
|
|||
</div> <!-- button-group -->
|
||||
</div> <!-- module -->
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1 +1,3 @@
|
|||
<ul>
|
||||
<li><a href="https://datatracker.ietf.org/meeting/{{ meeting.number }}/agenda.txt" target="_blank">View Agenda</a>.</li>
|
||||
</ul>
|
|
@ -6,13 +6,15 @@
|
|||
<th>ID</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in results %}
|
||||
<tr class="{% cycle 'row1' 'row2' %}">
|
||||
<td><a href="{% url 'ietf.secr.rolodex.views.view' id=item.person.id %}">{{item.name}}</a></td>
|
||||
<td>{{item.person.email_address}}</td>
|
||||
<td>{{item.person.id}}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% if results %}
|
||||
<tbody>
|
||||
{% for item in results %}
|
||||
<tr class="{% cycle 'row1' 'row2' %}">
|
||||
<td><a href="{% url 'ietf.secr.rolodex.views.view' id=item.person.id %}">{{item.name}}</a></td>
|
||||
<td>{{item.person.email_address}}</td>
|
||||
<td>{{item.person.id}}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
|
@ -1,4 +1,6 @@
|
|||
<ul>
|
||||
<li><a href="https://www.ietf.org/chairs/session-request-tool-instructions/" target="_blank">Instructions</a>.</li>
|
||||
<li><a href="{% url 'ietf.secr.proceedings.views.main' %}">IETF Meeting Materials Management Tool</a>.</li>
|
||||
<li>If you require assistance in using this tool, or wish to report a bug, then please send a message to <a href="mailto:ietf-action@ietf.org">ietf-action@ietf.org</a>.</li>
|
||||
<li>To submit your request via email, please send your request to <a href="mailto:agenda@ietf.org">agenda@ietf.org</a>.</li>
|
||||
</ul>
|
|
@ -1,4 +1,6 @@
|
|||
<ul>
|
||||
<li><a href="https://www.ietf.org/instructions/meeting_materials_tool.html" target="_blank">Instructions</a>.</li>
|
||||
<li>If you require assistance in using this tool, or wish to report a bug, then please send a message to <a href="mailto:{{settings.SECRETARIAT_ACTION_EMAIL}}">ietf-action@ietf.org</a>.</li>
|
||||
<li>To submit your materials via email, please send agendas to <a href="mailto:agenda@ietf.org">agenda@ietf.org</a> and minutes/presentation slides to <a href="mailto:proceedings@ietf.org">proceedings@ietf.org</a>.</li>
|
||||
<li><b>Note:</b> Normal session materials materials management is now performed using the {% if meeting.number %}<a href="{% url 'ietf.meeting.views.materials' num=meeting.number %}">{% endif %}materials page{% if meeting.number %}</a>{% endif %}
|
||||
<li><b>Note:</b> Normal session materials materials management is now performed using the {% if meeting.number %}<a href="{% url 'ietf.meeting.views.materials' num=meeting.number %}">{% endif %}materials page{% if meeting.number %}</a>{% endif %}
|
||||
</ul>
|
|
@ -22,15 +22,17 @@
|
|||
<th>IETF Meeting</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for meeting in meetings %}
|
||||
<tr class = "{% cycle 'row1' 'row2' %}{% if meeting.get_submission_correction_date < today %} frozen{% else %} open{% endif %}">
|
||||
<td>
|
||||
<a href="{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}">{{ meeting.number }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if meetings %}
|
||||
<tbody>
|
||||
{% for meeting in meetings %}
|
||||
<tr class = "{% cycle 'row1' 'row2' %}{% if meeting.get_submission_correction_date < today %} frozen{% else %} open{% endif %}">
|
||||
<td>
|
||||
<a href="{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}">{{ meeting.number }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
{% if user|has_role:"Secretariat" %}
|
||||
<div class="button-group">
|
||||
|
@ -49,15 +51,17 @@
|
|||
<th>Interim Meeting</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for meeting in interim_meetings %}
|
||||
{% if interim_meetings %}
|
||||
<tbody>
|
||||
{% for meeting in interim_meetings %}
|
||||
|
||||
<tr class = "{% cycle 'row1' 'row2' %}">
|
||||
<td>{{ meeting.group.acronym }}</td>
|
||||
<td><a href="{% url "ietf.meeting.views.session_details" num=meeting.number acronym=meeting.group.acronym %}">{{ meeting.date }}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tr class = "{% cycle 'row1' 'row2' %}">
|
||||
<td>{{ meeting.group.acronym }}</td>
|
||||
<td><a href="{% url "ietf.meeting.views.session_details" num=meeting.number acronym=meeting.group.acronym %}">{{ meeting.date }}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div> <!-- scroll -->
|
||||
<div class="button-group">
|
||||
|
@ -89,5 +93,4 @@
|
|||
{% endblock %}
|
||||
~
|
||||
~
|
||||
~
|
||||
|
||||
~
|
|
@ -56,32 +56,34 @@
|
|||
<th>Edit</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if sessions %}
|
||||
<tbody>
|
||||
|
||||
{% for session in sessions %}
|
||||
{% if session.recordings %}
|
||||
{% for recording in session.recordings %}
|
||||
{% for session in sessions %}
|
||||
{% if session.recordings %}
|
||||
{% for recording in session.recordings %}
|
||||
<tr>
|
||||
<td>{{ session.group.acronym }}</td>
|
||||
<td>{{ session.official_timeslotassignment.timeslot.time|date:"m-d H:i" }}</td>
|
||||
<td class="document-name" >{{ recording.name }}</td>
|
||||
<td><a href="{{ recording.get_href }}">{{ recording.get_href }}</a></td>
|
||||
<td><a href="{% url 'ietf.secr.proceedings.views.recording_edit' meeting_num=meeting.number name=recording.name %}">Edit</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td>{{ session.group.acronym }}</td>
|
||||
<td>{{ session.official_timeslotassignment.timeslot.time|date:"m-d H:i" }}</td>
|
||||
<td class="document-name" >{{ recording.name }}</td>
|
||||
<td><a href="{{ recording.get_href }}">{{ recording.get_href }}</a></td>
|
||||
<td><a href="{% url 'ietf.secr.proceedings.views.recording_edit' meeting_num=meeting.number name=recording.name %}">Edit</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td>{{ session.group.acronym }}</td>
|
||||
<td>{{ session.official_timeslotassignment.timeslot.time|date:"m-d H:i" }}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
</tbody>
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div> <!-- inline-group -->
|
||||
|
||||
|
@ -94,13 +96,15 @@
|
|||
<th>Filename</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for file in unmatched_recordings %}
|
||||
<tr>
|
||||
<td>{{ file }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if unmatched_recordings %}
|
||||
<tbody>
|
||||
{% for file in unmatched_recordings %}
|
||||
<tr>
|
||||
<td>{{ file }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div> <!-- inline-group -->
|
||||
{% endif %}
|
||||
|
@ -112,4 +116,4 @@
|
|||
|
||||
{% block footer-extras %}
|
||||
{% include "includes/upload_footer.html" %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -50,14 +50,11 @@
|
|||
<br>
|
||||
|
||||
<div class="inline-related">
|
||||
<h2></h2>
|
||||
<h3><b>Role Details</b></h3>
|
||||
<h3>Role Details</h3>
|
||||
<div id="roles-list"></div>
|
||||
<p></p>
|
||||
</div> <!-- inline-related -->
|
||||
|
||||
<div class="inline-related">
|
||||
<h2></h2>
|
||||
<h3>Add Role</h3>
|
||||
{% with role_form as form %}
|
||||
{{ role_form.non_field_errors }}
|
||||
|
|
|
@ -36,21 +36,23 @@
|
|||
<th>Email</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for role in roles %}
|
||||
<tr>
|
||||
<td>{{ role.name }} </td>
|
||||
<td>
|
||||
{% if role.group.type.slug == "area" %}
|
||||
<a href="{% url "ietf.secr.areas.views.view" name=role.group.acronym %}">{{ role.group.acronym }}{% if role.group.state.slug == "conclude" %} (concluded){% endif %}</a>
|
||||
{% else %}
|
||||
<a href="{% url 'ietf.secr.groups.views.view' acronym=role.group.acronym %}">{{ role.group.acronym }}{% if role.group.state.slug == "conclude" %} (concluded){% endif %}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ role.email }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if roles %}
|
||||
<tbody>
|
||||
{% for role in roles %}
|
||||
<tr>
|
||||
<td>{{ role.name }} </td>
|
||||
<td>
|
||||
{% if role.group.type.slug == "area" %}
|
||||
<a href="{% url "ietf.secr.areas.views.view" name=role.group.acronym %}">{{ role.group.acronym }}{% if role.group.state.slug == "conclude" %} (concluded){% endif %}</a>
|
||||
{% else %}
|
||||
<a href="{% url 'ietf.secr.groups.views.view' acronym=role.group.acronym %}">{{ role.group.acronym }}{% if role.group.state.slug == "conclude" %} (concluded){% endif %}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ role.email }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div> <!-- iniline-related -->
|
||||
|
||||
|
|
|
@ -39,13 +39,14 @@
|
|||
<span class="required"> (Currently, this group does not plan to hold a session at IETF {{ meeting.number }})</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% empty %}
|
||||
<i>NONE</i>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div> <!-- inline-related -->
|
||||
<br>
|
||||
<div class="inline-related">
|
||||
<h2></h2>
|
||||
<h3><b>Edit / Cancel Previously Requested Sessions</b></h3>
|
||||
<h3>Edit / Cancel Previously Requested Sessions</h3>
|
||||
<p>The list below includes those working groups for which you or your co-chair has requested sessions at the upcoming IETF meeting. You can click on an acronym to initiate changes to a session, or cancel a session.</p>
|
||||
<ul>
|
||||
{% for group in scheduled_groups %}
|
||||
|
@ -61,4 +62,4 @@
|
|||
|
||||
{% block footer-extras %}
|
||||
{% include "includes/sessions_footer.html" %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -122,14 +122,14 @@ input[id$='DELETE'] {
|
|||
display: none;
|
||||
}
|
||||
|
||||
#id_from_groups + span {
|
||||
/*#id_from_groups + span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#id_to_groups + span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
*/
|
||||
.liaison-group-col {
|
||||
min-width: 10em;
|
||||
}
|
|
@ -27,10 +27,10 @@ $(document)
|
|||
totalField.val(total);
|
||||
|
||||
template.before(el);
|
||||
el.find(".select2-field")
|
||||
.each(function () {
|
||||
setupSelect2Field($(this));
|
||||
});
|
||||
// el.find(".select2-field")
|
||||
// .each(function () {
|
||||
// setupSelect2Field($(this));
|
||||
// });
|
||||
});
|
||||
|
||||
function updateRevisions() {
|
||||
|
|
|
@ -101,7 +101,7 @@ var attachmentWidget = {
|
|||
|
||||
initTriggers: function () {
|
||||
attachmentWidget.config.showOnDisplay.on('click', 'a.removeAttach', attachmentWidget.removeAttachment);
|
||||
attachmentWidget.button.click(attachmentWidget.doAttach);
|
||||
attachmentWidget.button.on("click", attachmentWidget.doAttach);
|
||||
},
|
||||
|
||||
initFileInput: function () {
|
||||
|
@ -121,8 +121,8 @@ var attachmentWidget = {
|
|||
fieldids.push('#' + newfield.attr('id'));
|
||||
});
|
||||
attachmentWidget.config.fields = $(fieldids.join(","));
|
||||
attachmentWidget.config.fields.change(attachmentWidget.setState);
|
||||
attachmentWidget.config.fields.keyup(attachmentWidget.setState);
|
||||
attachmentWidget.config.fields.on("change", attachmentWidget.setState);
|
||||
attachmentWidget.config.fields.on("keyup", attachmentWidget.setState);
|
||||
},
|
||||
|
||||
initWidget: function () {
|
||||
|
@ -281,14 +281,10 @@ var liaisonForm = {
|
|||
init: function () {
|
||||
liaisonForm.form = $(this);
|
||||
liaisonForm.initVariables();
|
||||
$('#id_from_groups')
|
||||
.select2();
|
||||
$('#id_to_groups')
|
||||
.select2();
|
||||
liaisonForm.to_groups.change(function () { liaisonForm.updateInfo(false, $(this)); });
|
||||
liaisonForm.from_groups.change(function () { liaisonForm.updateInfo(false, $(this)); });
|
||||
liaisonForm.purpose.change(liaisonForm.updatePurpose);
|
||||
liaisonForm.form.submit(liaisonForm.checkSubmissionDate);
|
||||
liaisonForm.to_groups.on("change", function () { liaisonForm.updateInfo(false, $(this)); });
|
||||
liaisonForm.from_groups.on("change", function () { liaisonForm.updateInfo(false, $(this)); });
|
||||
liaisonForm.purpose.on("change", liaisonForm.updatePurpose);
|
||||
liaisonForm.form.on("submit", liaisonForm.checkSubmissionDate);
|
||||
$('.addAttachmentWidget')
|
||||
.each(attachmentWidget.initWidget);
|
||||
|
||||
|
|
|
@ -18,13 +18,6 @@ $.fn.select2.defaults.set("escapeMarkup", function (m) {
|
|||
// JS for ietf.utils.fields.SearchableField subclasses
|
||||
window.setupSelect2Field = function (e) {
|
||||
var url = e.data("ajax--url");
|
||||
if (!url) {
|
||||
if (!e.attr("disabled")) {
|
||||
console.log("data-ajax--url missing, not enabling select2 on field", e);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var maxEntries = e.data("max-entries");
|
||||
var options = e.data("pre");
|
||||
for (var id in options) {
|
||||
|
@ -34,7 +27,7 @@ window.setupSelect2Field = function (e) {
|
|||
e.select2({
|
||||
multiple: maxEntries !== 1,
|
||||
maximumSelectionSize: maxEntries,
|
||||
ajax: {
|
||||
ajax: url ? {
|
||||
url: url,
|
||||
dataType: "json",
|
||||
delay: 250,
|
||||
|
@ -52,8 +45,10 @@ window.setupSelect2Field = function (e) {
|
|||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
} : undefined
|
||||
});
|
||||
|
||||
console.log(e);
|
||||
};
|
||||
|
||||
$(document)
|
||||
|
|
|
@ -94,30 +94,30 @@ class SubmissionBaseUploadForm(forms.Form):
|
|||
|
||||
if cutoff_00 == cutoff_01:
|
||||
if now.date() >= (cutoff_00.date() - meeting.idsubmit_cutoff_warning_days) and now.date() < cutoff_00.date():
|
||||
self.cutoff_warning = ( 'The last submission time for Internet-Drafts before %s is %s.<br/><br/>' % (meeting, cutoff_00_str))
|
||||
self.cutoff_warning = ( 'The last submission time for Internet-Drafts before %s is %s.<br><br>' % (meeting, cutoff_00_str))
|
||||
elif now <= cutoff_00:
|
||||
self.cutoff_warning = (
|
||||
'The last submission time for new Internet-Drafts before the meeting is %s.<br/>'
|
||||
'The last submission time for new Internet-Drafts before the meeting is %s.<br>'
|
||||
'After that, you will not be able to submit drafts until after %s (IETF-meeting local time)' % (cutoff_00_str, reopen_str, ))
|
||||
else:
|
||||
if now.date() >= (cutoff_00.date() - meeting.idsubmit_cutoff_warning_days) and now.date() < cutoff_00.date():
|
||||
self.cutoff_warning = ( 'The last submission time for new documents (i.e., version -00 Internet-Drafts) before %s is %s.<br/><br/>' % (meeting, cutoff_00_str) +
|
||||
'The last submission time for revisions to existing documents before %s is %s.<br/>' % (meeting, cutoff_01_str) )
|
||||
self.cutoff_warning = ( 'The last submission time for new documents (i.e., version -00 Internet-Drafts) before %s is %s.<br><br>' % (meeting, cutoff_00_str) +
|
||||
'The last submission time for revisions to existing documents before %s is %s.<br>' % (meeting, cutoff_01_str) )
|
||||
elif now.date() >= cutoff_00.date() and now <= cutoff_01:
|
||||
# We are in the first_cut_off
|
||||
if now < cutoff_00:
|
||||
self.cutoff_warning = (
|
||||
'The last submission time for new documents (i.e., version -00 Internet-Drafts) before the meeting is %s.<br/>'
|
||||
'The last submission time for new documents (i.e., version -00 Internet-Drafts) before the meeting is %s.<br>'
|
||||
'After that, you will not be able to submit a new document until after %s (IETF-meeting local time)' % (cutoff_00_str, reopen_str, ))
|
||||
else: # No 00 version allowed
|
||||
self.cutoff_warning = (
|
||||
'The last submission time for new documents (i.e., version -00 Internet-Drafts) was %s.<br/>'
|
||||
'You will not be able to submit a new document until after %s (IETF-meeting local time).<br/><br>'
|
||||
'The last submission time for new documents (i.e., version -00 Internet-Drafts) was %s.<br>'
|
||||
'You will not be able to submit a new document until after %s (IETF-meeting local time).<br><br>'
|
||||
'You can still submit a version -01 or higher Internet-Draft until %s' % (cutoff_00_str, reopen_str, cutoff_01_str, ))
|
||||
self.in_first_cut_off = True
|
||||
if now > cutoff_01 and now < reopen:
|
||||
self.cutoff_warning = (
|
||||
'The last submission time for the I-D submission was %s.<br/><br>'
|
||||
'The last submission time for the I-D submission was %s.<br><br>'
|
||||
'The I-D submission tool will be reopened after %s (IETF-meeting local time).' % (cutoff_01_str, reopen_str))
|
||||
self.shutdown = True
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@ def show_submission_files(context, submission):
|
|||
|
||||
@register.filter
|
||||
def two_pages_decorated_with_errors(submission, errors):
|
||||
if not submission.first_two_pages:
|
||||
return ''
|
||||
pages = submission.first_two_pages or ''
|
||||
if 'rev' not in list(errors.keys()):
|
||||
return mark_safe('<pre>%s</pre>' % escape(pages))
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
{% endif %}
|
||||
|
||||
<form method="post">{% csrf_token %}
|
||||
<input type="submit" name="send" value="Send reminder" />
|
||||
<input type="submit" name="send" value="Send reminder">
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
|
|
@ -154,11 +154,11 @@ $ curl 'https://datatracker.ietf.org/api/v1/doc/document/?limit=0&name__cont
|
|||
available for all documents at the relative url <code>doc.json</code>, e.g.,
|
||||
<code>{% url 'ietf.doc.views_doc.document_json' name='draft-ietf-poised95-std-proc-3' %}</code>
|
||||
<a href="{% url 'ietf.doc.views_doc.document_json' name='draft-ietf-poised95-std-proc-3' %}">
|
||||
<span class="bi bi-box-arrow-up-right"></span>
|
||||
<i class="bi bi-box-arrow-up-right"></i>
|
||||
</a>.
|
||||
You can also specify an RFC: <code>{% url 'ietf.doc.views_doc.document_json' name='rfc2026' %}</code>
|
||||
<a href="{% url 'ietf.doc.views_doc.document_json' name='rfc2026' %}">
|
||||
<span class="bi bi-box-arrow-up-right"></span>
|
||||
<i class="bi bi-box-arrow-up-right"></i>
|
||||
</a>.
|
||||
No API key is needed to access this.
|
||||
</p>
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
{% load django_bootstrap5 %}
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>
|
||||
{% block title %}No title{% endblock %}
|
||||
</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
{% comment Halloween %}
|
||||
<link href='https://fonts.googleapis.com/css?family=IM+Fell+English+SC|IM+Fell+DW+Pica:400,400italic|Nova+Mono|IM+Fell+English:400,400italic&subset=latin-ext,latin' rel='stylesheet' type='text/css'/>
|
||||
<link href='https://fonts.googleapis.com/css?family=IM+Fell+English+SC|IM+Fell+DW+Pica:400,400italic|Nova+Mono|IM+Fell+English:400,400italic&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
|
||||
{% endcomment %}
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}"/>
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}">
|
||||
<style>
|
||||
{% block morecss %}{% endblock %}
|
||||
.leftmenu { width: 13em; }
|
||||
|
@ -24,13 +24,13 @@
|
|||
{% block pagehead %}{% endblock %}
|
||||
{% if server_mode and server_mode == "production" %}
|
||||
<link rel="shortcut icon"
|
||||
href="{% static 'ietf/images/ietf-icon-blue3.png' %}"/>
|
||||
href="{% static 'ietf/images/ietf-icon-blue3.png' %}">
|
||||
{% else %}
|
||||
<link rel="shortcut icon"
|
||||
href="{% static 'ietf/images/ietf-icon-red3.png' %}"/>
|
||||
href="{% static 'ietf/images/ietf-icon-red3.png' %}">
|
||||
{% endif %}
|
||||
<link rel="apple-touch-icon"
|
||||
href="{% static 'ietf/images/apple-touch-icon.png' %}"/>
|
||||
href="{% static 'ietf/images/apple-touch-icon.png' %}">
|
||||
<script src="{% static 'ietf/js/ietf.js' %}"></script>
|
||||
</head>
|
||||
<body {% block bodyAttrs %}{% endblock %} class="position-relative"
|
||||
|
@ -39,7 +39,7 @@
|
|||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/">
|
||||
<img alt="IETF Logo"
|
||||
src="{% static 'ietf/images/ietflogo-small-transparent.png' %}"/>
|
||||
src="{% static 'ietf/images/ietflogo-small-transparent.png' %}">
|
||||
Datatracker
|
||||
{% if server_mode and server_mode != "production" %}Dev Mode{% endif %}
|
||||
</a>
|
||||
|
@ -61,9 +61,9 @@
|
|||
type="text"
|
||||
name="name"
|
||||
placeholder="Document search"
|
||||
required/>
|
||||
<input type="hidden" name="activedrafts" value="on"/>
|
||||
<input type="hidden" name="rfcs" value="on"/>
|
||||
required>
|
||||
<input type="hidden" name="activedrafts" value="on">
|
||||
<input type="hidden" name="rfcs" value="on">
|
||||
</form>
|
||||
<button class="navbar-toggler"
|
||||
type="button"
|
||||
|
@ -72,7 +72,7 @@
|
|||
aria-controls="navbar-collapse"
|
||||
aria-expanded="false"
|
||||
aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
<i class="navbar-toggler-icon"></i>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
@ -99,7 +99,7 @@
|
|||
{% block content_end %}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<hr>
|
||||
{% block footer %}
|
||||
<footer class="col-md-12 col-sm-12 text-center">
|
||||
<a href="https://www.ietf.org/" class="p-3">IETF</a>
|
||||
|
@ -121,15 +121,15 @@
|
|||
Report a bug:
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/newticket">
|
||||
Tracker
|
||||
<span class="bi bi-bug"></span>
|
||||
<i class="bi bi-bug"></i>
|
||||
</a>
|
||||
{% if bugreport_email %}
|
||||
<a href="mailto:{{ bugreport_email }}">
|
||||
Email
|
||||
<span class="bi bi-envelope"></span>
|
||||
<i class="bi bi-envelope"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
<br />
|
||||
<br>
|
||||
{% if python_version %}Python {{ python_version }}{% endif %}
|
||||
{% if django_version %}Django {{ django_version }}{% endif %}
|
||||
<br>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
</a>
|
||||
{% active_groups_menu flavor %}
|
||||
</li>
|
||||
{% if flavor == 'top' %}<li class="dropdown-divider"></li>{% endif %}
|
||||
{% if flavor == 'top' %}<li><hr class="dropdown-divider"></li>{% endif %}
|
||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>New work</li>
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||
|
@ -50,7 +50,7 @@
|
|||
BOF Requests
|
||||
</a>
|
||||
</li>
|
||||
{% if flavor == 'top' %}<li class="dropdown-divider"></li>{% endif %}
|
||||
{% if flavor == 'top' %}<li><hr class="dropdown-divider"></li>{% endif %}
|
||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>Other groups</li>
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||
|
@ -108,7 +108,7 @@
|
|||
</a>
|
||||
</li>
|
||||
{% if user|has_role:"Area Director,Secretariat" %}
|
||||
{% if flavor == 'top' %}<li class="dropdown-divider"></li>{% endif %}
|
||||
{% if flavor == 'top' %}<li><hr class="dropdown-divider"></li>{% endif %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||
href="{% url 'ietf.doc.views_status_change.rfc_status_changes' %}">
|
||||
|
@ -116,7 +116,7 @@
|
|||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if flavor == 'top' %}<li class="dropdown-divider"></li>{% endif %}
|
||||
{% if flavor == 'top' %}<li><hr class="dropdown-divider"></li>{% endif %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||
href="{% url 'ietf.doc.views_ballot.irsg_ballot_status' %}">
|
||||
|
@ -124,7 +124,7 @@
|
|||
</a>
|
||||
</li>
|
||||
{% if user|has_role:"WG Chair,RG Chair" %}
|
||||
{% if flavor == 'top' %}<li class="dropdown-divider"></li>{% endif %}
|
||||
{% if flavor == 'top' %}<li><hr class="dropdown-divider"></li>{% endif %}
|
||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>Manage</li>
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||
|
@ -151,7 +151,7 @@
|
|||
{% endif %}
|
||||
{% if user|has_role:"Review Team Secretary" %}
|
||||
{% if flavor == 'top' %}
|
||||
<li class="dropdown-divider">
|
||||
<li><hr class="dropdown-divider">
|
||||
</li>
|
||||
{% endif %}
|
||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||
|
@ -168,7 +168,7 @@
|
|||
{% endif %}
|
||||
{% if user|active_nomcoms %}
|
||||
{% if flavor == 'top' %}
|
||||
<li class="dropdown-divider">
|
||||
<li><hr class="dropdown-divider">
|
||||
</li>
|
||||
{% endif %}
|
||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||
|
@ -185,7 +185,7 @@
|
|||
{% endif %}
|
||||
{% endif %}
|
||||
{% if flavor == 'top' %}
|
||||
<li class="dropdown-divider">
|
||||
<li><hr class="dropdown-divider">
|
||||
</li>
|
||||
{% endif %}
|
||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||
|
@ -273,7 +273,7 @@
|
|||
</li>
|
||||
{% if flavor == 'top' %}
|
||||
{% if flavor == 'top' %}
|
||||
<li class="dropdown-divider">
|
||||
<li><hr class="dropdown-divider">
|
||||
</li>
|
||||
{% endif %}
|
||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||
|
@ -288,7 +288,7 @@
|
|||
</li>
|
||||
{% if flavor == 'top' %}
|
||||
{% if flavor == 'top' %}
|
||||
<li class="dropdown-divider">
|
||||
<li><hr class="dropdown-divider">
|
||||
</li>
|
||||
{% endif %}
|
||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||
|
@ -404,14 +404,14 @@
|
|||
</a>
|
||||
</li>
|
||||
{% if flavor == 'top' %}
|
||||
<li class="dropdown-divider">
|
||||
<li><hr class="dropdown-divider">
|
||||
</li>
|
||||
{% endif %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||
href="https://trac.ietf.org/trac/ietfdb/newticket">
|
||||
<span class="bi bi-bug">
|
||||
</span>
|
||||
<i class="bi bi-bug">
|
||||
</i>
|
||||
Report a bug
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -126,7 +126,7 @@
|
|||
</li>
|
||||
{% endif %}
|
||||
{% if user|has_role:"Area Director" %}
|
||||
{% if flavor == "top" %}<li class="dropdown-divider"></li>{% endif %}
|
||||
{% if flavor == "top" %}<li><hr class="dropdown-divider"></li>{% endif %}
|
||||
<li {% if flavor == "top" %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>AD dashboard</li>
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %} text-wrap link-primary{% endif %}"
|
||||
|
@ -160,7 +160,7 @@
|
|||
</li>
|
||||
{% endif %}
|
||||
{% if user|has_role:"Secretariat" %}
|
||||
{% if flavor == "top" %}<li class="dropdown-divider"></li>{% endif %}
|
||||
{% if flavor == "top" %}<li><hr class="dropdown-divider"></li>{% endif %}
|
||||
<li {% if flavor == "top" %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||
IETF secretariat
|
||||
</li>
|
||||
|
@ -197,7 +197,7 @@
|
|||
{% endif %}
|
||||
{% if user|has_role:"IANA" %}
|
||||
{% if flavor == "top" %}
|
||||
<li class="dropdown-divider">
|
||||
<li><hr class="dropdown-divider">
|
||||
</li>
|
||||
{% endif %}
|
||||
<li {% if flavor == "top" %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||
|
@ -212,7 +212,7 @@
|
|||
{% endif %}
|
||||
{% if user|has_role:"RFC Editor" %}
|
||||
{% if flavor == "top" %}
|
||||
<li class="dropdown-divider">
|
||||
<li><hr class="dropdown-divider">
|
||||
</li>
|
||||
{% endif %}
|
||||
<li {% if flavor == "top" %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||
|
@ -225,4 +225,4 @@
|
|||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if flavor == "top" %}</ul>{% endif %}
|
||||
{% if flavor == "top" %}</ul>{% endif %}
|
|
@ -58,7 +58,7 @@
|
|||
{% else %}
|
||||
<p>
|
||||
Conveniently track individual documents in your personal list with the track icon
|
||||
<span class="bi bi-bookmark"></span>
|
||||
<i class="bi bi-bookmark"></i>
|
||||
in
|
||||
<a href="/doc/search/">search results</a>.
|
||||
</p>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{# bs5ok #}
|
||||
<!doctype html>
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
{% load ietf_filters %}
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
|
|
@ -49,14 +49,12 @@
|
|||
<td>{{ req.title }}</td>
|
||||
<td>
|
||||
{% for person in req.responsible %}
|
||||
{% person_link person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for person in req.editors %}
|
||||
{% person_link person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -48,9 +48,9 @@
|
|||
{% csrf_token %}
|
||||
<input type="hidden"
|
||||
name="charter_state"
|
||||
value="{{ prev_charter_state.pk }}"/>
|
||||
<input type="hidden" name="state" value="{{ prev_state.slug }}" />
|
||||
<input type="submit" value="Back to {{ prev_charter_state.name }}" />
|
||||
value="{{ prev_charter_state.pk }}">
|
||||
<input type="hidden" name="state" value="{{ prev_state.slug }}">
|
||||
<input type="submit" value="Back to {{ prev_charter_state.name }}">
|
||||
</form>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -22,15 +22,15 @@
|
|||
<input type="submit"
|
||||
class="btn btn-primary"
|
||||
name="send_annc_only"
|
||||
value="Send only to IETF-Announce"/>
|
||||
value="Send only to IETF-Announce">
|
||||
<input type="submit"
|
||||
class="btn btn-primary"
|
||||
name="send_nw_only"
|
||||
value="Send only to New-Work"/>
|
||||
value="Send only to New-Work">
|
||||
<input type="submit"
|
||||
class="btn btn-primary"
|
||||
name="send_both"
|
||||
value="Send to both"/>
|
||||
value="Send to both">
|
||||
{% endif %}
|
||||
<a class="btn btn-secondary float-end" href="{{ back_url }}">Back</a>
|
||||
</form>
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
{% if group.personnel %}
|
||||
<tbody class="meta border-top">
|
||||
{% for slug, label, roles in group.personnel %}
|
||||
<tr>
|
||||
|
@ -62,6 +63,7 @@
|
|||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
{% if group.list_email %}
|
||||
<tbody class="meta border-top">
|
||||
<tr>
|
||||
|
|
|
@ -123,17 +123,17 @@
|
|||
{% if not p.for_current_revision %}for -{{ p.get_dochistory.rev }}{% endif %}
|
||||
)
|
||||
{% if p.send_email %}
|
||||
<span class="bi bi-envelope float-end"
|
||||
title="Email requested to be sent for this discuss"></span>
|
||||
<i class="bi bi-envelope float-end"
|
||||
title="Email requested to be sent for this discuss"></i>
|
||||
{% elif p.any_email_sent == True %}
|
||||
<span class="bi bi-envelope float-end"
|
||||
title="Email requested to be sent for earlier discuss"></span>
|
||||
<i class="bi bi-envelope float-end"
|
||||
title="Email requested to be sent for earlier discuss"></i>
|
||||
{% elif p.any_email_sent == False %}
|
||||
<span class="bi bi-chat-o float-end"
|
||||
title="No email send requests for this discuss"></span>
|
||||
<i class="bi bi-chat-o float-end"
|
||||
title="No email send requests for this discuss"></i>
|
||||
{% else %}
|
||||
<span class="bi bi-chat-o float-end"
|
||||
title="No email send requests for this discuss"></span>
|
||||
<i class="bi bi-chat-o float-end"
|
||||
title="No email send requests for this discuss"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -150,17 +150,17 @@
|
|||
{% if not p.for_current_revision %}for -{{ p.get_dochistory.rev }}{% endif %}
|
||||
)
|
||||
{% if p.send_email %}
|
||||
<span class="bi bi-envelope-check float-end"
|
||||
title="Email requested to be sent for this comment"></span>
|
||||
<i class="bi bi-envelope-check float-end"
|
||||
title="Email requested to be sent for this comment"></i>
|
||||
{% elif p.any_email_sent == True %}
|
||||
<span class="bi bi-envelope-plus float-end"
|
||||
title="Email requested to be sent for earlier comment"></span>
|
||||
<i class="bi bi-envelope-plus float-end"
|
||||
title="Email requested to be sent for earlier comment"></i>
|
||||
{% elif p.any_email_sent == False %}
|
||||
<span class="bi bi-envelope-dash float-end"
|
||||
title="No email send requests for this comment"></span>
|
||||
<i class="bi bi-envelope-dash float-end"
|
||||
title="No email send requests for this comment"></i>
|
||||
{% else %}
|
||||
<span class="bi bi-envelope-exclamation float-end"
|
||||
title="No ballot position send log available"></span>
|
||||
<i class="bi bi-envelope-exclamation float-end"
|
||||
title="No ballot position send log available"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -203,19 +203,19 @@
|
|||
)
|
||||
{% endif %}
|
||||
{% if p.send_email %}
|
||||
<span class="bi bi-envelope float-end"
|
||||
title="Email requested to be sent for this ballot position"></span>
|
||||
<i class="bi bi-envelope float-end"
|
||||
title="Email requested to be sent for this ballot position"></i>
|
||||
{% elif p.any_email_sent == True %}
|
||||
<span class="bi bi-envelope float-end"
|
||||
title="Email requested to be sent for earlier ballot position"></span>
|
||||
<i class="bi bi-envelope float-end"
|
||||
title="Email requested to be sent for earlier ballot position"></i>
|
||||
{% elif p.any_email_sent == False %}
|
||||
<span class="bi bi-chat-o float-end"
|
||||
title="No email send requests for this ballot position"></span>
|
||||
<i class="bi bi-chat-o float-end"
|
||||
title="No email send requests for this ballot position"></i>
|
||||
{% else %}
|
||||
<div class="float-end small italic"
|
||||
title="No ballot position send log available">
|
||||
No email
|
||||
<br />
|
||||
<br>
|
||||
send info
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
{% load origin %}
|
||||
{% load static %}
|
||||
{% load ietf_filters %}
|
||||
{% load person_filters %}
|
||||
{% load person_filters textfilters %}
|
||||
{% block title %}{{ doc.title }}{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
@ -73,8 +73,7 @@
|
|||
</td>
|
||||
<td>
|
||||
{% for editor in editors %}
|
||||
{% person_link editor %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link editor %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -90,8 +89,7 @@
|
|||
</td>
|
||||
<td>
|
||||
{% for leader in responsible %}
|
||||
{% person_link leader %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link leader %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -158,7 +156,7 @@
|
|||
{{ doc.name }}-{{ doc.rev }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ content|sanitize|safe }}
|
||||
{{ content|linkify|urlize_ietf_docs }}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
{% load origin %}
|
||||
{% load static %}
|
||||
{% load ietf_filters %}
|
||||
{% load person_filters %}
|
||||
{% load person_filters textfilters %}
|
||||
{% block pagehead %}
|
||||
<link rel="alternate"
|
||||
type="application/atom+xml"
|
||||
|
@ -227,8 +227,7 @@
|
|||
{{ doc.canonical_name }}-{{ doc.rev }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{# this content is already wrapped in 'pre' #}
|
||||
{{ content|sanitize|maybewordwrap|safe }}
|
||||
<pre>{{ content|maybewordwrap|linkify|urlize_ietf_docs }}</pre>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -139,7 +139,7 @@
|
|||
{{ doc.name }}-{{ doc.rev }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ content|sanitize|maybewordwrap|safe }}
|
||||
<pre>{{ content|maybewordwrap|linkify|urlize_ietf_docs }}</pre>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -96,8 +96,7 @@
|
|||
<td>
|
||||
{# Implementation that uses the current primary email for each author #}
|
||||
{% for author in doc.authors %}
|
||||
{% person_link author %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link author %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -245,8 +244,8 @@
|
|||
{% if file_urls %}
|
||||
{% for label, url in file_urls %}
|
||||
<a class="btn btn-primary btn-sm" href="{{ url }}">
|
||||
<span class="bi bi-file-{% if label == "pdf" %}pdf{% elif label == "xml" or label == "htmlized" %}code{% elif label == "bibtex" %}ruled{% elif label == "plain text" %}text{% endif %}">
|
||||
</span>
|
||||
<i class="bi bi-file-{% if label == "pdf" %}pdf{% elif label == "xml" or label == "htmlized" %}code{% elif label == "bibtex" %}ruled{% elif label == "plain text" %}text{% endif %}">
|
||||
</i>
|
||||
{{ label }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
|
@ -306,8 +305,7 @@
|
|||
{% endfor %}
|
||||
{% if no_review_from_teams %}
|
||||
{% for team in no_review_from_teams %}
|
||||
{{ team.acronym.upper }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{{ team.acronym.upper }}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
will not review this version
|
||||
{% endif %}
|
||||
|
@ -316,23 +314,23 @@
|
|||
{% if can_request_review %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url "ietf.doc.views_review.request_review" doc.name %}">
|
||||
<span class="bi bi-check-circle">
|
||||
</span>
|
||||
<i class="bi bi-check-circle">
|
||||
</i>
|
||||
Request review
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if can_submit_unsolicited_review_for_teams|length == 1 %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url "ietf.doc.views_review.complete_review" doc.name can_submit_unsolicited_review_for_teams.0.acronym %}">
|
||||
<span class="bi bi-pencil-square">
|
||||
</span>
|
||||
<i class="bi bi-pencil-square">
|
||||
</i>
|
||||
Submit unsolicited review
|
||||
</a>
|
||||
{% elif can_submit_unsolicited_review_for_teams %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url "ietf.doc.views_review.submit_unsolicited_review_choose_team" doc.name %}">
|
||||
<span class="bi bi-pencil-square">
|
||||
</span>
|
||||
<i class="bi bi-pencil-square">
|
||||
</i>
|
||||
Submit unsolicited review
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -444,16 +442,14 @@
|
|||
<span title="{{ m.desc }} ({{ m.group.acronym }} milestone)"
|
||||
class="milestone">
|
||||
{{ m.due|date:"M Y" }} - {{m }}
|
||||
</span>
|
||||
{% if not forloop.last %},{% endif %}
|
||||
</span>{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
)
|
||||
{% endif %}
|
||||
{% if stream_tags %}
|
||||
<div class="stream-tags">
|
||||
{% for tag in stream_tags %}
|
||||
{{ tag.name }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{{ tag.name }}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
@ -512,12 +508,11 @@
|
|||
{% if presentations %}
|
||||
{% for pres in presentations %}
|
||||
<a href="{% url 'ietf.meeting.views.agenda_ical' num=pres.session.meeting.number session_id=pres.session.id %}">
|
||||
<span class="bi bi-calendar">
|
||||
</span>
|
||||
<i class="bi bi-calendar">
|
||||
</i>
|
||||
</a>
|
||||
{{ pres.session.short_name }} at {{ pres.session.meeting }}
|
||||
{% if pres.rev and pres.rev != doc.rev %}(version -{{ pres.rev }}){% endif %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% if pres.rev and pres.rev != doc.rev %}(version -{{ pres.rev }}){% endif %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<span class="text-muted">
|
||||
|
@ -674,8 +669,8 @@
|
|||
{% if can_edit %}
|
||||
<a class="btn btn-primary btn-sm mt-3"
|
||||
href="{% url "ietf.doc.views_doc.remind_action_holders" name=doc.name %}">
|
||||
<span class="bi bi-envelope">
|
||||
</span>
|
||||
<i class="bi bi-envelope">
|
||||
</i>
|
||||
Send reminder email
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -939,8 +934,8 @@
|
|||
{% endif %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
<tbody class="meta border-top">
|
||||
{% if rfc_editor_state %}
|
||||
{% if rfc_editor_state %}
|
||||
<tbody class="meta border-top">
|
||||
<tr>
|
||||
<th>
|
||||
RFC Editor
|
||||
|
@ -981,29 +976,29 @@
|
|||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
<div class="buttonlist">
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="mailto:{{ doc.name }}@ietf.org?subject=Mail%20regarding%20{{ doc.name }}">
|
||||
<span class="bi bi-envelope">
|
||||
</span>
|
||||
<i class="bi bi-envelope">
|
||||
</i>
|
||||
Email authors
|
||||
</a>
|
||||
{% if doc.group.type.slug == 'wg' or doc.group.type.slug == 'rg' %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="mailto:{{ doc.group.list_email }}?subject=Mail%20regarding%20{{ doc.name }}">
|
||||
<span class="bi bi-envelope">
|
||||
</span>
|
||||
<i class="bi bi-envelope">
|
||||
</i>
|
||||
Email {{ doc.group.type }}
|
||||
</a>
|
||||
{% endif %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url "ietf.ipr.views.search" %}?submit=draft&id={{ doc.name }}"
|
||||
rel="nofollow">
|
||||
<span class="bi bi-lightning">
|
||||
</span>
|
||||
<i class="bi bi-lightning">
|
||||
</i>
|
||||
IPR
|
||||
{% if doc.related_ipr %}
|
||||
<span class="badge">
|
||||
|
@ -1014,23 +1009,23 @@
|
|||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.doc.views_doc.document_references' doc.canonical_name %}"
|
||||
rel="nofollow">
|
||||
<span class="bi bi-arrow-left">
|
||||
</span>
|
||||
<i class="bi bi-arrow-left">
|
||||
</i>
|
||||
References
|
||||
</a>
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.canonical_name %}"
|
||||
rel="nofollow">
|
||||
<span class="bi bi-arrow-right">
|
||||
</span>
|
||||
<i class="bi bi-arrow-right">
|
||||
</i>
|
||||
Referenced by
|
||||
</a>
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{{ settings.IDNITS_BASE_URL }}?url=https://www.ietf.org/archive/id/{{ doc.filename_with_rev }}"
|
||||
rel="nofollow"
|
||||
target="_blank">
|
||||
<span class="bi bi-exclamation">
|
||||
</span>
|
||||
<i class="bi bi-exclamation">
|
||||
</i>
|
||||
Nits
|
||||
</a>
|
||||
<div class="dropdown inline">
|
||||
|
@ -1039,11 +1034,11 @@
|
|||
id="ddSearchMenu"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-expanded="true">
|
||||
<span class="bi bi-search">
|
||||
</span>
|
||||
<i class="bi bi-search">
|
||||
</i>
|
||||
Search lists
|
||||
<span class="caret">
|
||||
</span>
|
||||
<i class="caret">
|
||||
</i>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li role="presentation">
|
||||
|
@ -1078,15 +1073,15 @@
|
|||
<a class="btn btn-primary btn-sm track-untrack-doc {% if not doc.tracked_in_personal_community_list %}hide{% endif %}"
|
||||
href="{% url "ietf.community.views.untrack_document" username=user.username name=doc.name %}"
|
||||
title="Remove from your personal ID list">
|
||||
<span class="bi bi-bookmark-check-fill">
|
||||
</span>
|
||||
<i class="bi bi-bookmark-check-fill">
|
||||
</i>
|
||||
Untrack
|
||||
</a>
|
||||
<a class="btn btn-primary btn-sm track-untrack-doc {% if doc.tracked_in_personal_community_list %}hide{% endif %}"
|
||||
href="{% url "ietf.community.views.track_document" username=user.username name=doc.name %}"
|
||||
title="Add to your personal ID list">
|
||||
<span class="bi bi-bookmark">
|
||||
</span>
|
||||
<i class="bi bi-bookmark">
|
||||
</i>
|
||||
Track
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -1094,15 +1089,15 @@
|
|||
<a class="btn btn-primary btn-sm review-wish-add-remove-doc ajax {% if not doc.has_review_wish %}hide{% endif %}"
|
||||
href="{% url "ietf.doc.views_review.review_wishes_remove" name=doc.name %}?next={{ request.get_full_path|urlencode }}"
|
||||
title="Remove from your review wishes for all teams">
|
||||
<span class="bi bi-chats">
|
||||
</span>
|
||||
<i class="bi bi-chats">
|
||||
</i>
|
||||
Remove review wishes
|
||||
</a>
|
||||
<a class="btn btn-primary btn-sm review-wish-add-remove-doc {% if user.review_teams|length_is:"1" %}ajax {% endif %}{% if doc.has_review_wish %}hide{% endif %}"
|
||||
href="{% url "ietf.doc.views_review.review_wish_add" name=doc.name %}?next={{ request.get_full_path|urlencode }}"
|
||||
title="Add to your review wishes">
|
||||
<span class="bi bi-chats">
|
||||
</span>
|
||||
<i class="bi bi-chats">
|
||||
</i>
|
||||
Add review wish
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -1138,13 +1133,13 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ content|sanitize|safe }}
|
||||
<pre>{{ content|sanitize|safe|default:"(Unavailable)" }}</pre>
|
||||
</div>
|
||||
</div>
|
||||
{% if split_content %}
|
||||
<a class="btn btn-primary my-3" href="?include_text=1">
|
||||
<span class="bi bi-caret-down">
|
||||
</span>
|
||||
<i class="bi bi-caret-down">
|
||||
</i>
|
||||
Show full document text
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -1153,7 +1148,7 @@
|
|||
<div class="card-header bg-warning">
|
||||
<b>This Internet-Draft is no longer active. A copy of
|
||||
the expired Internet-Draft can be found at:</b>
|
||||
<br />
|
||||
<br>
|
||||
<a href="{{ doc.get_href }}">
|
||||
{{ doc.get_href }}
|
||||
</a>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
{% block pagehead %}
|
||||
<link rel="alternate"
|
||||
type="application/atom+xml"
|
||||
href="/feed/document-changes/{{ doc.name }}/"/>
|
||||
href="/feed/document-changes/{{ doc.name }}/">
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
|
@ -104,7 +104,7 @@
|
|||
<div class="buttonlist">
|
||||
<a class="btn btn-primary"
|
||||
href="{% url 'ietf.doc.views_doc.add_comment' name=doc.name %}">
|
||||
<span class="bi bi-plus"></span>
|
||||
<i class="bi bi-plus"></i>
|
||||
Add comment
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load static %}
|
||||
{% load ietf_filters %}
|
||||
{% load ietf_filters textfilters %}
|
||||
{% block title %}{{ doc.title }}{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
@ -92,8 +92,7 @@
|
|||
{% if presentations %}
|
||||
{% for pres in presentations %}
|
||||
{{ pres.session.short_name }} at {{ pres.session.meeting }}
|
||||
{% if pres.rev != doc.rev %}(version -{{ pres.rev }}){% endif %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% if pres.rev != doc.rev %}(version -{{ pres.rev }}){% endif %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
None
|
||||
|
@ -124,7 +123,7 @@
|
|||
{% if content_is_html %}
|
||||
{{ content|sanitize|safe }}
|
||||
{% else %}
|
||||
<pre>{{ content|sanitize|maybewordwrap|safe }}</pre>
|
||||
<pre>{{ content|maybewordwrap|linkify|urlize_ietf_docs }}</pre>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
Not available as plain text.
|
||||
|
|
|
@ -54,13 +54,13 @@
|
|||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.doc.views_doc.document_references' name %}"
|
||||
rel="nofollow">
|
||||
<span class="bi bi-arrow-left"></span>
|
||||
<i class="bi bi-arrow-left"></i>
|
||||
References
|
||||
</a>
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.doc.views_doc.document_referenced_by' name %}"
|
||||
rel="nofollow">
|
||||
<span class="bi bi-arrow-right"></span>
|
||||
<i class="bi bi-arrow-right"></i>
|
||||
Referenced by
|
||||
</a>
|
||||
</td>
|
||||
|
|
|
@ -41,13 +41,13 @@
|
|||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.doc.views_doc.document_references' name %}"
|
||||
rel="nofollow">
|
||||
<span class="bi bi-arrow-left"></span>
|
||||
<i class="bi bi-arrow-left"></i>
|
||||
References
|
||||
</a>
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.doc.views_doc.document_referenced_by' name %}"
|
||||
rel="nofollow">
|
||||
<span class="bi bi-arrow-right"></span>
|
||||
<i class="bi bi-arrow-right"></i>
|
||||
Referenced by
|
||||
</a>
|
||||
</td>
|
||||
|
|
|
@ -14,35 +14,37 @@
|
|||
{% if doc.rev != latest_rev %}
|
||||
<div class="alert alert-warning my-3">The information below is for an old version of the document.</div>
|
||||
{% endif %}
|
||||
<table class="table table-sm table-borderless">
|
||||
<tbody class="meta border-top">
|
||||
{% if doc.get_state_slug != "active" %}
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>State</th>
|
||||
<td class="edit"></td>
|
||||
<td>{{ doc.get_state.name }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if other_reviews %}
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Other reviews</th>
|
||||
<td class="edit"></td>
|
||||
<td>
|
||||
{% for review_assignment in other_reviews %}
|
||||
{% include "doc/review_assignment_summary.html" with current_doc_name=review_assignemnt.review_request.doc.name current_rev=review_assignment.reviewed_rev %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% if doc.get_state_slug != "active" or other_reviews %}
|
||||
<table class="table table-sm table-borderless">
|
||||
<tbody class="meta border-top">
|
||||
{% if doc.get_state_slug != "active" %}
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>State</th>
|
||||
<td class="edit"></td>
|
||||
<td>{{ doc.get_state.name }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if other_reviews %}
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Other reviews</th>
|
||||
<td class="edit"></td>
|
||||
<td>
|
||||
{% for review_assignment in other_reviews %}
|
||||
{% include "doc/review_assignment_summary.html" with current_doc_name=review_assignemnt.review_request.doc.name current_rev=review_assignment.reviewed_rev %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% if doc.rev and content != None %}
|
||||
<div class="card mt-5">
|
||||
<div class="card-header">{{ doc.name }}-{{ doc.rev }}</div>
|
||||
<div class="card-body">
|
||||
<pre class="pasted">{{ content|linkify|urlize_ietf_docs }}</pre>
|
||||
<pre class="pasted">{{ content|maybewordwrap|linkify|urlize_ietf_docs }}</pre>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -53,8 +53,7 @@
|
|||
<td class="edit"></td>
|
||||
<td>
|
||||
{% for rel in relation_group.list %}
|
||||
{{ rel.target.document.canonical_name|upper|urlize_ietf_docs }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{{ rel.target.document.canonical_name|upper|urlize_ietf_docs }}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -164,7 +163,7 @@
|
|||
{{ doc.name }}-{{ doc.rev }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<pre> {{ content|sanitize|maybewordwrap|safe }}</pre>
|
||||
<pre>{{ content|maybewordwrap|linkify|urlize_ietf_docs }}</pre>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -56,8 +56,7 @@
|
|||
<br>
|
||||
Action holder{{ doc.documentactionholder_set.all|pluralize }}:
|
||||
{% for action_holder in doc.documentactionholder_set.all %}
|
||||
{% person_link action_holder.person title=action_holder.role_for_doc %} {{ action_holder|action_holder_badge }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link action_holder.person title=action_holder.role_for_doc %} {{ action_holder|action_holder_badge }}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if doc.note %}
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
{% for form in formset %}
|
||||
<div class="card author-panel mb-3">
|
||||
<div role="button" class="handle card-header">
|
||||
<span class="bi bi-list"></span>
|
||||
<i class="bi bi-list"></i>
|
||||
</div>
|
||||
<div class="card-body draggable">
|
||||
<div class="form-horizontal">{% bootstrap_form form layout='horizontal' %}</div>
|
||||
|
@ -40,7 +40,7 @@
|
|||
<div id="empty-author-form" class="template" style="display: none;">
|
||||
<div class="card author-panel mb-3">
|
||||
<div role="button" class="handle card-header">
|
||||
<span class="bi bi-list"></span>
|
||||
<i class="bi bi-list"></i>
|
||||
</div>
|
||||
<div class="card-body draggable">
|
||||
<div class="form-horizontal">{% bootstrap_form formset.empty_form layout='horizontal' %}</div>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<p>
|
||||
The IETF Datatracker is the day-to-day front-end to the IETF database for people
|
||||
who work on IETF standards.
|
||||
<br />
|
||||
<br>
|
||||
It contains data about the documents, working groups,
|
||||
meetings, agendas, minutes, presentations, and more, of the IETF.
|
||||
</p>
|
||||
|
|
|
@ -18,14 +18,16 @@
|
|||
<th data-sort="status">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for doc in docs %}
|
||||
<tr>
|
||||
<td>{{ doc.displayname_with_link }}</td>
|
||||
{% include "doc/search/status_columns.html" %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if docs %}
|
||||
<tbody>
|
||||
{% for doc in docs %}
|
||||
<tr>
|
||||
<td>{{ doc.displayname_with_link }}</td>
|
||||
{% include "doc/search/status_columns.html" %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
|
|
|
@ -20,10 +20,8 @@
|
|||
This reminder will be sent to
|
||||
{% for person in doc.action_holders.all %}
|
||||
{% if forloop.last and not forloop.first %}and{% endif %}
|
||||
{% person_link person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
.
|
||||
{% person_link person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}.
|
||||
</p>
|
||||
<button type="submit"
|
||||
class="btn btn-primary"
|
||||
|
|
|
@ -117,10 +117,10 @@
|
|||
<div class="list-group"></div>
|
||||
</div>
|
||||
<div class="error alert alert-warning visually-hidden my-3">
|
||||
<span class="content"></span>
|
||||
<span class="content"> </span>
|
||||
<span class="visually-hidden try-yourself">
|
||||
(searched for
|
||||
<a class="query-url" href="#">"<span class="query"></span>"</a>,
|
||||
<a class="query-url" href="#">"<span class="query"> </span>"</a>,
|
||||
corresponding
|
||||
<a class="query-data-url" href="#">export</a>).
|
||||
</span>
|
||||
|
@ -137,9 +137,9 @@
|
|||
{% spaceless %}
|
||||
<div class="template" style="display:none">
|
||||
<button type="button" class="mail-archive-search-result list-group-item">
|
||||
<small class="date float-end"></small>
|
||||
<small class="from float-end"></small>
|
||||
<span class="subject"></span>
|
||||
<small class="date float-end"> </small>
|
||||
<small class="from float-end"> </small>
|
||||
<span class="subject"> </span>
|
||||
</button>
|
||||
</div>
|
||||
{% endspaceless %}
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
{% if can_edit_deadline %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url "ietf.doc.views_review.edit_deadline" name=doc.name request_id=review_req.pk %}">
|
||||
<span class="bi bi-pencil"></span>
|
||||
<i class="bi bi-pencil"></i>
|
||||
Edit
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -83,8 +83,7 @@
|
|||
<th>Authors</th>
|
||||
<td>
|
||||
{% for author in review_req.doc.authors %}
|
||||
{% person_link author %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link author %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -95,8 +94,7 @@
|
|||
<th>WG chairs</th>
|
||||
<td>
|
||||
{% for chair in wg_chairs %}
|
||||
{% person_link chair %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link chair %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -160,8 +158,8 @@
|
|||
{% if can_edit_comment %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url "ietf.doc.views_review.edit_comment" name=doc.name request_id=review_req.pk %}">
|
||||
<span class="bi bi-pencil">
|
||||
</span>
|
||||
<i class="bi bi-pencil">
|
||||
</i>
|
||||
Edit comment
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -192,8 +190,8 @@
|
|||
{% if assignment.can_reject_reviewer_assignment %}
|
||||
<a class="btn btn-danger btn-sm"
|
||||
href="{% url "ietf.doc.views_review.reject_reviewer_assignment" name=doc.name assignment_id=assignment.pk %}">
|
||||
<span class="bi bi-x-circle">
|
||||
</span>
|
||||
<i class="bi bi-x-circle">
|
||||
</i>
|
||||
Reject
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -206,8 +204,8 @@
|
|||
type="submit"
|
||||
name="action"
|
||||
value="accept">
|
||||
<span class="bi bi-check">
|
||||
</span>
|
||||
<i class="bi bi-check">
|
||||
</i>
|
||||
Accept
|
||||
</button>
|
||||
</form>
|
||||
|
@ -254,8 +252,8 @@
|
|||
{% if assignment.can_complete_review %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url "ietf.doc.views_review.complete_review" name=doc.name assignment_id=assignment.pk %}">
|
||||
<span class="bi bi-pencil">
|
||||
</span>
|
||||
<i class="bi bi-pencil">
|
||||
</i>
|
||||
{% if assignment.state_id == "assigned" or assignment.state_id == "accepted" %}
|
||||
Complete review
|
||||
{% else %}
|
||||
|
@ -267,14 +265,14 @@
|
|||
{% if can_assign_reviewer %}
|
||||
<a class="btn btn-danger btn-sm"
|
||||
href="{% url "ietf.doc.views_review.mark_reviewer_assignment_no_response" name=doc.name assignment_id=assignment.pk %}">
|
||||
<span class="bi bi-question-circle">
|
||||
</span>
|
||||
<i class="bi bi-question-circle">
|
||||
</i>
|
||||
No response
|
||||
</a>
|
||||
<a class="btn btn-danger btn-sm"
|
||||
href="{% url "ietf.doc.views_review.withdraw_reviewer_assignment" name=doc.name assignment_id=assignment.pk %}">
|
||||
<span class="bi bi-x-circle">
|
||||
</span>
|
||||
<i class="bi bi-x-circle">
|
||||
</i>
|
||||
Withdraw
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -342,8 +340,8 @@
|
|||
{% if can_assign_reviewer %}
|
||||
<a class="btn btn-primary"
|
||||
href="{% url "ietf.doc.views_review.assign_reviewer" name=doc.name request_id=review_req.pk %}">
|
||||
<span class="bi bi-forward">
|
||||
</span>
|
||||
<i class="bi bi-forward">
|
||||
</i>
|
||||
Assign reviewer
|
||||
</a>
|
||||
{% endif %}
|
|
@ -17,7 +17,7 @@
|
|||
{% if can_close_request %}
|
||||
<a class="btn btn-danger"
|
||||
href="{% url "ietf.doc.views_review.close_request" name=doc.name request_id=review_req.pk %}">
|
||||
<span class="bi bi-x-circle"></span>
|
||||
<i class="bi bi-x-circle"></i>
|
||||
Close request
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -31,17 +31,15 @@
|
|||
<th data-sort="description">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for h in history %}
|
||||
{% if h.history_change_reason %}
|
||||
<tr>
|
||||
<td>{{ h.history_date|date }}</td>
|
||||
<td>{% person_link h.history_user.person %}</td>
|
||||
<td>{{ h.history_change_reason }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% for h in history %}
|
||||
{% if h.history_change_reason %}
|
||||
<tr>
|
||||
<td>{{ h.history_date|date }}</td>
|
||||
<td>{% person_link h.history_user.person %}</td>
|
||||
<td>{{ h.history_change_reason }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -7,8 +7,10 @@
|
|||
{% origin %}
|
||||
<h1>
|
||||
Remove review wish
|
||||
<br>
|
||||
<small class="text-muted">{{ doc.name }}</small>
|
||||
{% if doc.name %}
|
||||
<br>
|
||||
<small class="text-muted">{{ doc.name }}</small>
|
||||
{% endif %}
|
||||
</h1>
|
||||
<form class="my-3" method="post">
|
||||
{% csrf_token %}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
{{ form.name|add_class:"form-control"|attr:"placeholder:Document name/title/RFC number" }}
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary" type="submit">
|
||||
<span class="bi bi-search"/>
|
||||
<i class="bi bi-search"></i>
|
||||
Search
|
||||
</button>
|
||||
</span>
|
||||
|
@ -59,7 +59,7 @@
|
|||
{% if value in form.doctypes.value %}checked{% endif %}
|
||||
name="doctypes"
|
||||
value="{{ value }}"
|
||||
id="id_doctypes_{{ value }}"/>
|
||||
id="id_doctypes_{{ value }}">
|
||||
<label class="form-check-label" for="id_doctypes_{{ value }}">{{ label|safe|capfirst_allcaps }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
@ -73,7 +73,7 @@
|
|||
name="by"
|
||||
value="author"
|
||||
{% if form.by.value == "author" %}checked{% endif %}
|
||||
id="author"/>
|
||||
id="author">
|
||||
<label for="author" class="form-check-label fw-bold">Author or Affiliation Name</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -87,7 +87,7 @@
|
|||
name="by"
|
||||
value="group"
|
||||
{% if form.by.value == "group" %}checked{% endif %}
|
||||
id="group"/>
|
||||
id="group">
|
||||
<label for="group" class="form-check-label fw-bold">WG</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -101,7 +101,7 @@
|
|||
name="by"
|
||||
value="area"
|
||||
{% if form.by.value == "area" %}checked{% endif %}
|
||||
id="area"/>
|
||||
id="area">
|
||||
<label for="area" class="form-check-label fw-bold">Area</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -115,7 +115,7 @@
|
|||
name="by"
|
||||
value="ad"
|
||||
{% if form.by.value == "ad" %}checked{% endif %}
|
||||
id="areadir"/>
|
||||
id="areadir">
|
||||
<label for="areadir" class="form-check-label fw-bold">AD</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -129,7 +129,7 @@
|
|||
name="by"
|
||||
value="state"
|
||||
{% if form.by.value == "state" %}checked{% endif %}
|
||||
id="state"/>
|
||||
id="state">
|
||||
<label for="state" class="form-check-label fw-bold">IESG State</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -144,7 +144,7 @@
|
|||
name="by"
|
||||
value="irtfstate"
|
||||
{% if form.by.value == "irtfstate" %}checked{% endif %}
|
||||
id="irtfstate"/>
|
||||
id="irtfstate">
|
||||
<label for="irtfstate" class="form-check-label fw-bold">IRTF State</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -158,7 +158,7 @@
|
|||
name="by"
|
||||
value="stream"
|
||||
{% if form.by.value == "stream" %}checked{% endif %}
|
||||
id="stream"/>
|
||||
id="stream">
|
||||
<label for="stream" class="form-check-label fw-bold">Stream</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -167,7 +167,7 @@
|
|||
<div class="row mb-3 search_field">
|
||||
<div class="col-sm-4 d-grid">
|
||||
<button class="btn btn-primary" type="submit">
|
||||
<span class="bi bi-search"/>
|
||||
<i class="bi bi-search"></i>
|
||||
Search
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
<a href="{% url "ietf.community.views.untrack_document" username=request.user.username name=doc.name %}"
|
||||
class="track-untrack-doc {% if not doc.tracked_in_personal_community_list %}visually-hidden{% endif %}"
|
||||
title="Remove from your personal ID list">
|
||||
<span class="bi bi-bookmark-check-fill"></span>
|
||||
<i class="bi bi-bookmark-check-fill"></i>
|
||||
</a>
|
||||
<a href="{% url "ietf.community.views.track_document" username=request.user.username name=doc.name %}"
|
||||
class="track-untrack-doc {% if doc.tracked_in_personal_community_list %}visually-hidden{% endif %}"
|
||||
title="Add to your personal ID list">
|
||||
<span class="bi bi-bookmark"></span>
|
||||
<i class="bi bi-bookmark"></i>
|
||||
</a>
|
||||
<br>
|
||||
{% endif %}
|
||||
|
@ -30,19 +30,19 @@
|
|||
<a class="review-wish-add-remove-doc ajax {% if not doc.has_review_wish %}visually-hidden{% endif %}"
|
||||
href="{% url "ietf.doc.views_review.review_wishes_remove" name=doc.name %}?next={{ request.get_full_path|urlencode }}"
|
||||
title="Remove from your review wishes for all teams">
|
||||
<span class="bi bi-chats"></span>
|
||||
<i class="bi bi-chats"></i>
|
||||
</a>
|
||||
<a class="review-wish-add-remove-doc {% if user.review_teams|length_is:"1" %}ajax {% endif %} {% if doc.has_review_wish %}visually-hidden{% endif %}"
|
||||
href="{% url "ietf.doc.views_review.review_wish_add" name=doc.name %}?next={{ request.get_full_path|urlencode }}"
|
||||
title="Add to your review wishes">
|
||||
<span class="bi bi-chats-o"></span>
|
||||
<i class="bi bi-chats-o"></i>
|
||||
</a>
|
||||
<br>
|
||||
{% endif %}
|
||||
{% for session in doc.sessions %}
|
||||
<a href="{% url 'ietf.meeting.views.agenda_ical' num=session.meeting.number session_id=session.id %}"
|
||||
title="Calendar entry: document is on the agenda for {{ session.group.acronym }}@{{ session.meeting }}">
|
||||
<span class="bi bi-calendar"></span>
|
||||
<i class="bi bi-calendar"></i>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</td>
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
{{ h.title|cut:" " }}
|
||||
{% if h.sorted and meta.max %}
|
||||
{% if h.direction == "asc" %}
|
||||
<span class="bi bi-caret-up"></span>
|
||||
<i class="bi bi-caret-up"></i>
|
||||
{% else %}
|
||||
<span class="bi bi-caret-down"></span>
|
||||
<i class="bi bi-caret-down"></i>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</a>
|
||||
|
|
|
@ -56,23 +56,20 @@
|
|||
Review{{ doc.reviewed_by_teams|pluralize }}:
|
||||
{% spaceless %}
|
||||
{% for acronym in doc.reviewed_by_teams %}
|
||||
<a href="{% url "ietf.group.views.group_home" acronym=acronym %}">{{ acronym }}</a>
|
||||
{% if not forloop.last %},{% endif %}
|
||||
<a href="{% url "ietf.group.views.group_home" acronym=acronym %}">{{ acronym }}</a>{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% endspaceless %}
|
||||
{% endif %}
|
||||
{% for m in doc.milestones %}
|
||||
{% if forloop.first %}<br>{% endif %}
|
||||
<span title="Part of {{ m.group.acronym }} milestone: {{ m.desc }}"
|
||||
class="milestone">{{ m.due|date:"M Y" }}</span>
|
||||
{% if not forloop.last %},{% endif %}
|
||||
class="milestone">{{ m.due|date:"M Y" }}</span>{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% if doc.action_holders_enabled and doc.action_holders.exists %}
|
||||
<br>
|
||||
Action Holder{{ doc.documentactionholder_set.all|pluralize }}:
|
||||
{% for action_holder in doc.documentactionholder_set.all %}
|
||||
{% person_link action_holder.person title=action_holder.role_for_doc %} {{ action_holder|action_holder_badge }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link action_holder.person title=action_holder.role_for_doc %} {{ action_holder|action_holder_badge }}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
<td>
|
||||
{% for s in state.next_states.all %}
|
||||
{{ s.name }}
|
||||
<br />
|
||||
<br>
|
||||
{% endfor %}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
|
|
@ -34,6 +34,6 @@
|
|||
format: "yyyy-mm-dd",
|
||||
todayBtn: "linked",
|
||||
todayHighlight: true
|
||||
}).wrap('<div class="input-group mb-3"></div>').parent().prepend('<span class="input-group-text"><span class="bi bi-calendar"></span></span>');
|
||||
}).wrap('<div class="input-group mb-3"></div>').parent().prepend('<span class="input-group-text"><i class="bi bi-calendar"></i></span>');
|
||||
</script>
|
||||
{% endblock %}
|
|
@ -67,8 +67,7 @@
|
|||
(None)
|
||||
{% else %}
|
||||
{% for tag in tags %}
|
||||
{{ tag }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{{ tag }}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</td>
|
||||
|
|
|
@ -11,9 +11,11 @@
|
|||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>{{ title|safe }}</h1>
|
||||
<p>
|
||||
{{ description|safe }}
|
||||
</p>
|
||||
{% if description %}
|
||||
<p>
|
||||
{{ description|safe }}
|
||||
</p>
|
||||
{% endif %}
|
||||
<form method="post" class="show-required">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form layout='horizontal' %}
|
||||
|
|
|
@ -2,7 +2,13 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
Google Webmaster Tools Verification
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<h3>
|
||||
This is a verification page for the
|
||||
|
|
|
@ -28,21 +28,17 @@
|
|||
<td>{{ group.name }}</td>
|
||||
<td>
|
||||
{% for ad in group.ads %}
|
||||
{% person_link ad.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link ad.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for secretary in group.secretaries %}
|
||||
{% person_link
|
||||
{{.%erson.plain_nam
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link secretary.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for chair in group.chairs %}
|
||||
{% person_link chair.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link chair.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -49,8 +49,10 @@
|
|||
{{ area.name }}
|
||||
<a href="{% url 'ietf.group.views.active_groups' group_type='wg' %}#{{ area.acronym }}">({{ area.acronym|upper }})</a>
|
||||
</h2>
|
||||
<p>
|
||||
{{ area.description|linkify|urlize_ietf_docs|safe }}
|
||||
</p>
|
||||
{% if area.description %}
|
||||
<p>
|
||||
{{ area.description|linkify|urlize_ietf_docs|safe }}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endblock %}
|
|
@ -30,7 +30,7 @@
|
|||
<td>{{ group.name }}</td>
|
||||
<td class="text-center">
|
||||
{% if group.type_id == 'review' %}
|
||||
<span class="bi bi-check-lg text-success"></span>
|
||||
<i class="bi bi-check-lg text-success"></i>
|
||||
<span class="visually-hidden">yes</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
@ -39,20 +39,17 @@
|
|||
</td>
|
||||
<td>
|
||||
{% for ad in group.ads %}
|
||||
{% person_link ad.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link ad.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for secretary in group.secretaries %}
|
||||
{% person_link secretary.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link secretary.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for chair in group.chairs %}
|
||||
{% person_link chair.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link chair.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -34,8 +34,7 @@
|
|||
<td>{{ group.name }}</td>
|
||||
<td>
|
||||
{% for lead in group.leads %}
|
||||
{% person_link lead.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link lead.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -27,14 +27,12 @@
|
|||
<td>{{ group.name }}</td>
|
||||
<td>
|
||||
{% for secretary in group.secretaries %}
|
||||
{% person_link secretary.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link secretary.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for chair in group.chairs %}
|
||||
{% person_link chair.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link chair.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -44,4 +42,4 @@
|
|||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -32,20 +32,17 @@
|
|||
</td>
|
||||
<td>
|
||||
{% for ad in group.ads %}
|
||||
{% person_link ad.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link ad.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for secretary in group.secretaries %}
|
||||
{% person_link secretary.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link secretary.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for chair in group.chairs %}
|
||||
{% person_link chair.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link chair.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -37,8 +37,7 @@
|
|||
<td>{{ group.name }}</td>
|
||||
<td>
|
||||
{% for chair in group.chairs %}
|
||||
{% person_link chair.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link chair.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -26,8 +26,7 @@
|
|||
<td>{{ group.name }}</td>
|
||||
<td>
|
||||
{% for chair in group.chairs %}
|
||||
{% person_link chair.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link chair.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -74,8 +74,7 @@
|
|||
<td>{{ group.name }}</td>
|
||||
<td>
|
||||
{% for chair in group.chairs %}
|
||||
{% role_person_link chair %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% role_person_link chair %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% if group.ad_out_of_area %}
|
||||
(Assigned AD: {% role_person_link group.ad_role %})
|
||||
|
|
|
@ -103,15 +103,17 @@
|
|||
<th data-sort="description">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for h in reviewersettings.history.all %}
|
||||
<tr>
|
||||
<td>{{ h.history_date|date }}</td>
|
||||
<td>{% person_link h.history_user.person %}</td>
|
||||
<td>{{ h.history_change_reason }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if reviewersettings.history.all %}
|
||||
<tbody>
|
||||
{% for h in reviewersettings.history.all %}
|
||||
<tr>
|
||||
<td>{{ h.history_date|date }}</td>
|
||||
<td>{% person_link h.history_user.person %}</td>
|
||||
<td>{{ h.history_change_reason }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div>
|
||||
<h2 class="mt-5">History of unavailable periods</h2>
|
||||
|
@ -128,21 +130,23 @@
|
|||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for h in unavailable_periods_history.all %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ h.history_date|date }}
|
||||
</td>
|
||||
<td>
|
||||
{% person_link h.history_user.person %}
|
||||
</td>
|
||||
<td>
|
||||
{{ h.history_change_reason }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if unavailable_periods_history.all %}
|
||||
<tbody>
|
||||
{% for h in unavailable_periods_history.all %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ h.history_date|date }}
|
||||
</td>
|
||||
<td>
|
||||
{% person_link h.history_user.person %}
|
||||
</td>
|
||||
<td>
|
||||
{{ h.history_change_reason }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div>
|
||||
<p style="padding-top: 2em;">
|
||||
|
|
|
@ -83,8 +83,8 @@
|
|||
</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<input type="hidden" name="state" value="{{ state.pk }}" />
|
||||
<input type="hidden" name="action" value="setnextstates" />
|
||||
<input type="hidden" name="state" value="{{ state.pk }}">
|
||||
<input type="hidden" name="action" value="setnextstates">
|
||||
<button class="mt-2 btn btn-primary btn-sm" type="submit">Save</button>
|
||||
</form>
|
||||
</td>
|
||||
|
@ -92,9 +92,9 @@
|
|||
{% if not state.mandatory %}
|
||||
<form class="set-state text-end" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="state" value="{{ state.pk }}" />
|
||||
<input type="hidden" name="action" value="setstateactive" />
|
||||
<input type="hidden" name="active" value="{{ state.used|yesno:"0,1" }}" />
|
||||
<input type="hidden" name="state" value="{{ state.pk }}">
|
||||
<input type="hidden" name="action" value="setstateactive">
|
||||
<input type="hidden" name="active" value="{{ state.used|yesno:"0,1" }}">
|
||||
<button class="btn btn-{% if state.used %}danger{% else %}success{% endif %} btn-sm"
|
||||
type="submit"
|
||||
title="Click to {% if state.used %}de{% endif %}activate this state">
|
||||
|
@ -129,9 +129,9 @@
|
|||
<td>
|
||||
<form class="set-tag text-end" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="tag" value="{{ tag.pk }}" />
|
||||
<input type="hidden" name="action" value="settagactive" />
|
||||
<input type="hidden" name="active" value="{{ tag.used|yesno:"0,1" }}" />
|
||||
<input type="hidden" name="tag" value="{{ tag.pk }}">
|
||||
<input type="hidden" name="action" value="settagactive">
|
||||
<input type="hidden" name="active" value="{{ tag.used|yesno:"0,1" }}">
|
||||
<button class="btn btn-{% if tag.used %}danger{% else %}success{% endif %} btn-sm"
|
||||
type="submit"
|
||||
title="Click to {% if tag.used %}de{% endif %}activate this tag">
|
||||
|
|
|
@ -68,10 +68,8 @@
|
|||
<div class="due handle col-md-2 col-form-label col-form-label-md">
|
||||
{% if form.milestone.resolved %}
|
||||
<span class="badge bg-success">{{ form.milestone.resolved }}</span>
|
||||
{% else %}
|
||||
<b>
|
||||
{% if group.uses_milestone_dates %}{{ form.milestone.due|date:"M Y" }}{% endif %}
|
||||
</b>
|
||||
{% elif group.uses_milestone_dates and form.milestone.due %}
|
||||
<b>{{ form.milestone.due|date:"M Y" }}</b>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-10 col-form-label col-form-label-md">
|
||||
|
|
|
@ -22,28 +22,30 @@
|
|||
<table class="table table-striped table-sm tablesorter my-3">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-sort="Alias">Alias</th>
|
||||
<th data-sort="Expansion">Expansion</th>
|
||||
<th data-sort="alias">Alias</th>
|
||||
<th data-sort="expansion">Expansion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for alias in alias_list %}
|
||||
{% for item in alias.list %}
|
||||
<tr>
|
||||
<td>
|
||||
{% with alias.grouper|add:item.alias_type|default:'' as x %}
|
||||
{% with x|add:"@"|add:ietf_domain as email %}
|
||||
{{ email|linkify }}
|
||||
{% if alias_list %}
|
||||
<tbody>
|
||||
{% for alias in alias_list %}
|
||||
{% for item in alias.list %}
|
||||
<tr>
|
||||
<td>
|
||||
{% with alias.grouper|add:item.alias_type|default:'' as x %}
|
||||
{% with x|add:"@"|add:ietf_domain as email %}
|
||||
{{ email|linkify }}
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
</td>
|
||||
<td>{{ item.expansion|linkify }}</td>
|
||||
</tr>
|
||||
</td>
|
||||
<td>{{ item.expansion|linkify }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -167,6 +167,7 @@
|
|||
{% endif %}
|
||||
{% endwith %}
|
||||
</tbody>
|
||||
{% if group.personnel %}
|
||||
<tbody class="meta border-top">
|
||||
{% for slug, label, roles in group.personnel %}
|
||||
<tr>
|
||||
|
@ -198,6 +199,7 @@
|
|||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
{% if group.list_email %}
|
||||
<tbody class="meta border-top">
|
||||
<tr>
|
||||
|
@ -314,8 +316,8 @@
|
|||
{% if group.state_id == "proposed" %}proposed{% endif %}
|
||||
{{ group.type.desc.title }}
|
||||
</h2>
|
||||
{# the linebreaks filter adds <p />, no surrounding <p /> necessary: #}
|
||||
{{ group.charter_text|linebreaks }}
|
||||
{# the linebreaks filter adds <p>, no surrounding <p> necessary: #}
|
||||
{{ group.charter_text|linkify|urlize_ietf_docs|linebreaks }}
|
||||
{% else %}
|
||||
<h2 class="mt-3">
|
||||
{% if requested_close or group.state_id == "conclude" %}Final{% endif %}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
{% if can_add_comment %}
|
||||
<a class="btn btn-primary"
|
||||
href="{% url 'ietf.group.views.add_comment' acronym=group.acronym %}">
|
||||
<span class="bi bi-plus"></span>
|
||||
<i class="bi bi-plus"></i>
|
||||
Add comment
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -25,15 +25,17 @@
|
|||
<th data-sort="action">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for e in events %}
|
||||
<tr>
|
||||
<td class="text-nowrap">{{ e.time|date:"Y-m-d" }}</td>
|
||||
<td class="text-nowrap">{% person_link e.by %}</td>
|
||||
<td>{{ e.desc|format_history_text }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if events %}
|
||||
<tbody>
|
||||
{% for e in events %}
|
||||
<tr>
|
||||
<td class="text-nowrap">{{ e.time|date:"Y-m-d" }}</td>
|
||||
<td class="text-nowrap">{% person_link e.by %}</td>
|
||||
<td>{{ e.desc|format_history_text }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
|
|
|
@ -70,8 +70,7 @@
|
|||
{% if r.doc.authors %}
|
||||
<span class="fw-bold">Authors:</span>
|
||||
{% for person in r.doc.authors %}
|
||||
{% person_link person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
<br>
|
||||
{% endif %}
|
||||
|
@ -85,8 +84,7 @@
|
|||
{% if r.wg_chairs %}
|
||||
<span class="fw-bold">{{ r.doc.group.type.name }} chairs:</span>
|
||||
{% for person in r.wg_chairs %}
|
||||
{% person_link person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
<br>
|
||||
{% endif %}
|
||||
|
|
|
@ -45,8 +45,7 @@
|
|||
{% for pr in p.list %}
|
||||
{% if pr.rev != d.rev %}(-{{ pr.rev }}){% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% endif %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
|
@ -59,8 +58,7 @@
|
|||
{% for pr in p.list %}
|
||||
{% if pr.rev != d.rev %}(-{{ pr.rev }}){% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% endif %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -33,12 +33,12 @@
|
|||
{{ s.time|date:"H:i" }}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.meeting.views.agenda_ical' num=s.meeting.number session_id=s.id %}">
|
||||
<span class="bi bi-calendar"></span>
|
||||
<i class="bi bi-calendar"></i>
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.meeting.views.agenda_ical' num=s.meeting.number acronym=s.group.acronym %}">
|
||||
<span class="bi bi-calendar"></span>
|
||||
<i class="bi bi-calendar"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<a class="float-end"
|
||||
title="icalendar entry for all scheduled future {{ group.acronym }} meetings"
|
||||
href="{% url 'ietf.meeting.views.upcoming_ical' %}?show={{ group.acronym }}">
|
||||
<span class="bi bi-calendar"></span>
|
||||
<i class="bi bi-calendar"></i>
|
||||
</a>
|
||||
</h2>
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
|
@ -81,10 +81,10 @@
|
|||
{% with sessions=past can_edit_materials=False %}
|
||||
{% include "group/meetings-row.html" %}
|
||||
{% endwith %}
|
||||
<tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
<p>
|
||||
This page shows meetings within the last four years. For earlier meetings, please see the proceedings.
|
||||
</p>
|
||||
{% endblock %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
<p>
|
||||
This page shows meetings within the last four years. For earlier meetings, please see the proceedings.
|
||||
</p>
|
||||
{% endblock %}
|
|
@ -4,5 +4,5 @@
|
|||
{% origin %}
|
||||
{# assumes group, form, needs_review, reviewer are in the context #}
|
||||
{% load django_bootstrap5 %}
|
||||
<input type="hidden" name="prefix" value="{{ form.prefix|default:"" }}"/>
|
||||
<input type="hidden" name="prefix" value="{{ form.prefix|default:"" }}">
|
||||
{% bootstrap_form form layout='horizontal' %}
|
|
@ -13,7 +13,7 @@
|
|||
{% if can_access_stats %}
|
||||
<div class="float-end">
|
||||
<a href="{% url "ietf.stats.views.review_stats" %}" class="icon-link">
|
||||
<span class="bi bi-bar-chart-line"></span>
|
||||
<i class="bi bi-bar-chart-line"></i>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<div class="float-end">
|
||||
<a href="{% url "ietf.stats.views.review_stats" stats_type="completion" acronym=group.acronym %}"
|
||||
class="icon-link">
|
||||
<span class="bi bi-bar-chart-line"> </span>
|
||||
<i class="bi bi-bar-chart-line"></i>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
<p>
|
||||
<b>Chair{{ chairs|pluralize }}:</b>
|
||||
{% for chair in chairs %}
|
||||
{% person_link chair.person %}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% person_link chair.person %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
<p>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load ietf_filters %}
|
||||
{% block pagehead %}<link rel="alternate" type="application/atom+xml" href="/feed/iesg-agenda/"/>{% endblock %}
|
||||
{% block pagehead %}<link rel="alternate" type="application/atom+xml" href="/feed/iesg-agenda/">{% endblock %}
|
||||
{% block title %}IESG agenda: {{ date }}{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
|
|
@ -26,13 +26,13 @@
|
|||
</h2>
|
||||
<div class="buttonlist">
|
||||
<a class="btn btn-primary" role="button" href="/iesg/agenda/">
|
||||
<span class="bi bi-list"></span>
|
||||
<i class="bi bi-list"></i>
|
||||
Full IESG agenda
|
||||
</a>
|
||||
<a class="btn btn-primary"
|
||||
role="button"
|
||||
href="/iesg/agenda/telechat-{{ t.date|date:'Y' }}-{{ t.date|date:'m' }}-{{ t.date|date:'d' }}-docs.tgz">
|
||||
<span class="bi bi-download"></span>
|
||||
<i class="bi bi-download"></i>
|
||||
Download documents
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -35,13 +35,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
|
||||
{% endcomment %}
|
||||
{% load ietf_filters static %}
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Moderator Package for {{ date }} IESG Telechat</title>
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}"/>
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}">
|
||||
<style type="text/css">
|
||||
h3 { page-break-before:always; }
|
||||
@media print {
|
||||
|
@ -153,4 +154,4 @@ Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
|
|||
{% endif %}
|
||||
{% endfor %}
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
|
@ -20,7 +20,7 @@
|
|||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link
|
||||
{% if active == 'discusses' %}active{% endif %}""
|
||||
{% if active == 'discusses' %}active{% endif %}"
|
||||
href="{% url 'ietf.iesg.views.discusses' %}">DISCUSS positions
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -30,36 +30,38 @@
|
|||
<th data-sort="discusses">Discusses</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for doc in docs %}
|
||||
<tr class="{% if doc.by_me %}
|
||||
byme
|
||||
{% endif %}
|
||||
{% if docs %}
|
||||
<tbody>
|
||||
{% for doc in docs %}
|
||||
<tr class="{% if doc.by_me %}
|
||||
byme
|
||||
{% endif %}
|
||||
|
||||
{% if doc.for_me %}
|
||||
forme
|
||||
{% endif %}">
|
||||
<td>
|
||||
{{ doc.displayname_with_link }}
|
||||
<br>
|
||||
<span class="fw-bold">{{ doc.title }}</span>
|
||||
</td>
|
||||
<td>{{ doc.telechat }}</td>
|
||||
{% include "doc/search/status_columns.html" %}
|
||||
<td>{% person_link doc.ad nowrap=False %}</td>
|
||||
<td>
|
||||
{% for p in doc.blocking_positions %}
|
||||
{% if p.is_old_pos %}<span class="text-muted">{% endif %}
|
||||
{% person_link p.balloter nowrap=False %}
|
||||
({% if p.discuss_time %}{{ p.discuss_time|timesince_days }} days ago{% endif %}
|
||||
{% if doc.get_state_url != "rfc" and p.rev != doc.rev %}for -{{ p.rev }}{% endif %})
|
||||
{% if doc.for_me %}
|
||||
forme
|
||||
{% endif %}">
|
||||
<td>
|
||||
{{ doc.displayname_with_link }}
|
||||
<br>
|
||||
{% if p.is_old_pos %}</span>{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<span class="fw-bold">{{ doc.title }}</span>
|
||||
</td>
|
||||
<td>{{ doc.telechat }}</td>
|
||||
{% include "doc/search/status_columns.html" %}
|
||||
<td>{% person_link doc.ad nowrap=False %}</td>
|
||||
<td>
|
||||
{% for p in doc.blocking_positions %}
|
||||
{% if p.is_old_pos %}<span class="text-muted">{% endif %}
|
||||
{% person_link p.balloter nowrap=False %}
|
||||
({% if p.discuss_time %}{{ p.discuss_time|timesince_days }} days ago{% endif %}
|
||||
{% if doc.get_state_url != "rfc" and p.rev != doc.rev %}for -{{ p.rev }}{% endif %})
|
||||
<br>
|
||||
{% if p.is_old_pos %}</span>{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
|
|
|
@ -12,8 +12,7 @@
|
|||
<p>
|
||||
<b>Announcements in:</b>
|
||||
{% for y in years %}
|
||||
<a {% if y != year %}href="{% url "ietf.iesg.views.review_decisions" year=y %}"{% endif %}>{{ y }}</a>
|
||||
{% if not forloop.last %},{% endif %}
|
||||
<a {% if y != year %}href="{% url "ietf.iesg.views.review_decisions" year=y %}"{% endif %}>{{ y }}</a>{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
{% for e in events %}
|
||||
|
|
|
@ -22,54 +22,54 @@
|
|||
</p>
|
||||
<p>
|
||||
Before you do so, please complete the following 3 verification steps:
|
||||
<ol>
|
||||
<li>
|
||||
Has the person provided relevant information in his request, or has he simply
|
||||
copied the text from the account creation failure message? All genuine (non-spam)
|
||||
account creation requests seen between 2009 and 2016 for tools.ietf.org have
|
||||
contained a reasonable request message, rather than just copy-pasting the account
|
||||
creation failure message. If there's no proper request message, step 2 below can
|
||||
be performed to make sure the request is bogus, but if that also fails, no further
|
||||
effort should be needed.
|
||||
</li>
|
||||
<li>
|
||||
Google for the person's name within the ietf.org site: "Jane Doe site:ietf.org". If
|
||||
found, and the email address matches an address used in drafts or discussions,
|
||||
things are fine, and it's OK to add the address to the whitelist using this form,
|
||||
and ask the person to please try the
|
||||
</p>
|
||||
<ol class="d-grid gap-3">
|
||||
<li>
|
||||
Has the person provided relevant information in his request, or has he simply
|
||||
copied the text from the account creation failure message? All genuine (non-spam)
|
||||
account creation requests seen between 2009 and 2016 for tools.ietf.org have
|
||||
contained a reasonable request message, rather than just copy-pasting the account
|
||||
creation failure message. If there's no proper request message, step 2 below can
|
||||
be performed to make sure the request is bogus, but if that also fails, no further
|
||||
effort should be needed.
|
||||
</li>
|
||||
<li>
|
||||
Google for the person's name within the ietf.org site: "Jane Doe site:ietf.org". If
|
||||
found, and the email address matches an address used in drafts or discussions,
|
||||
things are fine, and it's OK to add the address to the whitelist using this form,
|
||||
and ask the person to please try the
|
||||
<a href="{% url 'ietf.ietfauth.views.create_account' %}">account creation form</a>
|
||||
again.
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
If google finds no trace of the person being an ietf participant, he or she could
|
||||
still be somebody who is just getting involved in IETF work. A datatracker account
|
||||
is probably not necessary, (no account is necessary to 'join' a WG -- the right thing
|
||||
in that case is to join the right mailing list, and the person could be told so) --
|
||||
but in case this is a legitimate request, please email the person and ask:
|
||||
<i>
|
||||
"Which wgs do you require a password for?"
|
||||
</i>
|
||||
</p>
|
||||
<p>
|
||||
This is a bit of a trick question, because it is very unlikely that somebody who
|
||||
isn't involved in IETF work will give a reasonable response, while almost any answer
|
||||
from somebody who is doing IETF work will show that they have some clue.
|
||||
</p>
|
||||
<p>
|
||||
Please note the exact wording. Do <b><i>not</i></b> ask about "working groups" --
|
||||
that will make it easier for people to google for IETF working groups. Ask the
|
||||
question as given above, with lowercase "wgs".
|
||||
</p>
|
||||
<p>
|
||||
If the answer to this question shows clue, then add the address to the whitelist
|
||||
using this form, and ask the person to please try the
|
||||
<a href="{% url 'ietf.ietfauth.views.create_account' %}">account creation form</a>
|
||||
again.
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
If google finds no trace of the person being an ietf participant, he or she could
|
||||
still be somebody who is just getting involved in IETF work. A datatracker account
|
||||
is probably not necessary, (no account is necessary to 'join' a WG -- the right thing
|
||||
in that case is to join the right mailing list, and the person could be told so) --
|
||||
but in case this is a legitimate request, please email the person and ask:
|
||||
<i>
|
||||
"Which wgs do you require a password for?"
|
||||
</i>
|
||||
</p>
|
||||
<p>
|
||||
This is a bit of a trick question, because it is very unlikely that somebody who
|
||||
isn't involved in IETF work will give a reasonable response, while almost any answer
|
||||
from somebody who is doing IETF work will show that they have some clue.
|
||||
</p>
|
||||
<p>
|
||||
Please note the exact wording. Do <b><i>not</i></b> ask about "working groups" --
|
||||
that will make it easier for people to google for IETF working groups. Ask the
|
||||
question as given above, with lowercase "wgs".
|
||||
</p>
|
||||
<p>
|
||||
If the answer to this question shows clue, then add the address to the whitelist
|
||||
using this form, and ask the person to please try the
|
||||
<a href="{% url 'ietf.ietfauth.views.create_account' %}">account creation form</a>
|
||||
again.
|
||||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
</p>
|
||||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
<form role="form" method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
{% endif %}
|
||||
<p class="required">
|
||||
Fields marked with
|
||||
<label></label>
|
||||
<label class="required"> </label>
|
||||
are required.
|
||||
</p>
|
||||
<h2 class="mt-4">Updates</h2>
|
||||
|
@ -98,7 +98,7 @@
|
|||
{% if user|has_role:"Secretariat" %}
|
||||
{% bootstrap_field form.compliant layout="horizontal" %}
|
||||
{% else %}
|
||||
<input type="hidden" id="id_compliant" name="compliant" value="checked" />
|
||||
<input type="hidden" id="id_compliant" name="compliant" value="checked">
|
||||
{% endif %}
|
||||
<h2 class="mt-4">
|
||||
{% cycle 'I' 'II' 'III' 'IV' 'V' 'VI' 'VII' 'VIII' as section %}.
|
||||
|
@ -167,7 +167,7 @@
|
|||
<div class="col-md-2"></div>
|
||||
<div class="col-md-10">
|
||||
<a class="draft-add-row btn btn-primary">
|
||||
<span class="bi bi-plus" aria-hidden="true"></span> Add more
|
||||
<i class="bi bi-plus" aria-hidden="true"></i> Add more
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -38,28 +38,30 @@
|
|||
<th data-sort="text">Text</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for e in events %}
|
||||
<tr id="history-{{ e.pk }}">
|
||||
<td class="text-nowrap">{{ e.time|date:"Y-m-d" }}</td>
|
||||
<td>
|
||||
{{ e.type }}
|
||||
{% if e.response_due and e.response_past_due %}
|
||||
<span class="bi bi-exclamation-circle" title="Response overdue"></span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{% person_link e.by %}</td>
|
||||
<td>
|
||||
{% if e.message %}
|
||||
{% if e.response_due %}<span class="badge bg-info">Response due: {{ e.response_due|date:"Y-m-d" }}</span>{% endif %}
|
||||
<pre>{{ e.message|render_message_for_history|format_history_text:"100" }}</pre>
|
||||
{% else %}
|
||||
{{ e.desc|format_history_text }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if events %}
|
||||
<tbody>
|
||||
{% for e in events %}
|
||||
<tr id="history-{{ e.pk }}">
|
||||
<td class="text-nowrap">{{ e.time|date:"Y-m-d" }}</td>
|
||||
<td>
|
||||
{{ e.type }}
|
||||
{% if e.response_due and e.response_past_due %}
|
||||
<i class="bi bi-exclamation-circle" title="Response overdue"></i>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{% person_link e.by %}</td>
|
||||
<td>
|
||||
{% if e.message %}
|
||||
{% if e.response_due %}<span class="badge bg-info">Response due: {{ e.response_due|date:"Y-m-d" }}</span>{% endif %}
|
||||
<pre>{{ e.message|render_message_for_history|format_history_text:"100" }}</pre>
|
||||
{% else %}
|
||||
{{ e.desc|format_history_text }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
|
|
|
@ -5,9 +5,7 @@
|
|||
{% load ietf_filters ipr_filters %}
|
||||
{% block title %}IPR Details - {{ ipr.title }}{% endblock %}
|
||||
{% block pagehead %}
|
||||
<meta name="description"
|
||||
content="IPR disclosure #{{ ipr.ipr_id }}: {{ ipr.title }} ({{ ipr.time|date:"
|
||||
Y/>
|
||||
<meta name="description" content="IPR disclosure #{{ipr.ipr_id}}: {{ ipr.title }} ({{ ipr.time|date:'Y' }})">
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
@ -37,13 +35,13 @@
|
|||
{% if ipr.updates and ipr.state_id == 'pending' and ipr.update_notified_date or not ipr.updates and ipr.state_id == 'pending' %}
|
||||
<a class="btn btn-primary"
|
||||
href="{% url 'ietf.ipr.views.post' id=ipr.id %}">
|
||||
<span class="bi bi-check" aria-hidden="true"></span> Post
|
||||
<i class="bi bi-check" aria-hidden="true"></i> Post
|
||||
</a>
|
||||
{% endif %}
|
||||
<a class="btn btn-primary"
|
||||
href="{% url 'ietf.ipr.views.email' id=ipr.id %}"
|
||||
title="Email submitter of this disclsoure">
|
||||
<span class="bi bi-envelope" aria-hidden="true"></span> Email
|
||||
<i class="bi bi-envelope" aria-hidden="true"></i> Email
|
||||
</a>
|
||||
<a class="btn btn-primary"
|
||||
href="{% url 'ietf.ipr.views.edit' id=ipr.id %}">Edit</a>
|
||||
|
@ -78,12 +76,12 @@
|
|||
<strong>Submitted:</strong>
|
||||
{{ ipr.time|date:"F j, Y" }} under the rules in {{ in_force_ipr_rfc }}
|
||||
</div>
|
||||
<div>
|
||||
{% if user|has_role:"Secretariat" %}
|
||||
{% if user|has_role:"Secretariat" %}
|
||||
<div>
|
||||
<strong>State:</strong>
|
||||
{{ ipr.state }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if ipr.state_id == 'posted' %}
|
||||
<p class="alert alert-info my-3">
|
||||
Note: Updates to IPR disclosures must only be made by authorized
|
||||
|
@ -220,7 +218,9 @@
|
|||
Holder contact info
|
||||
</th>
|
||||
<td class="ipr-this">
|
||||
{{ ipr.holder_contact_info|linebreaks }}
|
||||
{% if ipr.holder_contact_info %}
|
||||
{{ ipr.holder_contact_info|linebreaks }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue