From ed30521e14f4673814271b6f3c16528373cba0ae Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Thu, 3 Feb 2022 07:49:34 +0000 Subject: [PATCH] Many more HTML fixes. - Legacy-Id: 19908 --- ietf/doc/tests_bofreq.py | 8 +- ietf/liaisons/admin.py | 4 +- ietf/liaisons/forms.py | 17 +- ietf/liaisons/widgets.py | 6 +- ietf/meeting/tests_views.py | 12 +- ietf/person/tests.py | 2 +- ietf/secr/announcement/forms.py | 4 +- ietf/secr/templates/base_site.html | 6 +- ietf/secr/templates/base_site_bootstrap.html | 6 +- ietf/secr/templates/groups/people.html | 24 +- ietf/secr/templates/groups/search.html | 2 - ietf/secr/templates/groups/view.html | 50 +-- .../templates/includes/meetings_footer.html | 2 + .../includes/search_results_table.html | 22 +- .../templates/includes/sessions_footer.html | 2 + .../templates/includes/upload_footer.html | 4 +- ietf/secr/templates/proceedings/main.html | 41 ++- .../secr/templates/proceedings/recording.html | 58 ++-- ietf/secr/templates/roles/main.html | 5 +- ietf/secr/templates/rolodex/view.html | 32 +- ietf/secr/templates/sreq/main.html | 7 +- ietf/static/css/liaisons.css | 4 +- ietf/static/js/ipr-edit.js | 8 +- ietf/static/js/liaisons.js | 18 +- ietf/static/js/select2.js | 13 +- ietf/submit/forms.py | 16 +- ietf/submit/templatetags/submit_tags.py | 2 + .../admin/group/group/send_sdo_reminder.html | 2 +- ietf/templates/api/index.html | 4 +- ietf/templates/base.html | 34 +- ietf/templates/base/menu.html | 26 +- ietf/templates/base/menu_user.html | 10 +- ietf/templates/community/manage_list.html | 2 +- ietf/templates/doc/ballot_popup.html | 2 +- ietf/templates/doc/bofreq/bof_requests.html | 6 +- ietf/templates/doc/charter/change_state.html | 6 +- .../doc/charter/review_announcement_text.html | 6 +- ietf/templates/doc/charter/submit.html | 2 + .../doc/document_ballot_content.html | 46 +-- ietf/templates/doc/document_bofreq.html | 10 +- ietf/templates/doc/document_charter.html | 5 +- .../doc/document_conflict_review.html | 2 +- ietf/templates/doc/document_draft.html | 103 +++--- ietf/templates/doc/document_history.html | 4 +- ietf/templates/doc/document_material.html | 7 +- .../templates/doc/document_referenced_by.html | 4 +- ietf/templates/doc/document_references.html | 4 +- ietf/templates/doc/document_review.html | 52 +-- .../templates/doc/document_status_change.html | 5 +- .../templates/doc/drafts_in_iesg_process.html | 3 +- ietf/templates/doc/edit_authors.html | 4 +- ietf/templates/doc/frontpage.html | 2 +- ietf/templates/doc/irsg_ballot_status.html | 18 +- ietf/templates/doc/remind_action_holders.html | 6 +- .../templates/doc/review/complete_review.html | 10 +- ietf/templates/doc/review/request_info.html | 36 +- ietf/templates/doc/review/review_request.html | 22 +- .../doc/review/review_wishes_remove.html | 6 +- ietf/templates/doc/search/search_form.html | 20 +- .../doc/search/search_result_row.html | 10 +- ietf/templates/doc/search/search_results.html | 4 +- ietf/templates/doc/search/status_columns.html | 9 +- ietf/templates/doc/state_help.html | 2 +- .../doc/status_change/make_last_call.html | 2 +- ietf/templates/doc/submit_to_iesg.html | 3 +- ietf/templates/form.html | 8 +- ietf/templates/googlea30ad1dacffb5e5b.html | 6 + ietf/templates/group/active_ags.html | 10 +- ietf/templates/group/active_areas.html | 8 +- ietf/templates/group/active_dirs.html | 11 +- ietf/templates/group/active_iabgroups.html | 3 +- ietf/templates/group/active_rags.html | 8 +- ietf/templates/group/active_review_dirs.html | 9 +- ietf/templates/group/active_rgs.html | 3 +- ietf/templates/group/active_teams.html | 3 +- ietf/templates/group/active_wgs.html | 3 +- .../group/change_reviewer_settings.html | 52 +-- ietf/templates/group/customize_workflow.html | 16 +- ietf/templates/group/edit_milestones.html | 6 +- ietf/templates/group/email_aliases.html | 36 +- ietf/templates/group/group_about.html | 6 +- ietf/templates/group/history.html | 22 +- .../group/manage_review_requests.html | 6 +- ietf/templates/group/materials.html | 6 +- ietf/templates/group/meetings-row.html | 4 +- ietf/templates/group/meetings.html | 16 +- ietf/templates/group/milestone_form.html | 2 +- ietf/templates/group/review_requests.html | 2 +- ietf/templates/group/reviewer_overview.html | 2 +- ietf/templates/group/stream_edit.html | 3 +- ietf/templates/iesg/agenda.html | 2 +- ietf/templates/iesg/agenda_documents.html | 4 +- ietf/templates/iesg/moderator_package.html | 11 +- ietf/templates/iesg/nav.html | 2 +- ietf/templates/iesg/past_documents.html | 58 ++-- ietf/templates/iesg/review_decisions.html | 3 +- ietf/templates/ietfauth/whitelist_form.html | 92 ++--- ietf/templates/ipr/details_edit.html | 6 +- ietf/templates/ipr/details_history.html | 46 +-- ietf/templates/ipr/details_view.html | 20 +- ietf/templates/ipr/ipr_table.html | 94 ++--- ietf/templates/ipr/search_doc_list.html | 2 +- ietf/templates/ipr/search_doc_result.html | 6 +- .../templates/ipr/search_doctitle_result.html | 8 +- ietf/templates/ipr/search_form.html | 14 +- ietf/templates/ipr/search_result.html | 13 +- ietf/templates/liaisons/detail.html | 10 +- ietf/templates/liaisons/detail_history.html | 32 +- ietf/templates/liaisons/edit.html | 16 +- ietf/templates/liaisons/field_help.html | 12 +- ietf/templates/liaisons/guide_from_ietf.html | 10 +- ietf/templates/liaisons/liaison_table.html | 50 +-- ietf/templates/liaisons/search_form.html | 4 +- .../mailinglists/group_archives.html | 22 +- ietf/templates/mailtrigger/recipient.html | 64 ++-- ietf/templates/mailtrigger/trigger.html | 8 +- .../templates/meeting/add_session_drafts.html | 30 +- ietf/templates/meeting/agenda.html | 7 +- ietf/templates/meeting/agenda_by_room.html | 10 +- ietf/templates/meeting/agenda_by_type.html | 3 +- ietf/templates/meeting/diff_schedules.html | 3 + .../edit_meeting_schedule_session.html | 3 +- ietf/templates/meeting/edit_session.html | 2 +- ietf/templates/meeting/floor-plan.html | 9 +- ietf/templates/meeting/group_materials.html | 14 +- ietf/templates/meeting/group_proceedings.html | 4 +- ietf/templates/meeting/interim_request.html | 8 +- .../meeting/interim_request_details.html | 4 +- .../meeting/interim_request_edit.html | 8 +- .../meeting/interim_send_announcement.html | 2 +- .../meeting/interim_session_buttons.html | 34 +- .../meeting/materials_upload_closed.html | 4 +- ietf/templates/meeting/proceedings.html | 3 +- .../proceedings/edit_meetinghosts.html | 3 +- .../meeting/proceedings/material_details.html | 12 +- ietf/templates/meeting/proceedings/title.html | 4 +- .../meeting/proceedings_progress_report.html | 32 +- ietf/templates/meeting/properties_edit.html | 2 +- ietf/templates/meeting/requests.html | 3 +- ietf/templates/meeting/room-view.html | 2 +- ietf/templates/meeting/schedule_list.html | 118 +++---- .../meeting/session_buttons_include.html | 32 +- ietf/templates/meeting/session_details.html | 18 +- .../meeting/session_details_form.html | 2 +- .../meeting/session_details_panel.html | 170 +++++---- ietf/templates/meeting/session_materials.html | 14 +- ietf/templates/meeting/timeslot_edit.html | 12 +- .../meeting/timeslot_edit_timeslot.html | 4 +- ietf/templates/meeting/tz-display.html | 6 +- ietf/templates/meeting/week-view.html | 12 +- ietf/templates/nomcom/chair_help.html | 26 +- ietf/templates/nomcom/edit_nomcom.html | 2 +- ietf/templates/nomcom/eligible.html | 52 +-- ietf/templates/nomcom/email_list_panel.html | 12 +- ietf/templates/nomcom/feedback.html | 2 +- ietf/templates/nomcom/history.html | 3 +- ietf/templates/nomcom/private_index.html | 116 ++++--- ietf/templates/nomcom/send_reminder_mail.html | 7 +- ietf/templates/nomcom/show_template.html | 2 +- .../nomcom/view_feedback_pending.html | 52 ++- .../nomcom/view_feedback_unrelated.html | 5 +- ietf/templates/nomcom/volunteer.html | 3 +- ietf/templates/nomcom/volunteers.html | 18 +- ietf/templates/oidc_provider/authorize.html | 4 +- ietf/templates/person/merge.html | 2 +- ietf/templates/person/person_info.html | 2 +- ietf/templates/person/person_link.html | 15 +- ietf/templates/person/photo.html | 2 +- .../registration/change_password.html | 1 - ietf/templates/registration/edit_profile.html | 32 +- ietf/templates/release/release.html | 6 +- .../document_stats_author_affiliation.html | 38 +- .../document_stats_author_citations.html | 22 +- .../document_stats_author_continent.html | 22 +- .../stats/document_stats_author_country.html | 69 ++-- .../document_stats_author_documents.html | 24 +- .../stats/document_stats_author_hindex.html | 22 +- .../stats/document_stats_authors.html | 24 +- .../stats/document_stats_format.html | 22 +- .../stats/document_stats_formlang.html | 22 +- .../templates/stats/document_stats_pages.html | 22 +- .../templates/stats/document_stats_words.html | 22 +- .../stats/document_stats_yearly.html | 2 +- .../templates/stats/known_countries_list.html | 3 +- .../stats/meeting_stats_continent.html | 2 +- .../stats/meeting_stats_country.html | 5 +- .../stats/meeting_stats_overview.html | 6 +- ietf/templates/stats/review_stats.html | 12 +- ietf/templates/submit/submission_email.html | 2 +- ietf/templates/submit/submission_files.html | 2 +- ietf/templates/submit/submission_status.html | 101 +++--- ietf/templates/submit/upload_submission.html | 2 +- ietf/templates/sync/notify.html | 2 +- ietf/utils/markup_txt.py | 2 +- ietf/utils/response.py | 4 +- ietf/utils/test_utils.py | 16 +- package-lock.json | 326 +++++++++++------- 197 files changed, 1807 insertions(+), 1681 deletions(-) diff --git a/ietf/doc/tests_bofreq.py b/ietf/doc/tests_bofreq.py index 05a966944..375b4d5ee 100644 --- a/ietf/doc/tests_bofreq.py +++ b/ietf/doc/tests_bofreq.py @@ -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]) diff --git a/ietf/liaisons/admin.py b/ietf/liaisons/admin.py index bedb1d69f..c7cb7a4da 100644 --- a/ietf/liaisons/admin.py +++ b/ietf/liaisons/admin.py @@ -29,7 +29,7 @@ class LiaisonStatementAdmin(admin.ModelAdmin): inlines = [ RelatedLiaisonStatementInline, LiaisonStatementAttachmentInline ] def related_to(self, obj): - return '
'.join(['%s' % (reverse('admin:liaisons_liaisonstatement_change', None, (i.target.id, )), str(i.target)) for i in obj.source_of_set.select_related('target').all()]) + return '
'.join(['%s' % (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) \ No newline at end of file diff --git a/ietf/liaisons/forms.py b/ietf/liaisons/forms.py index f72becd78..b4aaa386c 100644 --- a/ietf/liaisons/forms.py +++ b/ietf/liaisons/forms.py @@ -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) \ No newline at end of file diff --git a/ietf/liaisons/widgets.py b/ietf/liaisons/widgets.py index fe0f15e36..db27c3780 100644 --- a/ietf/liaisons/widgets.py +++ b/ietf/liaisons/widgets.py @@ -25,7 +25,7 @@ class ButtonWidget(Widget): html += '' % conditional_escape(i) required_str = 'Please fill in %s to attach a new file' % conditional_escape(self.required_label) html += '' % conditional_escape(required_str) - html += '' % conditional_escape(self.label) + html += '' % conditional_escape(self.label) return mark_safe(html) @@ -39,8 +39,8 @@ class ShowAttachmentsWidget(Widget): html += '%s ' % (conditional_escape(attachment.document.get_href()), conditional_escape(attachment.document.title)) html += 'Edit '.format(urlreverse("ietf.liaisons.views.liaison_edit_attachment", kwargs={'object_id':attachment.statement.pk,'doc_id':attachment.document.pk})) html += 'Delete '.format(urlreverse("ietf.liaisons.views.liaison_delete_attachment", kwargs={'object_id':attachment.statement.pk,'attach_id':attachment.pk})) - html += '
' + html += '
' else: html += 'No files attached' html += '' - return mark_safe(html) + return mark_safe(html) \ No newline at end of file diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index 289c20a60..047f374d4 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -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): diff --git a/ietf/person/tests.py b/ietf/person/tests.py index 7054bb676..bd754194d 100644 --- a/ietf/person/tests.py +++ b/ietf/person/tests.py @@ -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) diff --git a/ietf/secr/announcement/forms.py b/ietf/secr/announcement/forms.py index 92383631b..3aacbfe62 100644 --- a/ietf/secr/announcement/forms.py +++ b/ietf/secr/announcement/forms.py @@ -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 \ No newline at end of file diff --git a/ietf/secr/templates/base_site.html b/ietf/secr/templates/base_site.html index 2c258efe4..f75b41d06 100644 --- a/ietf/secr/templates/base_site.html +++ b/ietf/secr/templates/base_site.html @@ -24,9 +24,7 @@ {% block footer %} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/secr/templates/base_site_bootstrap.html b/ietf/secr/templates/base_site_bootstrap.html index c8edb0124..d1ab1dfde 100644 --- a/ietf/secr/templates/base_site_bootstrap.html +++ b/ietf/secr/templates/base_site_bootstrap.html @@ -24,9 +24,7 @@ {% block footer %} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/secr/templates/groups/people.html b/ietf/secr/templates/groups/people.html index 817a614d2..ebcc1aeeb 100644 --- a/ietf/secr/templates/groups/people.html +++ b/ietf/secr/templates/groups/people.html @@ -28,16 +28,18 @@ Action - - {% for role in group.role_set.all %} - - {{ role.name }} - {{ role.person }} - {{ role.email }} - Delete - - {% endfor %} - + {% if group.role_set.all %} + + {% for role in group.role_set.all %} + + {{ role.name }} + {{ role.person }} + {{ role.email }} + Delete + + {% endfor %} + + {% endif %} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/secr/templates/groups/search.html b/ietf/secr/templates/groups/search.html index e5a8d9a70..a60455302 100644 --- a/ietf/secr/templates/groups/search.html +++ b/ietf/secr/templates/groups/search.html @@ -7,8 +7,6 @@ -{% endblock %}{% endblock %} - {% endblock %} {% block breadcrumbs %}{{ block.super }} diff --git a/ietf/secr/templates/groups/view.html b/ietf/secr/templates/groups/view.html index 40cbc80b0..a1c2e9ae3 100644 --- a/ietf/secr/templates/groups/view.html +++ b/ietf/secr/templates/groups/view.html @@ -63,38 +63,46 @@
@@ -111,4 +119,4 @@ -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/secr/templates/includes/meetings_footer.html b/ietf/secr/templates/includes/meetings_footer.html index 64ba3764b..9e9e98677 100755 --- a/ietf/secr/templates/includes/meetings_footer.html +++ b/ietf/secr/templates/includes/meetings_footer.html @@ -1 +1,3 @@ + \ No newline at end of file diff --git a/ietf/secr/templates/includes/search_results_table.html b/ietf/secr/templates/includes/search_results_table.html index 7ee860226..ba7dfd787 100644 --- a/ietf/secr/templates/includes/search_results_table.html +++ b/ietf/secr/templates/includes/search_results_table.html @@ -6,13 +6,15 @@ ID - - {% for item in results %} - - {{item.name}} - {{item.person.email_address}} - {{item.person.id}} - - {% endfor %} - - + {% if results %} + + {% for item in results %} + + {{item.name}} + {{item.person.email_address}} + {{item.person.id}} + + {% endfor %} + + {% endif %} + \ No newline at end of file diff --git a/ietf/secr/templates/includes/sessions_footer.html b/ietf/secr/templates/includes/sessions_footer.html index ab26d53a4..a41a8b8db 100755 --- a/ietf/secr/templates/includes/sessions_footer.html +++ b/ietf/secr/templates/includes/sessions_footer.html @@ -1,4 +1,6 @@ + \ No newline at end of file diff --git a/ietf/secr/templates/includes/upload_footer.html b/ietf/secr/templates/includes/upload_footer.html index 8a32f8820..d2faf02c9 100755 --- a/ietf/secr/templates/includes/upload_footer.html +++ b/ietf/secr/templates/includes/upload_footer.html @@ -1,4 +1,6 @@ + \ No newline at end of file diff --git a/ietf/secr/templates/proceedings/main.html b/ietf/secr/templates/proceedings/main.html index e95de3620..33c1971c9 100644 --- a/ietf/secr/templates/proceedings/main.html +++ b/ietf/secr/templates/proceedings/main.html @@ -22,15 +22,17 @@ IETF Meeting - - {% for meeting in meetings %} - - - {{ meeting.number }} - - - {% endfor %} - + {% if meetings %} + + {% for meeting in meetings %} + + + {{ meeting.number }} + + + {% endfor %} + + {% endif %} {% if user|has_role:"Secretariat" %}
@@ -49,15 +51,17 @@ Interim Meeting - - {% for meeting in interim_meetings %} + {% if interim_meetings %} + + {% for meeting in interim_meetings %} - - {{ meeting.group.acronym }} - {{ meeting.date }} - - {% endfor %} - + + {{ meeting.group.acronym }} + {{ meeting.date }} + + {% endfor %} + + {% endif %}
@@ -89,5 +93,4 @@ {% endblock %} ~ ~ -~ - +~ \ No newline at end of file diff --git a/ietf/secr/templates/proceedings/recording.html b/ietf/secr/templates/proceedings/recording.html index d6adc3801..943239710 100755 --- a/ietf/secr/templates/proceedings/recording.html +++ b/ietf/secr/templates/proceedings/recording.html @@ -56,32 +56,34 @@ Edit - + {% if sessions %} + - {% for session in sessions %} - {% if session.recordings %} - {% for recording in session.recordings %} + {% for session in sessions %} + {% if session.recordings %} + {% for recording in session.recordings %} + + {{ session.group.acronym }} + {{ session.official_timeslotassignment.timeslot.time|date:"m-d H:i" }} + {{ recording.name }} + {{ recording.get_href }} + Edit + + {% endfor %} + {% else %} {{ session.group.acronym }} {{ session.official_timeslotassignment.timeslot.time|date:"m-d H:i" }} - {{ recording.name }} - {{ recording.get_href }} - Edit + + + - {% endfor %} - {% else %} - - {{ session.group.acronym }} - {{ session.official_timeslotassignment.timeslot.time|date:"m-d H:i" }} - - - - - {% endif %} + {% endif %} - {% endfor %} + {% endfor %} - + + {% endif %}
@@ -94,13 +96,15 @@ Filename - - {% for file in unmatched_recordings %} - - {{ file }} - - {% endfor %} - + {% if unmatched_recordings %} + + {% for file in unmatched_recordings %} + + {{ file }} + + {% endfor %} + + {% endif %} {% endif %} @@ -112,4 +116,4 @@ {% block footer-extras %} {% include "includes/upload_footer.html" %} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/ietf/secr/templates/roles/main.html b/ietf/secr/templates/roles/main.html index 84db0c85d..8033709e0 100755 --- a/ietf/secr/templates/roles/main.html +++ b/ietf/secr/templates/roles/main.html @@ -50,14 +50,11 @@
diff --git a/ietf/secr/templates/sreq/main.html b/ietf/secr/templates/sreq/main.html index 0244e9ab9..b62a751db 100755 --- a/ietf/secr/templates/sreq/main.html +++ b/ietf/secr/templates/sreq/main.html @@ -39,13 +39,14 @@ (Currently, this group does not plan to hold a session at IETF {{ meeting.number }}) {% endif %} + {% empty %} + NONE {% endfor %}
diff --git a/ietf/templates/api/index.html b/ietf/templates/api/index.html index 82accb076..760b9cef5 100644 --- a/ietf/templates/api/index.html +++ b/ietf/templates/api/index.html @@ -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 doc.json, e.g., {% url 'ietf.doc.views_doc.document_json' name='draft-ietf-poised95-std-proc-3' %} - + . You can also specify an RFC: {% url 'ietf.doc.views_doc.document_json' name='rfc2026' %} - + . No API key is needed to access this.

diff --git a/ietf/templates/base.html b/ietf/templates/base.html index ba4887891..2623e4a27 100644 --- a/ietf/templates/base.html +++ b/ietf/templates/base.html @@ -7,16 +7,16 @@ {% load django_bootstrap5 %} - - + + {% block title %}No title{% endblock %} - + {% comment Halloween %} - + {% endcomment %} - +