test: Validate HTML rendered during tests (#3782)
This commit is contained in:
parent
db254f7a48
commit
3234f1a121
|
@ -4,59 +4,38 @@
|
||||||
|
|
||||||
root = true
|
root = true
|
||||||
|
|
||||||
# Settings for IETF datatracker
|
# Global settings for IETF datatracker
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
# PEP8 Style
|
# PEP8 Style
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
# to avoid tripping Henrik's commit hook:
|
trim_trailing_whitespace = true
|
||||||
trim_trailing_whitespace = false
|
insert_final_newline = true
|
||||||
insert_final_newline = false
|
|
||||||
|
# Specializations below *add to* the above defaults
|
||||||
|
|
||||||
# Settings for .github folder
|
# Settings for .github folder
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
# GitHub Markdown Style
|
# GitHub Markdown Style
|
||||||
|
|
||||||
[.github/**]
|
[.github/**]
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
# Settings for client-side JS / Vue files
|
# Settings for client-side JS / Vue files
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
# StandardJS Style
|
# StandardJS Style
|
||||||
|
|
||||||
[client/**]
|
[client/**]
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
[package.json]
|
[package.json]
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
# Settings for cypress tests
|
# Settings for cypress tests
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
# StandardJS Style
|
# StandardJS Style
|
||||||
|
|
||||||
[cypress/**]
|
[cypress/**]
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -14,6 +14,8 @@
|
||||||
*.#*
|
*.#*
|
||||||
.*.swp
|
.*.swp
|
||||||
.DS_store
|
.DS_store
|
||||||
|
datatracker.sublime-project
|
||||||
|
datatracker.sublime-workspace
|
||||||
# Simulated Subversion default ignores end here
|
# Simulated Subversion default ignores end here
|
||||||
/.coverage
|
/.coverage
|
||||||
/.factoryboy_random_state
|
/.factoryboy_random_state
|
||||||
|
|
|
@ -24,7 +24,6 @@ RUN apt-get install -qy \
|
||||||
build-essential \
|
build-essential \
|
||||||
curl \
|
curl \
|
||||||
docker-ce-cli \
|
docker-ce-cli \
|
||||||
default-jdk \
|
|
||||||
enscript \
|
enscript \
|
||||||
gawk \
|
gawk \
|
||||||
gcc \
|
gcc \
|
||||||
|
@ -46,7 +45,6 @@ RUN apt-get install -qy \
|
||||||
libxtst6 \
|
libxtst6 \
|
||||||
libmagic-dev \
|
libmagic-dev \
|
||||||
libmariadb-dev \
|
libmariadb-dev \
|
||||||
libtidy-dev \
|
|
||||||
locales \
|
locales \
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
netcat \
|
netcat \
|
||||||
|
@ -109,9 +107,6 @@ RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requ
|
||||||
# Turn off rsyslog kernel logging (doesn't work in Docker)
|
# Turn off rsyslog kernel logging (doesn't work in Docker)
|
||||||
RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf
|
RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf
|
||||||
|
|
||||||
# Install the Nu Html Checker (v.Nu)
|
|
||||||
ADD https://github.com/validator/validator/releases/download/latest/vnu.jar /
|
|
||||||
|
|
||||||
# Fetch wait-for utility
|
# Fetch wait-for utility
|
||||||
ADD https://raw.githubusercontent.com/eficode/wait-for/v2.1.3/wait-for /usr/local/bin/
|
ADD https://raw.githubusercontent.com/eficode/wait-for/v2.1.3/wait-for /usr/local/bin/
|
||||||
RUN chmod +rx /usr/local/bin/wait-for
|
RUN chmod +rx /usr/local/bin/wait-for
|
||||||
|
|
|
@ -31,7 +31,6 @@ RUN apt-get install -qy \
|
||||||
bash \
|
bash \
|
||||||
build-essential \
|
build-essential \
|
||||||
curl \
|
curl \
|
||||||
default-jdk \
|
|
||||||
docker-ce-cli \
|
docker-ce-cli \
|
||||||
enscript \
|
enscript \
|
||||||
fish \
|
fish \
|
||||||
|
@ -56,7 +55,6 @@ RUN apt-get install -qy \
|
||||||
libmagic-dev \
|
libmagic-dev \
|
||||||
libmariadb-dev \
|
libmariadb-dev \
|
||||||
libmemcached-tools \
|
libmemcached-tools \
|
||||||
libtidy-dev \
|
|
||||||
locales \
|
locales \
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
memcached \
|
memcached \
|
||||||
|
@ -125,9 +123,6 @@ RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf
|
||||||
# Colorize the bash shell
|
# Colorize the bash shell
|
||||||
RUN sed -i 's/#force_color_prompt=/force_color_prompt=/' /root/.bashrc
|
RUN sed -i 's/#force_color_prompt=/force_color_prompt=/' /root/.bashrc
|
||||||
|
|
||||||
# Install the Nu Html Checker (v.Nu)
|
|
||||||
ADD https://github.com/validator/validator/releases/download/latest/vnu.jar /
|
|
||||||
|
|
||||||
ADD https://raw.githubusercontent.com/eficode/wait-for/v2.1.3/wait-for /usr/local/bin/
|
ADD https://raw.githubusercontent.com/eficode/wait-for/v2.1.3/wait-for /usr/local/bin/
|
||||||
RUN chmod +rx /usr/local/bin/wait-for
|
RUN chmod +rx /usr/local/bin/wait-for
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,8 @@
|
||||||
|
|
||||||
<h2>Template content</h2>
|
<h2>Template content</h2>
|
||||||
|
|
||||||
<div class = "card">
|
<div class="card">
|
||||||
<p class='pasted'>{{ template.content }}</p>
|
<p class="pasted">{{ template.content }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -109,14 +109,15 @@ def ballot_icon(context, doc):
|
||||||
else:
|
else:
|
||||||
typename = "IESG"
|
typename = "IESG"
|
||||||
|
|
||||||
res = ['<a %s href="%s" data-bs-toggle="modal" data-bs-target="#modal-%d" title="%s positions (click to show more)" class="ballot-icon"><table' % (
|
res = ['<a %s href="%s" data-bs-toggle="modal" data-bs-target="#modal-%d" aria-label="%s positions" title="%s positions (click to show more)" class="ballot-icon"><table' % (
|
||||||
right_click_string,
|
right_click_string,
|
||||||
urlreverse("ietf.doc.views_doc.ballot_popup", kwargs=dict(name=doc.name, ballot_id=ballot.pk)),
|
urlreverse("ietf.doc.views_doc.ballot_popup", kwargs=dict(name=doc.name, ballot_id=ballot.pk)),
|
||||||
ballot.pk,
|
ballot.pk,
|
||||||
|
typename,
|
||||||
typename,)]
|
typename,)]
|
||||||
if my_blocking:
|
if my_blocking:
|
||||||
res.append(' class="is-blocking" ')
|
res.append(' class="is-blocking" ')
|
||||||
res.append('>')
|
res.append('><tbody>')
|
||||||
|
|
||||||
res.append("<tr>")
|
res.append("<tr>")
|
||||||
|
|
||||||
|
@ -137,7 +138,7 @@ def ballot_icon(context, doc):
|
||||||
res.append('<td class="position-empty"></td>')
|
res.append('<td class="position-empty"></td>')
|
||||||
i = i + 1
|
i = i + 1
|
||||||
|
|
||||||
res.append("</tr></table></a>")
|
res.append("</tr></tbody></table></a>")
|
||||||
res.append('<div id="modal-%d" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog modal-dialog-scrollable modal-xl"><div class="modal-content"></div></div></div>' % ballot.pk)
|
res.append('<div id="modal-%d" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog modal-dialog-scrollable modal-xl"><div class="modal-content"></div></div></div>' % ballot.pk)
|
||||||
|
|
||||||
return mark_safe("".join(res))
|
return mark_safe("".join(res))
|
||||||
|
|
|
@ -413,13 +413,13 @@ def format_snippet(text, trunc_words=25):
|
||||||
full = keep_spacing(collapsebr(linebreaksbr(mark_safe(sanitize_fragment(text)))))
|
full = keep_spacing(collapsebr(linebreaksbr(mark_safe(sanitize_fragment(text)))))
|
||||||
snippet = truncatewords_html(full, trunc_words)
|
snippet = truncatewords_html(full, trunc_words)
|
||||||
if snippet != full:
|
if snippet != full:
|
||||||
return mark_safe('<div class="snippet">%s<button class="btn btn-sm btn-primary show-all"><i class="bi bi-caret-down"></i></button></div><div class="visually-hidden full">%s</div>' % (snippet, full))
|
return mark_safe('<div class="snippet">%s<button type="button" aria-label="Expand" class="btn btn-sm btn-primary show-all"><i class="bi bi-caret-down"></i></button></div><div class="visually-hidden full">%s</div>' % (snippet, full))
|
||||||
return mark_safe(full)
|
return mark_safe(full)
|
||||||
|
|
||||||
@register.simple_tag
|
@register.simple_tag
|
||||||
def doc_edit_button(url_name, *args, **kwargs):
|
def doc_edit_button(url_name, *args, **kwargs):
|
||||||
"""Given URL name/args/kwargs, looks up the URL just like "url" tag and returns a properly formatted button for the document material tables."""
|
"""Given URL name/args/kwargs, looks up the URL just like "url" tag and returns a properly formatted button for the document material tables."""
|
||||||
return mark_safe('<a class="btn btn-primary btn-sm" role="button" href="%s">Edit</a>' % (urlreverse(url_name, args=args, kwargs=kwargs)))
|
return mark_safe('<a class="btn btn-primary btn-sm" type="button" href="%s">Edit</a>' % (urlreverse(url_name, args=args, kwargs=kwargs)))
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
def textify(text):
|
def textify(text):
|
||||||
|
|
|
@ -1595,7 +1595,7 @@ class DocTestCase(TestCase):
|
||||||
href = q(f'div.balloter-name a[href$="{author_slug}"]').attr('href')
|
href = q(f'div.balloter-name a[href$="{author_slug}"]').attr('href')
|
||||||
ids = [
|
ids = [
|
||||||
target.attr('id')
|
target.attr('id')
|
||||||
for target in q(f'h5[id$="{author_slug}"]').items()
|
for target in q(f'p.h5[id$="{author_slug}"]').items()
|
||||||
]
|
]
|
||||||
self.assertEqual(len(ids), 1, 'Should be exactly one link for the balloter')
|
self.assertEqual(len(ids), 1, 'Should be exactly one link for the balloter')
|
||||||
self.assertEqual(href, f'#{ids[0]}', 'Anchor href should match ID')
|
self.assertEqual(href, f'#{ids[0]}', 'Anchor href should match ID')
|
||||||
|
|
|
@ -1196,9 +1196,9 @@ class BallotContentTests(TestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
def _assertBallotMessage(self, q, balloter, expected):
|
def _assertBallotMessage(self, q, balloter, expected):
|
||||||
heading = q(f'h5[id$="_{slugify(balloter.plain_name())}"]')
|
heading = q(f'p.h5[id$="_{slugify(balloter.plain_name())}"]')
|
||||||
self.assertEqual(len(heading), 1)
|
self.assertEqual(len(heading), 1)
|
||||||
# <h5/> is followed by a panel with the message of interest, so use next()
|
# <p.h5/> is followed by a panel with the message of interest, so use next()
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(heading.next().find(
|
len(heading.next().find(
|
||||||
f'*[title="{expected}"]'
|
f'*[title="{expected}"]'
|
||||||
|
|
|
@ -106,7 +106,7 @@ class ChangeStateTests(TestCase):
|
||||||
self.assertEqual(len(q('form select[name=state]')), 1)
|
self.assertEqual(len(q('form select[name=state]')), 1)
|
||||||
|
|
||||||
if next_states:
|
if next_states:
|
||||||
self.assertEqual(len(q('[type=submit][value="%s"]' % next_states[0].name)), 1)
|
self.assertEqual(len(q('[type=submit]:contains("%s")' % next_states[0].name)), 1)
|
||||||
|
|
||||||
|
|
||||||
# faulty post
|
# faulty post
|
||||||
|
@ -148,7 +148,7 @@ class ChangeStateTests(TestCase):
|
||||||
r = self.client.get(url)
|
r = self.client.get(url)
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
q = PyQuery(r.content)
|
q = PyQuery(r.content)
|
||||||
self.assertEqual(len(q('form [type=submit][value="%s"]' % first_state.name)), 1)
|
self.assertEqual(len(q('form [type=submit]:contains("%s")' % first_state.name)), 1)
|
||||||
|
|
||||||
def test_pull_from_rfc_queue(self):
|
def test_pull_from_rfc_queue(self):
|
||||||
ad = Person.objects.get(user__username="ad")
|
ad = Person.objects.get(user__username="ad")
|
||||||
|
@ -1383,7 +1383,7 @@ class SubmitToIesgTests(TestCase):
|
||||||
r = self.client.get(url)
|
r = self.client.get(url)
|
||||||
self.assertEqual(r.status_code,200)
|
self.assertEqual(r.status_code,200)
|
||||||
q = PyQuery(r.content)
|
q = PyQuery(r.content)
|
||||||
self.assertEqual(len(q('form input[name="confirm"]')),1)
|
self.assertEqual(len(q('form button[name="confirm"]')),1)
|
||||||
|
|
||||||
url = urlreverse('ietf.doc.views_draft.to_iesg', kwargs=dict(name=self.docname))
|
url = urlreverse('ietf.doc.views_draft.to_iesg', kwargs=dict(name=self.docname))
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ from ietf.utils.mail import outbox, empty_outbox, parseaddr, on_behalf_of, get_p
|
||||||
from ietf.utils.test_utils import login_testing_unauthorized, reload_db_objects
|
from ietf.utils.test_utils import login_testing_unauthorized, reload_db_objects
|
||||||
from ietf.utils.test_utils import TestCase
|
from ietf.utils.test_utils import TestCase
|
||||||
from ietf.utils.text import strip_prefix, xslugify
|
from ietf.utils.text import strip_prefix, xslugify
|
||||||
|
from django.utils.html import escape
|
||||||
|
|
||||||
class ReviewTests(TestCase):
|
class ReviewTests(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@ -175,7 +176,7 @@ class ReviewTests(TestCase):
|
||||||
self.assertContains(r, review_req.team.name)
|
self.assertContains(r, review_req.team.name)
|
||||||
try:
|
try:
|
||||||
# FIXME-LARS
|
# FIXME-LARS
|
||||||
self.assertContains(r, author.name)
|
self.assertContains(r, escape(author.name))
|
||||||
except:
|
except:
|
||||||
print(r.content)
|
print(r.content)
|
||||||
self.assertContains(r, author.name)
|
self.assertContains(r, author.name)
|
||||||
|
|
|
@ -574,7 +574,7 @@ def lastcalltext(request, name):
|
||||||
e.save()
|
e.save()
|
||||||
|
|
||||||
# make sure form has the updated text
|
# make sure form has the updated text
|
||||||
form = LastCallTextForm(initial=dict(last_call_text=e.text))
|
form = LastCallTextForm(initial=dict(last_call_text=escape(e.text)))
|
||||||
|
|
||||||
|
|
||||||
s = doc.get_state("draft-iesg")
|
s = doc.get_state("draft-iesg")
|
||||||
|
@ -813,7 +813,7 @@ def ballot_approvaltext(request, name):
|
||||||
e.save()
|
e.save()
|
||||||
|
|
||||||
# make sure form has the updated text
|
# make sure form has the updated text
|
||||||
form = ApprovalTextForm(initial=dict(approval_text=e.text))
|
form = ApprovalTextForm(initial=dict(approval_text=escape(e.text)))
|
||||||
|
|
||||||
can_announce = doc.get_state("draft-iesg").order > 19
|
can_announce = doc.get_state("draft-iesg").order > 19
|
||||||
need_intended_status = ""
|
need_intended_status = ""
|
||||||
|
|
|
@ -556,8 +556,8 @@ def review_announcement_text(request, name):
|
||||||
(existing, existing_new_work) = default_review_text(group, charter, by)
|
(existing, existing_new_work) = default_review_text(group, charter, by)
|
||||||
existing.save()
|
existing.save()
|
||||||
existing_new_work.save()
|
existing_new_work.save()
|
||||||
form = ReviewAnnouncementTextForm(initial=dict(announcement_text=existing.text,
|
form = ReviewAnnouncementTextForm(initial=dict(announcement_text=escape(existing.text),
|
||||||
new_work_text=existing_new_work.text))
|
new_work_text=escape(existing_new_work.text)))
|
||||||
|
|
||||||
if any(x in request.POST for x in ['send_annc_only','send_nw_only','send_both']) and form.is_valid():
|
if any(x in request.POST for x in ['send_annc_only','send_nw_only','send_both']) and form.is_valid():
|
||||||
if any(x in request.POST for x in ['send_annc_only','send_both']):
|
if any(x in request.POST for x in ['send_annc_only','send_both']):
|
||||||
|
@ -613,7 +613,7 @@ def action_announcement_text(request, name):
|
||||||
if "regenerate_text" in request.POST:
|
if "regenerate_text" in request.POST:
|
||||||
e = default_action_text(group, charter, by)
|
e = default_action_text(group, charter, by)
|
||||||
e.save()
|
e.save()
|
||||||
form = ActionAnnouncementTextForm(initial=dict(announcement_text=e.text))
|
form = ActionAnnouncementTextForm(initial=dict(announcement_text=escape(e.text)))
|
||||||
|
|
||||||
if "send_text" in request.POST and form.is_valid():
|
if "send_text" in request.POST and form.is_valid():
|
||||||
parsed_msg = send_mail_preformatted(request, form.cleaned_data['announcement_text'])
|
parsed_msg = send_mail_preformatted(request, form.cleaned_data['announcement_text'])
|
||||||
|
|
|
@ -716,7 +716,7 @@ def last_call(request, name):
|
||||||
|
|
||||||
if "regenerate_last_call_text" in request.POST:
|
if "regenerate_last_call_text" in request.POST:
|
||||||
e = generate_last_call_text(request,status_change)
|
e = generate_last_call_text(request,status_change)
|
||||||
form = LastCallTextForm(initial=dict(last_call_text=e.text))
|
form = LastCallTextForm(initial=dict(last_call_text=escape(e.text)))
|
||||||
|
|
||||||
return render(request, 'doc/status_change/last_call.html',
|
return render(request, 'doc/status_change/last_call.html',
|
||||||
dict(doc=status_change,
|
dict(doc=status_change,
|
||||||
|
|
|
@ -1527,7 +1527,7 @@ class DatelessMilestoneTests(TestCase):
|
||||||
r = self.client.get(url)
|
r = self.client.get(url)
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
q = PyQuery(r.content)
|
q = PyQuery(r.content)
|
||||||
self.assertEqual(q('#switch-date-use-form button').attr('style'), 'display:none;')
|
self.assertTrue(q('#switch-date-use-form button').hasClass('d-none'))
|
||||||
|
|
||||||
ms.group.charter.rev='00-00'
|
ms.group.charter.rev='00-00'
|
||||||
ms.group.charter.save()
|
ms.group.charter.save()
|
||||||
|
|
|
@ -744,17 +744,17 @@ def login(request, extra_context=None):
|
||||||
logout(request)
|
logout(request)
|
||||||
response = render(request, 'registration/missing_person.html')
|
response = render(request, 'registration/missing_person.html')
|
||||||
if require_consent:
|
if require_consent:
|
||||||
messages.warning(request, mark_safe("""
|
messages.warning(request, mark_safe('''
|
||||||
|
|
||||||
You have personal information associated with your account which is not
|
You have personal information associated with your account which is not
|
||||||
derived from draft submissions or other ietf work, namely: %s. Please go
|
derived from draft submissions or other ietf work, namely: %s. Please go
|
||||||
to your <a href='/accounts/profile'>account profile</a> and review your
|
to your <a href="/accounts/profile">account profile</a> and review your
|
||||||
personal information, then scoll to the bottom and check the 'confirm'
|
personal information, then scoll to the bottom and check the 'confirm'
|
||||||
checkbox and submit the form, in order to to indicate that that the
|
checkbox and submit the form, in order to to indicate that that the
|
||||||
provided personal information may be used and displayed within the IETF
|
provided personal information may be used and displayed within the IETF
|
||||||
datatracker.
|
datatracker.
|
||||||
|
|
||||||
""" % ', '.join(require_consent)))
|
''' % ', '.join(require_consent)))
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
|
|
@ -317,7 +317,7 @@ class LiaisonManagementTests(TestCase):
|
||||||
r = self.client.get(url)
|
r = self.client.get(url)
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
q = PyQuery(r.content)
|
q = PyQuery(r.content)
|
||||||
self.assertEqual(len(q('form input[name=do_action_taken]')), 0)
|
self.assertEqual(len(q('form button[name=do_action_taken]')), 0)
|
||||||
|
|
||||||
# log in and get
|
# log in and get
|
||||||
self.client.login(username="secretary", password="secretary+password")
|
self.client.login(username="secretary", password="secretary+password")
|
||||||
|
@ -325,13 +325,13 @@ class LiaisonManagementTests(TestCase):
|
||||||
r = self.client.get(url)
|
r = self.client.get(url)
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
q = PyQuery(r.content)
|
q = PyQuery(r.content)
|
||||||
self.assertEqual(len(q('form input[name=do_action_taken]')), 1)
|
self.assertEqual(len(q('form button[name=do_action_taken]')), 1)
|
||||||
|
|
||||||
# mark action taken
|
# mark action taken
|
||||||
r = self.client.post(url, dict(do_action_taken="1"))
|
r = self.client.post(url, dict(do_action_taken="1"))
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
q = PyQuery(r.content)
|
q = PyQuery(r.content)
|
||||||
self.assertEqual(len(q('form input[name=do_action_taken]')), 0)
|
self.assertEqual(len(q('form button[name=do_action_taken]')), 0)
|
||||||
liaison = LiaisonStatement.objects.get(id=liaison.id)
|
liaison = LiaisonStatement.objects.get(id=liaison.id)
|
||||||
self.assertTrue(liaison.action_taken)
|
self.assertTrue(liaison.action_taken)
|
||||||
|
|
||||||
|
@ -357,7 +357,7 @@ class LiaisonManagementTests(TestCase):
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
self.assertContains(r, liaison.title)
|
self.assertContains(r, liaison.title)
|
||||||
q = PyQuery(r.content)
|
q = PyQuery(r.content)
|
||||||
self.assertEqual(len(q('form input[name=approved]')), 0)
|
self.assertEqual(len(q('form button[name=approved]')), 0)
|
||||||
|
|
||||||
# check the detail page / authorized
|
# check the detail page / authorized
|
||||||
self.client.login(username="ulm-liaiman", password="ulm-liaiman+password")
|
self.client.login(username="ulm-liaiman", password="ulm-liaiman+password")
|
||||||
|
@ -368,7 +368,7 @@ class LiaisonManagementTests(TestCase):
|
||||||
from ietf.liaisons.utils import can_edit_liaison
|
from ietf.liaisons.utils import can_edit_liaison
|
||||||
user = User.objects.get(username='ulm-liaiman')
|
user = User.objects.get(username='ulm-liaiman')
|
||||||
self.assertTrue(can_edit_liaison(user, liaison))
|
self.assertTrue(can_edit_liaison(user, liaison))
|
||||||
self.assertEqual(len(q('form input[name=approved]')), 1)
|
self.assertEqual(len(q('form button[name=approved]')), 1)
|
||||||
|
|
||||||
# approve
|
# approve
|
||||||
mailbox_before = len(outbox)
|
mailbox_before = len(outbox)
|
||||||
|
|
|
@ -18,21 +18,21 @@ class ButtonWidget(Widget):
|
||||||
super(ButtonWidget, self).__init__(*args, **kwargs)
|
super(ButtonWidget, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
def render(self, name, value, **kwargs):
|
def render(self, name, value, **kwargs):
|
||||||
html = '<span style="display: none;" class="showAttachsOn">%s</span>' % conditional_escape(self.show_on)
|
html = '<span class="d-none showAttachsOn">%s</span>' % conditional_escape(self.show_on)
|
||||||
html += '<span style="display: none;" class="attachEnabledLabel">%s</span>' % conditional_escape(self.label)
|
html += '<span class="d-none attachEnabledLabel">%s</span>' % conditional_escape(self.label)
|
||||||
if self.require:
|
if self.require:
|
||||||
for i in self.require:
|
for i in self.require:
|
||||||
html += '<span style="display: none;" class="attachRequiredField">%s</span>' % conditional_escape(i)
|
html += '<span class="d-none attachRequiredField">%s</span>' % conditional_escape(i)
|
||||||
required_str = 'Please fill in %s to attach a new file' % conditional_escape(self.required_label)
|
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 += '<span class="d-none 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 += '<button type="button" class="addAttachmentWidget btn btn-primary btn-sm">%s</button>' % conditional_escape(self.label)
|
||||||
return mark_safe(html)
|
return mark_safe(html)
|
||||||
|
|
||||||
|
|
||||||
class ShowAttachmentsWidget(Widget):
|
class ShowAttachmentsWidget(Widget):
|
||||||
def render(self, name, value, **kwargs):
|
def render(self, name, value, **kwargs):
|
||||||
html = '<div id="id_%s">' % name
|
html = '<div id="id_%s">' % name
|
||||||
html += '<span style="display: none;" class="showAttachmentsEmpty form-control widget">No files attached</span>'
|
html += '<span class="d-none showAttachmentsEmpty form-control widget">No files attached</span>'
|
||||||
html += '<div class="attachedFiles form-control widget">'
|
html += '<div class="attachedFiles form-control widget">'
|
||||||
if value and isinstance(value, QuerySet):
|
if value and isinstance(value, QuerySet):
|
||||||
for attachment in value:
|
for attachment in value:
|
||||||
|
|
|
@ -3001,7 +3001,7 @@ def ajax_get_utc(request):
|
||||||
utc_day_offset = (naive_utc_dt.date() - dt.date()).days
|
utc_day_offset = (naive_utc_dt.date() - dt.date()).days
|
||||||
html = "<span>{utc} UTC</span>".format(utc=utc)
|
html = "<span>{utc} UTC</span>".format(utc=utc)
|
||||||
if utc_day_offset != 0:
|
if utc_day_offset != 0:
|
||||||
html = html + "<span class='day-offset'> {0:+d} Day</span>".format(utc_day_offset)
|
html = html + '<span class="day-offset"> {0:+d} Day</span>'.format(utc_day_offset)
|
||||||
context_data = {'timezone': timezone,
|
context_data = {'timezone': timezone,
|
||||||
'time': time,
|
'time': time,
|
||||||
'utc': utc,
|
'utc': utc,
|
||||||
|
|
|
@ -117,7 +117,7 @@ class SessionForm(forms.Form):
|
||||||
self._add_widget_class(constraint_field.widget, 'wg_constraint')
|
self._add_widget_class(constraint_field.widget, 'wg_constraint')
|
||||||
|
|
||||||
selector_field = forms.ChoiceField(choices=group_acronym_choices, required=False)
|
selector_field = forms.ChoiceField(choices=group_acronym_choices, required=False)
|
||||||
selector_field.widget.attrs['data-slug'] = constraintname.slug # used by onChange handler
|
selector_field.widget.attrs['data-slug'] = constraintname.slug # used by onchange handler
|
||||||
self._add_widget_class(selector_field.widget, 'wg_constraint_selector')
|
self._add_widget_class(selector_field.widget, 'wg_constraint_selector')
|
||||||
|
|
||||||
cfield_id = 'constraint_{}'.format(constraintname.slug)
|
cfield_id = 'constraint_{}'.format(constraintname.slug)
|
||||||
|
@ -150,7 +150,7 @@ class SessionForm(forms.Form):
|
||||||
field_id)
|
field_id)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.fields['joint_with_groups_selector'].widget.attrs['onChange'] = "document.form_post.joint_with_groups.value=document.form_post.joint_with_groups.value + ' ' + this.options[this.selectedIndex].value; return 1;"
|
self.fields['joint_with_groups_selector'].widget.attrs['onchange'] = "document.form_post.joint_with_groups.value=document.form_post.joint_with_groups.value + ' ' + this.options[this.selectedIndex].value; return 1;"
|
||||||
self.fields["resources"].choices = [(x.pk,x.desc) for x in ResourceAssociation.objects.filter(name__used=True).order_by('name__order') ]
|
self.fields["resources"].choices = [(x.pk,x.desc) for x in ResourceAssociation.objects.filter(name__used=True).order_by('name__order') ]
|
||||||
|
|
||||||
if self.hidden:
|
if self.hidden:
|
||||||
|
|
|
@ -33,7 +33,7 @@ Subject: {{ message.subject }}
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul id="announcement-button-list">
|
<ul id="announcement-button-list">
|
||||||
<li><button type="submit" name="submit" value="Send">Send</button></li>
|
<li><button type="submit" name="submit" value="Send">Send</button></li>
|
||||||
<li><button onclick="history.go(-1);return false">Back</button></li>
|
<li><button type="button" onclick="history.go(-1);return false">Back</button></li>
|
||||||
<li><button type="submit" name="submit" value="Cancel">Cancel</button></li>
|
<li><button type="submit" name="submit" value="Cancel">Cancel</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
|
@ -13,18 +13,20 @@
|
||||||
|
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
<table class="new-style full-width amstable" id="announce-table">
|
<table class="new-style full-width amstable" id="announce-table">
|
||||||
|
<tbody>
|
||||||
{% if form.non_field_errors %}{{ form.non_field_errors }}{% endif %}
|
{% if form.non_field_errors %}{{ form.non_field_errors }}{% endif %}
|
||||||
{% for field in form.visible_fields %}
|
{% for field in form.visible_fields %}
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{ field.label_tag }}{% if field.field.required %}<span class="required"> *</span>{% endif %}</th>
|
<th scope="row">{{ field.label_tag }}{% if field.field.required %}<span class="required"> *</span>{% endif %}</th>
|
||||||
<td>{{ field.errors }}{{ field }}{% if field.help_text %}<br>{{ field.help_text }}{% endif %}</td>
|
<td>{{ field.errors }}{{ field }}{% if field.help_text %}<br>{{ field.help_text }}{% endif %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul id="announcement-button-list">
|
<ul id="announcement-button-list">
|
||||||
<li><button type="submit" name="submit" value="Continue">Continue</button></li>
|
<li><button type="submit" name="submit" value="Continue">Continue</button></li>
|
||||||
<li><button onclick="window.location='../'" value="Cancel">Cancel</button></li>
|
<li><button type="button" onclick="window.location='../'" value="Cancel">Cancel</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,9 @@
|
||||||
<table id="areas-list-table" class="full-width">
|
<table id="areas-list-table" class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Name</th>
|
<th scope="col">Name</th>
|
||||||
<th>Acronym</th>
|
<th scope="col">Acronym</th>
|
||||||
<th>Status</th>
|
<th scope="col">Status</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
{% block title %}Areas - People{% endblock %}
|
{% block title %}Areas - People{% endblock %}
|
||||||
|
|
||||||
{% block extrahead %}{{ block.super }}
|
{% block extrahead %}{{ block.super }}
|
||||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}">
|
||||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -21,15 +21,15 @@
|
||||||
<table class="center">
|
<table class="center">
|
||||||
{% for director in directors %}
|
{% for director in directors %}
|
||||||
<form action="modify/" method="post">{% csrf_token %}
|
<form action="modify/" method="post">{% csrf_token %}
|
||||||
<input type="hidden" name="tag" value="{{ director.person.id }}" />
|
<input type="hidden" name="tag" value="{{ director.person.id }}">
|
||||||
<tr>
|
<tr>
|
||||||
<td id="id-ad-name"><a href="#">{{ director.person.name }}</a></td>
|
<td id="id-ad-name"><a href="#">{{ director.person.name }}</a></td>
|
||||||
<td>{% if director.name.slug == "ad" %}
|
<td>{% if director.name.slug == "ad" %}
|
||||||
Voting Enabled
|
Voting Enabled
|
||||||
{% else %}
|
{% else %}
|
||||||
<input type="submit" name="submit" value="Enable Voting" /></td>
|
<button type="submit" name="submit">Enable Voting</button></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td><input type="submit" name="submit" value="Retire" /></td>
|
<td><button type="submit" name="submit">Retire</button></td>
|
||||||
</tr>
|
</tr>
|
||||||
</form>
|
</form>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -40,18 +40,21 @@
|
||||||
<p>
|
<p>
|
||||||
<form action="." method="post">{% csrf_token %}
|
<form action="." method="post">{% csrf_token %}
|
||||||
<table class="center">
|
<table class="center">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" name="submit" value="Add" /></td>
|
<td><button type="submit" name="submit">Add</button></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</div> <!-- iniline-related -->
|
</div> <!-- iniline-related -->
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="history.go(-1);return true">Back</button></li>
|
<li><button type="button" onclick="history.go(-1);return true">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<div class="module">
|
<div class="module">
|
||||||
<h2>Area - View</h2>
|
<h2>Area - View</h2>
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
|
<tbody>
|
||||||
<tr><td>Area Acronym:</td><td>{{ area.acronym }}</td></tr>
|
<tr><td>Area Acronym:</td><td>{{ area.acronym }}</td></tr>
|
||||||
<tr><td>Area Name:</td><td>{{ area.name }}</td></tr>
|
<tr><td>Area Name:</td><td>{{ area.name }}</td></tr>
|
||||||
<tr><td>Status:</td><td>{{ area.state }}</td></tr>
|
<tr><td>Status:</td><td>{{ area.state }}</td></tr>
|
||||||
|
@ -24,23 +24,26 @@
|
||||||
<tr><td>Concluded Date:</td><td>{{ area.concluded_date|date:"Y-m-d" }}</td></tr>
|
<tr><td>Concluded Date:</td><td>{{ area.concluded_date|date:"Y-m-d" }}</td></tr>
|
||||||
<tr><td>Last Modified Date:</td><td>{{ area.time|date:"Y-m-d" }}</td></tr>
|
<tr><td>Last Modified Date:</td><td>{{ area.time|date:"Y-m-d" }}</td></tr>
|
||||||
<tr><td>Comments:</td><td>{{ area.comments}}</td></tr>
|
<tr><td>Comments:</td><td>{{ area.comments}}</td></tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="inline-related">
|
<div class="inline-related">
|
||||||
<h2>Directors</h2>
|
<h2>Directors</h2>
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
|
<tbody>
|
||||||
{% for director in directors %}
|
{% for director in directors %}
|
||||||
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=director.person.id %}">{{ director.person.name }}</a>{% if director.name.slug == "pre-ad" %} (Incoming){% endif %}</td></tr>
|
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=director.person.id %}">{{ director.person.name }}</a>{% if director.name.slug == "pre-ad" %} (Incoming){% endif %}</td></tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div> <!-- inline-group -->
|
</div> <!-- inline-group -->
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<!-- <li><button onclick="window.location='../../'">Back</button></li> -->
|
<!-- <li><button type="button" onclick="window.location='../../'">Back</button></li> -->
|
||||||
<li><button onclick="window.location='edit/'">Edit</button></li>
|
<li><button type="button" onclick="window.location='edit/'">Edit</button></li>
|
||||||
<li><button onclick="window.location='people/'">People</button></li>
|
<li><button type="button" onclick="window.location='people/'">People</button></li>
|
||||||
<li><button onclick="window.location='{% url 'ietf.secr.groups.views.search' %}?primary_area={{ area.id }}'">Groups</button></li>
|
<li><button type="button" onclick="window.location='{% url 'ietf.secr.groups.views.search' %}?primary_area={{ area.id }}'">Groups</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
{% load staticfiles %}
|
{% load staticfiles %}
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>{% block title %}{% endblock %}</title>
|
<title>{% block title %}{% endblock %}</title>
|
||||||
<link rel="stylesheet" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}" />
|
<link rel="stylesheet" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}">
|
||||||
<link rel="stylesheet" href="{% static 'secr/css/forms.css' %}" />
|
<link rel="stylesheet" href="{% static 'secr/css/forms.css' %}">
|
||||||
<link rel="stylesheet" href="{% static 'secr/css/custom.css' %}" />
|
<link rel="stylesheet" href="{% static 'secr/css/custom.css' %}">
|
||||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}">
|
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}">
|
||||||
|
|
||||||
{% if not server_mode == "production" %}
|
{% if not server_mode == "production" %}
|
||||||
<link rel="stylesheet" href="{% static 'secr/css/test.css' %}" />
|
<link rel="stylesheet" href="{% static 'secr/css/test.css' %}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% block extrastyle %}{% endblock %}
|
{% block extrastyle %}{% endblock %}
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
<script src="{% static 'ietf/js/ietf.js' %}"></script>
|
<script src="{% static 'ietf/js/ietf.js' %}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
|
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE">{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
|
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
|
||||||
|
@ -41,6 +41,7 @@
|
||||||
<!-- Breadcrumbs -->
|
<!-- Breadcrumbs -->
|
||||||
<div class="breadcrumbs">
|
<div class="breadcrumbs">
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-start">
|
<td class="text-start">
|
||||||
{% block breadcrumbs %}<a href="/secr/">Home</a>{% endblock %}
|
{% block breadcrumbs %}<a href="/secr/">Home</a>{% endblock %}
|
||||||
|
@ -49,6 +50,7 @@
|
||||||
{% block instructions %}{% endblock %}
|
{% block instructions %}{% endblock %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- END Breadcrumbs -->
|
<!-- END Breadcrumbs -->
|
||||||
|
@ -65,6 +67,7 @@
|
||||||
|
|
||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
<div id="content" class="{% block coltype %}colM{% endblock %}">
|
<div id="content" class="{% block coltype %}colM{% endblock %}">
|
||||||
|
<!-- [html-validate-disable-block input-missing-label -- FIXME: a lot of broken HTML in secr templates] -->
|
||||||
{% block pretitle %}{% endblock %}
|
{% block pretitle %}{% endblock %}
|
||||||
{% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
|
{% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -72,7 +75,7 @@
|
||||||
{{ content }}
|
{{ content }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block sidebar %}{% endblock %}
|
{% block sidebar %}{% endblock %}
|
||||||
<br class="clear" />
|
<br class="clear">
|
||||||
</div>
|
</div>
|
||||||
<!-- END Content -->
|
<!-- END Content -->
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
{% load staticfiles %}
|
{% load staticfiles %}
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>{% block title %}{% endblock %}</title>
|
<title>{% block title %}{% endblock %}</title>
|
||||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}"/>
|
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}">
|
||||||
<link rel="stylesheet" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}" />
|
<link rel="stylesheet" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}">
|
||||||
<link rel="stylesheet" href="{% static 'secr/css/forms.css' %}" />
|
<link rel="stylesheet" href="{% static 'secr/css/forms.css' %}">
|
||||||
<link rel="stylesheet" href="{% static 'secr/css/custom.css' %}" />
|
<link rel="stylesheet" href="{% static 'secr/css/custom.css' %}">
|
||||||
{% if not server_mode == "production" %}
|
{% if not server_mode == "production" %}
|
||||||
<link rel="stylesheet" href="{% static 'secr/css/test.css' %}" />
|
<link rel="stylesheet" href="{% static 'secr/css/test.css' %}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% block extrastyle %}{% endblock %}
|
{% block extrastyle %}{% endblock %}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
<script src="{% static 'ietf/js/ietf.js' %}"></script>
|
<script src="{% static 'ietf/js/ietf.js' %}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
|
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE">{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
|
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
|
||||||
|
@ -40,6 +40,7 @@
|
||||||
<!-- Breadcrumbs -->
|
<!-- Breadcrumbs -->
|
||||||
<div class="breadcrumbs">
|
<div class="breadcrumbs">
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-start">
|
<td class="text-start">
|
||||||
{% block breadcrumbs %}<a href="/secr/">Home</a>{% endblock %}
|
{% block breadcrumbs %}<a href="/secr/">Home</a>{% endblock %}
|
||||||
|
@ -48,6 +49,7 @@
|
||||||
{% block instructions %}{% endblock %}
|
{% block instructions %}{% endblock %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- END Breadcrumbs -->
|
<!-- END Breadcrumbs -->
|
||||||
|
@ -64,6 +66,7 @@
|
||||||
|
|
||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
<div id="content" class="{% block coltype %}colM{% endblock %}">
|
<div id="content" class="{% block coltype %}colM{% endblock %}">
|
||||||
|
<!-- [html-validate-disable-block input-missing-label -- FIXME: a lot of broken HTML in secr templates] -->
|
||||||
{% block pretitle %}{% endblock %}
|
{% block pretitle %}{% endblock %}
|
||||||
{% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
|
{% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -71,7 +74,7 @@
|
||||||
{{ content }}
|
{{ content }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block sidebar %}{% endblock %}
|
{% block sidebar %}{% endblock %}
|
||||||
<br class="clear" />
|
<br class="clear">
|
||||||
</div>
|
</div>
|
||||||
<!-- END Content -->
|
<!-- END Content -->
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
{% block branding %}
|
{% block branding %}
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-start">
|
<td class="text-start">
|
||||||
<h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {% else %} IETF Dashboard {% endif %}</h1>
|
<h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {% else %} IETF Dashboard {% endif %}</h1>
|
||||||
|
@ -16,6 +17,7 @@
|
||||||
<span class="login">{% if user|has_role:"Secretariat" %}Secretariat {% endif %}Logged in: <a href="/accounts/profile/">{{ user }}</a> | <a rel="nofollow" href="/accounts/logout/">Log out</a></span>
|
<span class="login">{% if user|has_role:"Secretariat" %}Secretariat {% endif %}Logged in: <a href="/accounts/profile/">{{ user }}</a> | <a rel="nofollow" href="/accounts/logout/">Log out</a></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -31,7 +33,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="footer-logo">
|
<div id="footer-logo">
|
||||||
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" class="text-end p-3" /></a>
|
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" class="text-end p-3" ></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
{% block branding %}
|
{% block branding %}
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-start">
|
<td class="text-start">
|
||||||
<h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {% else %} WG Chair Dashboard {% endif %}</h1>
|
<h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {% else %} WG Chair Dashboard {% endif %}</h1>
|
||||||
|
@ -16,6 +17,7 @@
|
||||||
<span class="login">{% if user|has_role:"Secretariat" %}Secretariat {% endif %}Logged in: <a href="/accounts/profile/">{{ user }}</a> | <a rel="nofollow" href="/accounts/logout/">Log out</a></span>
|
<span class="login">{% if user|has_role:"Secretariat" %}Secretariat {% endif %}Logged in: <a href="/accounts/profile/">{{ user }}</a> | <a rel="nofollow" href="/accounts/logout/">Log out</a></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -31,7 +33,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="footer-logo">
|
<div id="footer-logo">
|
||||||
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" class="text-end p-3" /></a>
|
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" class="text-end p-3" ></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -16,7 +16,7 @@
|
||||||
<div>
|
<div>
|
||||||
<p>
|
<p>
|
||||||
<input type="hidden" name="post" value="yes">
|
<input type="hidden" name="post" value="yes">
|
||||||
<input type="submit" value="Yes, I'm sure">
|
<button type="submit">Yes, I'm sure</button>
|
||||||
<a href="#" onclick="history.go(-1);return false;" class="button cancel-link">Take me back</a>
|
<a href="#" onclick="history.go(-1);return false;" class="button cancel-link">Take me back</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<div>
|
<div>
|
||||||
<p>
|
<p>
|
||||||
<input type="hidden" name="post" value="yes">
|
<input type="hidden" name="post" value="yes">
|
||||||
<input type="submit" value="Yes, I'm sure">
|
<button type="submit">Yes, I'm sure</button>
|
||||||
<a href="#" onclick="history.go(-1);return false;" class="button cancel-link">Take me back</a>
|
<a href="#" onclick="history.go(-1);return false;" class="button cancel-link">Take me back</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -12,7 +12,9 @@
|
||||||
<h2>Console</h2>
|
<h2>Console</h2>
|
||||||
|
|
||||||
<table class="full-width amstable" id="announce-table">
|
<table class="full-width amstable" id="announce-table">
|
||||||
<tr><th>Latest DocEvent</th><td>{{ latest_docevent }}</td></tr>
|
<tbody>
|
||||||
|
<tr><th scope="row">Latest DocEvent</th><td>{{ latest_docevent }}</td></tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
{% block title %}Groups - People{% endblock %}
|
{% block title %}Groups - People{% endblock %}
|
||||||
|
|
||||||
{% block extrahead %}{{ block.super }}
|
{% block extrahead %}{{ block.super }}
|
||||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}">
|
||||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -22,10 +22,10 @@
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Role</th>
|
<th scope="col">Role</th>
|
||||||
<th>Name</th>
|
<th scope="col">Name</th>
|
||||||
<th>Email</th>
|
<th scope="col">Email</th>
|
||||||
<th>Action</th>
|
<th scope="col">Action</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% if group.role_set.all %}
|
{% if group.role_set.all %}
|
||||||
|
@ -49,19 +49,21 @@
|
||||||
{{ form.non_field_errors }}
|
{{ form.non_field_errors }}
|
||||||
{{ form.group_acronym }}
|
{{ form.group_acronym }}
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ form.name.errors }}{{ form.name }}</td>
|
<td>{{ form.name.errors }}<label for="{{ form.name.id_for_label }}" aria-label="Name"></label>{{ form.name }}</td>
|
||||||
<td>{{ form.person.errors }}{{ form.person }}{% if form.person.help_text %}<br>{{ form.person.help_text }}{% endif %}</td>
|
<td>{{ form.person.errors }}<label for="{{ form.person.id_for_label }}" aria-label="Person"></label>{{ form.person }}{% if form.person.help_text %}<br>{{ form.person.help_text }}{% endif %}</td>
|
||||||
<td>{{ form.email.errors }}{{ form.email }}{% if form.email.help_text %}<br>{{ form.email.help_text }}{% endif %}</td>
|
<td>{{ form.email.errors }}<label for="{{ form.email.id_for_label }}" aria-label="Email"></label>{{ form.email }}{% if form.email.help_text %}<br>{{ form.email.help_text }}{% endif %}</td>
|
||||||
<td><input type="submit" name="submit" value="Add" /></td>
|
<td><button type="submit" name="submit">Add</button></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</div> <!-- inline-related -->
|
</div> <!-- inline-related -->
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='../'">Back</button></li>
|
<li><button type="button" onclick="window.location='../'">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,10 @@
|
||||||
<h2>Groups - Search</h2>
|
<h2>Groups - Search</h2>
|
||||||
<form enctype="multipart/form-data" method="post">{% csrf_token %}
|
<form enctype="multipart/form-data" method="post">{% csrf_token %}
|
||||||
<table class="full-width amstable">
|
<table class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% include "includes/buttons_search.html" %}
|
{% include "includes/buttons_search.html" %}
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<div id="groups-view-col1">
|
<div id="groups-view-col1">
|
||||||
<h2>Groups - View</h2>
|
<h2>Groups - View</h2>
|
||||||
<table >
|
<table >
|
||||||
|
<tbody>
|
||||||
<tr><td>Group Acronym:</td><td>{{ group.acronym }}</td></tr>
|
<tr><td>Group Acronym:</td><td>{{ group.acronym }}</td></tr>
|
||||||
<tr><td>Group Name:</td><td>{{ group.name }}</td></tr>
|
<tr><td>Group Name:</td><td>{{ group.name }}</td></tr>
|
||||||
<tr><td>Status:</td><td>{{ group.state }}</td></tr>
|
<tr><td>Status:</td><td>{{ group.state }}</td></tr>
|
||||||
|
@ -56,6 +56,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<tr><td>Comments:</td><td>{{ group.comments }}</td></tr>
|
<tr><td>Comments:</td><td>{{ group.comments }}</td></tr>
|
||||||
<tr><td>Last Modified Date:</td><td>{{ group.time }}</td></tr>
|
<tr><td>Last Modified Date:</td><td>{{ group.time }}</td></tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
@ -109,11 +110,11 @@
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='edit/'">Edit</button></li>
|
<li><button type="button" onclick="window.location='edit/'">Edit</button></li>
|
||||||
<li><button onclick="window.location='people/'">People</button></li>
|
<li><button type="button" onclick="window.location='people/'">People</button></li>
|
||||||
{% comment %}
|
{% comment %}
|
||||||
<li><button onclick="window.location='{% url "sec.ids.views.search" id=group.group_acronym.acronym_id %}'">Drafts</button></li>
|
<li><button type="button" onclick="window.location='{% url "sec.ids.views.search" id=group.group_acronym.acronym_id %}'">Drafts</button></li>
|
||||||
<li><button onclick="window.location='{% url "sec.rfcs.views.search" id=group.group_acronym.acronym_id %}'">RFCs</button></li>
|
<li><button type="button" onclick="window.location='{% url "sec.rfcs.views.search" id=group.group_acronym.acronym_id %}'">RFCs</button></li>
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Date</th>
|
<th scope="col">Date</th>
|
||||||
<th>Time</th>
|
<th scope="col">Time</th>
|
||||||
<th>Action</th>
|
<th scope="col">Action</th>
|
||||||
<th>Name</th>
|
<th scope="col">Name</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='../'">Back</button></li>
|
<li><button type="button" onclick="window.location='../'">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<table id="group-search-results" class="center" cellspacing="0">
|
<table id="group-search-results" class="center" cellspacing="0">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Group Name</th>
|
<th scope="col">Group Name</th>
|
||||||
<th>Group Acronym</th>
|
<th scope="col">Group Acronym</th>
|
||||||
<th>Status</th>
|
<th scope="col">Status</th>
|
||||||
<th>Type</th>
|
<th scope="col">Type</th>
|
||||||
<th>Meeting Scheduled</th>
|
<th scope="col">Meeting Scheduled</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
<p>Use this to process meeting materials files that have been converted to PDF and uploaded to the server.</p>
|
<p>Use this to process meeting materials files that have been converted to PDF and uploaded to the server.</p>
|
||||||
<ul class="none">
|
<ul class="none">
|
||||||
<li>
|
<li>
|
||||||
<button onclick="window.location='{% url 'ietf.secr.proceedings.views.process_pdfs' meeting_num=meeting.number %}'">Process PDFs</button>
|
<button type="button" onclick="window.location='{% url 'ietf.secr.proceedings.views.process_pdfs' meeting_num=meeting.number %}'">Process PDFs</button>
|
||||||
<span class="{% if ppt_count > 0 %}alert{% endif %}">{{ ppt_count }} PowerPoint files waiting to be converted</span>
|
<span class="{% if ppt_count > 0 %}alert{% endif %}">{{ ppt_count }} PowerPoint files waiting to be converted</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Use this to input session recording information.</p>
|
<p>Use this to input session recording information.</p>
|
||||||
<ul class="none">
|
<ul class="none">
|
||||||
<li><button onclick="window.location='{% url 'ietf.secr.proceedings.views.recording' meeting_num=meeting.number %}'">Recordings</button>
|
<li><button type="button" onclick="window.location='{% url 'ietf.secr.proceedings.views.recording' meeting_num=meeting.number %}'">Recordings</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Name</th>
|
<th scope="col">Name</th>
|
||||||
<th>Email</th>
|
<th scope="col">Email</th>
|
||||||
<th>ID</th>
|
<th scope="col">ID</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% if results %}
|
{% if results %}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
{{ form.non_field_errors }}
|
{{ form.non_field_errors }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<table id="sessions-new-table">
|
<table id="sessions-new-table">
|
||||||
|
<tbody>
|
||||||
<tr class="bg1"><td>Working Group Name:</td><td>{{ group.name }} ({{ group.acronym }})</td></tr>
|
<tr class="bg1"><td>Working Group Name:</td><td>{{ group.name }} ({{ group.acronym }})</td></tr>
|
||||||
<tr class="bg2"><td>Area Name:</td><td>{% if group.parent %}{{ group.parent.name }} ({{ group.parent.acronym }}){% endif %}</td></tr>
|
<tr class="bg2"><td>Area Name:</td><td>{% if group.parent %}{{ group.parent.name }} ({{ group.parent.acronym }}){% endif %}</td></tr>
|
||||||
<tr class="bg1"><td>Number of Sessions:<span class="required">*</span></td><td>{{ form.num_session.errors }}{{ form.num_session }}</td></tr>
|
<tr class="bg1"><td>Number of Sessions:<span class="required">*</span></td><td>{{ form.num_session.errors }}{{ form.num_session }}</td></tr>
|
||||||
|
@ -31,6 +31,7 @@
|
||||||
<tr class="bg1"><td>Conflicts to Avoid:</td>
|
<tr class="bg1"><td>Conflicts to Avoid:</td>
|
||||||
<td>
|
<td>
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">Other WGs that included {{ group.name }} in their conflict lists:</td>
|
<td colspan="2">Other WGs that included {{ group.name }} in their conflict lists:</td>
|
||||||
<td>{{ session_conflicts.inbound|default:"None" }}</td>
|
<td>{{ session_conflicts.inbound|default:"None" }}</td>
|
||||||
|
@ -40,7 +41,7 @@
|
||||||
{% if forloop.first %}<td rowspan="{{ form.wg_constraint_count }}" >WG Sessions:<br>You may select multiple WGs within each category</td>{% endif %}
|
{% if forloop.first %}<td rowspan="{{ form.wg_constraint_count }}" >WG Sessions:<br>You may select multiple WGs within each category</td>{% endif %}
|
||||||
<td>{{ cname|title }}</td>
|
<td>{{ cname|title }}</td>
|
||||||
<td>{{ cselector }}
|
<td>{{ cselector }}
|
||||||
<input type="button" id="wg_delete_{{ cname.slug }}" value="Delete the last entry" onClick="ietf_sessions.delete_wg_constraint_clicked('{{ cname.slug }}')"><br>
|
<button type="button" id="wg_delete_{{ cname.slug }}" onclick="ietf_sessions.delete_wg_constraint_clicked('{{ cname.slug }}')">Delete the last entry</button><br>
|
||||||
{{ cfield.errors }}{{ cfield }}
|
{{ cfield.errors }}{{ cfield }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -64,6 +65,7 @@
|
||||||
<td colspan="2">BOF Sessions:</td>
|
<td colspan="2">BOF Sessions:</td>
|
||||||
<td>If the sessions can not be found in the fields above, please enter free form requests in the Special Requests field below.</td>
|
<td>If the sessions can not be found in the fields above, please enter free form requests in the Special Requests field below.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -77,22 +79,23 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="bg1">
|
<tr class="bg1">
|
||||||
<td>Times during which this WG can <strong>not</strong> meet:</td>
|
<td>Times during which this WG can <strong>not</strong> meet:</td>
|
||||||
|
<!-- [html-validate-disable-block no-redundant-for -- FIXME: form renders with redundant for attributes] -->
|
||||||
<td>{{ form.timeranges.errors }}{{ form.timeranges }}</td>
|
<td>{{ form.timeranges.errors }}{{ form.timeranges }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="bg2">
|
<tr class="bg2">
|
||||||
<td>
|
<td>
|
||||||
Plan session adjacent with another WG:<br />
|
Plan session adjacent with another WG:<br>
|
||||||
(Immediately before or after another WG, no break in between, in the same room.)
|
(Immediately before or after another WG, no break in between, in the same room.)
|
||||||
</td>
|
</td>
|
||||||
<td>{{ form.adjacent_with_wg.errors }}{{ form.adjacent_with_wg }}</td>
|
<td>{{ form.adjacent_with_wg.errors }}{{ form.adjacent_with_wg }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="bg1">
|
<tr class="bg1">
|
||||||
<td>
|
<td>
|
||||||
Joint session with:<br />
|
Joint session with:<br>
|
||||||
(To request one session for multiple WGs together.)
|
(To request one session for multiple WGs together.)
|
||||||
</td>
|
</td>
|
||||||
<td>{{ form.joint_with_groups_selector }}
|
<td>{{ form.joint_with_groups_selector }}
|
||||||
<input type="button" value="Delete the last entry" onClick="ietf_sessions.delete_last_joint_with_groups(); return 1;"><br>
|
<button type="button" onclick="ietf_sessions.delete_last_joint_with_groups(); return 1;">Delete the last entry</button><br>
|
||||||
{{ form.joint_with_groups.errors }}{{ form.joint_with_groups }}
|
{{ form.joint_with_groups.errors }}{{ form.joint_with_groups }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -106,9 +109,10 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<tr class="bg2">
|
<tr class="bg2">
|
||||||
<td>Special Requests:<br /> <br />i.e. restrictions on meeting times / days, etc.<br /> (limit 200 characters)</td>
|
<td>Special Requests:<br> <br>i.e. restrictions on meeting times / days, etc.<br> (limit 200 characters)</td>
|
||||||
<td>{{ form.comments.errors }}{{ form.comments }}</td>
|
<td>{{ form.comments.errors }}{{ form.comments }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% load ams_filters %}
|
{% load ams_filters %}
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
|
<tbody>
|
||||||
<tr class="row1"><td>Working Group Name:</td><td>{{ group.name }} ({{ group.acronym }})</td></tr>
|
<tr class="row1"><td>Working Group Name:</td><td>{{ group.name }} ({{ group.acronym }})</td></tr>
|
||||||
<tr class="row2"><td>Area Name:</td><td>{{ group.parent }}</td></tr>
|
<tr class="row2"><td>Area Name:</td><td>{{ group.parent }}</td></tr>
|
||||||
<tr class="row1"><td>Number of Sessions Requested:</td><td>{% if session.third_session %}3{% else %}{{ session.num_session }}{% endif %}</td></tr>
|
<tr class="row1"><td>Number of Sessions Requested:</td><td>{% if session.third_session %}3{% else %}{{ session.num_session }}{% endif %}</td></tr>
|
||||||
|
@ -15,9 +15,11 @@
|
||||||
<td>
|
<td>
|
||||||
{% if session_conflicts.outbound %}
|
{% if session_conflicts.outbound %}
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
{% for conflict in session_conflicts.outbound %}
|
{% for conflict in session_conflicts.outbound %}
|
||||||
<tr><td>{{ conflict.name|title }}: </td><td>{{ conflict.groups }}</td></tr>
|
<tr><td>{{ conflict.name|title }}: </td><td>{{ conflict.groups }}</td></tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{% else %}<i>None</i>{% endif %}
|
{% else %}<i>None</i>{% endif %}
|
||||||
</td>
|
</td>
|
||||||
|
@ -57,4 +59,5 @@
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<tr class="row1"><td>Special Requests:</td><td>{{ session.comments }}</td></tr>
|
<tr class="row1"><td>Special Requests:</td><td>{{ session.comments }}</td></tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
|
@ -2,5 +2,5 @@
|
||||||
<li><a href="https://www.ietf.org/instructions/meeting_materials_tool.html" target="_blank">Instructions</a>.</li>
|
<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>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>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 %}</li>
|
||||||
</ul>
|
</ul>
|
|
@ -7,9 +7,10 @@
|
||||||
{% if user|has_role:"Secretariat" %}
|
{% if user|has_role:"Secretariat" %}
|
||||||
|
|
||||||
<table class="menu">
|
<table class="menu">
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<h3>IESG</h3>
|
<h2>IESG</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li> <a href="{% url 'ietf.secr.announcement.views.main' %}"><b>Announcement</b></a></li>
|
<li> <a href="{% url 'ietf.secr.announcement.views.main' %}"><b>Announcement</b></a></li>
|
||||||
<li> <a href="{% url 'ietf.secr.telechat.views.main' %}"><b>Telechat</b></a></li>
|
<li> <a href="{% url 'ietf.secr.telechat.views.main' %}"><b>Telechat</b></a></li>
|
||||||
|
@ -17,7 +18,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<h3>IDs and WGs Process</h3>
|
<h2>IDs and WGs Process</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li> <a href="{% url "ietf.secr.areas.views.list_areas" %}"><b>Areas</b></a></li>
|
<li> <a href="{% url "ietf.secr.areas.views.list_areas" %}"><b>Areas</b></a></li>
|
||||||
<li> <a href="{% url 'ietf.secr.groups.views.search' %}"><b>Groups</b></a></li>
|
<li> <a href="{% url 'ietf.secr.groups.views.search' %}"><b>Groups</b></a></li>
|
||||||
|
@ -28,7 +29,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<h3>Meetings and Proceedings</h3>
|
<h2>Meetings and Proceedings</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li> <a href="{% url "ietf.secr.sreq.views.main" %}"><b>Session Requests</b></a></li>
|
<li> <a href="{% url "ietf.secr.sreq.views.main" %}"><b>Session Requests</b></a></li>
|
||||||
<li> <a href="{% url 'ietf.secr.proceedings.views.main' %}"><b>Meeting Materials Manager (Proceedings)</b></a></li>
|
<li> <a href="{% url 'ietf.secr.proceedings.views.main' %}"><b>Meeting Materials Manager (Proceedings)</b></a></li>
|
||||||
|
@ -37,20 +38,22 @@
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<h3>IPR</h3>
|
<h2>IPR</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li> <a href="{% url 'ietf.ipr.views.admin' state='pending' %}"><b>IPR Admin</b></a></li>
|
<li> <a href="{% url 'ietf.ipr.views.admin' state='pending' %}"><b>IPR Admin</b></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
<table class="menu">
|
<table class="menu">
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<h3>Section 1</h3>
|
<h2>Section 1</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li> <a href="{% url "ietf.secr.sreq.views.main" %}"><b>Session Requests</b></a></li>
|
<li> <a href="{% url "ietf.secr.sreq.views.main" %}"><b>Session Requests</b></a></li>
|
||||||
<li> <a href="{% url 'ietf.secr.proceedings.views.main' %}"><b>Meeting Material Manager</b></a></li>
|
<li> <a href="{% url 'ietf.secr.proceedings.views.main' %}"><b>Meeting Material Manager</b></a></li>
|
||||||
|
@ -58,17 +61,18 @@
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<h3>Section 2</h3>
|
<h2>Section 2</h2>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<h3>Section 3</h3>
|
<h2>Section 3</h2>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<h3>Section 4</h3>
|
<h2>Section 4</h2>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -18,7 +18,10 @@
|
||||||
<h2>Proceedings - Add</h2>
|
<h2>Proceedings - Add</h2>
|
||||||
<form id="proceedings-add-form" enctype="multipart/form-data" method="post">{% csrf_token %}
|
<form id="proceedings-add-form" enctype="multipart/form-data" method="post">{% csrf_token %}
|
||||||
<table id="proceedings-add-table">
|
<table id="proceedings-add-table">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes, no-redundant-for -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{% include "includes/buttons_save_cancel.html"%}
|
{% include "includes/buttons_save_cancel.html"%}
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
{% block title %}Meetings{% endblock %}
|
{% block title %}Meetings{% endblock %}
|
||||||
|
|
||||||
{% block extrahead %}{{ block.super }}
|
{% block extrahead %}{{ block.super }}
|
||||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}">
|
||||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||||
<script src="{% static 'secr/js/dynamic_inlines.js' %}"></script>
|
<script src="{% static 'secr/js/dynamic_inlines.js' %}"></script>
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
<p>Use this to generate blue sheets for meeting sessions.</p>
|
<p>Use this to generate blue sheets for meeting sessions.</p>
|
||||||
<ul class="none">
|
<ul class="none">
|
||||||
<li>
|
<li>
|
||||||
<form style="display:inline" method="post" action="{% url "ietf.secr.meetings.views.blue_sheet_generate" meeting_id=meeting.number%}">{% csrf_token %}
|
<form class="d-inline" method="post" action="{% url "ietf.secr.meetings.views.blue_sheet_generate" meeting_id=meeting.number%}">{% csrf_token %}
|
||||||
<input type="submit" value="Generate Blue Sheets">
|
<button type="submit">Generate Blue Sheets</button>
|
||||||
</form>
|
</form>
|
||||||
Last run:
|
Last run:
|
||||||
{% if last_run %}
|
{% if last_run %}
|
||||||
|
@ -35,15 +35,14 @@
|
||||||
<p>Use this to download the blue sheets from the server.</p>
|
<p>Use this to download the blue sheets from the server.</p>
|
||||||
<ul class="none">
|
<ul class="none">
|
||||||
<li>
|
<li>
|
||||||
<button onclick="window.location='{{ url }}'">Download Blue Sheets</button>
|
<button type="button" onclick="window.location='{{ url }}'">Download Blue Sheets</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr />
|
<hr>
|
||||||
<p>
|
<p>
|
||||||
Use the session details page for a group to upload scanned bluesheets. The session details pages for a group can be reached from the meeting's <a href="{% url 'ietf.meeting.views.materials' num=meeting.number %}">materials page</a>.
|
Use the session details page for a group to upload scanned bluesheets. The session details pages for a group can be reached from the meeting's <a href="{% url 'ietf.meeting.views.materials' num=meeting.number %}">materials page</a>.
|
||||||
</p>
|
</p>
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,10 @@
|
||||||
<form action="." method="post">{% csrf_token %}
|
<form action="." method="post">{% csrf_token %}
|
||||||
<h2>Meetings - Edit</h2>
|
<h2>Meetings - Edit</h2>
|
||||||
<table id="proceedings-edit-table">
|
<table id="proceedings-edit-table">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{% include "includes/buttons_save_cancel.html"%}
|
{% include "includes/buttons_save_cancel.html"%}
|
||||||
|
|
||||||
|
@ -28,4 +31,3 @@
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,12 @@
|
||||||
<br>
|
<br>
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
<table>
|
<table>
|
||||||
{{ form }}
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<input type="submit" value="Select" />
|
<button type="submit">Select</button>
|
||||||
</form>
|
</form>
|
||||||
</div> <!-- inline-related -->
|
</div> <!-- inline-related -->
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
|
@ -7,7 +7,10 @@
|
||||||
<h3>Session: {{ slot.name }}</h3>
|
<h3>Session: {{ slot.name }}</h3>
|
||||||
<form id="misc-session-edit-form" enctype="multipart/form-data" action="." method="post">{% csrf_token %}
|
<form id="misc-session-edit-form" enctype="multipart/form-data" action="." method="post">{% csrf_token %}
|
||||||
<table class="full-width amstable">
|
<table class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
|
|
|
@ -9,17 +9,17 @@
|
||||||
<table id="misc-sessions" class="full-width">
|
<table id="misc-sessions" class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Day</th>
|
<th scope="col">Day</th>
|
||||||
<th>Time</th>
|
<th scope="col">Time</th>
|
||||||
<th>Name</th>
|
<th scope="col">Name</th>
|
||||||
<th>Short Name</th>
|
<th scope="col">Short Name</th>
|
||||||
<th>Group</th>
|
<th scope="col">Group</th>
|
||||||
<th>Location</th>
|
<th scope="col">Location</th>
|
||||||
<th>Show Loc.</th>
|
<th scope="col">Show Loc.</th>
|
||||||
<th>Type</th>
|
<th scope="col">Type</th>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -51,21 +51,23 @@
|
||||||
{% else %}
|
{% else %}
|
||||||
<h3>No timeslots exist for this meeting. Add rooms with the "duplicate timeslots" option enabled to copy timeslots from the last meeting.</h3>
|
<h3>No timeslots exist for this meeting. Add rooms with the "duplicate timeslots" option enabled to copy timeslots from the last meeting.</h3>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<br /><hr />
|
<br><hr>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<form id="timeslot-form" method="post">{% csrf_token %}
|
<form id="timeslot-form" method="post">{% csrf_token %}
|
||||||
<table class="full-width amstable">
|
<table class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
<tr><td colspan="2" class="text-center"><input type="submit" name="submit" value="Add" /></td></tr>
|
<tr><td colspan="2" class="text-center"><button type="submit" name="submit">Add</button></td></tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='../'">Back</button></li>
|
<li><button type="button" onclick="window.location='../'">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
<h2>IETF {{ meeting.number }} - Send Notifications</h2>
|
<h2>IETF {{ meeting.number }} - Send Notifications</h2>
|
||||||
<form id="id_notification_form" action="." method="post">{% csrf_token %}
|
<form id="id_notification_form" action="." method="post">{% csrf_token %}
|
||||||
<p>The following groups are in state 'schedw' (Waiting for scheduling). Pressing the Send Now button will change them to be in state 'sched' (Scheduled), and send email notifications each of them that their session has been scheduled. The last time this button was pressed was {{ last_notice.time|date:"Y-m-d" }}:</p>
|
<p>The following groups are in state 'schedw' (Waiting for scheduling). Pressing the Send Now button will change them to be in state 'sched' (Scheduled), and send email notifications each of them that their session has been scheduled. The last time this button was pressed was {{ last_notice.time|date:"Y-m-d" }}:</p>
|
||||||
<p id="id_notification_list">{% if not groups %}(none){% endif %}{% for group in groups %}{{ group.acronym }}{% if not forloop.last %}, {% endif %}{% endfor %}<p>
|
<p id="id_notification_list">{% if not groups %}(none){% endif %}{% for group in groups %}{{ group.acronym }}{% if not forloop.last %}, {% endif %}{% endfor %}</p>
|
||||||
<input type="submit" value="Send Now" name="submit" onclick="return window.confirm('Are you sure you want to send notifications?');">
|
<button type="submit" name="submit" onclick="return window.confirm('Are you sure you want to send notifications?');">Send Now</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% include "includes/buttons_back.html" %}
|
{% include "includes/buttons_back.html" %}
|
||||||
|
@ -28,26 +28,3 @@
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,24 +20,26 @@
|
||||||
<form id="meetings-schedule-form" method="post">{% csrf_token %}
|
<form id="meetings-schedule-form" method="post">{% csrf_token %}
|
||||||
<div class="inline-related{% if forloop.last %} last-related{% endif %}">
|
<div class="inline-related{% if forloop.last %} last-related{% endif %}">
|
||||||
<table class="full-width amstable">
|
<table class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Day:</th>
|
<th scope="row">Day:</th>
|
||||||
<td>{% if timeslot %}{{ timeslot.time|date:"l" }}{% endif %}</td>
|
<td>{% if timeslot %}{{ timeslot.time|date:"l" }}{% endif %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Time:</th>
|
<th scope="row">Time:</th>
|
||||||
<td>{% if timeslot %}{{ timeslot.time|time:"H:i" }}{% endif %}</td>
|
<td>{% if timeslot %}{{ timeslot.time|time:"H:i" }}{% endif %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Room:</th>
|
<th scope="row">Room:</th>
|
||||||
<td>{% if timeslot %}{{ timeslot.location.name }}{% endif %}</td>
|
<td>{% if timeslot %}{{ timeslot.location.name }}{% endif %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Status:</th>
|
<th scope="row">Status:</th>
|
||||||
<td>{{ current_status_name }}</td>
|
<td>{{ current_status_name }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{ form }}
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div> <!-- inline-related -->
|
</div> <!-- inline-related -->
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
<div class="inline-group">
|
<div class="inline-group">
|
||||||
<div class="tabular inline-related">
|
<div class="tabular inline-related">
|
||||||
|
<!-- [html-validate-disable-block wcag/h32 -- FIXME: no submit button] -->
|
||||||
<form id="meetings-meta-rooms" method="post">{% csrf_token %}
|
<form id="meetings-meta-rooms" method="post">{% csrf_token %}
|
||||||
{{ formset.management_form }}
|
{{ formset.management_form }}
|
||||||
{{ formset.non_form_errors }}
|
{{ formset.non_form_errors }}
|
||||||
|
@ -16,9 +17,9 @@
|
||||||
<table id="id_rooms_table" class="full-width">
|
<table id="id_rooms_table" class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
{% for field in formset.forms.0.visible_fields %}
|
{% for field in formset.forms.0.visible_fields %}
|
||||||
<th>{{ field.label|capfirst }}</th>
|
<th scope="col">{{ field.label|capfirst }}</th>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
|
@ -9,13 +9,13 @@
|
||||||
<table class="table table-sm table-striped ipr-table tablesorter">
|
<table class="table table-sm table-striped ipr-table tablesorter">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Group</th>
|
<th scope="col">Group</th>
|
||||||
<th>Time</th>
|
<th scope="col">Time</th>
|
||||||
<th>Room</th>
|
<th scope="col">Room</th>
|
||||||
<th>Agenda Note</th>
|
<th scope="col">Agenda Note</th>
|
||||||
<th>Status</th>
|
<th scope="col">Status</th>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="pk" value="{{ session.pk }}">
|
<input type="hidden" name="pk" value="{{ session.pk }}">
|
||||||
<input type="submit" name="cancel" value="Cancel">
|
<button type="submit" name="cancel">Cancel</button>
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Day</th>
|
<th scope="col">Day</th>
|
||||||
<th>Time</th>
|
<th scope="col">Time</th>
|
||||||
<th>Name</th>
|
<th scope="col">Name</th>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -31,24 +31,26 @@
|
||||||
{% else %}
|
{% else %}
|
||||||
<h3>No timeslots exist for this meeting. Add rooms with the "duplicate timeslots" option enabled to copy timeslots from the last meeting.</h3>
|
<h3>No timeslots exist for this meeting. Add rooms with the "duplicate timeslots" option enabled to copy timeslots from the last meeting.</h3>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<br /><hr />
|
<br><hr>
|
||||||
|
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
{{ form.non_field_errors }}
|
{{ form.non_field_errors }}
|
||||||
<table id="timeslot-form" class="full-width">
|
<table id="timeslot-form" class="full-width">
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Day<br>{{ form.day.errors }}{{ form.day }}</td>
|
<td>Day<br>{{ form.day.errors }}{{ form.day }}</td>
|
||||||
<td>Time<br>{{ form.time.errors }}{{ form.time }}</td>
|
<td>Time<br>{{ form.time.errors }}{{ form.time }}</td>
|
||||||
<td>Duration<br>{{ form.duration.errors }}{{ form.duration }}</td>
|
<td>Duration<br>{{ form.duration.errors }}{{ form.duration }}</td>
|
||||||
<td>Name<br>{{ form.name.errors }}{{ form.name }}</td>
|
<td>Name<br>{{ form.name.errors }}{{ form.name }}</td>
|
||||||
<td><input type="submit" name="submit" value="Add" /></td>
|
<td><button type="submit" name="submit">Add</button></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='../'">Back</button></li>
|
<li><button type="button" onclick="window.location='../'">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,10 @@
|
||||||
<p><h3>TimeSlot:</h3></p>
|
<p><h3>TimeSlot:</h3></p>
|
||||||
<form id="times-edit-form" enctype="multipart/form-data" action="." method="post">{% csrf_token %}
|
<form id="times-edit-form" enctype="multipart/form-data" action="." method="post">{% csrf_token %}
|
||||||
<table class="full-width amstable">
|
<table class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% include "includes/buttons_save_cancel.html" %}
|
{% include "includes/buttons_save_cancel.html" %}
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
<ul class="errorlist"><li> THIS IS A FROZEN PROCEEDING</li></ul>
|
<ul class="errorlist"><li> THIS IS A FROZEN PROCEEDING</li></ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<table class="full-width" id="proceedings-view-first-col">
|
<table class="full-width" id="proceedings-view-first-col">
|
||||||
|
<tbody>
|
||||||
<tr><td>Start Date:</td><td> {{ meeting.date }}</td></tr>
|
<tr><td>Start Date:</td><td> {{ meeting.date }}</td></tr>
|
||||||
<tr><td>City:</td><td> {{ meeting.city }} </td></tr>
|
<tr><td>City:</td><td> {{ meeting.city }} </td></tr>
|
||||||
<tr><td>Country:</td><td> {{ meeting.country }} </td></tr>
|
<tr><td>Country:</td><td> {{ meeting.country }} </td></tr>
|
||||||
|
@ -28,16 +29,18 @@
|
||||||
<tr><td>Venue Address:</td><td> {{ meeting.venue_addr }} </td></tr>
|
<tr><td>Venue Address:</td><td> {{ meeting.venue_addr }} </td></tr>
|
||||||
<tr><td>Break Area:</td><td> {{ meeting.break_area }} </td></tr>
|
<tr><td>Break Area:</td><td> {{ meeting.break_area }} </td></tr>
|
||||||
<tr><td>Registration Area:</td><td> {{ meeting.reg_area }} </td></tr>
|
<tr><td>Registration Area:</td><td> {{ meeting.reg_area }} </td></tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.edit_meeting" meeting_id=meeting.number %}'">Edit</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.secr.meetings.views.edit_meeting" meeting_id=meeting.number %}'">Edit</button></li>
|
||||||
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.notifications" meeting_id=meeting.number %}'">Notifications</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.secr.meetings.views.notifications" meeting_id=meeting.number %}'">Notifications</button></li>
|
||||||
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.blue_sheet" meeting_id=meeting.number %}'">Blue Sheets</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.secr.meetings.views.blue_sheet" meeting_id=meeting.number %}'">Blue Sheets</button></li>
|
||||||
<li><button onclick="window.location='{% url "ietf.meeting.views.list_schedules" num=meeting.number %}'">Agenda List</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.meeting.views.list_schedules" num=meeting.number %}'">Agenda List</button></li>
|
||||||
<li>
|
<li>
|
||||||
|
<!-- [html-validate-disable-block wcag/h32 -- FIXME: no submit button] -->
|
||||||
<form id="id_schedule_selector">
|
<form id="id_schedule_selector">
|
||||||
<select name="forma" onchange="location = this.options[this.selectedIndex].value;">
|
<select name="forma" onchange="location = this.options[this.selectedIndex].value;">
|
||||||
<option value="">Select a schedule...</option>
|
<option value="">Select a schedule...</option>
|
||||||
|
@ -48,7 +51,7 @@
|
||||||
</form>
|
</form>
|
||||||
</li>
|
</li>
|
||||||
{% if meeting.schedule %}
|
{% if meeting.schedule %}
|
||||||
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.rooms" meeting_id=meeting.number schedule_name=meeting.schedule.name %}'">Official Schedule</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.secr.meetings.views.rooms" meeting_id=meeting.number schedule_name=meeting.schedule.name %}'">Official Schedule</button></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
{% for meeting in meetings %}
|
{% for meeting in meetings %}
|
||||||
<tr class="{% cycle 'row1' 'row2' %}">
|
<tr class="{% cycle 'row1' 'row2' %}">
|
||||||
<td class="text-start" style="white-space: nowrap">{{ meeting.date }}</td>
|
<td class="text-start text-nowrap">{{ meeting.date }}</td>
|
||||||
<td><a href="https://datatracker.ietf.org/wg/{{ meeting.group.acronym }}">{{ meeting.group.acronym }}</a></td>
|
<td><a href="https://datatracker.ietf.org/wg/{{ meeting.group.acronym }}">{{ meeting.group.acronym }}</a></td>
|
||||||
{% if meeting.schedule %}
|
{% if meeting.schedule %}
|
||||||
<td class="text-center"><a href="{{ meeting.schedule.get_absolute_url }}">Agenda</a></td>
|
<td class="text-center"><a href="{{ meeting.schedule.get_absolute_url }}">Agenda</a></td>
|
||||||
|
|
|
@ -19,13 +19,13 @@
|
||||||
<table id="proceedings-list-table" class="full-width{% if user|has_role:"Secretariat" %} secretariat{% endif %}">
|
<table id="proceedings-list-table" class="full-width{% if user|has_role:"Secretariat" %} secretariat{% endif %}">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>IETF Meeting</th>
|
<th scope="col">IETF Meeting</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% if meetings %}
|
{% if meetings %}
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for meeting in meetings %}
|
{% for meeting in meetings %}
|
||||||
<tr class = "{% cycle 'row1' 'row2' %}{% if meeting.get_submission_correction_date < today %} frozen{% else %} open{% endif %}">
|
<tr class="{% cycle 'row1' 'row2' %}{% if meeting.get_submission_correction_date < today %} frozen{% else %} open{% endif %}">
|
||||||
<td>
|
<td>
|
||||||
<a href="{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}">{{ meeting.number }}</a>
|
<a href="{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}">{{ meeting.number }}</a>
|
||||||
</td>
|
</td>
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
{% if user|has_role:"Secretariat" %}
|
{% if user|has_role:"Secretariat" %}
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul id="proceedings-meeting-buttons">
|
<ul id="proceedings-meeting-buttons">
|
||||||
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.add" %}'">Add</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.secr.meetings.views.add" %}'">Add</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -48,14 +48,14 @@
|
||||||
<table id="proceedings-interim-table" class="full-width{% if user|has_role:"Secretariat" %} secretariat{% endif %}">
|
<table id="proceedings-interim-table" class="full-width{% if user|has_role:"Secretariat" %} secretariat{% endif %}">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Interim Meeting</th>
|
<th scope="col">Interim Meeting</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% if interim_meetings %}
|
{% if interim_meetings %}
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for meeting in interim_meetings %}
|
{% for meeting in interim_meetings %}
|
||||||
|
|
||||||
<tr class = "{% cycle 'row1' 'row2' %}">
|
<tr class="{% cycle 'row1' 'row2' %}">
|
||||||
<td>{{ meeting.group.acronym }}</td>
|
<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>
|
<td><a href="{% url "ietf.meeting.views.session_details" num=meeting.number acronym=meeting.group.acronym %}">{{ meeting.date }}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
</div> <!-- scroll -->
|
</div> <!-- scroll -->
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul id="proceedings-interim-buttons">
|
<ul id="proceedings-interim-buttons">
|
||||||
<li><button onclick="window.location='{% url "ietf.meeting.views.interim_request" %}'">Request Interim Meeting</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.meeting.views.interim_request" %}'">Request Interim Meeting</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
</div>
|
</div>
|
||||||
|
@ -81,7 +81,7 @@
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul id="proceedings-button-list">
|
<ul id="proceedings-button-list">
|
||||||
<li><button onclick="window.location='../'">Back</button></li>
|
<li><button type="button" onclick="window.location='../'">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
{% block title %}Proceedings{% endblock %}
|
{% block title %}Proceedings{% endblock %}
|
||||||
|
|
||||||
{% block extrastyle %}{{ block.super }}
|
{% block extrastyle %}{{ block.super }}
|
||||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}">
|
||||||
<link rel="stylesheet" href="{% static 'ietf/css/select2.css' %}">
|
<link rel="stylesheet" href="{% static 'ietf/css/select2.css' %}">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -32,7 +32,10 @@
|
||||||
<h2>Recording Metadata</h2>
|
<h2>Recording Metadata</h2>
|
||||||
<form id="recording-form" enctype="multipart/form-data" action="." method="post">{% csrf_token %}
|
<form id="recording-form" enctype="multipart/form-data" action="." method="post">{% csrf_token %}
|
||||||
<table class="center" id="proceedings-upload-table">
|
<table class="center" id="proceedings-upload-table">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
|
@ -49,11 +52,11 @@
|
||||||
<table class="center">
|
<table class="center">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Group</th>
|
<th scope="col">Group</th>
|
||||||
<th>Session</th>
|
<th scope="col">Session</th>
|
||||||
<th>Name</th>
|
<th scope="col">Name</th>
|
||||||
<th>URL</th>
|
<th scope="col">URL</th>
|
||||||
<th>Edit</th>
|
<th scope="col">Edit</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% if sessions %}
|
{% if sessions %}
|
||||||
|
@ -93,7 +96,7 @@
|
||||||
<table class="center">
|
<table class="center">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Filename</th>
|
<th scope="col">Filename</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% if unmatched_recordings %}
|
{% if unmatched_recordings %}
|
||||||
|
|
|
@ -27,7 +27,10 @@
|
||||||
<p><h3>Edit Recording Metadata:</h3></p>
|
<p><h3>Edit Recording Metadata:</h3></p>
|
||||||
<form id="recording-form" method="post">{% csrf_token %}
|
<form id="recording-form" method="post">{% csrf_token %}
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% include "includes/buttons_save_cancel.html" %}
|
{% include "includes/buttons_save_cancel.html" %}
|
||||||
|
|
|
@ -22,16 +22,16 @@
|
||||||
<table class="center">
|
<table class="center">
|
||||||
<form action="modify/" method="post">{% csrf_token %}
|
<form action="modify/" method="post">{% csrf_token %}
|
||||||
<tr>
|
<tr>
|
||||||
<input type="hidden" name="frozen" value="{{ proceeding.frozen }}" />
|
<input type="hidden" name="frozen" value="{{ proceeding.frozen }}">
|
||||||
{% if not proceeding.frozen %}
|
{% if not proceeding.frozen %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Active Proceeding</td>
|
<td>Active Proceeding</td>
|
||||||
<td><input type="submit" name="submit" value="Freeze" /></td>
|
<td><button type="submit" name="submit">Freeze</button></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if proceeding.frozen %}
|
{% if proceeding.frozen %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Frozen Proceeding</td>
|
<td>Frozen Proceeding</td>
|
||||||
<td><input type="submit" name="submit" value="Activate" /></td>
|
<td><button type="submit" name="submit">Activate</button></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</form>
|
</form>
|
||||||
|
@ -39,10 +39,9 @@
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="history.go(-1);return true">Back</button></li>
|
<li><button type="button" onclick="history.go(-1);return true">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -19,34 +19,38 @@
|
||||||
<ul class="errorlist"><li> THIS IS A FROZEN PROCEEDING</li></ul>
|
<ul class="errorlist"><li> THIS IS A FROZEN PROCEEDING</li></ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<table class="full-width" id="proceedings-view-first-col">
|
<table class="full-width" id="proceedings-view-first-col">
|
||||||
|
<tbody>
|
||||||
<tr><td>Meeting Start Date:</td><td> {{ meeting.date }}</td></tr>
|
<tr><td>Meeting Start Date:</td><td> {{ meeting.date }}</td></tr>
|
||||||
<tr><td>Meeting End Date:</td><td> {{ meeting.end_date }} </td></tr>
|
<tr><td>Meeting End Date:</td><td> {{ meeting.end_date }} </td></tr>
|
||||||
<tr><td>Meeting City:</td><td> {{ meeting.city }} </td></tr>
|
<tr><td>Meeting City:</td><td> {{ meeting.city }} </td></tr>
|
||||||
<tr><td>Meeting Country:</td><td> {{ meeting.country }} </td></tr>
|
<tr><td>Meeting Country:</td><td> {{ meeting.country }} </td></tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="inline-related">
|
<div class="inline-related">
|
||||||
<h2>Dates</h2>
|
<h2>Dates</h2>
|
||||||
<table class="full-width" id="proceedings-view-first-col">
|
<table class="full-width" id="proceedings-view-first-col">
|
||||||
|
<tbody>
|
||||||
<tr><td>Submission Start Date:</td><td> {{ meeting.get_submission_start_date }} </td></tr>
|
<tr><td>Submission Start Date:</td><td> {{ meeting.get_submission_start_date }} </td></tr>
|
||||||
<tr><td>Submission Cut Off Date:</td><td> {{ meeting.get_submission_cut_off_date }} </td></tr>
|
<tr><td>Submission Cut Off Date:</td><td> {{ meeting.get_submission_cut_off_date }} </td></tr>
|
||||||
<tr><td>Submission Correction Cut Off Date:</td><td> {{ meeting.get_submission_correction_date }} </td></tr>
|
<tr><td>Submission Correction Cut Off Date:</td><td> {{ meeting.get_submission_correction_date }} </td></tr>
|
||||||
<tr><td>Progress Report Start:</td><td> {{ meeting.pr_from_date }} </td></tr>
|
<tr><td>Progress Report Start:</td><td> {{ meeting.pr_from_date }} </td></tr>
|
||||||
<tr><td>Progress Report End:</td><td> {{ meeting.pr_to_date }} </td></tr>
|
<tr><td>Progress Report End:</td><td> {{ meeting.pr_to_date }} </td></tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div><!-- inline-related-->
|
</div><!-- inline-related-->
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
{% if meeting.frozen == 0 %}
|
{% if meeting.frozen == 0 %}
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}'">Upload Materials</button></li>
|
<li><button type="button" onclick="window.location='{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}'">Upload Materials</button></li>
|
||||||
<li><button onclick="window.location='convert/'">Convert Materials</button></li>
|
<li><button type="button" onclick="window.location='convert/'">Convert Materials</button></li>
|
||||||
<li><button onclick="window.location='status/'">Proceedings {{ meeting.number }} Status</button></li>
|
<li><button type="button" onclick="window.location='status/'">Proceedings {{ meeting.number }} Status</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if meeting.frozen == 1 %}
|
{% if meeting.frozen == 1 %}
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='status/'">Proceedings {{ meeting.number }} Status</button></li>
|
<li><button type="button" onclick="window.location='status/'">Proceedings {{ meeting.number }} Status</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
|
@ -14,9 +14,9 @@
|
||||||
|
|
||||||
<div class="module" >
|
<div class="module" >
|
||||||
<h2>Proceedings</h2>
|
<h2>Proceedings</h2>
|
||||||
<hr />
|
<hr>
|
||||||
<h2>{{ message }}</h2>
|
<h2>{{ message }}</h2>
|
||||||
<img class="loading" src="{% static "secr/images/ajax-loader.webp" %}" alt="loading..." />
|
<img class="loading" src="{% static "secr/images/ajax-loader.webp" %}" alt="loading...">
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
{% block title %}Roles{% endblock %}
|
{% block title %}Roles{% endblock %}
|
||||||
|
|
||||||
{% block extrahead %}{{ block.super }}
|
{% block extrahead %}{{ block.super }}
|
||||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}">
|
||||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
$('#id_group').change(function(){
|
$('#id_group').change(function(){
|
||||||
var loadUrl = "/secr/roles/ajax/get-roles/" + $(this).val() + "/";
|
var loadUrl = "/secr/roles/ajax/get-roles/" + $(this).val() + "/";
|
||||||
var ajax_load = '<img class="loading" src="{% static "secr/images/ajax-loader.webp" %}" alt="loading..." />';
|
var ajax_load = '<img class="loading" src="{% static "secr/images/ajax-loader.webp" %}" alt="loading...">';
|
||||||
var text = $(this).val();
|
var text = $(this).val();
|
||||||
$("#id_group_acronym").val(text);
|
$("#id_group_acronym").val(text);
|
||||||
$("#roles-list").html(ajax_load).load(loadUrl);
|
$("#roles-list").html(ajax_load).load(loadUrl);
|
||||||
|
@ -59,13 +59,15 @@
|
||||||
{% with role_form as form %}
|
{% with role_form as form %}
|
||||||
{{ role_form.non_field_errors }}
|
{{ role_form.non_field_errors }}
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ form.group_acronym.errors }}{{ form.group_acronym }}</td>
|
<td>{{ form.group_acronym.errors }}{{ form.group_acronym }}</td>
|
||||||
<td>{{ form.name.errors }}{{ form.name }}</td>
|
<td>{{ form.name.errors }}{{ form.name }}</td>
|
||||||
<td>{{ form.person.errors }}{{ form.person }}{% if form.person.help_text %}<br>{{ form.person.help_text }}{% endif %}</td>
|
<td>{{ form.person.errors }}{{ form.person }}{% if form.person.help_text %}<br>{{ form.person.help_text }}{% endif %}</td>
|
||||||
<td>{{ form.email.errors }}{{ form.email }}{% if form.email.help_text %}<br>{{ form.email.help_text }}{% endif %}</td>
|
<td>{{ form.email.errors }}{{ form.email }}{% if form.email.help_text %}<br>{{ form.email.help_text }}{% endif %}</td>
|
||||||
<td><input type="submit" name="submit" value="Add" /></td>
|
<td><button type="submit" name="submit">Add</button></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
</div> <!-- inline-related -->
|
</div> <!-- inline-related -->
|
||||||
|
@ -73,7 +75,7 @@
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='../'">Back</button></li>
|
<li><button type="button" onclick="window.location='../'">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<table class="full-width">
|
<table class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Role</th>
|
<th scope="col">Role</th>
|
||||||
<th>Name</th>
|
<th scope="col">Name</th>
|
||||||
<th>Email</th>
|
<th scope="col">Email</th>
|
||||||
<th>Action</th>
|
<th scope="col">Action</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="history.go(-1);return true">Back</button></li>
|
<li><button type="button" onclick="history.go(-1);return true">Back</button></li>
|
||||||
<li><button type="submit" name="submit" value="Continue">Continue</button></li>
|
<li><button type="submit" name="submit" value="Continue">Continue</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
@ -40,8 +40,10 @@
|
||||||
<h2>Name</h2>
|
<h2>Name</h2>
|
||||||
<form id="rolodex-add-form" enctype="multipart/form-data" method="post">{% csrf_token %}
|
<form id="rolodex-add-form" enctype="multipart/form-data" method="post">{% csrf_token %}
|
||||||
<table class="full-width amstable">
|
<table class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% include "includes/buttons_proceed.html" %}
|
{% include "includes/buttons_proceed.html" %}
|
||||||
|
|
|
@ -8,13 +8,16 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>Adding {{ name }}</h1>
|
<h2>Adding {{ name }}</h2>
|
||||||
|
|
||||||
<form method="post" id="rolodex-add-form">{% csrf_token %}
|
<form method="post" id="rolodex-add-form">{% csrf_token %}
|
||||||
<div class="module">
|
<div class="module">
|
||||||
<h2>Rolodex - Add</h2>
|
<h3>Rolodex - Add</h3>
|
||||||
<table class="full-width amstable">
|
<table class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
<input type="hidden" name="post" value="yes" />
|
<input type="hidden" name="post" value="yes">
|
||||||
<input type="submit" value="Yes, I'm sure" />
|
<button type="submit">Yes, I'm sure</button>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -18,7 +18,10 @@
|
||||||
<div class="module">
|
<div class="module">
|
||||||
<h2>Rolodex - Edit</h2>
|
<h2>Rolodex - Edit</h2>
|
||||||
<table id="rolodex-edit-table" class="full-width amstable">
|
<table id="rolodex-edit-table" class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ person_form.as_table }}
|
{{ person_form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="inline-group">
|
<div class="inline-group">
|
||||||
|
@ -29,10 +32,10 @@
|
||||||
<table id="rolodex-email-table" class="full-width">
|
<table id="rolodex-email-table" class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th scope="col"></th>
|
||||||
{% for field in email_formset.forms.0 %}
|
{% for field in email_formset.forms.0 %}
|
||||||
{% if not field.is_hidden %}
|
{% if not field.is_hidden %}
|
||||||
<th>{{ field.label }}</th>
|
<th scope="col">{{ field.label }}</th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -16,8 +16,10 @@
|
||||||
<h2>Rolodex - Search <span class="unlocked"><a href="add/" class="addlink">Add</a></span></h2>
|
<h2>Rolodex - Search <span class="unlocked"><a href="add/" class="addlink">Add</a></span></h2>
|
||||||
<form id="rolodex-search-form" action="." method="post">{% csrf_token %}
|
<form id="rolodex-search-form" action="." method="post">{% csrf_token %}
|
||||||
<table class="full-width amstable">
|
<table class="full-width amstable">
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% include "includes/buttons_search.html" %}
|
{% include "includes/buttons_search.html" %}
|
||||||
|
|
|
@ -13,27 +13,28 @@
|
||||||
|
|
||||||
|
|
||||||
<table id="rolodex-view-table" class="full-width">
|
<table id="rolodex-view-table" class="full-width">
|
||||||
|
<tbody>
|
||||||
<tr><td>Name:</td><td>{{ person.name }}</td></tr>
|
<tr><td>Name:</td><td>{{ person.name }}</td></tr>
|
||||||
<tr><td>Ascii Name:</td><td>{{ person.ascii }}</td></tr>
|
<tr><td>Ascii Name:</td><td>{{ person.ascii }}</td></tr>
|
||||||
<tr><td>Short Name:</td><td>{{ person.ascii_short }}</td></tr>
|
<tr><td>Short Name:</td><td>{{ person.ascii_short }}</td></tr>
|
||||||
<tr><td>Aliases:</td><td>{% for alias in person.alias_set.all %}{% if not forloop.first %}, {% endif %}{{ alias.name }}{% endfor %}</td>
|
<tr><td>Aliases:</td><td>{% for alias in person.alias_set.all %}{% if not forloop.first %}, {% endif %}{{ alias.name }}{% endfor %}</td></tr>
|
||||||
<tr><td>User:</td><td>{{ person.user }}</td></tr>
|
<tr><td>User:</td><td>{{ person.user }}</td></tr>
|
||||||
<tr><td></td><td></td></tr>
|
<tr><td></td><td></td></tr>
|
||||||
{% for email in person.emails %}
|
{% for email in person.emails %}
|
||||||
<tr><td>Email {{ forloop.counter }}:</td><td>{{ email }}</td></tr>
|
<tr><td>Email {{ forloop.counter }}:</td><td>{{ email }}</td></tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br>
|
||||||
|
|
||||||
<div class="inline-related">
|
<div class="inline-related">
|
||||||
<h2><b>Roles</b></h2>
|
<h2><b>Roles</b></h2>
|
||||||
<table id="rolodex-role-table" class="full-width">
|
<table id="rolodex-role-table" class="full-width">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Role Name</th>
|
<th scope="col">Role Name</th>
|
||||||
<th>Group / Area</th>
|
<th scope="col">Group / Area</th>
|
||||||
<th>Email</th>
|
<th scope="col">Email</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{% if roles %}
|
{% if roles %}
|
||||||
|
@ -58,14 +59,14 @@
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='../'">Search</button></li>
|
<li><button type="button" onclick="window.location='../'">Search</button></li>
|
||||||
<li><button onclick="window.location='edit/'">Edit</button></li>
|
<li><button type="button" onclick="window.location='edit/'">Edit</button></li>
|
||||||
{% comment %}
|
{% comment %}
|
||||||
Removed per Glen
|
Removed per Glen
|
||||||
<li><button onclick="window.location='../../delete/{{ person.person_or_org_tag }}'">Delete</button></li>
|
<li><button type="button" onclick="window.location='../../delete/{{ person.person_or_org_tag }}'">Delete</button></li>
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- view-buttons -->
|
</div> <!-- view-buttons -->
|
||||||
|
|
||||||
</div> <!-- view-container -->
|
</div> <!-- view-container -->
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -32,15 +32,13 @@
|
||||||
|
|
||||||
{% if group.features.acts_like_wg and form.session_forms.forms_to_keep|length > 2 %}
|
{% if group.features.acts_like_wg and form.session_forms.forms_to_keep|length > 2 %}
|
||||||
<br>
|
<br>
|
||||||
<span class="alert">
|
<p class="alert">
|
||||||
<p>
|
|
||||||
<b>
|
<b>
|
||||||
Note: Your request for a third session must be approved by an area director before
|
Note: Your request for a third session must be approved by an area director before
|
||||||
being submitted to agenda@ietf.org. Click "Submit" below to email an approval
|
being submitted to agenda@ietf.org. Click "Submit" below to email an approval
|
||||||
request to the area directors.
|
request to the area directors.
|
||||||
</b>
|
</b>
|
||||||
</p>
|
</p>
|
||||||
</span>
|
|
||||||
<br>
|
<br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button onclick="window.location='../'">Back</button></li>
|
<li><button type="button" onclick="window.location='../'">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,8 @@
|
||||||
<div class="inline-related">
|
<div class="inline-related">
|
||||||
<br>
|
<br>
|
||||||
<ul class="session-buttons">
|
<ul class="session-buttons">
|
||||||
<li><button onclick="if (window.confirm('A message will be sent to agenda@ietf.com as well as to the area director(s).\n\nContinue?')) { window.location='{% url "ietf.secr.sreq.views.no_session" acronym=group.acronym %}'};">Send a notification that the group does not plan to hold a session at IETF {{ meeting.number }}</button></li>
|
<li><button type="button" onclick="if (window.confirm('A message will be sent to agenda@ietf.com as well as to the area director(s).\n\nContinue?')) { window.location='{% url "ietf.secr.sreq.views.no_session" acronym=group.acronym %}'};">Send a notification that the group does not plan to hold a session at IETF {{ meeting.number }}</button></li>
|
||||||
<li><button onclick="window.location='{% url "ietf.secr.sreq.views.new" acronym=group.acronym %}?previous'">Retrieve all information from previous meeting</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.secr.sreq.views.new" acronym=group.acronym %}?previous'">Retrieve all information from previous meeting</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{% include "includes/sessions_request_form.html" %}
|
{% include "includes/sessions_request_form.html" %}
|
||||||
|
|
|
@ -19,7 +19,10 @@
|
||||||
<p>Enter the message that you would like displayed to the WG Chair when this tool is locked.</p>
|
<p>Enter the message that you would like displayed to the WG Chair when this tool is locked.</p>
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
@ -29,12 +29,12 @@
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<ul>
|
<ul>
|
||||||
<li><button name="edit" onclick="window.location='{% url "ietf.secr.sreq.views.edit" acronym=group.acronym num=meeting.number %}'"{% if is_locked %} disabled{% endif %}>Edit</button></li>
|
<li><button type="button" name="edit" onclick="window.location='{% url "ietf.secr.sreq.views.edit" acronym=group.acronym num=meeting.number %}'"{% if is_locked %} disabled{% endif %}>Edit</button></li>
|
||||||
{% if show_approve_button %}
|
{% if show_approve_button %}
|
||||||
<li><button onclick="window.location='approve/'">Approve Third Session</button></li>
|
<li><button type="button" onclick="window.location='approve/'">Approve Third Session</button></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li><button onclick="if (window.confirm('Do you really want to cancel this session?')) { window.location='cancel/' };" {% if is_locked %} disabled{% endif %}>Cancel this Request</button></li>
|
<li><button type="button" onclick="if (window.confirm('Do you really want to cancel this session?')) { window.location='cancel/' };" {% if is_locked %} disabled{% endif %}>Cancel this Request</button></li>
|
||||||
<li><button onclick="window.location='{% url "ietf.secr.sreq.views.main" %}'">Back</button></li>
|
<li><button type="button" onclick="window.location='{% url "ietf.secr.sreq.views.main" %}'">Back</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div> <!-- button-group -->
|
</div> <!-- button-group -->
|
||||||
</div> <!-- module -->
|
</div> <!-- module -->
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
{% block extrahead %}{{ block.super }}
|
{% block extrahead %}{{ block.super }}
|
||||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||||
<link rel="stylesheet" href="{% static 'secr/css/telechat.css' %}" />
|
<link rel="stylesheet" href="{% static 'secr/css/telechat.css' %}">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block breadcrumbs %}{{ block.super }}
|
{% block breadcrumbs %}{{ block.super }}
|
||||||
|
|
|
@ -10,43 +10,44 @@
|
||||||
{% if document %}
|
{% if document %}
|
||||||
{% if not nav_start %}<a href="./previous/">« Previous</a>{% endif %}
|
{% if not nav_start %}<a href="./previous/">« Previous</a>{% endif %}
|
||||||
{% if not nav_end %}<span class="right-nav"><a href="./next/">Next »</a></span>{% endif %}
|
{% if not nav_end %}<span class="right-nav"><a href="./next/">Next »</a></span>{% endif %}
|
||||||
<br />
|
<br>
|
||||||
<h3>
|
<h3>
|
||||||
{% for line in header %}
|
{% for line in header %}
|
||||||
{{ line }}<br />
|
{{ line }}<br>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</h3>
|
</h3>
|
||||||
<br />
|
<br>
|
||||||
<h3>{{ document.name }}-{{ document.rev }} ({{ document.intended_std_level }})</h3>
|
<h3>{{ document.name }}-{{ document.rev }} ({{ document.intended_std_level }})</h3>
|
||||||
{% if conflictdoc %}References: <a href="{{ conflictdoc.get_absolute_url }}">{{ conflictdoc }}</a><br />{% endif %}
|
{% if conflictdoc %}References: <a href="{{ conflictdoc.get_absolute_url }}">{{ conflictdoc }}</a><br>{% endif %}
|
||||||
<a href="#writeup">Ballot Writeup</a><br />
|
<a href="#writeup">Ballot Writeup</a><br>
|
||||||
Token: {{ document.ad.name }}<br />
|
Token: {{ document.ad.name }}<br>
|
||||||
{% if document.type_id == "draft" %}
|
{% if document.type_id == "draft" %}
|
||||||
Consensus: {{ document|consensus }}<br />
|
Consensus: {{ document|consensus }}<br>
|
||||||
Has downref: {% if downrefs %}Yes{% else %}No{% endif %}<br />
|
Has downref: {% if downrefs %}Yes{% else %}No{% endif %}<br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
Number of Open Positions: {{ open_positions }}<br />
|
Number of Open Positions: {{ open_positions }}<br>
|
||||||
<br />
|
<br>
|
||||||
<div>
|
<div>
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
{{ formset.management_form }}
|
{{ formset.management_form }}
|
||||||
<table id="telechat-positions-table">
|
<table id="telechat-positions-table">
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Area Director</th>
|
<th scope="col">Area Director</th>
|
||||||
{% for position in document.active_ballot.ballot_type.positions.all %}
|
{% for position in document.active_ballot.ballot_type.positions.all %}
|
||||||
<th>{{ position.name }}</th>
|
<th scope="col">{{ position.name }}</th>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
{% for form in formset.forms %}
|
{% for form in formset.forms %}
|
||||||
<tr{% if form.initial.position == 'norecord' or form.initial.position == None %} class="green-row"{% endif %}{% if form.initial.position == 'discuss' %} class="red-row"{% endif %}><td>{{ form.initial.name }}{{ form.name }}{{ form.id }}</td>
|
<tr{% if form.initial.position == 'norecord' or form.initial.position == None %} class="green-row"{% endif %}{% if form.initial.position == 'discuss' %} class="red-row"{% endif %}><td>{{ form.initial.name }}{{ form.name }}{{ form.id }}</td>
|
||||||
{% with form.position as field %}
|
{% with form.position as field %}
|
||||||
{% for choice in field.field.choices %}
|
{% for choice in field.field.choices %}
|
||||||
<td><input type="radio" {% if form.initial.position == choice.0 %}checked="checked" {% endif %}id="id_{{ field.html_name }}_{{ forloop.counter0 }}" value="{{ choice.0 }}" name="{{ field.html_name }}" /></td>
|
<td><input type="radio" {% if form.initial.position == choice.0 %}checked {% endif %}id="id_{{ field.html_name }}_{{ forloop.counter0 }}" value="{{ choice.0 }}" name="{{ field.html_name }}"></td>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="telechat-button">
|
<div class="telechat-button">
|
||||||
<ul><li><button type="submit" name="submit" value="update_ballot">Update Ballot</button></li></ul>
|
<ul><li><button type="submit" name="submit" value="update_ballot">Update Ballot</button></li></ul>
|
||||||
|
@ -54,22 +55,26 @@
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr /><br />
|
<hr><br>
|
||||||
|
|
||||||
|
<!-- [html-validate-disable-block wcag/h32 -- FIXME: no submit button] -->
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
<table>
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<!-- [html-validate-disable-block element-required-attributes -- FIXME: as_table renders without scope] -->
|
||||||
{{ state_form.as_table }}
|
{{ state_form.as_table }}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="telechat-button">
|
<div class="telechat-button">
|
||||||
<ul><li><button type="submit" name="submit" value="update_state">Update State</button></li></ul>
|
<ul><li><button type="submit" name="submit" value="update_state">Update State</button></li></ul>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<hr /><br />
|
<hr><br>
|
||||||
|
|
||||||
{% if document.type_id == "charter" %}
|
{% if document.type_id == "charter" %}
|
||||||
{% include "telechat/group.html" %}
|
{% include "telechat/group.html" %}
|
||||||
<br /><hr /><br />
|
<br><hr><br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<h2 id="writeup">Ballot Writeup</h2>
|
<h2 id="writeup">Ballot Writeup</h2>
|
||||||
|
@ -82,12 +87,12 @@
|
||||||
{% for ref in downrefs %}
|
{% for ref in downrefs %}
|
||||||
<p>Add {{ref.target.document.canonical_name}}
|
<p>Add {{ref.target.document.canonical_name}}
|
||||||
({{ref.target.document.std_level}} - {{ref.target.document.stream.desc}})
|
({{ref.target.document.std_level}} - {{ref.target.document.stream.desc}})
|
||||||
to downref registry.<br />
|
to downref registry.<br>
|
||||||
{% if not ref.target.document.std_level %}
|
{% if not ref.target.document.std_level %}
|
||||||
+++ Warning: The standards level has not been set yet!!!<br />
|
+++ Warning: The standards level has not been set yet!!!<br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if not ref.target.document.stream %}
|
{% if not ref.target.document.stream %}
|
||||||
+++ Warning: document stream has not been set yet!!!<br />
|
+++ Warning: document stream has not been set yet!!!<br>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}</p>
|
{% endfor %}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -9,12 +9,12 @@
|
||||||
<div id="telechat-content">
|
<div id="telechat-content">
|
||||||
<span class="telechat-warn"><h3>This feature is pending</h3></span>
|
<span class="telechat-warn"><h3>This feature is pending</h3></span>
|
||||||
<h3>Roll Call</h3>
|
<h3>Roll Call</h3>
|
||||||
<br />
|
<br>
|
||||||
<form method="post">{% csrf_token %}
|
<form method="post">{% csrf_token %}
|
||||||
{% for person in people %}
|
{% for person in people %}
|
||||||
<input type="checkbox" name="attendee" value="{{ person.id }}" checked="checked" /> {{ person.name }}<br />
|
<input type="checkbox" name="attendee" value="{{ person.id }}" checked> {{ person.name }}<br>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<input type="submit" value="Update" />
|
<button type="submit">Update</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -149,6 +149,27 @@ table tbody.meta {
|
||||||
max-width: 300px;
|
max-width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Style the photo cards
|
||||||
|
.photo {
|
||||||
|
width: 13em;
|
||||||
|
|
||||||
|
.card-img-top {
|
||||||
|
object-fit: cover;
|
||||||
|
height: 15em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.photo-placeholder {
|
||||||
|
height: 15em;
|
||||||
|
font-size: 12em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Style the righthand navigation panel
|
||||||
|
#righthand-nav {
|
||||||
|
height: 70vh;
|
||||||
|
width: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
// Add some padding when there are multiple buttons in a line than can wrap
|
// Add some padding when there are multiple buttons in a line than can wrap
|
||||||
.buttonlist .btn {
|
.buttonlist .btn {
|
||||||
margin-top: map.get($spacers, 2);
|
margin-top: map.get($spacers, 2);
|
||||||
|
|
|
@ -34,9 +34,9 @@ var agenda_materials; // public interface
|
||||||
data = "<p>Error retrieving " + data_src
|
data = "<p>Error retrieving " + data_src
|
||||||
+ ": Missing content-type in response header</p>";
|
+ ": Missing content-type in response header</p>";
|
||||||
} else if (t.indexOf("text/plain") > -1) {
|
} else if (t.indexOf("text/plain") > -1) {
|
||||||
data = "<pre class='agenda'>" + data + "</pre>";
|
data = '<pre class="agenda">' + data + "</pre>";
|
||||||
} else if (t.indexOf("text/markdown") > -1) {
|
} else if (t.indexOf("text/markdown") > -1) {
|
||||||
data = "<pre class='agenda'>" + data + "</pre>";
|
data = '<pre class="agenda">' + data + "</pre>";
|
||||||
} else if(t.indexOf("text/html") > -1) {
|
} else if(t.indexOf("text/html") > -1) {
|
||||||
// nothing to do here
|
// nothing to do here
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -124,7 +124,7 @@ function format_tooltip_notice(start, end) {
|
||||||
// Format tooltip table
|
// Format tooltip table
|
||||||
function format_tooltip_table(start, end) {
|
function format_tooltip_table(start, end) {
|
||||||
var current_timezone = get_current_tz_cb();
|
var current_timezone = get_current_tz_cb();
|
||||||
var out = '<div class="text-start"><table class="table table-sm"><tr><th></th><th>Session start</th><th>Session end</th></tr>';
|
var out = '<div class="text-start"><table class="table table-sm"><thead><tr><th scope="col"></th><th scope="col">Session start</th><th scope="col">Session end</th></tr></thead>';
|
||||||
if (window.meeting_timezone !== "") {
|
if (window.meeting_timezone !== "") {
|
||||||
out += '<tr><th class="timehead">Meeting timezone</th><td>' +
|
out += '<tr><th class="timehead">Meeting timezone</th><td>' +
|
||||||
format_time(start, window.meeting_timezone, 0) + '</td><td>' +
|
format_time(start, window.meeting_timezone, 0) + '</td><td>' +
|
||||||
|
|
|
@ -182,7 +182,7 @@ $(function () {
|
||||||
.attr("tabindex", 0)
|
.attr("tabindex", 0)
|
||||||
.after($(`
|
.after($(`
|
||||||
<div class="col-xl-2 ps-0 small">
|
<div class="col-xl-2 ps-0 small">
|
||||||
<nav id="righthand-nav" class="position-fixed navbar navbar-light bg-light overflow-auto flex-fill" style="height: 70vh; width: inherit;">
|
<nav id="righthand-nav" class="position-fixed navbar navbar-light bg-light overflow-auto flex-fill">
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
`))
|
`))
|
||||||
|
|
|
@ -64,7 +64,7 @@ var attachmentWidget = {
|
||||||
} else {
|
} else {
|
||||||
html += ' ' + field.val();
|
html += ' ' + field.val();
|
||||||
}
|
}
|
||||||
html += '<span style="display: none;" class="removeField">';
|
html += '<span class="d-none removeField">';
|
||||||
html += container.attr('id');
|
html += container.attr('id');
|
||||||
html += '</span>';
|
html += '</span>';
|
||||||
container.hide();
|
container.hide();
|
||||||
|
|
|
@ -70,7 +70,7 @@ $(document)
|
||||||
.addClass("sort");
|
.addClass("sort");
|
||||||
// $(header_row)
|
// $(header_row)
|
||||||
// .children("th, td")
|
// .children("th, td")
|
||||||
// .wrapInner("<span class='tablesorter-th'></span>");
|
// .wrapInner('<span class="tablesorter-th"></span>');
|
||||||
// // .each((i, e) => field_magic(i, e, fields));
|
// // .each((i, e) => field_magic(i, e, fields));
|
||||||
|
|
||||||
if ($(header_row)
|
if ($(header_row)
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<img class="col-2 mb-5"
|
<img class="col-2 mb-5"
|
||||||
src="{% static 'ietf/images/ietflogo.png' %}"
|
src="{% static 'ietf/images/ietflogo.png' %}"
|
||||||
alt="IETF">
|
alt="IETF">
|
||||||
<div class='alert alert-warning my-3'>
|
<div class="alert alert-warning my-3">
|
||||||
<h2>Authentication Required</h2>
|
<h1>Authentication Required</h1>
|
||||||
<hr>
|
<hr>
|
||||||
<p>
|
<p>
|
||||||
The server could not verify that you are authorized to view this page using
|
The server could not verify that you are authorized to view this page using
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<img class="col-2 mb-5"
|
<img class="col-2 mb-5"
|
||||||
src="{% static 'ietf/images/ietflogo.png' %}"
|
src="{% static 'ietf/images/ietflogo.png' %}"
|
||||||
alt="IETF">
|
alt="IETF">
|
||||||
<div class='alert alert-warning my-3'>
|
<div class="alert alert-warning my-3">
|
||||||
<h2>Restricted Access</h2>
|
<h1>Restricted Access</h1>
|
||||||
<hr>
|
<hr>
|
||||||
<p>
|
<p>
|
||||||
{{ exception }}
|
{{ exception }}
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<img class="col-2 mb-5"
|
<img class="col-2 mb-5"
|
||||||
src="{% static 'ietf/images/ietflogo.png' %}"
|
src="{% static 'ietf/images/ietflogo.png' %}"
|
||||||
alt="IETF">
|
alt="IETF">
|
||||||
<div class='alert alert-warning my-3'>
|
<div class="alert alert-warning my-3">
|
||||||
<h2>The page you were looking for couldn't be found</h2>
|
<h1>The page you were looking for couldn't be found</h1>
|
||||||
<hr>
|
<hr>
|
||||||
<p>
|
<p>
|
||||||
The requested URL was not found on this server. If you entered the URL
|
The requested URL was not found on this server. If you entered the URL
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<img class="col-2 mb-5"
|
<img class="col-2 mb-5"
|
||||||
src="{% static 'ietf/images/ietflogo.png' %}"
|
src="{% static 'ietf/images/ietflogo.png' %}"
|
||||||
alt="IETF">
|
alt="IETF">
|
||||||
<div class='alert alert-warning my-3'>
|
<div class="alert alert-warning my-3">
|
||||||
<h2>Internal Server Error</h2>
|
<h1>Internal Server Error</h1>
|
||||||
<hr>
|
<hr>
|
||||||
<p>
|
<p>
|
||||||
The server encountered an internal error and was unable to complete
|
The server encountered an internal error and was unable to complete
|
||||||
|
|
|
@ -135,14 +135,8 @@ $ curl 'https://datatracker.ietf.org/api/v1/doc/document/?limit=0&name__cont
|
||||||
A simplified Documents API, intended for cases where only a limited set of
|
A simplified Documents API, intended for cases where only a limited set of
|
||||||
document attributes are necessary for an application is
|
document attributes are necessary for an application is
|
||||||
available for all documents at the relative url <code>doc.json</code>, e.g.,
|
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>
|
<code><a class="text-reset" href="{% url 'ietf.doc.views_doc.document_json' name='draft-ietf-poised95-std-proc-3' %}">{% url 'ietf.doc.views_doc.document_json' name='draft-ietf-poised95-std-proc-3' %}</a></code>.
|
||||||
<a href="{% url 'ietf.doc.views_doc.document_json' name='draft-ietf-poised95-std-proc-3' %}">
|
You can also specify an RFC: <code><a class="text-reset" href="{% url 'ietf.doc.views_doc.document_json' name='rfc2026' %}">{% url 'ietf.doc.views_doc.document_json' name='rfc2026' %}</a></code>.
|
||||||
<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' %}">
|
|
||||||
<i class="bi bi-box-arrow-up-right"></i>
|
|
||||||
</a>.
|
|
||||||
No API key is needed to access this.
|
No API key is needed to access this.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
@ -255,9 +249,7 @@ $ curl -S -F "apikey=DgAAAMLSi3coaE5TjrRs518xO8eBRlCmFF3eQcC8_SjUTtRGLGiJh7-1SYP
|
||||||
rather than having general access or requiring username/password
|
rather than having general access or requiring username/password
|
||||||
login, see for example details for
|
login, see for example details for
|
||||||
<code>{% url 'ietf.doc.views_ballot.api_set_position' %}</code>
|
<code>{% url 'ietf.doc.views_ballot.api_set_position' %}</code>
|
||||||
<a href="#iesg-position-api">
|
<a href="#iesg-position-api">above</a>.
|
||||||
above
|
|
||||||
</a>.
|
|
||||||
Personal API keys are available from your
|
Personal API keys are available from your
|
||||||
<a href="{% url 'ietf.ietfauth.views.apikey_index' %}">
|
<a href="{% url 'ietf.ietfauth.views.apikey_index' %}">
|
||||||
Account API Keys
|
Account API Keys
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{# Copyright The IETF Trust 2015-2022, All Rights Reserved #}
|
{# Copyright The IETF Trust 2015-2022, All Rights Reserved #}
|
||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
{% load ietf_filters static %}
|
{% load ietf_filters static %}
|
||||||
{% load origin %}
|
{% load origin %}
|
||||||
{% origin %}
|
{% origin %}
|
||||||
|
@ -58,11 +58,13 @@
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="d-flex d-none d-lg-block">
|
<div class="d-flex d-none d-lg-block">
|
||||||
|
<label aria-label="Document search">
|
||||||
<input class="form-control select2-field"
|
<input class="form-control select2-field"
|
||||||
id="navbar-doc-search"
|
id="navbar-doc-search"
|
||||||
data-ajax--url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='docalias' doc_type='draft' %}"
|
data-ajax--url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='docalias' doc_type='draft' %}"
|
||||||
type="text"
|
type="text"
|
||||||
data-placeholder="Document search">
|
data-placeholder="Document search">
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button class="navbar-toggler"
|
<button class="navbar-toggler"
|
||||||
type="button"
|
type="button"
|
||||||
|
|
|
@ -224,4 +224,4 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if flavor == "top" %}</ul>{% endif %}
|
{% if flavor == "top" %}</ul></li>{% endif %}
|
||||||
|
|
|
@ -27,8 +27,10 @@
|
||||||
</p>
|
</p>
|
||||||
<table class="table table-sm table-striped tablesorter">
|
<table class="table table-sm table-striped tablesorter">
|
||||||
<thead>
|
<thead>
|
||||||
<th data-sort="doc">Document</th>
|
<tr>
|
||||||
<th>Manage</th>
|
<th scope="col" data-sort="doc">Document</th>
|
||||||
|
<th scope="col">Manage</th>
|
||||||
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for d in individually_added %}
|
{% for d in individually_added %}
|
||||||
|
@ -38,7 +40,7 @@
|
||||||
<form method="post" id="remove_document_{{ d.pk }}">
|
<form method="post" id="remove_document_{{ d.pk }}">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="document" value="{{ d.pk }}">
|
<input type="hidden" name="document" value="{{ d.pk }}">
|
||||||
<button class="btn btn-danger btn-sm" name="action" value="remove_document">Remove</button>
|
<button type="submit" class="btn btn-danger btn-sm" name="action" value="remove_document">Remove</button>
|
||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -78,10 +80,10 @@
|
||||||
<table class="table table-sm table-striped tablesorter">
|
<table class="table table-sm table-striped tablesorter">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th data-sort="rule">Rule</th>
|
<th scope="col" data-sort="rule">Rule</th>
|
||||||
<th data-sort="value">Value</th>
|
<th scope="col" data-sort="value">Value</th>
|
||||||
<th data-sort="num">Matching Documents</th>
|
<th scope="col" data-sort="num">Matching Documents</th>
|
||||||
<th>Manage</th>
|
<th scope="col">Manage</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -104,7 +106,7 @@
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="rule" value="{{ rule.pk }}">
|
<input type="hidden" name="rule" value="{{ rule.pk }}">
|
||||||
<button class="btn btn-danger btn-sm" name="action" value="remove_rule">Remove</button>
|
<button type="submit" class="btn btn-danger btn-sm" name="action" value="remove_rule">Remove</button>
|
||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
<p>
|
<p>
|
||||||
Add {{ name }} to the list?
|
Add {{ name }} to the list?
|
||||||
</p>
|
</p>
|
||||||
<input type="submit" class="btn btn-primary" value="Track document">
|
<button type="submit" class="btn btn-primary" value="Track document">Track document</button>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -9,7 +9,9 @@
|
||||||
<p>
|
<p>
|
||||||
Remove {{ name }} from the list?
|
Remove {{ name }} from the list?
|
||||||
</p>
|
</p>
|
||||||
<input type="submit"
|
<button type="submit"
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
value="Remove tracking of document">
|
value="Remove tracking of document">
|
||||||
|
Remove tracking of document
|
||||||
|
</button>
|
||||||
</form>
|
</form>
|
|
@ -15,13 +15,13 @@
|
||||||
<table class="table table-sm tablesorter">
|
<table class="table table-sm tablesorter">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th data-sort="num">#</th>
|
<th scope="col" data-sort="num">#</th>
|
||||||
<th data-sort="query">SQL</th>
|
<th scope="col" data-sort="query">SQL</th>
|
||||||
<th data-sort="num">Count</th>
|
<th scope="col" data-sort="num">Count</th>
|
||||||
<th data-sort="where">WHERE</th>
|
<th scope="col" data-sort="where">WHERE</th>
|
||||||
<th data-sort="num">View/Templ.</th>
|
<th scope="col" data-sort="num">View/Templ.</th>
|
||||||
<th data-sort="num">Time</th>
|
<th scope="col" data-sort="num">Time</th>
|
||||||
<th data-sort="num">Acc.</th>
|
<th scope="col" data-sort="num">Acc.</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -61,9 +61,9 @@
|
||||||
<table class="table table-sm">
|
<table class="table table-sm">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>File (line)</th>
|
<th scope="col">File (line)</th>
|
||||||
<th>Method</th>
|
<th scope="col">Method</th>
|
||||||
<th>Code</th>
|
<th scope="col">Code</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<small class='text-center text-muted'>
|
<small class="text-center text-muted">
|
||||||
Add <code>ietf.context_processors.sql_debug</code> to <code>settings.DEV_TEMPLATE_CONTEXT_PROCESSORS</code> to turn on the SQL statement table.
|
Add <code>ietf.context_processors.sql_debug</code> to <code>settings.DEV_TEMPLATE_CONTEXT_PROCESSORS</code> to turn on the SQL statement table.
|
||||||
</small>
|
</small>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -14,11 +14,11 @@
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<pre class="border p-3 mb-3">{{ announcement }}</pre>
|
<pre class="border p-3 mb-3">{{ announcement }}</pre>
|
||||||
{% if action == "to_announcement_list" %}
|
{% if action == "to_announcement_list" %}
|
||||||
<button class="btn btn-primary" type="submit">Notify RFC Editor, send announcement & close ballot</button>
|
<button class="btn btn-primary" type="submit">Notify RFC Editor, send announcement & close ballot</button>
|
||||||
{% elif action == "to_rfc_editor" %}
|
{% elif action == "to_rfc_editor" %}
|
||||||
<button class="btn btn-primary" type="submit">Email RFC Editor & close ballot</button>
|
<button class="btn btn-primary" type="submit">Email RFC Editor & close ballot</button>
|
||||||
{% elif action == "do_not_publish" %}
|
{% elif action == "do_not_publish" %}
|
||||||
<button class="btn btn-primary" type="submit">Email RFC Editor (DNP) & close ballot"</button>
|
<button class="btn btn-primary" type="submit">Email RFC Editor (DNP) & close ballot"</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a class="btn btn-secondary float-end"
|
<a class="btn btn-secondary float-end"
|
||||||
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">
|
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">
|
||||||
|
|
|
@ -36,20 +36,18 @@
|
||||||
<button type="submit"
|
<button type="submit"
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
name="send_mail"
|
name="send_mail"
|
||||||
value="Save and send email">Save & send email</button>
|
value="Save and send email">Save & send email</button>
|
||||||
<input type="submit" class="btn btn-primary" value="Save">
|
<button type="submit" class="btn btn-primary">Save</button>
|
||||||
{% if doc.type_id == "draft" or doc.type_id == "conflrev" %}
|
{% if doc.type_id == "draft" or doc.type_id == "conflrev" %}
|
||||||
{% if doc.stream.slug != "irtf" %}
|
{% if doc.stream.slug != "irtf" %}
|
||||||
{% if ballot_deferred %}
|
{% if ballot_deferred %}
|
||||||
<input type="submit"
|
<button type="submit"
|
||||||
class="btn btn-warning"
|
class="btn btn-warning"
|
||||||
name="Undefer"
|
name="Undefer">Undefer ballot</button>
|
||||||
value="Undefer ballot">
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<input type="submit"
|
<button type="submit"
|
||||||
class="btn btn-danger"
|
class="btn btn-danger"
|
||||||
name="Defer"
|
name="Defer">Defer ballot</button>
|
||||||
value="Defer ballot">
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue