Skip to content

Commit ed30521

Browse files
committed
Many more HTML fixes.
- Legacy-Id: 19908
1 parent 64d2ba2 commit ed30521

197 files changed

Lines changed: 1805 additions & 1679 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ietf/doc/tests_bofreq.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from pyquery import PyQuery
99
from random import randint
1010
from tempfile import NamedTemporaryFile
11-
from html import escape
11+
from html import escape, unescape
1212

1313
from django.conf import settings
1414
from django.urls import reverse as urlreverse
@@ -191,7 +191,7 @@ def test_change_editors(self):
191191
self.client.login(username=username,password=username+'+password')
192192
r = self.client.get(url)
193193
self.assertEqual(r.status_code,200)
194-
unescaped = unicontent(r).encode('utf-8').decode('unicode-escape')
194+
unescaped = unescape(unicontent(r).encode('utf-8').decode('unicode-escape'))
195195
for editor in previous_editors:
196196
self.assertIn(editor.name,unescaped)
197197
new_editors = set(previous_editors)
@@ -231,9 +231,9 @@ def test_change_responsible(self):
231231
self.client.login(username=username,password=username+'+password')
232232
r = self.client.get(url)
233233
self.assertEqual(r.status_code,200)
234-
unescaped = unicontent(r).encode('utf-8').decode('unicode-escape')
234+
unescaped = unescape(unicontent(r).encode('utf-8').decode('unicode-escape'))
235235
for responsible in previous_responsible:
236-
self.assertIn(escape(responsible.name), unescaped)
236+
self.assertIn(responsible.name, unescaped)
237237
new_responsible = set(previous_responsible)
238238
new_responsible.add(RoleFactory(group__type_id='area',name_id='ad').person)
239239
postdict = dict(responsible=[str(p.pk) for p in new_responsible])

ietf/liaisons/admin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class LiaisonStatementAdmin(admin.ModelAdmin):
2929
inlines = [ RelatedLiaisonStatementInline, LiaisonStatementAttachmentInline ]
3030

3131
def related_to(self, obj):
32-
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()])
32+
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()])
3333
related_to.allow_tags = True # type: ignore # https://github.com/python/mypy/issues/2087
3434

3535
class LiaisonStatementAttachmentAdmin(admin.ModelAdmin):
@@ -50,4 +50,4 @@ class LiaisonStatementEventAdmin(admin.ModelAdmin):
5050
raw_id_fields = ["statement", "by"]
5151

5252
admin.site.register(LiaisonStatement, LiaisonStatementAdmin)
53-
admin.site.register(LiaisonStatementEvent, LiaisonStatementEventAdmin)
53+
admin.site.register(LiaisonStatementEvent, LiaisonStatementEventAdmin)

ietf/liaisons/forms.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,13 @@ def prepare_value(self, value):
211211

212212
class LiaisonModelForm(BetterModelForm):
213213
'''Specify fields which require a custom widget or that are not part of the model.
214-
NOTE: from_groups and to_groups are marked as not required because select2 has
215-
a problem with validating
216214
'''
217215
from_groups = forms.ModelMultipleChoiceField(queryset=Group.objects.all(),label='Groups',required=False)
216+
from_groups.widget.attrs["class"] = "select2-field"
218217
from_contact = forms.EmailField() # type: Union[forms.EmailField, SearchableEmailField]
219218
to_contacts = forms.CharField(label="Contacts", widget=forms.Textarea(attrs={'rows':'3', }), strip=False)
220219
to_groups = forms.ModelMultipleChoiceField(queryset=Group.objects,label='Groups',required=False)
220+
to_groups.widget.attrs["class"] = "select2-field"
221221
deadline = DatepickerDateField(date_format="yyyy-mm-dd", picker_settings={"autoclose": "1" }, label='Deadline', required=True)
222222
related_to = SearchableLiaisonStatementsField(label='Related Liaison Statement', required=False)
223223
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 @@ def __init__(self, user, *args, **kwargs):
247247
self.person = get_person_for_user(user)
248248
self.is_new = not self.instance.pk
249249

250-
self.fields["from_groups"].widget.attrs["placeholder"] = "Type in name to search for group"
251-
self.fields["to_groups"].widget.attrs["placeholder"] = "Type in name to search for group"
250+
self.fields["from_groups"].widget.attrs["data-placeholder"] = "Type in name to search for group"
251+
self.fields["to_groups"].widget.attrs["data-placeholder"] = "Type in name to search for group"
252252
self.fields["to_contacts"].label = 'Contacts'
253253
self.fields["other_identifiers"].widget.attrs["rows"] = 2
254254

@@ -449,7 +449,7 @@ def set_from_fields(self):
449449
else:
450450
queryset = Group.objects.filter(type="sdo", state="active", role__person=self.person, role__name__in=("liaiman", "auth")).distinct().order_by('name')
451451
self.fields['from_contact'].initial = self.person.role_set.filter(group=queryset[0]).first().email.address
452-
self.fields['from_contact'].widget.attrs['readonly'] = True
452+
self.fields['from_contact'].widget.attrs['disabled'] = True
453453
self.fields['from_groups'].queryset = queryset
454454
self.fields['from_groups'].widget.submitter = str(self.person)
455455

@@ -504,7 +504,7 @@ def set_from_fields(self):
504504
else:
505505
email = self.person.email_address()
506506
self.fields['from_contact'].initial = email
507-
self.fields['from_contact'].widget.attrs['readonly'] = True
507+
self.fields['from_contact'].widget.attrs['disabled'] = True
508508

509509
def set_to_fields(self):
510510
'''Set to_groups and to_contacts options and initial value based on user
@@ -551,7 +551,7 @@ def set_from_fields(self):
551551
queryset = Group.objects.filter(type="sdo").order_by('name')
552552
else:
553553
queryset = Group.objects.filter(type="sdo", role__person=self.person, role__name__in=("liaiman", "auth")).distinct().order_by('name')
554-
self.fields['from_contact'].widget.attrs['readonly'] = True
554+
self.fields['from_contact'].widget.attrs['disabled'] = True
555555
self.fields['from_groups'].queryset = queryset
556556

557557
def set_to_fields(self):
@@ -571,5 +571,4 @@ def set_to_fields(self):
571571

572572

573573
class EditAttachmentForm(forms.Form):
574-
title = forms.CharField(max_length=255)
575-
574+
title = forms.CharField(max_length=255)

ietf/liaisons/widgets.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def render(self, name, value, **kwargs):
2525
html += '<span style="display: none" class="attachRequiredField">%s</span>' % conditional_escape(i)
2626
required_str = 'Please fill in %s to attach a new file' % conditional_escape(self.required_label)
2727
html += '<span style="display: none" class="attachDisabledLabel">%s</span>' % conditional_escape(required_str)
28-
html += '<input type="button" class="addAttachmentWidget btn btn-primary btn-sm" value="%s" />' % conditional_escape(self.label)
28+
html += '<input type="button" class="addAttachmentWidget btn btn-primary btn-sm" value="%s">' % conditional_escape(self.label)
2929
return mark_safe(html)
3030

3131

@@ -39,8 +39,8 @@ def render(self, name, value, **kwargs):
3939
html += '<a class="initialAttach" href="%s">%s</a>&nbsp' % (conditional_escape(attachment.document.get_href()), conditional_escape(attachment.document.title))
4040
html += '<a class="btn btn-primary btn-sm" href="{}">Edit</a>&nbsp'.format(urlreverse("ietf.liaisons.views.liaison_edit_attachment", kwargs={'object_id':attachment.statement.pk,'doc_id':attachment.document.pk}))
4141
html += '<a class="btn btn-primary btn-sm" href="{}">Delete</a>&nbsp'.format(urlreverse("ietf.liaisons.views.liaison_delete_attachment", kwargs={'object_id':attachment.statement.pk,'attach_id':attachment.pk}))
42-
html += '<br />'
42+
html += '<br>'
4343
else:
4444
html += 'No files attached'
4545
html += '</div></div>'
46-
return mark_safe(html)
46+
return mark_safe(html)

ietf/meeting/tests_views.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3941,7 +3941,7 @@ def test_diff_schedules(self):
39413941
self.assertTrue(r.status_code, 200)
39423942

39433943
q = PyQuery(r.content)
3944-
self.assertEqual(len(q(".schedule-diffs tr")), 3)
3944+
self.assertEqual(len(q(".schedule-diffs tr")), 3+1)
39453945

39463946
def test_delete_schedule(self):
39473947
url = urlreverse('ietf.meeting.views.delete_schedule',
@@ -5758,14 +5758,14 @@ def test_propose_session_slides(self):
57585758
r = self.client.get(session_overview_url)
57595759
self.assertEqual(r.status_code,200)
57605760
q = PyQuery(r.content)
5761-
self.assertFalse(q('#uploadslides'))
5762-
self.assertFalse(q('#proposeslides'))
5761+
self.assertFalse(q('.uploadslides'))
5762+
self.assertFalse(q('.proposeslides'))
57635763

57645764
self.client.login(username=newperson.user.username,password=newperson.user.username+"+password")
57655765
r = self.client.get(session_overview_url)
57665766
self.assertEqual(r.status_code,200)
57675767
q = PyQuery(r.content)
5768-
self.assertTrue(q('#proposeslides'))
5768+
self.assertTrue(q('.proposeslides'))
57695769
self.client.logout()
57705770

57715771
login_testing_unauthorized(self,newperson.user.username,propose_url)
@@ -5783,7 +5783,7 @@ def test_propose_session_slides(self):
57835783
r = self.client.get(session_overview_url)
57845784
self.assertEqual(r.status_code, 200)
57855785
q = PyQuery(r.content)
5786-
self.assertEqual(len(q('#proposedslidelist p')), 1)
5786+
self.assertEqual(len(q('.proposedslidelist p')), 1)
57875787

57885788
SlideSubmissionFactory(session = session)
57895789

@@ -5792,7 +5792,7 @@ def test_propose_session_slides(self):
57925792
r = self.client.get(session_overview_url)
57935793
self.assertEqual(r.status_code, 200)
57945794
q = PyQuery(r.content)
5795-
self.assertEqual(len(q('#proposedslidelist p')), 2)
5795+
self.assertEqual(len(q('.proposedslidelist p')), 2)
57965796
self.client.logout()
57975797

57985798
def test_disapprove_proposed_slides(self):

ietf/person/tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def test_person_profile(self):
9292
#debug.show('person.photo_name()')
9393
self.assertContains(r, person.photo_name(), status_code=200)
9494
q = PyQuery(r.content)
95-
self.assertIn("Photo of %s"%person, q("div.bio-text img").attr("alt"))
95+
self.assertIn("Photo of %s"%person.name, q("div.bio-text img").attr("alt"))
9696

9797
bio_text = q("div.bio-text").text()
9898
self.assertIsNotNone(bio_text)

ietf/secr/announcement/forms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def get_to_choices():
7373

7474
class AnnounceForm(forms.ModelForm):
7575
nomcom = forms.ModelChoiceField(queryset=Group.objects.filter(acronym__startswith='nomcom',type='nomcom',state='active'),required=False)
76-
to_custom = MultiEmailField(required=False,label='')
76+
to_custom = MultiEmailField(required=False)
7777

7878
class Meta:
7979
model = Message
@@ -131,4 +131,4 @@ def save(self, *args, **kwargs):
131131
if nomcom:
132132
message.related_groups.add(nomcom)
133133

134-
return message
134+
return message

ietf/secr/templates/base_site.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ <h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {%
2424
{% block footer %}
2525
<div id="footer">
2626
<div id="footer-extras">
27-
<ul>
28-
{% block footer-extras %}{% endblock %}
29-
</ul>
27+
{% block footer-extras %}{% endblock %}
3028
</div>
3129
<div id="footer-version">
3230
<p>IETF Secretariat Tools v. {{ secr_version_num }}</p>
@@ -36,4 +34,4 @@ <h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {%
3634
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
3735
</div>
3836
</div>
39-
{% endblock %}
37+
{% endblock %}

ietf/secr/templates/base_site_bootstrap.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ <h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {%
2424
{% block footer %}
2525
<div id="footer">
2626
<div id="footer-extras">
27-
<ul>
28-
{% block footer-extras %}{% endblock %}
29-
</ul>
27+
{% block footer-extras %}{% endblock %}
3028
</div>
3129
<div id="footer-version">
3230
<p>IETF Secretariat Tools v. {{ secr_version_num }}</p>
@@ -36,4 +34,4 @@ <h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {%
3634
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
3735
</div>
3836
</div>
39-
{% endblock %}
37+
{% endblock %}

ietf/secr/templates/groups/people.html

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,18 @@ <h2>People</h2>
2828
<th>Action</th>
2929
</tr>
3030
</thead>
31-
<tbody>
32-
{% for role in group.role_set.all %}
33-
<tr class="{% cycle 'row1' 'row2' %}">
34-
<td>{{ role.name }}</td>
35-
<td>{{ role.person }}</td>
36-
<td>{{ role.email }}</td>
37-
<td><a href="{% url 'ietf.secr.groups.views.delete_role' acronym=group.acronym id=role.id %}">Delete</a></td>
38-
</tr>
39-
{% endfor %}
40-
</tbody>
31+
{% if group.role_set.all %}
32+
<tbody>
33+
{% for role in group.role_set.all %}
34+
<tr class="{% cycle 'row1' 'row2' %}">
35+
<td>{{ role.name }}</td>
36+
<td>{{ role.person }}</td>
37+
<td>{{ role.email }}</td>
38+
<td><a href="{% url 'ietf.secr.groups.views.delete_role' acronym=group.acronym id=role.id %}">Delete</a></td>
39+
</tr>
40+
{% endfor %}
41+
</tbody>
42+
{% endif %}
4143
</table>
4244

4345
<div class="inline-related">
@@ -65,4 +67,4 @@ <h3>Add Role</h3>
6567

6668
</div> <!-- module -->
6769

68-
{% endblock %}
70+
{% endblock %}

0 commit comments

Comments
 (0)