diff --git a/README b/README new file mode 100644 index 000000000..18bdec71f --- /dev/null +++ b/README @@ -0,0 +1,25 @@ +This is the "facelift" datatracker branch that uses Twitter Bootstrap for +the UI. + +You need to install a few new django extensions: + https://pypi.python.org/pypi/django-widget-tweaks + https://pypi.python.org/pypi/django-bootstrap3 + https://pypi.python.org/pypi/django-typogrify + +The meta goal of this effort is: *** NO CHANGES TO THE PYTHON CODE *** + +Whenever changes to the python code are made, they can only fix HTML bugs, +or add comments (tagged with "FACELIFT") about functionality that can be +removed once the facelift templates become default. Or they need to add +functionality that is only called from the new facelift templates. + +Javascript that is only used on one template goes into that template. +Javascript that is used by more than one template goes into ietf.js. + +CSS that is only used on one template goes into that template. +CSS that is used by more than one template goes into ietf.css. No CSS in the +templates or - god forbid - style tags! (And no CSS or HTML styling in +python code!!) + +Templates that use jquery or bootstrap plugins include the css in the pagehead +block, and the js in the js block. diff --git a/TODO b/TODO new file mode 100644 index 000000000..994c859d2 --- /dev/null +++ b/TODO @@ -0,0 +1,11 @@ +Major pieces not facelifted: milestone editing, liaison editing, WG workflow customization + +Use affix for navigation on active_wgs.html + +Figure out why {% if debug %} does not work in the text templates under ietf/templates_facelift/community/public. + +Make django generate HTML5 date inputs or use a js-based datepicker. + +Deferring ballots does not work. (Seems to be an upstream bug.) + +Make tables that are too wide to usefully work on small screens responsive. See http://getbootstrap.com/css/#tables-responsive diff --git a/ietf/community/templatetags/community_tags.py b/ietf/community/templatetags/community_tags.py index 1797bb99b..52995063b 100644 --- a/ietf/community/templatetags/community_tags.py +++ b/ietf/community/templatetags/community_tags.py @@ -1,5 +1,6 @@ from django import template from django.template.loader import render_to_string +from django.conf import settings from ietf.community.models import CommunityList from ietf.group.models import Role @@ -9,7 +10,7 @@ register = template.Library() class CommunityListNode(template.Node): - + def __init__(self, user, var_name): self.user = user self.var_name = var_name @@ -57,13 +58,13 @@ def show_field(field, doc): class CommunityListViewNode(template.Node): - + def __init__(self, clist): self.clist = clist def render(self, context): clist = self.clist.resolve(context) - if not clist.cached: + if settings.DEBUG or not clist.cached: clist.cached = render_to_string('community/raw_view.html', {'cl': clist, 'dc': clist.get_display_config()}) diff --git a/ietf/doc/templatetags/ballot_icon.py b/ietf/doc/templatetags/ballot_icon.py index 23b5f99e4..142437685 100644 --- a/ietf/doc/templatetags/ballot_icon.py +++ b/ietf/doc/templatetags/ballot_icon.py @@ -87,35 +87,32 @@ def ballot_icon(context, doc): positions = list(doc.active_ballot().active_ad_positions().items()) positions.sort(key=sort_key) - edit_position_url = "" - if has_role(user, "Area Director"): - edit_position_url = urlreverse('ietf.doc.views_ballot.edit_position', kwargs=dict(name=doc.name, ballot_id=ballot.pk)) - - title = "IESG positions (click to show more%s)" % (", right-click to edit position" if edit_position_url else "") - - res = ['' % ( - urlreverse("doc_ballot", kwargs=dict(name=doc.name, ballot_id=ballot.pk)), + res = ['
' % ( urlreverse("ietf.doc.views_doc.ballot_popup", kwargs=dict(name=doc.name, ballot_id=ballot.pk)), - edit_position_url, - title - )] + ballot.pk)] res.append("") for i, (ad, pos) in enumerate(positions): if i > 0 and i % 5 == 0: - res.append("") - res.append("") + res.append("") c = "position-%s" % (pos.pos.slug if pos else "norecord") if user_is_person(user, ad): c += " my" - res.append('' % c) - res.append("") - res.append("
' % c) + res.append('
") + # add sufficient table calls to last row to avoid HTML validation warning + while (i + 1) % 5 != 0: + res.append('') + i = i + 1 + + res.append("") + # XXX FACELIFT: Loading via href will go away in bootstrap 4. + # See http://getbootstrap.com/javascript/#modals-usage + res.append('' % ballot.pk) return "".join(res) @@ -137,7 +134,8 @@ def ballotposition(doc, user): @register.filter -def state_age_colored(doc): +# FACELIFT: added flavor argument for styling +def state_age_colored(doc, flavor=""): if doc.type_id == 'draft': if not doc.get_state_slug() in ["active", "rfc"]: # Don't show anything for expired/withdrawn/replaced drafts @@ -156,7 +154,7 @@ def state_age_colored(doc): except IndexError: state_date = datetime.date(1990,1,1) days = (datetime.date.today() - state_date).days - # loosely based on + # loosely based on # http://trac.tools.ietf.org/group/iesg/trac/wiki/PublishPath if iesg_state == "lc": goal1 = 30 @@ -180,16 +178,26 @@ def state_age_colored(doc): goal1 = 14 goal2 = 28 if days > goal2: - class_name = "ietf-small ietf-highlight-r" + if flavor == "facelift": + class_name = "label label-danger" + else: + class_name = "ietf-small ietf-highlight-r" elif days > goal1: - class_name = "ietf-small ietf-highlight-y" + if flavor == "facelift": + class_name = "label label-warning" + else: + class_name = "ietf-small ietf-highlight-y" else: class_name = "ietf-small" if days > goal1: title = ' title="Goal is <%d days"' % (goal1,) else: title = '' - return mark_safe('(for %d day%s)' % ( - class_name, title, days, 's' if days != 1 else '')) + # It's too bad that this function returns HTML; this makes it hard to + # style. For the facelift, I therefore needed to add a new "flavor" + # parameter, which is ugly. + return mark_safe('%sfor %d day%s%s' % ( + class_name, title, '(' if flavor != "facelift" else "", days, + 's' if days != 1 else '', '(' if flavor != "facelift" else "" )) else: return "" diff --git a/ietf/doc/templatetags/ietf_filters.py b/ietf/doc/templatetags/ietf_filters.py index 75329966c..e0c7e1b8d 100644 --- a/ietf/doc/templatetags/ietf_filters.py +++ b/ietf/doc/templatetags/ietf_filters.py @@ -9,7 +9,7 @@ from email.utils import parseaddr from ietf.doc.models import ConsensusDocEvent from django import template from django.utils.html import escape, fix_ampersands -from django.template.defaultfilters import truncatewords_html, linebreaksbr, stringfilter, urlize +from django.template.defaultfilters import truncatewords_html, linebreaksbr, stringfilter, urlize, striptags from django.template import resolve_variable from django.utils.safestring import mark_safe, SafeData from django.utils.html import strip_tags @@ -48,12 +48,12 @@ def parse_email_list(value): u'joe@example.org, fred@example.com' Parsing a non-string should return the input value, rather than fail: - + >>> parse_email_list(['joe@example.org', 'fred@example.com']) ['joe@example.org', 'fred@example.com'] - + Null input values should pass through silently: - + >>> parse_email_list('') '' @@ -87,7 +87,7 @@ def fix_angle_quotes(value): if "<" in value: value = re.sub("<([\w\-\.]+@[\w\-\.]+)>", "<\1>", value) return value - + # there's an "ahref -> a href" in GEN_UTIL # but let's wait until we understand what that's for. @register.filter(name='make_one_per_line') @@ -99,7 +99,7 @@ def make_one_per_line(value): 'a\\nb\\nc' Pass through non-strings: - + >>> make_one_per_line([1, 2]) [1, 2] @@ -110,7 +110,7 @@ def make_one_per_line(value): return re.sub(", ?", "\n", value) else: return value - + @register.filter(name='timesum') def timesum(value): """ @@ -222,7 +222,7 @@ def rfclink(string): URL for that RFC. """ string = str(string); - return "http://tools.ietf.org/html/rfc" + string; + return "//tools.ietf.org/html/rfc" + string; @register.filter(name='urlize_ietf_docs', is_safe=True, needs_autoescape=True) def urlize_ietf_docs(string, autoescape=None): @@ -274,7 +274,7 @@ def truncate_ellipsis(text, arg): return escape(text[:num-1])+"…" else: return escape(text) - + @register.filter def split(text, splitter=None): return text.split(splitter) @@ -375,7 +375,7 @@ def linebreaks_lf(text): @register.filter(name='clean_whitespace') def clean_whitespace(text): """ - Map all ASCII control characters (0x00-0x1F) to spaces, and + Map all ASCII control characters (0x00-0x1F) to spaces, and remove unnecessary spaces. """ text = re.sub("[\000-\040]+", " ", text) @@ -384,7 +384,7 @@ def clean_whitespace(text): @register.filter(name='unescape') def unescape(text): """ - Unescape  />/< + Unescape  />/< """ text = text.replace(">", ">") text = text.replace("<", "<") @@ -423,7 +423,7 @@ def has_role(user, role_names): @register.filter def stable_dictsort(value, arg): """ - Like dictsort, except it's stable (preserves the order of items + Like dictsort, except it's stable (preserves the order of items whose sort key is the same). See also bug report http://code.djangoproject.com/ticket/12110 """ @@ -448,10 +448,10 @@ def format_history_text(text): if text.startswith("This was part of a ballot set with:"): full = urlize_ietf_docs(full) - full = mark_safe(keep_spacing(linebreaksbr(urlize(sanitize_html(full))))) + full = mark_safe(keep_spacing(linebreaksbr(urlize_html(sanitize_html(full))))) snippet = truncatewords_html(full, 25) if snippet != full: - return mark_safe(u'
%s[show all]
' % (snippet, full)) + return mark_safe(u'
%s
' % (snippet, full)) return full @register.filter @@ -512,3 +512,66 @@ def consensus(doc): else: return "Unknown" +# FACELIFT: The following filters are only used by the facelift UI: + +@register.filter +def pos_to_label(text): + """Return a valid Bootstrap3 label type for a ballot position.""" + return { + 'Yes': 'success', + 'No Objection': 'info', + 'Abstain': 'warning', + 'Discuss': 'danger', + 'Block': 'danger', + 'Recuse': 'default', + }.get(str(text), 'blank') + +@register.filter +def capfirst_allcaps(text): + from django.template import defaultfilters + """Like capfirst, except it doesn't lowercase words in ALL CAPS.""" + result = text + i = False + for token in re.split("(\W+)", striptags(text)): + if not re.match("^[A-Z]+$", token): + if not i: + result = result.replace(token, token.capitalize()) + i = True + else: + result = result.replace(token, token.lower()) + return result + +@register.filter +def lower_allcaps(text): + from django.template import defaultfilters + """Like lower, except it doesn't lowercase words in ALL CAPS.""" + result = text + i = False + for token in re.split("(\W+)", striptags(text)): + if not re.match("^[A-Z]+$", token): + result = result.replace(token, token.lower()) + return result + +# See https://djangosnippets.org/snippets/2072/ and +# https://stackoverflow.com/questions/9939248/how-to-prevent-django-basic-inlines-from-autoescaping +@register.filter +def urlize_html(html, autoescape=False): + """ + Returns urls found in an (X)HTML text node element as urls via Django urlize filter. + """ + try: + from BeautifulSoup import BeautifulSoup + from django.utils.html import urlize + except ImportError: + if settings.DEBUG: + raise template.TemplateSyntaxError, "Error in urlize_html The Python BeautifulSoup libraries aren't installed." + return html + else: + soup = BeautifulSoup(html) + + textNodes = soup.findAll(text=True) + for textNode in textNodes: + urlizedText = urlize(textNode, autoescape=autoescape) + textNode.replaceWith(BeautifulSoup(urlizedText)) + + return str(soup) diff --git a/ietf/doc/templatetags/wg_menu.py b/ietf/doc/templatetags/wg_menu.py index 98960c7a7..477df82b0 100644 --- a/ietf/doc/templatetags/wg_menu.py +++ b/ietf/doc/templatetags/wg_menu.py @@ -43,24 +43,32 @@ area_short_names = { 'rai':'RAI' } +# FACELIFT: Function is called with "facelift" flavor from the new UI code. +# The old code (and flavoring) can be remove eventually. @register.simple_tag -def wg_menu(): - res = cache.get('base_left_wgmenu') +def wg_menu(flavor=""): + res = cache.get('wgmenu' + flavor) if res: return res areas = Group.objects.filter(type="area", state="active").order_by('acronym') - groups = Group.objects.filter(type="wg", state="active", parent__in=areas).order_by("acronym") + wgs = Group.objects.filter(type="wg", state="active", parent__in=areas).order_by("acronym") + rgs = Group.objects.filter(type="rg", state="active").order_by("acronym") for a in areas: a.short_area_name = area_short_names.get(a.acronym) or a.name if a.short_area_name.endswith(" Area"): a.short_area_name = a.short_area_name[:-len(" Area")] - a.active_groups = [g for g in groups if g.parent_id == a.id] + a.active_groups = [g for g in wgs if g.parent_id == a.id] areas = [a for a in areas if a.active_groups] - res = render_to_string('base/wg_menu.html', {'areas':areas}) - cache.set('base_left_wgmenu', res, 30*60) + if flavor == "facelift": + res = render_to_string('base/menu_wg.html', {'areas':areas, 'rgs':rgs}) + elif flavor == "modal": + res = render_to_string('base/menu_wg_modal.html', {'areas':areas, 'rgs':rgs}) + else: + res = render_to_string('base/wg_menu.html', {'areas':areas, 'rgs':rgs}) + cache.set('wgmenu' + flavor, res, 30*60) return res diff --git a/ietf/doc/views_charter.py b/ietf/doc/views_charter.py index 7963bdac4..2b80aee9f 100644 --- a/ietf/doc/views_charter.py +++ b/ietf/doc/views_charter.py @@ -13,7 +13,7 @@ from django.contrib.auth.decorators import login_required import debug # pyflakes:ignore from ietf.doc.models import ( Document, DocHistory, State, DocEvent, BallotDocEvent, - BallotPositionDocEvent, InitialReviewDocEvent, NewRevisionDocEvent, + BallotPositionDocEvent, InitialReviewDocEvent, NewRevisionDocEvent, WriteupDocEvent, save_document_in_history ) from ietf.doc.utils import ( add_state_change_event, close_open_ballots, create_ballot_if_not_open, get_chartering_type ) @@ -33,7 +33,7 @@ from ietf.group.mails import email_iesg_secretary_re_charter class ChangeStateForm(forms.Form): charter_state = forms.ModelChoiceField(State.objects.filter(used=True, type="charter"), label="Charter state", empty_label=None, required=False) initial_time = forms.IntegerField(initial=0, label="Review time", help_text="(in weeks)", required=False) - message = forms.CharField(widget=forms.Textarea, help_text="Leave blank to change state without notifying the Secretariat", required=False, label=mark_safe("Message to
Secretariat")) + message = forms.CharField(widget=forms.Textarea, help_text="Leave blank to change state without notifying the Secretariat", required=False, label=mark_safe("Message to the Secretariat")) comment = forms.CharField(widget=forms.Textarea, help_text="Optional comment for the charter history", required=False) def __init__(self, *args, **kwargs): self.hide = kwargs.pop('hide', None) @@ -47,7 +47,7 @@ class ChangeStateForm(forms.Form): # hide requested fields if self.hide: for f in self.hide: - self.fields[f].widget = forms.HiddenInput + self.fields[f].widget = forms.HiddenInput() @login_required def change_state(request, name, option=None): @@ -101,7 +101,7 @@ def change_state(request, name, option=None): e.state_id = group.state.slug e.desc = "Group state changed to %s from %s" % (group.state, oldstate) e.save() - + else: charter_state = State.objects.get(used=True, type="charter", slug="approved") charter_rev = approved_revision(charter.rev) @@ -327,12 +327,12 @@ def submit(request, name=None, option=None): e.desc = "New version available: %s-%s.txt" % (charter.canonical_name(), charter.rev) e.rev = charter.rev e.save() - + # Save file on disk form.save(group, charter.rev) if option in ['initcharter','recharter'] and charter.ad == None: - charter.ad = group.ad + charter.ad = group.ad charter.time = datetime.datetime.now() charter.save() @@ -405,7 +405,7 @@ def announcement_text(request, name, ann): e.desc = "%s %s text was changed" % (group.type.name, ann) e.text = t e.save() - + charter.time = e.time charter.save() @@ -440,7 +440,7 @@ class BallotWriteupForm(forms.Form): def clean_ballot_writeup(self): return self.cleaned_data["ballot_writeup"].replace("\r", "") - + @role_required('Area Director','Secretariat') def ballot_writeupnotes(request, name): """Editing of ballot write-up and notes""" @@ -453,13 +453,13 @@ def ballot_writeupnotes(request, name): login = request.user.person approval = charter.latest_event(WriteupDocEvent, type="changed_action_announcement") - + existing = charter.latest_event(WriteupDocEvent, type="changed_ballot_writeup_text") if not existing: existing = generate_ballot_writeup(request, charter) reissue = charter.latest_event(DocEvent, type="sent_ballot_announcement") - + form = BallotWriteupForm(initial=dict(ballot_writeup=existing.text)) if request.method == 'POST' and ("save_ballot_writeup" in request.POST or "send_ballot" in request.POST): @@ -644,7 +644,7 @@ def approve(request, name): send_mail_preformatted(request, announcement) return HttpResponseRedirect(charter.get_absolute_url()) - + return render_to_response('doc/charter/approve.html', dict(charter=charter, announcement=announcement), diff --git a/ietf/doc/views_search.py b/ietf/doc/views_search.py index 365c594e4..c6629d634 100644 --- a/ietf/doc/views_search.py +++ b/ietf/doc/views_search.py @@ -148,7 +148,7 @@ def fill_in_search_attributes(docs): for d in docs: if isinstance(d,DocAlias): d = d.document - rel_this_doc = d.all_related_that_doc(['replaces','obs']) + rel_this_doc = d.all_related_that_doc(['replaces','obs']) for rel in rel_this_doc: rel_id_camefrom.setdefault(rel.document.pk,[]).append(d.pk) rel_docs += [x.document for x in rel_this_doc] @@ -240,7 +240,7 @@ def retrieve_search_results(form, all_types=False): """Takes a validated SearchForm and return the results.""" if not form.is_valid(): raise ValueError("SearchForm doesn't validate: %s" % form.errors) - + query = form.cleaned_data types=[]; @@ -282,7 +282,7 @@ def retrieve_search_results(form, all_types=False): if query["olddrafts"]: allowed_draft_states.extend(['repl', 'expired', 'auth-rm', 'ietf-rm']) - docs = docs.filter(Q(states__slug__in=allowed_draft_states) | + docs = docs.filter(Q(states__slug__in=allowed_draft_states) | ~Q(type__slug='draft')).distinct() # radio choices @@ -365,7 +365,7 @@ def retrieve_search_results(form, all_types=False): meta['headers'] = [{'title': 'Document', 'key':'document'}, {'title': 'Title', 'key':'title'}, {'title': 'Date', 'key':'date'}, - {'title': 'Status', 'key':'status', 'colspan':'2'}, + {'title': 'Status', 'key':'status'}, {'title': 'IPR', 'key':'ipr'}, {'title': 'AD / Shepherd', 'key':'ad'}] @@ -440,14 +440,14 @@ def ad_dashboard_group(doc): return '%s Internet-Draft' % doc.get_state('draft').name elif doc.type.slug=='conflrev': if doc.get_state_slug('conflrev') in ('appr-reqnopub-sent','appr-noprob-sent'): - return 'Approved Conflict Review' + return 'Approved Conflict Review' elif doc.get_state_slug('conflrev') in ('appr-reqnopub-pend','appr-noprob-pend','appr-reqnopub-pr','appr-noprob-pr'): return "%s Conflict Review" % State.objects.get(type__slug='draft-iesg',slug='approved') else: return '%s Conflict Review' % doc.get_state('conflrev') elif doc.type.slug=='statchg': if doc.get_state_slug('statchg') in ('appr-sent',): - return 'Approved Status Change' + return 'Approved Status Change' if doc.get_state_slug('statchg') in ('appr-pend','appr-pr'): return '%s Status Change' % State.objects.get(type__slug='draft-iesg',slug='approved') else: @@ -461,7 +461,7 @@ def ad_dashboard_group(doc): return "Document" def ad_dashboard_sort_key(doc): - + if doc.type.slug=='draft' and doc.get_state_slug('draft') == 'rfc': return "21%04d" % int(doc.rfc_number()) if doc.type.slug=='statchg' and doc.get_state_slug('statchg') == 'appr-sent': @@ -474,26 +474,26 @@ def ad_dashboard_sort_key(doc): seed = ad_dashboard_group(doc) if doc.type.slug=='conflrev' and doc.get_state_slug('conflrev') == 'adrev': - state = State.objects.get(type__slug='draft-iesg',slug='ad-eval') + state = State.objects.get(type__slug='draft-iesg',slug='ad-eval') return "1%d%s" % (state.order,seed) if doc.type.slug=='charter': if doc.get_state_slug('charter') in ('notrev','infrev'): return "100%s" % seed elif doc.get_state_slug('charter') == 'intrev': - state = State.objects.get(type__slug='draft-iesg',slug='ad-eval') + state = State.objects.get(type__slug='draft-iesg',slug='ad-eval') return "1%d%s" % (state.order,seed) elif doc.get_state_slug('charter') == 'extrev': - state = State.objects.get(type__slug='draft-iesg',slug='lc') + state = State.objects.get(type__slug='draft-iesg',slug='lc') return "1%d%s" % (state.order,seed) elif doc.get_state_slug('charter') == 'iesgrev': - state = State.objects.get(type__slug='draft-iesg',slug='iesg-eva') + state = State.objects.get(type__slug='draft-iesg',slug='iesg-eva') return "1%d%s" % (state.order,seed) if doc.type.slug=='statchg' and doc.get_state_slug('statchg') == 'adrev': - state = State.objects.get(type__slug='draft-iesg',slug='ad-eval') + state = State.objects.get(type__slug='draft-iesg',slug='ad-eval') return "1%d%s" % (state.order,seed) - + if seed.startswith('Needs Shepherd'): return "100%s" % seed if seed.endswith(' Document'): diff --git a/ietf/group/edit.py b/ietf/group/edit.py index a65372c63..ea008b777 100644 --- a/ietf/group/edit.py +++ b/ietf/group/edit.py @@ -32,13 +32,13 @@ class GroupForm(forms.Form): chairs = EmailsField(label="Chairs", required=False) secretaries = EmailsField(label="Secretaries", required=False) techadv = EmailsField(label="Technical Advisors", required=False) - delegates = EmailsField(label="Delegates", required=False, help_text=mark_safe("Type in name to search for person
Chairs can delegate the authority to update the state of group documents - max %s persons at a given time" % MAX_GROUP_DELEGATES)) + delegates = EmailsField(label="Delegates", required=False, help_text=mark_safe("Type in name to search for person. Chairs can delegate the authority to update the state of group documents - at most %s persons at a given time." % MAX_GROUP_DELEGATES)) ad = forms.ModelChoiceField(Person.objects.filter(role__name="ad", role__group__state="active").order_by('name'), label="Shepherding AD", empty_label="(None)", required=False) parent = forms.ModelChoiceField(Group.objects.filter(state="active").order_by('name'), empty_label="(None)", required=False) list_email = forms.CharField(max_length=64, required=False) list_subscribe = forms.CharField(max_length=255, required=False) list_archive = forms.CharField(max_length=255, required=False) - urls = forms.CharField(widget=forms.Textarea, label="Additional URLs", help_text="Format: http://site/path (Optional description). Separate multiple entries with newline.", required=False) + urls = forms.CharField(widget=forms.Textarea, label="Additional URLs", help_text="Format: https://site/path (Optional description). Separate multiple entries with newline. Prefer HTTPS URLs where possible.", required=False) def __init__(self, *args, **kwargs): self.group = kwargs.pop('group', None) @@ -59,7 +59,7 @@ class GroupForm(forms.Form): self.confirm_msg = "" self.autoenable_confirm = False if self.group: - self.fields['acronym'].widget.attrs['readonly'] = True + self.fields['acronym'].widget.attrs['readonly'] = "" if self.group_type == "rg": self.fields['ad'].widget = forms.HiddenInput() @@ -148,7 +148,7 @@ def get_or_create_initial_charter(group, group_type): ) charter.save() charter.set_state(State.objects.get(used=True, type="charter", slug="notrev")) - + # Create an alias as well DocAlias.objects.create(name=charter.name, document=charter) @@ -219,12 +219,12 @@ def edit(request, group_type=None, acronym=None, action="edit"): group.charter = get_or_create_initial_charter(group, group_type) changes = [] - + def desc(attr, new, old): entry = "%(attr)s changed to %(new)s from %(old)s" if new_group: entry = "%(attr)s changed to %(new)s" - + return entry % dict(attr=attr, new=new, old=old) def diff(attr, name): diff --git a/ietf/group/views_stream.py b/ietf/group/views_stream.py index 26a452a90..03e4a235c 100644 --- a/ietf/group/views_stream.py +++ b/ietf/group/views_stream.py @@ -24,14 +24,16 @@ def stream_documents(request, acronym): streams = [ s.slug for s in StreamName.objects.all().exclude(slug__in=['ietf', 'legacy']) ] if not acronym in streams: raise Http404("No such stream: %s" % acronym) + group = get_object_or_404(Group, acronym=acronym) + editable = has_role(request.user, "Secretariat") or group.has_role(request.user, "chair") stream = StreamName.objects.get(slug=acronym) form = SearchForm({'by':'stream', 'stream':acronym, 'rfcs':'on', 'activedrafts':'on'}) docs, meta = retrieve_search_results(form) - return render_to_response('group/stream_documents.html', {'stream':stream, 'docs':docs, 'meta':meta }, context_instance=RequestContext(request)) + return render_to_response('group/stream_documents.html', {'stream':stream, 'docs':docs, 'meta':meta, 'editable':editable }, context_instance=RequestContext(request)) class StreamEditForm(forms.Form): - delegates = EmailsField(label="Delegates", required=False, help_text=u"Type in name to search for person") + delegates = EmailsField(label="Delegates", required=False, help_text=u"Type in name to search for person.") def stream_edit(request, acronym): group = get_object_or_404(Group, acronym=acronym) @@ -62,7 +64,7 @@ def stream_edit(request, acronym): for e in new: Role.objects.get_or_create(name_id=slug, email=e, group=group, person=e.person) - return redirect("ietf.group.views.streams") + return redirect("ietf.group.views_stream.streams") else: form = StreamEditForm(initial=dict(delegates=Email.objects.filter(role__group=group, role__name="delegate"))) @@ -72,4 +74,4 @@ def stream_edit(request, acronym): 'form': form, }, context_instance=RequestContext(request)) - + diff --git a/ietf/iesg/agenda.py b/ietf/iesg/agenda.py index eb0d9f212..8ab95e000 100644 --- a/ietf/iesg/agenda.py +++ b/ietf/iesg/agenda.py @@ -85,50 +85,50 @@ def get_doc_section(doc): def agenda_sections(): return OrderedDict([ ('1', {'title':"Administrivia"}), - ('1.1', {'title':"Roll Call"}), - ('1.2', {'title':"Bash the Agenda"}), - ('1.3', {'title':"Approval of the Minutes of Past Telechats"}), - ('1.4', {'title':"List of Remaining Action Items from Last Telechat"}), - ('2', {'title':"Protocol Actions"}), - ('2.1', {'title':"WG Submissions"}), - ('2.1.1', {'title':"New Items", 'docs': []}), - ('2.1.2', {'title':"Returning Items", 'docs':[]}), - ('2.1.3', {'title':"For Action", 'docs':[]}), - ('2.2', {'title':"Individual Submissions"}), - ('2.2.1', {'title':"New Items", 'docs':[]}), - ('2.2.2', {'title':"Returning Items", 'docs':[]}), - ('2.2.3', {'title':"For Action", 'docs':[]}), - ('2.3', {'title':"Status Changes"}), - ('2.3.1', {'title':"New Items", 'docs':[]}), - ('2.3.2', {'title':"Returning Items", 'docs':[]}), - ('2.3.3', {'title':"For Action", 'docs':[]}), - ('3', {'title':"Document Actions"}), - ('3.1', {'title':"WG Submissions"}), - ('3.1.1', {'title':"New Items", 'docs':[]}), - ('3.1.2', {'title':"Returning Items", 'docs':[]}), - ('3.1.3', {'title':"For Action", 'docs':[]}), - ('3.2', {'title':"Individual Submissions Via AD"}), - ('3.2.1', {'title':"New Items", 'docs':[]}), - ('3.2.2', {'title':"Returning Items", 'docs':[]}), - ('3.2.3', {'title':"For Action", 'docs':[]}), - ('3.3', {'title':"Status Changes"}), - ('3.3.1', {'title':"New Items", 'docs':[]}), - ('3.3.2', {'title':"Returning Items", 'docs':[]}), - ('3.3.3', {'title':"For Action", 'docs':[]}), - ('3.4', {'title':"IRTF and Independent Submission Stream Documents"}), - ('3.4.1', {'title':"New Items", 'docs':[]}), - ('3.4.2', {'title':"Returning Items", 'docs':[]}), - ('3.4.3', {'title':"For Action", 'docs':[]}), - ('4', {'title':"Working Group Actions"}), - ('4.1', {'title':"WG Creation"}), - ('4.1.1', {'title':"Proposed for IETF Review", 'docs':[]}), - ('4.1.2', {'title':"Proposed for Approval", 'docs':[]}), - ('4.2', {'title':"WG Rechartering"}), - ('4.2.1', {'title':"Under Evaluation for IETF Review", 'docs':[]}), - ('4.2.2', {'title':"Proposed for Approval", 'docs':[]}), - ('5', {'title':"IAB News We Can Use"}), - ('6', {'title':"Management Issues"}), - ('7', {'title':"Working Group News"}), + ('1.1', {'title':"Roll call"}), + ('1.2', {'title':"Bash the agenda"}), + ('1.3', {'title':"Approval of the minutes of past telechats"}), + ('1.4', {'title':"List of remaining action items from last telechat"}), + ('2', {'title':"Protocol actions"}), + ('2.1', {'title':"WG submissions"}), + ('2.1.1', {'title':"New items", 'docs': []}), + ('2.1.2', {'title':"Returning items", 'docs':[]}), + ('2.1.3', {'title':"For action", 'docs':[]}), + ('2.2', {'title':"Individual submissions"}), + ('2.2.1', {'title':"New items", 'docs':[]}), + ('2.2.2', {'title':"Returning items", 'docs':[]}), + ('2.2.3', {'title':"For action", 'docs':[]}), + ('2.3', {'title':"Status changes"}), + ('2.3.1', {'title':"New items", 'docs':[]}), + ('2.3.2', {'title':"Returning items", 'docs':[]}), + ('2.3.3', {'title':"For action", 'docs':[]}), + ('3', {'title':"Document actions"}), + ('3.1', {'title':"WG submissions"}), + ('3.1.1', {'title':"New items", 'docs':[]}), + ('3.1.2', {'title':"Returning items", 'docs':[]}), + ('3.1.3', {'title':"For action", 'docs':[]}), + ('3.2', {'title':"Individual submissions via AD"}), + ('3.2.1', {'title':"New items", 'docs':[]}), + ('3.2.2', {'title':"Returning items", 'docs':[]}), + ('3.2.3', {'title':"For action", 'docs':[]}), + ('3.3', {'title':"Status changes"}), + ('3.3.1', {'title':"New items", 'docs':[]}), + ('3.3.2', {'title':"Returning items", 'docs':[]}), + ('3.3.3', {'title':"For action", 'docs':[]}), + ('3.4', {'title':"IRTF and Independent Submission stream documents"}), + ('3.4.1', {'title':"New items", 'docs':[]}), + ('3.4.2', {'title':"Returning items", 'docs':[]}), + ('3.4.3', {'title':"For action", 'docs':[]}), + ('4', {'title':"Working Group actions"}), + ('4.1', {'title':"WG creation"}), + ('4.1.1', {'title':"Proposed for IETF review", 'docs':[]}), + ('4.1.2', {'title':"Proposed for approval", 'docs':[]}), + ('4.2', {'title':"WG rechartering"}), + ('4.2.1', {'title':"Under evaluation for IETF review", 'docs':[]}), + ('4.2.2', {'title':"Proposed for approval", 'docs':[]}), + ('5', {'title':"IAB news we can use"}), + ('6', {'title':"Management issues"}), + ('7', {'title':"Working Group news"}), ]) def fill_in_agenda_administrivia(date, sections): @@ -185,7 +185,7 @@ def fill_in_agenda_docs(date, sections, matches=None): # prune empty "For action" sections empty_for_action = [n for n, section in sections.iteritems() - if section["title"] == "For Action" and not section["docs"]] + if section["title"] == "For action" and not section["docs"]] for num in empty_for_action: del sections[num] diff --git a/ietf/iesg/views.py b/ietf/iesg/views.py index fbc2bd57a..e2231323b 100644 --- a/ietf/iesg/views.py +++ b/ietf/iesg/views.py @@ -2,24 +2,24 @@ # Portion Copyright (C) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. Contact: Pasi Eronen -# +# # Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions +# modification, are permitted provided that the following conditions # are met: -# +# # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. -# +# # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. -# +# # * Neither the name of the Nokia Corporation and/or its # subsidiary(-ies) nor the names of its contributors may be used # to endorse or promote products derived from this software # without specific prior written permission. -# +# # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -58,6 +58,9 @@ from ietf.iesg.models import TelechatDate from ietf.ietfauth.utils import has_role, role_required, user_is_person from ietf.person.models import Person +# FACELIFT: +from ietf.doc.views_search import fill_in_search_attributes + def review_decisions(request, year=None): events = DocEvent.objects.filter(type__in=("iesg_disapproved", "iesg_approved")) @@ -176,8 +179,8 @@ def agenda(request, date=None): data = agenda_data(date) if has_role(request.user, ["Area Director", "IAB Chair", "Secretariat"]): - data["sections"]["1.1"]["title"] = data["sections"]["1.1"]["title"].replace("Roll Call", 'Roll Call') - data["sections"]["1.3"]["title"] = data["sections"]["1.3"]["title"].replace("Minutes", 'Minutes') + data["sections"]["1.1"]["title"] = data["sections"]["1.1"]["title"].replace("Roll call", 'Roll Call') + data["sections"]["1.3"]["title"] = data["sections"]["1.3"]["title"].replace("minutes", 'Minutes') return render_to_response("iesg/agenda.html", { "date": data["date"], @@ -302,7 +305,7 @@ class RescheduleForm(forms.Form): def __init__(self, *args, **kwargs): dates = kwargs.pop('telechat_dates') - + super(self.__class__, self).__init__(*args, **kwargs) # telechat choices @@ -359,6 +362,9 @@ def agenda_documents(request): telechats = [] for date in dates: sections = agenda_sections() + # FACELIFT: augment the docs with the search attributes, since we're using + # the search_result_row view to display them (which expects them) + fill_in_search_attributes(docs_by_date[date]) fill_in_agenda_docs(date, sections, docs_by_date[date]) telechats.append({ diff --git a/ietf/ietfauth/forms.py b/ietf/ietfauth/forms.py index 94cc54d1e..b5af137ea 100644 --- a/ietf/ietfauth/forms.py +++ b/ietf/ietfauth/forms.py @@ -217,7 +217,7 @@ class PersonForm(ModelForm): # Make sure the alias table contains any new and/or old names. old_names = set([x.name for x in Alias.objects.filter(person=self.instance)]) - curr_names = set([x for x in [self.instance.name, + curr_names = set([x for x in [self.instance.name, self.instance.ascii, self.instance.ascii_short, self.data['name'], diff --git a/ietf/ipr/models.py b/ietf/ipr/models.py index 09395a46c..bec7cc8c2 100644 --- a/ietf/ipr/models.py +++ b/ietf/ipr/models.py @@ -12,8 +12,8 @@ LICENSE_CHOICES = ( (3, 'c) Reasonable and Non-Discriminatory License to All Implementers with Possible Royalty/Fee.'), (4, 'd) Licensing Declaration to be Provided Later (implies a willingness' ' to commit to the provisions of a), b), or c) above to all implementers;' - ' otherwise, the next option "Unwilling to Commit to the Provisions of' - ' a), b), or c) Above". - must be selected).'), + ' otherwise, the next option - "Unwilling to Commit to the Provisions of' + ' a), b), or c) Above" - must be selected).'), (5, 'e) Unwilling to Commit to the Provisions of a), b), or c) Above.'), (6, 'f) See Text Below for Licensing Declaration.'), ) @@ -27,10 +27,10 @@ SELECT_CHOICES = ( (2, 'NO'), ) STATUS_CHOICES = ( - ( 0, "Waiting for approval" ), - ( 1, "Approved and Posted" ), - ( 2, "Rejected by Administrator" ), - ( 3, "Removed by Request" ), + ( 0, "Waiting for approval" ), + ( 1, "Approved and Posted" ), + ( 2, "Rejected by Administrator" ), + ( 3, "Removed by Request" ), ) class IprDetail(models.Model): @@ -45,35 +45,35 @@ class IprDetail(models.Model): legacy_title_2 = models.CharField(blank=True, null=True, db_column="additional_old_title2", max_length=255) # Patent holder fieldset - legal_name = models.CharField("Legal Name", db_column="p_h_legal_name", max_length=255) + legal_name = models.CharField("Legal name", db_column="p_h_legal_name", max_length=255) # Patent Holder Contact fieldset # self.contact.filter(contact_type=1) # IETF Contact fieldset # self.contact.filter(contact_type=3) - + # Related IETF Documents fieldset rfc_number = models.IntegerField(null=True, editable=False, blank=True) # always NULL id_document_tag = models.IntegerField(null=True, editable=False, blank=True) # always NULL - other_designations = models.CharField(blank=True, max_length=255) + other_designations = models.CharField("Designations for other contributions", blank=True, max_length=255) document_sections = models.TextField("Specific document sections covered", blank=True, max_length=255, db_column='disclouser_identify') # Patent Information fieldset - patents = models.TextField("Patent Applications", db_column="p_applications", max_length=255) - date_applied = models.CharField(max_length=255) + patents = models.TextField("Patent, serial, publication, registration, or application/file number(s)", db_column="p_applications", max_length=255) + date_applied = models.CharField("Date(s) granted or applied for", max_length=255) country = models.CharField(max_length=255) notes = models.TextField("Additional notes", db_column="p_notes", blank=True) - is_pending = models.IntegerField("Unpublished Pending Patent Application", blank=True, null=True, choices=SELECT_CHOICES, db_column="selecttype") - applies_to_all = models.IntegerField("Applies to all IPR owned by Submitter", blank=True, null=True, choices=SELECT_CHOICES, db_column="selectowned") + is_pending = models.IntegerField("Unpublished pending patent application", blank=True, null=True, choices=SELECT_CHOICES, db_column="selecttype") + applies_to_all = models.IntegerField("Applies to all IPR owned by submitter", blank=True, null=True, choices=SELECT_CHOICES, db_column="selectowned") # Licensing Declaration fieldset licensing_option = models.IntegerField(null=True, blank=True, choices=LICENSE_CHOICES) lic_opt_a_sub = models.IntegerField(null=True, editable=False, choices=STDONLY_CHOICES) lic_opt_b_sub = models.IntegerField(null=True, editable=False, choices=STDONLY_CHOICES) lic_opt_c_sub = models.IntegerField(null=True, editable=False, choices=STDONLY_CHOICES) - comments = models.TextField("Licensing Comments", blank=True) - lic_checkbox = models.BooleanField("All terms and conditions has been disclosed", default=False) + comments = models.TextField("Licensing comments", blank=True) + lic_checkbox = models.BooleanField("The individual submitting this template represents and warrants that all terms and conditions that must be satisfied for implementers of any covered IETF specification to obtain a license have been disclosed in this IPR disclosure statement.", default=False) # Other notes fieldset @@ -119,8 +119,8 @@ class IprContact(models.Model): name = models.CharField(max_length=255) title = models.CharField(blank=True, max_length=255) department = models.CharField(blank=True, max_length=255) - address1 = models.CharField(blank=True, max_length=255) - address2 = models.CharField(blank=True, max_length=255) + address1 = models.CharField("Address", blank=True, max_length=255) + address2 = models.CharField("Address (continued)", blank=True, max_length=255) telephone = models.CharField(blank=True, max_length=25) fax = models.CharField(blank=True, max_length=25) email = models.EmailField(max_length=255) diff --git a/ietf/ipr/new.py b/ietf/ipr/new.py index 4d77975b9..9ddbc4d75 100644 --- a/ietf/ipr/new.py +++ b/ietf/ipr/new.py @@ -16,19 +16,19 @@ from ietf.ipr.view_sections import section_table # ---------------------------------------------------------------- # Create base forms from models -# ---------------------------------------------------------------- +# ---------------------------------------------------------------- phone_re = re.compile(r'^\+?[0-9 ]*(\([0-9]+\))?[0-9 -]+( ?x ?[0-9]+)?$') phone_error_message = """Phone numbers may have a leading "+", and otherwise only contain numbers [0-9]; dash, period or space; parentheses, and an optional extension number indicated by 'x'.""" class BaseIprForm(forms.ModelForm): licensing_option = forms.IntegerField(widget=forms.RadioSelect(choices=LICENSE_CHOICES), required=False) - is_pending = forms.IntegerField(widget=forms.RadioSelect(choices=((1, "YES"), (2, "NO"))), required=False) - applies_to_all = forms.IntegerField(widget=forms.RadioSelect(choices=((1, "YES"), (2, "NO"))), required=False) + is_pending = forms.IntegerField(widget=forms.RadioSelect(choices=((1, "Yes"), (2, "No"))), required=False) + applies_to_all = forms.IntegerField(widget=forms.RadioSelect(choices=((1, "Yes"), (2, "No"))), required=False) class Meta: model = IprDetail exclude = ('rfc_document', 'id_document_tag') # 'legacy_url_0','legacy_url_1','legacy_title_1','legacy_url_2','legacy_title_2') - + class BaseContactForm(forms.ModelForm): telephone = forms.RegexField(phone_re, error_message=phone_error_message, required=False) fax = forms.RegexField(phone_re, error_message=phone_error_message, required=False) @@ -68,9 +68,9 @@ def new(request, type, update=None, submitter=None): class IprForm(BaseIprForm): holder_contact = None - rfclist = forms.CharField(required=False) - draftlist = forms.CharField(required=False) - stdonly_license = forms.BooleanField(required=False) + rfclist = forms.CharField(label="RFC numbers", required=False) + draftlist = forms.CharField(label="Internet-Draft filenames (draft-...)", required=False) + stdonly_license = forms.BooleanField(label="Above licensing declaration is limited solely to standards-track IETF documents", required=False) hold_contact_is_submitter = forms.BooleanField(required=False) ietf_contact_is_submitter = forms.BooleanField(required=False) if section_list.get("holder_contact", False): @@ -98,16 +98,16 @@ def new(request, type, update=None, submitter=None): rfclist_initial = "" if update: rfclist_initial = " ".join(a.doc_alias.name.upper() for a in IprDocAlias.objects.filter(doc_alias__name__startswith="rfc", ipr=update)) - self.base_fields["rfclist"] = forms.CharField(required=False, initial=rfclist_initial) + self.base_fields["rfclist"] = forms.CharField(label="RFC numbers", required=False, initial=rfclist_initial) draftlist_initial = "" if update: draftlist_initial = " ".join(a.doc_alias.name + ("-%s" % a.rev if a.rev else "") for a in IprDocAlias.objects.filter(ipr=update).exclude(doc_alias__name__startswith="rfc")) - self.base_fields["draftlist"] = forms.CharField(required=False, initial=draftlist_initial) + self.base_fields["draftlist"] = forms.CharField(label="Internet-Draft filenames (draft-...)", required=False, initial=draftlist_initial) if section_list.get("holder_contact", False): self.base_fields["hold_contact_is_submitter"] = forms.BooleanField(required=False) if section_list.get("ietf_contact", False): self.base_fields["ietf_contact_is_submitter"] = forms.BooleanField(required=False) - self.base_fields["stdonly_license"] = forms.BooleanField(required=False) + self.base_fields["stdonly_license"] = forms.BooleanField(label="Above licensing declaration is limited solely to standards-track IETF documents", required=False) BaseIprForm.__init__(self, *args, **kw) # Special validation code @@ -184,7 +184,7 @@ def new(request, type, update=None, submitter=None): data["generic"] = section_list["generic"] data["status"] = "0" data["comply"] = "1" - + for src in ["hold", "ietf"]: if "%s_contact_is_submitter" % src in data: for subfield in ["name", "title", "department", "address1", "address2", "telephone", "fax", "email"]: @@ -202,7 +202,7 @@ def new(request, type, update=None, submitter=None): legal_name_genitive = data['legal_name'] + "'" if data['legal_name'].endswith('s') else data['legal_name'] + "'s" if type == "generic": - instance.title = legal_name_genitive + " General License Statement" + instance.title = legal_name_genitive + " General License Statement" elif type == "specific": data["ipr_summary"] = get_ipr_summary(form.cleaned_data) instance.title = legal_name_genitive + """ Statement about IPR related to %(ipr_summary)s""" % data @@ -295,7 +295,7 @@ def update(request, ipr_id=None): """Update a specific IPR disclosure""" ipr = get_object_or_404(IprDetail, ipr_id=ipr_id) if not ipr.status in [1,3]: - raise Http404 + raise Http404 type = "specific" if ipr.generic: type = "generic" @@ -311,8 +311,8 @@ def update(request, ipr_id=None): class UpdateForm(BaseContactForm): def __init__(self, *args, **kwargs): super(UpdateForm, self).__init__(*args, **kwargs) - self.fields["update_auth"] = forms.BooleanField() - + self.fields["update_auth"] = forms.BooleanField(label="I am authorized to update this IPR disclosure, and I understand that notification of this update will be provided to the submitter of the original IPR disclosure and to the Patent Holder's Contact.") + if request.method == 'POST': form = UpdateForm(request.POST) else: diff --git a/ietf/meeting/urls.py b/ietf/meeting/urls.py index a4443f1fe..3ab323d17 100644 --- a/ietf/meeting/urls.py +++ b/ietf/meeting/urls.py @@ -9,8 +9,7 @@ from ietf.meeting import ajax urlpatterns = patterns('', (r'^(?P\d+)/materials.html$', views.materials), (r'^agenda/$', views.agenda), - (r'^(?Pagenda-utc)(?P.html)?$', views.agenda), - (r'^agenda(?P.html)?$', views.agenda), + (r'^agenda(-utc)?(?P.html)?$', views.agenda), (r'^agenda(?P.txt)$', views.agenda), (r'^agenda(?P.csv)$', views.agenda), (r'^agenda/edit$', views.edit_agenda), @@ -28,8 +27,7 @@ urlpatterns = patterns('', (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/sessions.json$', ajax.scheduledsessions_json), (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+).json$', ajax.agenda_infourl), (r'^(?P\d+)/agenda/edit$', views.edit_agenda), - (r'^(?P\d+)/agenda(?P.html)?/?$', views.agenda), - (r'^(?P\d+)/(?Pagenda-utc)(?P.html)?/?$', views.agenda), + (r'^(?P\d+)/agenda(-utc)?(?P.html)?/?$', views.agenda), (r'^(?P\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)), (r'^(?P\d+)/requests$', views.meeting_requests), (r'^(?P\d+)/agenda(?P.txt)$', views.agenda), diff --git a/ietf/nomcom/forms.py b/ietf/nomcom/forms.py index 1d7f42c61..d4694044a 100644 --- a/ietf/nomcom/forms.py +++ b/ietf/nomcom/forms.py @@ -11,7 +11,7 @@ from ietf.dbtemplate.forms import DBTemplateForm from ietf.group.models import Group, Role from ietf.ietfauth.utils import role_required from ietf.name.models import RoleName, FeedbackType, NomineePositionState -from ietf.nomcom.models import ( NomCom, Nomination, Nominee, NomineePosition, +from ietf.nomcom.models import ( NomCom, Nomination, Nominee, NomineePosition, Position, Feedback, ReminderDates ) from ietf.nomcom.utils import (NOMINATION_RECEIPT_TEMPLATE, FEEDBACK_RECEIPT_TEMPLATE, get_user_email, validate_private_key, validate_public_key, @@ -381,7 +381,7 @@ class MergeForm(BaseNomcomForm, forms.Form): class NominateForm(BaseNomcomForm, forms.ModelForm): - comments = forms.CharField(label="Candidate's Qualifications for the Position:", + comments = forms.CharField(label="Candidate's qualifications for the position", widget=forms.Textarea()) confirmation = forms.BooleanField(label='Email comments back to me as confirmation', help_text="If you want to get a confirmation mail containing your feedback in cleartext, \ @@ -403,6 +403,7 @@ class NominateForm(BaseNomcomForm, forms.ModelForm): 'candidate_email', 'candidate_phone', 'comments'] + self.fields['nominator_email'].label = 'Nominator email' if self.nomcom: self.fields['position'].queryset = Position.objects.get_by_nomcom(self.nomcom).opened() self.fields['comments'].help_text = self.nomcom.initial_text @@ -464,7 +465,7 @@ class NominateForm(BaseNomcomForm, forms.ModelForm): # send receipt email to nominator if confirmation: if author: - subject = 'Nomination Receipt' + subject = 'Nomination receipt' from_email = settings.NOMCOM_FROM_EMAIL to_email = author.address context = {'nominee': nominee.email.person.name, @@ -482,15 +483,15 @@ class NominateForm(BaseNomcomForm, forms.ModelForm): class FeedbackForm(BaseNomcomForm, forms.ModelForm): - position_name = forms.CharField(label='position', + position_name = forms.CharField(label='Position', widget=forms.TextInput(attrs={'size': '40'})) - nominee_name = forms.CharField(label='nominee name', + nominee_name = forms.CharField(label='Nominee name', widget=forms.TextInput(attrs={'size': '40'})) - nominee_email = forms.CharField(label='nominee email', + nominee_email = forms.CharField(label='Nominee email', widget=forms.TextInput(attrs={'size': '40'})) - nominator_email = forms.CharField(label='commenter email') + nominator_email = forms.CharField(label='Commenter email') - comments = forms.CharField(label='Comments on this candidate', + comments = forms.CharField(label='Comments on this nominee', widget=forms.Textarea()) confirmation = forms.BooleanField(label='Email comments back to me as confirmation', help_text="If you want to get a confirmation mail containing your feedback in cleartext, \ diff --git a/ietf/nomcom/models.py b/ietf/nomcom/models.py index 734397337..9165af6c9 100644 --- a/ietf/nomcom/models.py +++ b/ietf/nomcom/models.py @@ -38,7 +38,7 @@ class NomCom(models.Model): upload_to=upload_path_handler, blank=True, null=True) group = models.ForeignKey(Group) - send_questionnaire = models.BooleanField(verbose_name='Send questionnaires automatically"', default=False, + send_questionnaire = models.BooleanField(verbose_name='Send questionnaires automatically', default=False, help_text='If you check this box, questionnaires are sent automatically after nominations') reminder_interval = models.PositiveIntegerField(help_text='If the nomcom user sets the interval field then a cron command will \ send reminders to the nominees who have not responded using \ diff --git a/ietf/nomcom/templatetags/nomcom_tags.py b/ietf/nomcom/templatetags/nomcom_tags.py index 43f421a6a..85a023123 100644 --- a/ietf/nomcom/templatetags/nomcom_tags.py +++ b/ietf/nomcom/templatetags/nomcom_tags.py @@ -41,12 +41,8 @@ def add_num_nominations(user, position, nominee): nominees__in=[nominee], author=author, type='comment').count() - if count: - mark = """*""" - else: - mark = """ """ - return '%s ' % (count, nominee.email.address, position, mark) + return '%s ' % (count, nominee.email.address, position, count) @register.filter @@ -76,7 +72,7 @@ def decrypt(string, request, year, plain=False): code, out, error = pipe(command % (settings.OPENSSL_COMMAND, encrypted_file.name), key) if code != 0: - log("openssl error: %s:\n Error %s: %s" %(command, code, error)) + log("openssl error: %s:\n Error %s: %s" %(command, code, error)) os.unlink(encrypted_file.name) diff --git a/ietf/nomcom/views.py b/ietf/nomcom/views.py index 01634d2eb..b1750deef 100644 --- a/ietf/nomcom/views.py +++ b/ietf/nomcom/views.py @@ -56,7 +56,7 @@ def index(request): nomcom.ann_url = None return render_to_response('nomcom/index.html', {'nomcom_list': nomcom_list,}, RequestContext(request)) - + def year_index(request, year): nomcom = get_nomcom_by_year(year) @@ -70,21 +70,21 @@ def year_index(request, year): def announcements(request): address_re = re.compile("<.*>") - + nomcoms = Group.objects.filter(type="nomcom") regimes = [] - + for n in nomcoms: e = GroupEvent.objects.filter(group=n, type="changed_state", changestategroupevent__state="active").order_by('time')[:1] n.start_year = e[0].time.year if e else 0 e = GroupEvent.objects.filter(group=n, type="changed_state", changestategroupevent__state="conclude").order_by('time')[:1] n.end_year = e[0].time.year if e else n.start_year + 1 - r = n.role_set.select_related().filter(name="chair") - chair = None - if r: - chair = r[0] + r = n.role_set.select_related().filter(name="chair") + chair = None + if r: + chair = r[0] announcements = Message.objects.filter(related_groups=n).order_by('-time') for a in announcements: diff --git a/ietf/person/forms.py b/ietf/person/forms.py index f4a1c9d3e..6c34da439 100644 --- a/ietf/person/forms.py +++ b/ietf/person/forms.py @@ -23,7 +23,7 @@ class EmailsField(forms.CharField): def __init__(self, *args, **kwargs): kwargs["max_length"] = 1000 if not "help_text" in kwargs: - kwargs["help_text"] = "Type in name to search for person" + kwargs["help_text"] = "Type in name to search for person." super(EmailsField, self).__init__(*args, **kwargs) self.widget.attrs["class"] = "tokenized-field" self.widget.attrs["data-ajax-url"] = lazy(urlreverse, str)("ajax_search_emails") # make this lazy to prevent initialization problem diff --git a/ietf/settings.py b/ietf/settings.py index d4d5da7b9..62cecad33 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -14,7 +14,7 @@ except ImportError: BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # a place to put ajax logs if necessary. -LOG_DIR = '/var/log/datatracker' +LOG_DIR = '/var/log/datatracker' import sys sys.path.append(os.path.abspath(BASE_DIR + "/..")) @@ -63,9 +63,9 @@ DATABASES = { } DATABASE_TEST_OPTIONS = { - # Comment this out if your database doesn't support InnoDB - 'init_command': 'SET storage_engine=InnoDB', - } + # Comment this out if your database doesn't support InnoDB + 'init_command': 'SET storage_engine=InnoDB', +} # Local time zone for this installation. Choices can be found here: # http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE @@ -87,10 +87,11 @@ USE_I18N = False USE_TZ = False -MEDIA_URL = 'http://www.ietf.org/' +MEDIA_URL = '//www.ietf.org/' STATIC_URL = "/" STATIC_ROOT = os.path.abspath(BASE_DIR + "/../static/") +STATIC_URL = STATIC_ROOT + '/' WSGI_APPLICATION = "ietf.wsgi.application" @@ -233,8 +234,35 @@ INSTALLED_APPS = ( 'ietf.secr.sreq', 'ietf.nomcom', 'ietf.dbtemplate', + # FACELIFT: apps for facelift UI + 'widget_tweaks', + 'typogrify', + 'bootstrap3', + 'mathfilters', ) +# Settings for django-bootstrap3 +# See http://django-bootstrap3.readthedocs.org/en/latest/settings.html +BOOTSTRAP3 = { + # Label class to use in horizontal forms + 'horizontal_label_class': 'col-md-2', + + # Field class to use in horiozntal forms + 'horizontal_field_class': 'col-md-10', + + # Set HTML required attribute on required fields + 'set_required': True, + + # Set placeholder attributes to label if no placeholder is provided + 'set_placeholder': False, + + # Class to indicate required + 'form_required_class': 'bootstrap3-required', + + # Class to indicate error + 'form_error_class': 'bootstrap3-error', +} + INTERNAL_IPS = ( # AMS servers '64.170.98.32', @@ -246,7 +274,7 @@ INTERNAL_IPS = ( ) # no slash at end -IDTRACKER_BASE_URL = "http://datatracker.ietf.org" +IDTRACKER_BASE_URL = "//datatracker.ietf.org" RFCDIFF_PREFIX = "//www.ietf.org/rfcdiff" # Valid values: @@ -286,22 +314,22 @@ IESG_WG_EVALUATION_DIR = "/a/www/www6/iesg/evaluation" INTERNET_DRAFT_ARCHIVE_DIR = '/a/www/www6s/draft-archive' # Mailing list info URL for lists hosted on the IETF servers -MAILING_LIST_INFO_URL = "https://www.ietf.org/mailman/listinfo/%(list_addr)s" +MAILING_LIST_INFO_URL = "//www.ietf.org/mailman/listinfo/%(list_addr)s" # Ideally, more of these would be local -- but since we don't support # versions right now, we'll point to external websites DOC_HREFS = { - "charter": "http://www.ietf.org/charter/{doc.name}-{doc.rev}.txt", - "draft": "http://www.ietf.org/archive/id/{doc.name}-{doc.rev}.txt", - "slides": "http://www.ietf.org/slides/{doc.name}-{doc.rev}", - "conflrev": "http://www.ietf.org/cr/{doc.name}-{doc.rev}.txt", - "statchg": "http://www.ietf.org/sc/{doc.name}-{doc.rev}.txt", + "charter": "//www.ietf.org/charter/{doc.name}-{doc.rev}.txt", + "draft": "//www.ietf.org/archive/id/{doc.name}-{doc.rev}.txt", + "slides": "//www.ietf.org/slides/{doc.name}-{doc.rev}", + "conflrev": "//www.ietf.org/cr/{doc.name}-{doc.rev}.txt", + "statchg": "//www.ietf.org/sc/{doc.name}-{doc.rev}.txt", } MEETING_DOC_HREFS = { "agenda": "/meeting/{meeting}/agenda/{doc.group.acronym}/", - "minutes": "http://www.ietf.org/proceedings/{meeting}/minutes/{doc.external_url}", - "slides": "http://www.ietf.org/proceedings/{meeting}/slides/{doc.external_url}", + "minutes": "//www.ietf.org/proceedings/{meeting}/minutes/{doc.external_url}", + "slides": "//www.ietf.org/proceedings/{meeting}/slides/{doc.external_url}", } # Override this in settings_local.py if needed @@ -325,15 +353,15 @@ IANA_APPROVE_EMAIL = "drafts-approval@icann.org" # Put real password in settings_local.py IANA_SYNC_PASSWORD = "secret" -IANA_SYNC_CHANGES_URL = "https://datatracker.iana.org:4443/data-tracker/changes" -IANA_SYNC_PROTOCOLS_URL = "http://www.iana.org/protocols/" +IANA_SYNC_CHANGES_URL = "//datatracker.iana.org:4443/data-tracker/changes" +IANA_SYNC_PROTOCOLS_URL = "//www.iana.org/protocols/" RFC_TEXT_RSYNC_SOURCE="ftp.rfc-editor.org::rfcs-text-only" RFC_EDITOR_SYNC_PASSWORD="secret" -RFC_EDITOR_SYNC_NOTIFICATION_URL = "http://www.rfc-editor.org/parser/parser.php" -RFC_EDITOR_QUEUE_URL = "http://www.rfc-editor.org/queue2.xml" -RFC_EDITOR_INDEX_URL = "http://www.rfc-editor.org/rfc/rfc-index.xml" +RFC_EDITOR_SYNC_NOTIFICATION_URL = "//www.rfc-editor.org/parser/parser.php" +RFC_EDITOR_QUEUE_URL = "//www.rfc-editor.org/queue2.xml" +RFC_EDITOR_INDEX_URL = "//www.rfc-editor.org/rfc/rfc-index.xml" # Liaison Statement Tool settings LIAISON_UNIVERSAL_FROM = 'Liaison Statement Management Tool ' @@ -369,7 +397,7 @@ INTERNET_DRAFT_DAYS_TO_EXPIRE = 185 IDSUBMIT_REPOSITORY_PATH = INTERNET_DRAFT_PATH IDSUBMIT_STAGING_PATH = '/a/www/www6s/staging/' -IDSUBMIT_STAGING_URL = 'http://www.ietf.org/staging/' +IDSUBMIT_STAGING_URL = '//www.ietf.org/staging/' IDSUBMIT_IDNITS_BINARY = '/a/www/ietf-datatracker/scripts/idnits' IDSUBMIT_MAX_PLAIN_DRAFT_SIZE = 6291456 # Max size of the txt draft in bytes @@ -412,7 +440,7 @@ SECR_AUTH_UNRESTRICTED_URLS = ( (r'^/secr/sreq/'), ) SECR_BLUE_SHEET_PATH = '/a/www/ietf-datatracker/documents/blue_sheet.rtf' -SECR_BLUE_SHEET_URL = 'https://datatracker.ietf.org/documents/blue_sheet.rtf' +SECR_BLUE_SHEET_URL = '//datatracker.ietf.org/documents/blue_sheet.rtf' SECR_INTERIM_LISTING_DIR = '/a/www/www6/meeting/interim' SECR_MAX_UPLOAD_SIZE = 40960000 SECR_PROCEEDINGS_DIR = '/a/www/www6s/proceedings/' @@ -449,19 +477,16 @@ BADNESS_MUCHTOOBIG = 500 SELENIUM_TESTS = False SELENIUM_TESTS_ONLY = False -# Path to the email alias lists. Used by ietf.utils.aliases -DRAFT_ALIASES_PATH = "/a/postfix/draft-aliases" -DRAFT_VIRTUAL_PATH = "/a/postfix/draft-virtual" - -GROUP_ALIASES_PATH = "/a/postfix/group-aliases" -GROUP_VIRTUAL_PATH = "/a/postfix/group-virtual" - -POSTCONFIRM_PATH = "/a/postconfirm/test-wrapper" +# Set debug apps in DEV_APPS settings_local +DEV_APPS = () # Put the production SECRET_KEY in settings_local.py, and also any other # sensitive or site-specific changes. DO NOT commit settings_local.py to svn. from settings_local import * # pyflakes:ignore +# Add DEV_APPS to INSTALLED_APPS +INSTALLED_APPS += DEV_APPS + # We provide a secret key only for test and development modes. It's # absolutely vital that django fails to start in production mode unless a # secret key has been provided elsewhere, not in this file which is diff --git a/ietf/submit/forms.py b/ietf/submit/forms.py index 975f5797c..02b816123 100644 --- a/ietf/submit/forms.py +++ b/ietf/submit/forms.py @@ -47,20 +47,20 @@ class UploadForm(forms.Form): ietf_monday = Meeting.get_ietf_monday() if now.date() >= (first_cut_off-timedelta(days=settings.CUTOFF_WARNING_DAYS)) and now.date() < first_cut_off: - self.cutoff_warning = ( 'The pre-meeting cut-off date for new documents (i.e., version -00 Internet-Drafts) is %s at %02sh UTC.
' % (first_cut_off, settings.CUTOFF_HOUR) + - 'The pre-meeting cut-off date for revisions to existing documents is %s at %02sh UTC.
' % (second_cut_off, settings.CUTOFF_HOUR) ) + self.cutoff_warning = ( 'The pre-meeting cut-off date for new documents (i.e., version -00 Internet-Drafts) is %s at %02sh UTC.' % (first_cut_off, settings.CUTOFF_HOUR) + + 'The pre-meeting cut-off date for revisions to existing documents is %s at %02sh UTC.' % (second_cut_off, settings.CUTOFF_HOUR) ) elif now.date() >= first_cut_off and now.date() < second_cut_off: # We are in the first_cut_off if now.date() == first_cut_off and now.hour < settings.CUTOFF_HOUR: self.cutoff_warning = 'The pre-meeting cut-off date for new documents (i.e., version -00 Internet-Drafts) is %s, at %02sh UTC. After that, you will not be able to submit a new document until %s, at %sh UTC' % (first_cut_off, settings.CUTOFF_HOUR, ietf_monday, settings.CUTOFF_HOUR, ) else: # No 00 version allowed - self.cutoff_warning = 'The pre-meeting cut-off date for new documents (i.e., version -00 Internet-Drafts) was %s at %sh UTC. You will not be able to submit a new document until %s, at %sh UTC.
You can still submit a version -01 or higher Internet-Draft until %sh UTC, %s' % (first_cut_off, settings.CUTOFF_HOUR, ietf_monday, settings.CUTOFF_HOUR, settings.CUTOFF_HOUR, second_cut_off, ) + self.cutoff_warning = 'The pre-meeting cut-off date for new documents (i.e., version -00 Internet-Drafts) was %s at %sh UTC. You will not be able to submit a new document until %s, at %sh UTC. You can still submit a version -01 or higher Internet-Draft until %sh UTC, %s' % (first_cut_off, settings.CUTOFF_HOUR, ietf_monday, settings.CUTOFF_HOUR, settings.CUTOFF_HOUR, second_cut_off, ) self.in_first_cut_off = True elif now.date() >= second_cut_off and now.date() < ietf_monday: if now.date() == second_cut_off and now.hour < settings.CUTOFF_HOUR: # We are in the first_cut_off yet - self.cutoff_warning = 'The pre-meeting cut-off date for new documents (i.e., version -00 Internet-Drafts) was %s at %02sh UTC. You will not be able to submit a new document until %s, at %02sh UTC.
The I-D submission tool will be shut down at %02sh UTC today, and reopened at %02sh UTC on %s' % (first_cut_off, settings.CUTOFF_HOUR, ietf_monday, settings.CUTOFF_HOUR, settings.CUTOFF_HOUR, settings.CUTOFF_HOUR, ietf_monday) + self.cutoff_warning = 'The pre-meeting cut-off date for new documents (i.e., version -00 Internet-Drafts) was %s at %02sh UTC. You will not be able to submit a new document until %s, at %02sh UTC. The I-D submission tool will be shut down at %02sh UTC today, and reopened at %02sh UTC on %s' % (first_cut_off, settings.CUTOFF_HOUR, ietf_monday, settings.CUTOFF_HOUR, settings.CUTOFF_HOUR, settings.CUTOFF_HOUR, ietf_monday) self.in_first_cut_off = True else: # Completely shut down of the tool - self.cutoff_warning = 'The cut-off time for the I-D submission was %02dh UTC, %s.
The I-D submission tool will be reopened at %02dh local time at the IETF meeting location, %s.' % (settings.CUTOFF_HOUR, second_cut_off, settings.CUTOFF_HOUR, ietf_monday) + self.cutoff_warning = 'The cut-off time for the I-D submission was %02dh UTC, %s. The I-D submission tool will be reopened at %02dh local time at the IETF meeting location, %s.' % (settings.CUTOFF_HOUR, second_cut_off, settings.CUTOFF_HOUR, ietf_monday) self.shutdown = True def clean_file(self, field_name, parser_class): @@ -116,7 +116,7 @@ class UploadForm(forms.Form): # check existing existing = Submission.objects.filter(name=self.parsed_draft.filename, rev=self.parsed_draft.revision).exclude(state__in=("posted", "cancel")) if existing: - raise forms.ValidationError(mark_safe('Submission with same name and revision is currently being processed. Check the status here' % urlreverse("submit_submission_status", kwargs={ 'submission_id': existing[0].pk }))) + raise forms.ValidationError(mark_safe('Submission with same name and revision is currently being processed. Check the status here.' % urlreverse("submit_submission_status", kwargs={ 'submission_id': existing[0].pk }))) # cut-off if self.parsed_draft.revision == '00' and self.in_first_cut_off: @@ -227,7 +227,7 @@ class EditSubmissionForm(forms.ModelForm): pages = forms.IntegerField(required=True) abstract = forms.CharField(widget=forms.Textarea, required=True) - note = forms.CharField(label=mark_safe(u'Comment to
the Secretariat'), widget=forms.Textarea, required=False) + note = forms.CharField(label=mark_safe(u'Comment to the Secretariat'), widget=forms.Textarea, required=False) class Meta: model = Submission diff --git a/ietf/submit/templatetags/submit_tags.py b/ietf/submit/templatetags/submit_tags.py index 5692db021..9fcb913d8 100644 --- a/ietf/submit/templatetags/submit_tags.py +++ b/ietf/submit/templatetags/submit_tags.py @@ -17,7 +17,7 @@ def show_submission_files(context, submission): exists = True elif submission.state_id == "posted": continue - result.append({'name': '[%s version]' % ext[1:].upper(), + result.append({'name': '%s' % ext[1:], 'exists': exists, 'url': '%s%s-%s%s' % (settings.IDSUBMIT_STAGING_URL, submission.name, submission.rev, ext)}) return {'files': result} @@ -27,15 +27,16 @@ def show_submission_files(context, submission): def two_pages_decorated_with_errors(submission, errors): pages = submission.first_two_pages or '' if 'rev' not in errors.keys(): - return mark_safe('
%s
' % escape(pages)) - result = '
\n'
+        return mark_safe('
%s
' % escape(pages)) + result = '
\n'
     for line in pages.split('\n'):
         if line.find('%s-%s' % (submission.name, submission.rev)) > -1:
-            result += '
'
+            result += '
' result += escape(line) result += '\n' - result += '
\n'
+            result += '\n'
         else:
             result += escape(line)
             result += '\n'
+    result += '
pre>\n' return mark_safe(result) diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index 79020b7f8..d01847241 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -39,7 +39,7 @@ def validate_submission(submission): for ext in submission.file_types.split(','): source = os.path.join(settings.IDSUBMIT_STAGING_PATH, '%s-%s%s' % (submission.name, submission.rev, ext)) if not os.path.exists(source): - errors['files'] = '"%s" was not found in the staging area.
We recommend you that you cancel this submission and upload your files again.' % os.path.basename(source) + errors['files'] = '"%s" was not found in the staging area. We recommend you that you cancel this submission and upload your files again.' % os.path.basename(source) break if not submission.title: diff --git a/ietf/templates/base/menu.html b/ietf/templates/base/menu.html new file mode 100644 index 000000000..762c842c5 --- /dev/null +++ b/ietf/templates/base/menu.html @@ -0,0 +1,153 @@ +{% load wg_menu %} +{% load streams_menu %} +{% load ietf_filters community_tags %} + +
  • + {% if flavor == "top" %}{% endif %} + {##} + {% if user.is_authenticated %} {{ user }} {% else %} User {% endif %} + {% if flavor == "top" %} + + {% endif %} + +
  • + {% if flavor == "top" %}{% endif %} + {##} + Groups + {% if flavor == "top" %} + + {% endif %} + +
  • + {% if flavor == "top" %}{% endif %} + {##} + Documents + {% if flavor == "top" %} + + {% endif %} + +
  • + {% if flavor == "top" %}{% endif %} + {##} + Meetings + {% if flavor == "top" %} + + {% endif %} + +
  • + {% if flavor == "top" %}{% endif %} + {##} + Other + {% if flavor == "top" %} + + {% endif %} diff --git a/ietf/templates/base/menu_wg.html b/ietf/templates/base/menu_wg.html new file mode 100644 index 000000000..e9e72cd6e --- /dev/null +++ b/ietf/templates/base/menu_wg.html @@ -0,0 +1,19 @@ +{% for area in areas %} +
  • +{% endfor %} + + diff --git a/ietf/templates/base/menu_wg_modal.html b/ietf/templates/base/menu_wg_modal.html new file mode 100644 index 000000000..377bbe1f8 --- /dev/null +++ b/ietf/templates/base/menu_wg_modal.html @@ -0,0 +1,51 @@ +{# widthratio rounds up, is useless #} +{% load mathfilters %} + +{% with cols=areas|length|add:1 %} +{% with colw=100|div:cols %} +
    + + + + {% for area in areas %} + + {% endfor %} + + + + + + {% for area in areas %} + + {% endfor %} + + + +
    + {{area.acronym|upper}} + + IRTF +
    +
    + {% for group in area.active_groups %} + + {% endfor %} +
    +
    +
    + {% for group in rgs %} + + {% endfor %} +
    +
    +
    +{% endwith %} +{% endwith %} diff --git a/ietf/templates/community/customize_display.html b/ietf/templates/community/customize_display.html index 8976eeca8..fb77c4475 100644 --- a/ietf/templates/community/customize_display.html +++ b/ietf/templates/community/customize_display.html @@ -1,18 +1,24 @@ -

    Display customization

    +{% load bootstrap3 %} -
    {% csrf_token %} -

    Sort method

    - {{ display_form.sort_method }} +{% bootstrap_messages %} -

    Show fields

    -
    - {% for field in dc.get_display_fields_config %} -
    - - -
    - {% endfor %} -
    -

    - + + {% csrf_token %} + {% bootstrap_form display_form %} + +
    + + {% for field in dc.get_display_fields_config %} +
    + +
    + {% endfor %} +
    + + {% buttons %} + + {% endbuttons %}
    diff --git a/ietf/templates/community/manage_clist.html b/ietf/templates/community/manage_clist.html index cbaf0a5a4..47bee283f 100644 --- a/ietf/templates/community/manage_clist.html +++ b/ietf/templates/community/manage_clist.html @@ -1,124 +1,130 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}{{ cl.long_name }}{% endblock %} {% block content %}

    {{ cl.long_name }}

    -
    -
      -
    • Documents
    • -
    • Explicitly added
    • -
    • Rules
    • -
    • Display customization
    • -
    • Exports
    • + +{% bootstrap_messages %} + + -
      +

      -
      -{% include "community/view_list.html" %} +
      +
      + {% include "community/view_list.html" %} +
      + +
      +

      + In order to add some individual documents to your list, you have to: +

      +
        +
      • Search for the document or documents you want to add using the datatracker search form.
      • +
      • In the search results, you'll find a link to add individual documents to your list.
      • +
      + Search documents + + + + + + + + + {% for doc in cl.added_ids.all %} + + + + + + + {% endfor %} + +
      NameStateTitle
      {{ doc.display_name }}{{ doc.get_state }}{{ doc.title }}Remove
      +
      + +
      + + + + + + {% for rule in cl.rule_set.all %} + {% with rule.get_callable_rule as callable %} + + + + + + + {% endwith %} + {% endfor %} + +
      RuleValueDocuments
      {{ callable.description }}{{ callable.show_value }}{% with rule.cached_ids.count as count %}{{ count }} document{{ count|pluralize }}{% endwith %}Remove
      + +

      Add a new rule

      + +
      + {% csrf_token %} + {% bootstrap_form rule_form %} + + {% buttons %} + + {% endbuttons %} +
      +
      + +
      + {% include "community/customize_display.html" %} +
      + +
      -
      -

      Documents explicitly included, from a document search.

      -

      -In order to add some individual documents to your list you have to: -

      -
        -
      • Search for the document or documents you want to add using the datatracker search form.
      • -
      • In the search result you'll find a link to add individual documents to your list.
      • -
      -

      - Go to the Search Form to search for and add specific documents -

      - - - -{% for doc in cl.added_ids.all %} - - - - - - -{% endfor %} -
      NameStateTitleRemove from list
      {{ doc.display_name }}{{ doc.get_state }}{{ doc.title }}Remove
      -
      - -
      -

      Rules added to this list

      - - -{% for rule in cl.rule_set.all %} -{% with rule.get_callable_rule as callable %} - - - - - - -{% endwith %} -{% endfor %} -
      RuleValueDocumentsRemove from list
      {{ callable.description }}{{ callable.show_value }}{% with rule.cached_ids.count as count %}{{ count }} document{{ count|pluralize }}{% endwith %}Remove
      - -

      Add a new rule

      -
      {% csrf_token %} -{{ rule_form.as_p }} - -
      - -
      - -
      -{% include "community/customize_display.html" %} -
      - - - -
      -
      {% endblock %} -{% block js %} - -{% endblock js %} +{% comment %} +XXX scrolling jumps around when using this, unfortunately + +{% endcomment %} diff --git a/ietf/templates/community/public/subscribe.html b/ietf/templates/community/public/subscribe.html index 18942b586..8f9252250 100644 --- a/ietf/templates/community/public/subscribe.html +++ b/ietf/templates/community/public/subscribe.html @@ -1,22 +1,29 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Subscribe to {{ cl.long_name }}{% endblock %} {% block content %} -

      Subscribe to {{ cl.long_name }}

      + {% if success %} -

      -We have sent an email to your email address with instructions to complete your subscription. -

      +

      Subscription successful

      + +

      We have sent an email to your email address with instructions to complete your subscription.

      {% else %} -

      -Subscribe to the email list for notifications of {% if significant %}significant {% endif %}changes on {{ cl.long_name }}. -

      -
      {% csrf_token %} - - {{ form }} -
      - -
      +

      Subscribe to {{ cl.long_name }}

      + + {% bootstrap_messages %} + +

      Subscribe to the email list for notifications of {% if significant %}significant {% endif %}changes on {{ cl.long_name }}.

      + +
      + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + {% endbuttons %} +
      {% endif %} {% endblock %} diff --git a/ietf/templates/community/public/subscription_confirm.html b/ietf/templates/community/public/subscription_confirm.html index ae9bed32f..032cfb044 100644 --- a/ietf/templates/community/public/subscription_confirm.html +++ b/ietf/templates/community/public/subscription_confirm.html @@ -1,13 +1,13 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Subscription to {{ cl.long_name }}{% endblock %} {% block content %}

      Subscription to {{ cl.long_name }}

      + +

      Your email address {{ email }} has been successfully subscribed to {{ cl.long_name }}.

      +

      -You email address {{ email }} has been successfully subscribed to {{ cl.long_name }} -

      -

      -Return to the list view + Back

      {% endblock %} diff --git a/ietf/templates/community/public/unsubscribe.html b/ietf/templates/community/public/unsubscribe.html index 7317307cd..3005fb5c9 100644 --- a/ietf/templates/community/public/unsubscribe.html +++ b/ietf/templates/community/public/unsubscribe.html @@ -1,22 +1,33 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Cancel subscription to {{ cl.long_name }}{% endblock %} {% block content %} -

      Cancel subscription to {{ cl.long_name }}

      + {% if success %} -

      -You will receive a confirmation email shortly containing further instructions on how to cancel your subscription. -

      +

      Cancellation successful

      + +

      + You will receive a confirmation email shortly containing further instructions on how to cancel your subscription. +

      {% else %} -

      -Cancel your subscription to the email list for notifications of {% if significant %}significant {% endif %}changes on {{ cl.long_name }}. -

      -
      {% csrf_token %} - - {{ form }} -
      - -
      +

      Cancel subscription to {{ cl.long_name }}

      + + {% bootstrap_messages %} + +

      + Cancel your subscription to the email list for notifications of {% if significant %}significant {% endif %}changes on {{ cl.long_name }}. +

      + +
      + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + {% endbuttons %} +
      {% endif %} {% endblock %} diff --git a/ietf/templates/community/public/unsubscription_confirm.html b/ietf/templates/community/public/unsubscription_confirm.html index 69ac91129..0687e3ffe 100644 --- a/ietf/templates/community/public/unsubscription_confirm.html +++ b/ietf/templates/community/public/unsubscription_confirm.html @@ -1,13 +1,15 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Canceled subscription to {{ cl.long_name }}{% endblock %} +{% block title %}Cancelled subscription to {{ cl.long_name }}{% endblock %} {% block content %} -

      Canceled subscription to {{ cl.long_name }}

      +

      Cancelled subscription to {{ cl.long_name }}

      +

      -You email address {{ email }} has been successfully removed form {{ cl.long_name }} {% if significant %}significant {% endif %}changes mailing list. +Your email address {{ email }} has been successfully removed from the {{ cl.long_name }} {% if significant %}significant {% endif %}changes mailing list.

      +

      -Return to the list view + Back

      {% endblock %} diff --git a/ietf/templates/community/public/view_list.html b/ietf/templates/community/public/view_list.html index f0f0e3592..5ec24f23e 100644 --- a/ietf/templates/community/public/view_list.html +++ b/ietf/templates/community/public/view_list.html @@ -1,8 +1,8 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block pagehead %} - - + + {% endblock %} {% block title %}{{ cl.long_name }}{% endblock %} @@ -10,7 +10,7 @@ {% block content %}

      {{ cl.long_name }}

      -Subscribe to notification email list: +Subscribe to notification email lists:

      • All changes email list
      • diff --git a/ietf/templates/community/raw_view.html b/ietf/templates/community/raw_view.html index 4f31ad5b9..b5c0d1a06 100644 --- a/ietf/templates/community/raw_view.html +++ b/ietf/templates/community/raw_view.html @@ -3,42 +3,45 @@ {% with cl.get_rfcs_and_drafts as documents %} {% with dc.get_active_fields as fields %}

        Drafts

        - - - {% for field in fields %} - - {% endfor %} - -{% for doc in documents.1 %} - - {% for field in fields %} - - {% endfor %} - -{% endfor %} +
        {{ field.description }}
        - {% show_field field doc %} -
        + + + {% for field in fields %} + + {% endfor %} + + + + {% for doc in documents.1 %} + + {% for field in fields %} + + {% endfor %} + + {% endfor %} +
        {{ field.description }}
        {% show_field field doc %}
        {% endwith %} -

        RFCs

        {% with dc.get_active_fields as fields %} - - - {% for field in fields %} - - {% endfor %} - -{% for doc in documents.0 %} - - {% for field in fields %} - - {% endfor %} - -{% endfor %} +

        RFCs

        +
        {{ field.rfcDescription }}
        - {% show_field field doc %} -
        + + + {% for field in fields %} + + {% endfor %} + + + + {% for doc in documents.0 %} + + {% for field in fields %} + + {% endfor %} + + {% endfor %} +
        {{ field.rfcDescription }}
        {% show_field field doc %}
        {% endwith %} - {% endwith %} diff --git a/ietf/templates/cookies/settings.html b/ietf/templates/cookies/settings.html index 0a3975d1c..04c8aa2d7 100644 --- a/ietf/templates/cookies/settings.html +++ b/ietf/templates/cookies/settings.html @@ -1,68 +1,51 @@ -{# Copyright The IETF Trust 2010, All Rights Reserved #} -{% extends "base.html" %} -{% load ietf_filters %} +{% extends "ietf.html" %} + {% block title %}User settings{% endblock %} + {% block content %} -

        Cookie settings for the IETF datatracker

        +

        User settings

        -

        Following settings are implemented using cookies, so if you have -cookies disabled then you are not able to change the settings -(everything still continues to work by using default settings).

        +

        + The following settings are implemented using cookies, so if you have + cookies disabled then you will not be able to change the settings + (everything still continues to work by using default settings). +

        - - - - - - - - - - - - - - - +

        How many days is considered "new"?

        - - - - - - - - - - - - - - +

        This setting affects how many days are considered "new enough" to get the special highlighting in the documents table. Default setting is 14 days.

        + + + +

        How many days is considered "soon"?

        + +

        This setting tells what is considered "soon" when showing documents that are going to be expire soon. Default setting is 14 days.

        + + + +

        Show full document text by default?

        + +

        Show the full text immediately on the document page instead of only showing beginning of it. This defaults to off.

        + +
        + Off + On +
        - - - - - - - - - - -
        -

        How many days is considered new

        -
        -

        This setting affects how many days is considered new enough to get the special marking in the drafts page. Default setting is 14 days.

        -
        {% if new_enough == 7 %}7 days{%else%}7 days{% endif %}{% if new_enough == 14 %}14 days{%else%}14 days{% endif %}{% if new_enough == 21 %}21 days{%else%}21 days{% endif %}{% if new_enough == 30 %}30 days{%else%}30 days{% endif %}{% if new_enough == 60 %}60 days{%else%}60 days{% endif %}{% if new_enough == 90 %}90 days{%else%}90 days{% endif %}
        -

        How many days is considered soon

        -
        -

        This setting tells what is considered soon when showing document which is going to be expire soon. Default setting is 14 days.

        -
        {% if expires_soon == 7 %}7 days{%else%}7 days{% endif %}{% if expires_soon == 14 %}14 days{%else%}14 days{% endif %}{% if expires_soon == 21 %}21 days{%else%}21 days{% endif %}{% if expires_soon == 30 %}30 days{%else%}30 days{% endif %}{% if expires_soon == 60 %}60 days{%else%}60 days{% endif %}{% if expires_soon == 90 %}90 days{%else%}90 days{% endif %}
        -

        Show full document text in document page

        -
        -

        Show the full draft immediately on the document page instead of only showing beginning of it. This defaults to off.

        -
        {% if full_draft == "off" %}off{%else%}off{% endif %}{% if full_draft == "on" %}on{%else%}on{% endif %}
        {% endblock %} diff --git a/ietf/templates/doc/add_comment.html b/ietf/templates/doc/add_comment.html index c0546d289..e013bdde0 100644 --- a/ietf/templates/doc/add_comment.html +++ b/ietf/templates/doc/add_comment.html @@ -1,33 +1,23 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Add comment on {{ doc }}{% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form.add-comment #id_comment { - width: 600px; - height: 300px; -} - -form.add-comment .actions { - padding-top: 20px; -} -{% endblock %} +{% block title %}Add comment for {{ doc }}{% endblock %} {% block content %} -

        Add comment on {{ doc }}

        +

        Add comment
        {{ doc }}

        -

        The comment will be added to the history trail.

        +{% bootstrap_messages %} -
        {% csrf_token %} - - {{ form.as_table }} - - - - -
        - Back - -
        + + {% csrf_token %} + {% bootstrap_form form %} +

        The comment will be added to the history trail.

        + + {% buttons %} + + Back + {% endbuttons %}
        + {% endblock %} diff --git a/ietf/templates/doc/ballot/approvaltext.html b/ietf/templates/doc/ballot/approvaltext.html index 804c3d467..20cc33e7d 100644 --- a/ietf/templates/doc/ballot/approvaltext.html +++ b/ietf/templates/doc/ballot/approvaltext.html @@ -1,36 +1,27 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} +{% load ietf_filters %} {% block title %}Approval announcement writeup for {{ doc }}{% endblock %} -{% block morecss %} -form #id_approval_text { - width: 700px; - height: 600px; -} -{% endblock %} - {% block content %} -

        Approval announcement writeup for {{ doc }}

        +

        Approval announcement writeup
        {{ doc }}

        -
        {% csrf_token %} +{% bootstrap_messages %} -

        Sent after approval.

        + + {% csrf_token %} + {% bootstrap_form approval_text_form %} - {{ approval_text_form.approval_text }} - -
        - Back - - -
        + {% buttons %} + + + {% if user|has_role:"Secretariat" and can_announce %} + Approve ballot + {% endif %} + Back + {% endbuttons %}
        -{% load ietf_filters %} -{% if user|has_role:"Secretariat" %} -

        -{% if can_announce %} -Approve ballot -{% endif %} -

        -{% endif %} {% endblock%} diff --git a/ietf/templates/doc/ballot/approve_ballot.html b/ietf/templates/doc/ballot/approve_ballot.html index 0bf04f750..6cf392196 100644 --- a/ietf/templates/doc/ballot/approve_ballot.html +++ b/ietf/templates/doc/ballot/approve_ballot.html @@ -1,45 +1,23 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Approve ballot for {{ doc }}{% endblock %} -{% block morecss %} -form.approve-ballot pre { - margin: 0; - padding: 4px; - border-top: 4px solid #eee; - border-bottom: 4px solid #eee; -} -form.approve-ballot .announcement { - overflow-x: auto; - overflow-y: scroll; - width: 800px; - height: 400px; - border: 1px solid #bbb; -} -{% endblock %} - {% block content %} -

        Approve Ballot for {{ doc }}

        +

        Approve ballot
        {{ doc }}

        -
        IETF announcement:
        +
        + {% csrf_token %} +
        {{ announcement }}
        -{% csrf_token %} - -
        -
        {{ announcement }}
        -
        - -
        - Back - {% if action == "to_announcement_list" %} - - {% endif %} - {% if action == "to_rfc_editor" %} - - {% endif %} - {% if action == "do_not_publish" %} - - {% endif %} -
        +
        + {% if action == "to_announcement_list" %} + + {% elif action == "to_rfc_editor" %} + + {% elif action == "do_not_publish" %} +
        {% endblock %} diff --git a/ietf/templates/doc/ballot/ballot_issued.html b/ietf/templates/doc/ballot/ballot_issued.html index 4569076d7..ffeb145eb 100644 --- a/ietf/templates/doc/ballot/ballot_issued.html +++ b/ietf/templates/doc/ballot/ballot_issued.html @@ -1,19 +1,17 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Ballot for {{ doc }} issued{% endblock %} +{% block title %}Ballot issued for {{ doc }}{% endblock %} {% block content %} -

        Ballot for {{ doc }} issued

        +

        Ballot issued
        {{ doc }}

        Ballot has been sent out.

        {% if doc.telechat_date %} -

        The document is currently on the {{ doc.telechat_date }} telechat agenda.

        +

        The document is currently on the {{ doc.telechat_date }} telechat agenda.

        {% else %} -

        The document is not on any telechat agenda.

        +

        The document is not on any telechat agenda.

        {% endif %} - +Back {% endblock %} diff --git a/ietf/templates/doc/ballot/clear_ballot.html b/ietf/templates/doc/ballot/clear_ballot.html index 186e258bf..5afcb9f0a 100644 --- a/ietf/templates/doc/ballot/clear_ballot.html +++ b/ietf/templates/doc/ballot/clear_ballot.html @@ -1,18 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Clear ballot for {{ doc }}{% endblock %} {% block content %} -

        Clear ballot for {{ doc }}

        +

        Clear ballot
        {{ doc }}

        -
        {% csrf_token %} -

        Clear the ballot for {{ doc.file_tag }}?

        + + {% csrf_token %} +

        + Clear the ballot for {{ doc }}? +
        + This will clear all ballot positions and discuss entries. +

        -

        This will clear all ballot positions and discuss entries.

        - -
        - Back - -
        +
        + + Back +
        + {% endblock %} diff --git a/ietf/templates/doc/ballot/defer_ballot.html b/ietf/templates/doc/ballot/defer_ballot.html index 30484a854..bdd4fc7e3 100644 --- a/ietf/templates/doc/ballot/defer_ballot.html +++ b/ietf/templates/doc/ballot/defer_ballot.html @@ -1,18 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Defer ballot for {{ doc }}{% endblock %} {% block content %} -

        Defer ballot for {{ doc }}

        +

        Defer ballot
        {{ doc }}

        -
        {% csrf_token %} -

        Defer the ballot for {{ doc.file_tag }}?

        + + {% csrf_token %} +

        + Defer the ballot for {{ doc }}? +
        + The ballot will then be put on the IESG agenda of {{ telechat_date }}. +

        -

        The ballot will then be on the IESG agenda of {{ telechat_date }}.

        - -
        - Back - -
        +
        + + Back +
        + {% endblock %} diff --git a/ietf/templates/doc/ballot/edit_position.html b/ietf/templates/doc/ballot/edit_position.html index 5dc8836ec..0dc1c3aa7 100644 --- a/ietf/templates/doc/ballot/edit_position.html +++ b/ietf/templates/doc/ballot/edit_position.html @@ -1,92 +1,64 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Change position for {{ ad.plain_name }} on {{ doc }}{% endblock %} -{% block morecss %} -div.ballot-deferred { - margin-top: 8px; - margin-bottom: 8px; -} -form.position-form .position ul { - padding: 0; - margin: 0; -} -form.position-form .position li { - list-style-type: none; - float: left; - padding-right: 10px; -} -form.position-form .last-edited { - font-style: italic; -} -form.position-form .discuss-text { - padding-top: 20px -} -form.position-form #id_discuss, -form.position-form #id_comment { - width: 700px; - height: 250px; -} -form.position-form .comment-text { - margin-top: 20px; -} -div.question { - font-size: 173%; - padding-left: 5px; - padding-bottom: 10px; -} -{% endblock %} - {% block content %} -

        Change position for {{ ad.plain_name }} on {{ doc }}

        +

        Change position for {{ ad.plain_name }}
        {{ doc }}

        + +{% bootstrap_messages %}
        {{ ballot.ballot_type.question }}
        {% if ballot_deferred %} -
        Ballot deferred by {{ ballot_deferred.by }} on {{ ballot_deferred.time|date:"Y-m-d" }}.
        +

        + Ballot deferred by {{ ballot_deferred.by }} on {{ ballot_deferred.time|date:"Y-m-d" }}. +

        {% endif %} -
        {% csrf_token %} -
        - {{ form.position }} - - - - {% if doc.type_id == "draft" or doc.type_id == "conflrev" %} - {% if ballot_deferred %}{% else %}{% endif %} - {% endif %} - -
        + + {% csrf_token %} -
        - - - -
        - {{ form.comment.label_tag }} - {% if old_pos and old_pos.comment_time %}(last edited {{ old_pos.comment_time }}){% endif %} -
        - {{ form.comment }} + {% for field in form %} + {% bootstrap_field field %} + {% if field.name == "discuss" and old_pos and old_pos.discuss_time %} + Last edited {{ old_pos.discuss_time }} + {% elif field.name == "comment" and old_pos and old_pos.comment_time %} + Last edited {{ old_pos.comment_time }} + {% endif %} + {% endfor %} -
        - Back -
        - - {{ form.return_to_url }} + {% buttons %} + + + {% if doc.type_id == "draft" or doc.type_id == "conflrev" %} + {% if ballot_deferred %} + + {% else %} + + {% endif %} + {% endif %} + Back + {% endbuttons %}
        {% endblock %} -{% block content_end %} - - +{% block scripts %} +var block_pos = {{ blocking_positions|safe }}; + +function discuss_toggle(val) { + if (val in block_pos) { + $("#div_id_discuss").show(); + } else { + $("#div_id_discuss").hide(); + } +} + +$("input[name=position]").click(function () { + discuss_toggle($(this).val()); +}); + +discuss_toggle($("input[name=position]:checked").val()); {% endblock %} diff --git a/ietf/templates/doc/ballot/lastcalltext.html b/ietf/templates/doc/ballot/lastcalltext.html index 97861d085..4d11c1cbd 100644 --- a/ietf/templates/doc/ballot/lastcalltext.html +++ b/ietf/templates/doc/ballot/lastcalltext.html @@ -1,46 +1,36 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Last Call text for {{ doc }}{% endblock %} +{% load bootstrap3 %} +{% load ietf_filters %} -{% block morecss %} -form #id_last_call_text { - width: 700px; - height: 600px; -} -{% endblock %} +{% block title %}Last call text for {{ doc }}{% endblock %} {% block content %} -

        Last Call text for {{ doc }}

        +

        Last call text
        {{ doc }}

        -
        {% csrf_token %} +{% bootstrap_messages %} -

        {{ last_call_form.last_call_text.errors }}

        + + {% csrf_token %} + {% bootstrap_form last_call_form %} - {{ last_call_form.last_call_text }} + {% if can_request_last_call and need_intended_status %} + + You need to select intended status of {{ need_intended_status }} and regenerate last call text to request last call. + + {% endif %} -

        {{ last_call_form.last_call_text.errors }}

        - - {% if can_request_last_call and need_intended_status %} -

        You need to select intended status of {{ need_intended_status }} and regenerate last call text to request last call.

        - {% endif %} - -
        - Back - - - {% if can_request_last_call and not need_intended_status %} - - {% endif %} -
        + {% buttons %} + + {% if can_request_last_call and not need_intended_status %} + + {% endif %} + + {% if user|has_role:"Secretariat" and can_make_last_call %} + Issue last call + {% endif %} + Back + {% endbuttons %}
        -{% load ietf_filters %} -{% if user|has_role:"Secretariat" %} -

        -{% if can_make_last_call %} -Make Last Call -{% endif %} - -

        -{% endif %} {% endblock%} diff --git a/ietf/templates/doc/ballot/send_ballot_comment.html b/ietf/templates/doc/ballot/send_ballot_comment.html index 3345295bb..ea7bfc627 100644 --- a/ietf/templates/doc/ballot/send_ballot_comment.html +++ b/ietf/templates/doc/ballot/send_ballot_comment.html @@ -1,47 +1,55 @@ -{% extends "base.html" %} -{% load ietf_filters %} -{% block title %}Send ballot position email for {{ ad }}{% endblock %} +{% extends "ietf.html" %} -{% block morecss %} -form.send-ballot pre { - margin: 0; - padding: 4px; - border-top: 4px solid #eee; - border-bottom: 4px solid #eee; -} -{% endblock %} +{% load ietf_filters %} + +{% block title %}Send ballot position for {{ ad }}{% endblock %} {% block content %} -

        Send ballot position email for {{ ad }}

        +

        Send ballot position for {{ ad }}

        + +
        + {% csrf_token %} + +
        + + +
        + +
        + + +
        + +
        + + + Separate email addresses with commas. +
        + + {% if doc.notify %} +
        + +
        + {% endif %} + +
        + + +
        + +
        + +
        {{ body|wrap_text }}
        +
        + +
        + + Back +
        -{% csrf_token %} - - - - - - - - - - - - - - - - -
        From: {{ frm }}
        To: {{ to }}
        Cc:
        - separated
        by comma

        - {% if doc.notify %} - - {% endif %} -
        Subject: {{ subject }}
        Body:
        {{ body|wrap_text }}
        - Back - -
        + {% endblock %} diff --git a/ietf/templates/doc/ballot/writeupnotes.html b/ietf/templates/doc/ballot/writeupnotes.html index 933302791..437862794 100644 --- a/ietf/templates/doc/ballot/writeupnotes.html +++ b/ietf/templates/doc/ballot/writeupnotes.html @@ -1,34 +1,28 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Ballot writeup and notes for {{ doc }}{% endblock %} -{% block morecss %} -form #id_ballot_writeup { - width: 700px; - height: 600px; -} -{% endblock %} - {% block content %} -

        Ballot writeup and notes for {{ doc }}

        - -
        {% csrf_token %} - -

        (Technical Summary, Working Group Summary, Document Quality, - Personnel, RFC Editor Note, IRTF Note, IESG Note, IANA Note)

        - -

        This text will be appended to all announcements and messages to - the IRTF or RFC Editor.

        +

        Ballot writeup and notes
        {{ doc }}

        - {{ ballot_writeup_form.ballot_writeup }} - -
        - Back - - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form ballot_writeup_form %} + + + Technical summary, Working Group summary, document quality, personnel, RFC Editor note, IRTF note, IESG note, IANA note. This text will be appended to all announcements and messages to the IRTF or RFC Editor. + + + {% buttons %} + + + Back + {% endbuttons %}
        - {% endblock%} diff --git a/ietf/templates/doc/ballot_popup.html b/ietf/templates/doc/ballot_popup.html index 6b201aa73..bf8a57a33 100644 --- a/ietf/templates/doc/ballot_popup.html +++ b/ietf/templates/doc/ballot_popup.html @@ -1,14 +1,37 @@ {% load ietf_filters %} -
        -
        - {{ ballot_content }} -
        -
        - {% if request.user|has_role:"Area Director" %} - Edit Position - {% endif %} - - Close -
        + + + + + diff --git a/ietf/templates/doc/change_ad.html b/ietf/templates/doc/change_ad.html index b8179d7c0..32296eae6 100644 --- a/ietf/templates/doc/change_ad.html +++ b/ietf/templates/doc/change_ad.html @@ -1,39 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} +{% load bootstrap3 %} -{% block title %} -Change the shepherding AD for {{titletext}} -{% endblock %} +{% block title %}Change shepherding AD for {{titletext}}{% endblock %} {% block content %} -

        Change the shepherding AD for {{titletext}}

        +

        Change shepherding AD
        {{titletext}}

        -
        {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
        {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Back - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/change_shepherd.html b/ietf/templates/doc/change_shepherd.html index 4499801b9..8b04773e4 100644 --- a/ietf/templates/doc/change_shepherd.html +++ b/ietf/templates/doc/change_shepherd.html @@ -1,46 +1,33 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} +{% load bootstrap3 %} {% block title %} -Change the document shepherd for {{ doc.name }}-{{ doc.rev }} +Change document shepherd for {{ doc.name }}-{{ doc.rev }} {% endblock %} {% block pagehead %} - + + {% endblock %} {% block content %} -

        Change the document shepherd for {{ doc.name }}-{{ doc.rev }}

        +

        Change document shepherd
        {{ doc.name }}-{{ doc.rev }}

        -
        {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
        {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Back - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} -{% block content_end %} - - + +{% block js %} + + {% endblock %} diff --git a/ietf/templates/doc/change_state.html b/ietf/templates/doc/change_state.html index 9d048b157..caa452e37 100644 --- a/ietf/templates/doc/change_state.html +++ b/ietf/templates/doc/change_state.html @@ -1,46 +1,24 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Change State: {{doc.title}}{% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form.change-state select { - width: 22em; -} - -#id_message, #id_comment { - width: 40em; -} - -form.change-state .actions { - text-align: right; - padding-top: 10px; -} -{% endblock %} +{% block title %}Change state for {{doc.title}}{% endblock %} {% block content %} -

        Change State: {{doc.title}}

        +

        Change state
        {{doc.title}}

        -

        For help on the states, see the state table.

        +{% bootstrap_messages %} -
        {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - -
        {{ field.label_tag }}{{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} +

        Help on states

        - {{ field.errors }} -
        - Back - -
        + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/change_title.html b/ietf/templates/doc/change_title.html index 26c8c6d09..1f1d5203a 100644 --- a/ietf/templates/doc/change_title.html +++ b/ietf/templates/doc/change_title.html @@ -1,42 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -.warning { - font-weight: bold; - color: #a00; -} -form.edit-info #id_title { - width: 600px; -} -{% endblock %} +{% load bootstrap3 %} -{% block title %} -Change the title for {{titletext}} -{% endblock %} +{% block title %}Change title for {{doc.title}}{% endblock %} {% block content %} -

        Change the title for {{titletext}}

        +

        Change title
        {{titletext}}

        -
        - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
        {{ field.label_tag }}: - {{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Back - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/charter/announcement_text.html b/ietf/templates/doc/charter/announcement_text.html index 49c9c8c96..a15ae7c2f 100644 --- a/ietf/templates/doc/charter/announcement_text.html +++ b/ietf/templates/doc/charter/announcement_text.html @@ -1,40 +1,33 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} +{% load ietf_filters %} {% block title %}WG {{ announcement }} announcement writeup for {{ charter.chartered_group.acronym }}{% endblock %} -{% block morecss %} -form #id_announcement_text { - width: 700px; - height: 600px; -} -{% endblock %} - {% block content %} -

        WG {{ announcement }} announcement writeup for {{ charter.chartered_group.acronym }}

        +

        WG {{ announcement }} announcement writeup
        {{ charter.chartered_group.acronym }}

        -
        {% csrf_token %} +{% bootstrap_messages %} - {{ announcement_text_form.announcement_text }} + + {% csrf_token %} + {% bootstrap_form announcement_text_form %} -
        - Cancel - - -
        + {% buttons %} + + -{% load ietf_filters %} -{% if user|has_role:"Secretariat" %} -

        Secretariat actions

        - -
        - {% if announcement == "action" %} - Go to charter approval page - {% else %} - - {% endif %} -
        -{% endif %} + {% if user|has_role:"Secretariat" %} + {% if announcement == "action" %} + Charter approval page + {% else %} + + {% endif %} + {% endif %} + Back + {% endbuttons %}
        {% endblock%} diff --git a/ietf/templates/doc/charter/approve.html b/ietf/templates/doc/charter/approve.html index b01fc8436..e0c306e29 100644 --- a/ietf/templates/doc/charter/approve.html +++ b/ietf/templates/doc/charter/approve.html @@ -1,38 +1,17 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Approve {{ charter.canonical_name }}{% endblock %} -{% block morecss %} -form.approve pre { - margin: 0; - padding: 4px; - border-top: 4px solid #eee; - border-bottom: 4px solid #eee; -} -form.approve .announcement { - overflow-x: auto; - overflow-y: scroll; - width: 800px; - height: 400px; - border: 1px solid #bbb; -} -{% endblock %} - {% block content %}

        Approve {{ charter.canonical_name }}-{{ charter.rev }}

        -
        IETF announcement:
        - -
        {% csrf_token %} - -
        -
        {{ announcement }}
        -
        - - + + {% csrf_token %} +
        {{ announcement }}
        +
        + + Edit/regenerate announcement + Back +
        {% endblock %} diff --git a/ietf/templates/doc/charter/ballot_issued.html b/ietf/templates/doc/charter/ballot_issued.html index b02a29311..fb6ae5995 100644 --- a/ietf/templates/doc/charter/ballot_issued.html +++ b/ietf/templates/doc/charter/ballot_issued.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Ballot for {{ doc.name }} issued{% endblock %} @@ -7,7 +7,7 @@

        Ballot has been sent out.

        -
        - Back to writeups +
        + Back
        {% endblock %} diff --git a/ietf/templates/doc/charter/ballot_writeupnotes.html b/ietf/templates/doc/charter/ballot_writeupnotes.html index 1773fcddc..2028d7f46 100644 --- a/ietf/templates/doc/charter/ballot_writeupnotes.html +++ b/ietf/templates/doc/charter/ballot_writeupnotes.html @@ -1,30 +1,28 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Ballot writeup and notes for {{ charter.chartered_group }}{% endblock %} -{% block morecss %} -form #id_ballot_writeup { - width: 700px; - height: 600px; -} -{% endblock %} - {% block content %} -

        Ballot writeup and notes for {{ charter.chartered_group }}

        - -
        {% csrf_token %} - -

        (Working Group Summary, Personnel, IAB Note, IESG Note, IANA Note)

        - - {{ ballot_writeup_form.ballot_writeup }} - -
        - Cancel - - -
        +

        Ballot writeup and notes
        {{ charter.chartered_group }}

        + +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form ballot_writeup_form %} + + + Working group summary, personnel, IAB note, IESG note, IANA note. + + + {% buttons %} + + + Back + {% endbuttons %}
        - {% endblock%} diff --git a/ietf/templates/doc/charter/change_ad.html b/ietf/templates/doc/charter/change_ad.html index 00ea63012..ad84c739f 100644 --- a/ietf/templates/doc/charter/change_ad.html +++ b/ietf/templates/doc/charter/change_ad.html @@ -1,39 +1,24 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} +{% load bootstrap3 %} {% block title %} -Change the responsible AD for {{ charter.canonical_name }}-{{ charter.rev }} +Change responsible AD for {{ charter.canonical_name }}-{{ charter.rev }} {% endblock %} {% block content %} -

        Change the responsible AD for {{ charter.canonical_name }}-{{ charter.rev }}

        +

        Change responsible AD
        {{ charter.canonical_name }}-{{ charter.rev }}

        -
        {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
        {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Back - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/charter/change_state.html b/ietf/templates/doc/charter/change_state.html index ab5b6019e..320931fdd 100644 --- a/ietf/templates/doc/charter/change_state.html +++ b/ietf/templates/doc/charter/change_state.html @@ -1,77 +1,46 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}{{ title }}{% endblock %} -{% block morecss %} -form.change-state select { - width: 22em; -} - -#id_message, #id_comment { - width: 40em; -} - -form.change-state .actions { - text-align: right; - padding-top: 10px; -} -{% endblock %} - {% block content %}

        {{ title }}

        +{% bootstrap_messages %} + {% if not option %} -

        For help on the states, see the state table.

        +

        Help on states

        {% endif %} -
        {% csrf_token %} - - {% for field in form.visible_fields %} - - {% if field.name == "initial_time" %} - {% if option == "recharter" %} - - - - - - {% if field.name == "charter_state" and chartering_type == "rechartering" %} - - - - - {% endif %} - {% endfor %} {% if initial_review %} - +

        Warning: Announced initial review time hasn't elapsed yet. It does so at {{ initial_review.expires }}.

        {% endif %} - - - -
        {{ field.label_tag }}{{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {% else %} - {% if option == "initcharter" %} -
        {{ field.label_tag }}{{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {% endif %} - {% endif %} + + {% csrf_token %} + {% for field in form.visible_fields %} + {% bootstrap_field field %} - {% else %} -
        {{ field.label_tag }}{{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {% endif %} + {% if field.name == "charter_state" and chartering_type == "rechartering" %} +
        + +
        + {% endif %} + {% endfor %} - {{ field.errors }} -
        Warning: Announced initial review time hasn't elapsed yet. It does so at {{ initial_review.expires }}.
        - {% if option == "initcharter" or option == "recharter" %} - - {% endif %} - {% if not option or option == "abandon" %} - Back - - {% endif %} -
        + + {% buttons %} + {% if option == "initcharter" or option == "recharter" %} + + {% endif %} + {% if not option or option == "abandon" %} + + Back + {% endif %} + {% endbuttons %}
        {% if prev_state %} @@ -87,10 +56,21 @@ form.change-state .actions { {% endif %} {% endblock %} -{% block content_end %} - - +{% block scripts %} +var info_msg = {{ info_msg|safe }}, statesForBallotWoExtern = {{ states_for_ballot_wo_extern }}; + +$(document).ready(function () { + function stateChanged() { + var v = $(this).val(); + $("#id_message").val(info_msg[v] || ""); + + if ($.inArray(+v, statesForBallotWoExtern) != -1) + $(".ballot-wo-extern").show(); + else + $(".ballot-wo-extern").hide(); + } + $("#id_charter_state").click(stateChanged).change(stateChanged).keydown(stateChanged); + $("#id_charter_state").click(); +}); + {% endblock %} diff --git a/ietf/templates/doc/charter/submit.html b/ietf/templates/doc/charter/submit.html index 52dedc927..61380d1bb 100644 --- a/ietf/templates/doc/charter/submit.html +++ b/ietf/templates/doc/charter/submit.html @@ -1,40 +1,26 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -form #id_content { - width: 40em; - height: 600px; -} -{% endblock %} +{% load bootstrap3 %} {% block title %} Charter submission for {{ group.acronym }} {{ group.type.name }} {% endblock %} {% block content %} -

        Charter submission for {{ group.acronym }} {{ group.type.name }}

        +

        Charter submission
        {{ group.acronym }} {{ group.type.name }}

        -

        The text will be submitted as {{ name }}-{{ next_rev }}

        -
        {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
        {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Cancel - -
        +{% bootstrap_messages %} + +

        The text will be submitted as charter-ietf-{{ name }}-{{ next_rev }}.

        + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/conflict_review/approve.html b/ietf/templates/doc/conflict_review/approve.html index aeed5a686..2648d146c 100644 --- a/ietf/templates/doc/conflict_review/approve.html +++ b/ietf/templates/doc/conflict_review/approve.html @@ -1,39 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Approve {{ review.canonical_name }}{% endblock %} -{% block morecss %} -form #id_announcement_text { - overflow-x: auto; - overflow-y: scroll; - width: 800px; - height: 400px; - border: 1px solid #bbb; -} -{% endblock %} - {% block content %}

        Approve {{ review.canonical_name }}

        -
        {% csrf_token %} +{% bootstrap_messages %} - - {% for field in form.visible_fields %} - - - - {% endfor %} - - - -
        -
        {{ field.label_tag }}
        - {{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Back - -
        + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        + {% endblock %} diff --git a/ietf/templates/doc/conflict_review/start.html b/ietf/templates/doc/conflict_review/start.html index 8ce73400d..da6a58f38 100644 --- a/ietf/templates/doc/conflict_review/start.html +++ b/ietf/templates/doc/conflict_review/start.html @@ -1,48 +1,28 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% load ietf_filters %} -{% block title %}Begin IETF conflict review : {{doc_to_review.canonical_name}}-{{doc_to_review.rev}}{% endblock %} - -{% block morecss %} -form.start-conflict-review #id_notify { - width: 600px; -} -form.start-conflict-review .actions { - padding-top: 20px; -} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} +{% block title %}Begin IETF conflict review for {{doc_to_review.canonical_name}}-{{doc_to_review.rev}}{% endblock %} {% block content %} -

        Begin IETF conflict review for {{doc_to_review.canonical_name}}-{{doc_to_review.rev}}

        +

        Begin IETF conflict review
        {{doc_to_review.canonical_name}}-{{doc_to_review.rev}}

        + +{% bootstrap_messages %} {% if user|has_role:"Secretariat" %} -

        For help on the initial state choice, see the state table.

        +

        Help on states

        {% endif %} -
        {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - -
        {{ field.label_tag }}{{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} + + {% csrf_token %} + {% bootstrap_form form %} - {{ field.errors }} -
        - Back - -
        + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/conflict_review/submit.html b/ietf/templates/doc/conflict_review/submit.html index d6df2e2bc..b7519f8ae 100644 --- a/ietf/templates/doc/conflict_review/submit.html +++ b/ietf/templates/doc/conflict_review/submit.html @@ -1,41 +1,28 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -form #id_content { - width: 40em; - height: 450px; -} -{% endblock %} +{% load bootstrap3 %} {% block title %} Edit conflict review for {{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }} {% endblock %} {% block content %} -

        Edit conflict review for {{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}

        +

        Edit conflict review
        {{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}

        + +{% bootstrap_messages %} + +

        The text will be submitted as {{ review.canonical_name }}-{{ next_rev }}

        + +
        + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + + Back + {% endbuttons %} -

        The text will be submitted as {{ review.canonical_name }}-{{ next_rev }}

        -{% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
        {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Back - - -
        {% endblock %} diff --git a/ietf/templates/doc/document_ballot.html b/ietf/templates/doc/document_ballot.html index 44d1e7ad3..44d7929b7 100644 --- a/ietf/templates/doc/document_ballot.html +++ b/ietf/templates/doc/document_ballot.html @@ -1,19 +1,10 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} {% block title %}Ballot for {{ doc.name }}-{{ doc.rev }}{% endblock %} -{% block pagehead %} - -{% endblock %} - {% block content %} -{{ top|safe }} - -{{ ballot_content|safe }} - + {{ top|safe }} + {{ ballot_content|safe }} {% endblock content %} - -{% block content_end %} -{% endblock content_end %} diff --git a/ietf/templates/doc/document_ballot_content.html b/ietf/templates/doc/document_ballot_content.html index 0e83883fe..9e1cde68a 100644 --- a/ietf/templates/doc/document_ballot_content.html +++ b/ietf/templates/doc/document_ballot_content.html @@ -1,77 +1,114 @@ {% load ietf_filters %} -
        -{% if editable and user|has_role:"Area Director,Secretariat" %} -
        -{% if user|has_role:"Area Director" %} - -{% endif %} - -{% if doc.type_id == "draft" or doc.type_id == "conflrev" or doc.type_id == "statchg" %} -
        -{% if deferred %} - -
        Ballot deferred by {{ deferred.by }} on {{ deferred.time|date:"Y-m-d" }}.
        -{% else %} - {% if doc.telechat_date %} - - {% endif %} -{% endif %} -{% if user|has_role:"Secretariat" %} - -{% endif %} -
        -{% endif %} - -
        -{% endif %} - -{% for n, positions in position_groups %} -
        -
        {{ n.name }}
        - {% for p in positions %} -
        {% if p.old_ad %}[{% endif %}{{ p.ad.plain_name }}{% if p.old_ad %}]{% endif %}{% if p.comment or p.discuss %} *{% endif %}
        - {% if p.old_positions %}
        (was {{ p.old_positions|join:", " }})
        {% endif %} - {% empty %} - none - {% endfor %} -
        -{% endfor %} - -
        - -
        - -{% if all_ballots and all_ballots|length > 1 %} -
        - Available ballots: -{% for b in all_ballots %} -{{ b.ballot_type.name }} ({{ b.rev }}) -{% endfor %} -
        -{% endif %} - -

        {{ ballot.ballot_type.question }}

        - -{% if not ballot_open %} -

        Note: This ballot was opened for revision {{ ballot.rev }} and is now closed.

        -{% endif %} - -

        Summary: {{ summary }}

        - -{% for p in text_positions %} -

        {% if p.old_ad %}[{% endif %}{{ p.ad.plain_name }}{% if p.old_ad %}]{% endif %}

        - -{% if p.pos.blocking and p.discuss %} -

        {{ p.pos.name }} ({{ p.discuss_time|date:"Y-m-d" }}{% if not p.for_current_revision %} for -{{ p.get_dochistory.rev }}{% endif %})

        - -
        {{ p.discuss|wrap_text:80 }}
        -{% endif %} - -{% if p.comment %} -

        Comment ({{ p.comment_time|date:"Y-m-d" }}{% if not p.for_current_revision %} for -{{ p.get_dochistory.rev }}{% endif %})

        -
        {{ p.comment|wrap_text:80 }}
        -{% endif %} -{% endfor %} +
        + +
        + {% if all_ballots and all_ballots|length > 1 %} + + {% endif %} + + {% if doc.type_id == "draft" or doc.type_id == "conflrev" or doc.type_id == "statchg" %} + {% if deferred %} +

        Ballot deferred by {{ deferred.by }} on {{ deferred.time|date:"Y-m-d" }}.

        + {% endif %} + {% endif %} + +

        Summary: {{ summary }}

        + {% if not ballot_open %} +

        Note: This ballot was opened for revision {{ ballot.rev }} and is now closed.

        + {% endif %} + + {% if ballot.ballot_type.question %} +

        Ballot question: "{{ ballot.ballot_type.question }}"

        + {% endif %} + + {% if editable and user|has_role:"Area Director,Secretariat" %} + {% if user|has_role:"Area Director" %} + Edit position + {% endif %} + + {% if doc.type_id == "draft" or doc.type_id == "conflrev" or doc.type_id == "statchg" %} + {% if deferred %} + Undefer ballot + {% else %} + {% if doc.telechat_date %} + Defer ballot + {% endif %} + {% endif %} + + {% if user|has_role:"Secretariat" %} + Clear ballot + {% endif %} + {% endif %} + {% endif %} + + {% for n, positions in position_groups %} + {% for p in positions|dictsort:"ad.last_name" %} +

        + {% if p.old_ad %}{% endif %} + {{ p.ad.plain_name }} + {% if p.old_ad %}{% endif %} + + {% if p.old_positions %} + (was {{ p.old_positions|join:", " }}) + {% endif %} + {{p.pos}} + {% if user|has_role:"Secretariat" %} + + Edit + {% endif %} + +

        + + {% if p.pos.blocking and p.discuss %} +
        +
        +
        {{ p.pos.name }} ({{ p.discuss_time|date:"Y-m-d" }} for -{{ p.get_dochistory.rev}})
        +
        +
        {{ p.discuss|wrap_text:80|escape|urlize }}
        +
        + {% endif %} + + {% if p.comment %} +
        +
        +
        Comment ({{ p.comment_time|date:"Y-m-d" }} for -{{ p.get_dochistory.rev}})
        +
        +
        {{ p.comment|wrap_text:80|escape|urlize }}
        +
        + {% endif %} + {% endfor %} + {% endfor %} +
        diff --git a/ietf/templates/doc/document_charter.html b/ietf/templates/doc/document_charter.html index 52034cdb5..e22d4bc8b 100644 --- a/ietf/templates/doc/document_charter.html +++ b/ietf/templates/doc/document_charter.html @@ -1,139 +1,171 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} -{% block title %}{{ doc.canonical_name }}-{{ doc.rev }}{% endblock %} - {% block pagehead %} - + {% endblock %} +{% block morecss %} +.edit { width: 1px } +{% endblock %} + +{% block title %}{{ doc.title }}{% endblock %} + {% block content %} {{ top|safe }} {% include "doc/revisions_list.html" %} -
        -
        - {% if snapshot %}Snapshot of{% endif %} - {% if doc.get_state_slug != "approved" %}Proposed{% endif %} - Charter for "{{ group.name }}" - ({{ group.acronym }}) {{ group.type.name }} -
        + + + + + -
        + {% if doc.get_state_slug != "approved" %} + Proposed charter + {% else %} + Charter + {% endif %} + + {{ group.name }} {{ group.type.name }} + ({{ group.acronym }}) {{ group.type.name }} - - - - - - - - + - {% if not snapshot and chartering %} - + + + + + + + + + + - {% endif %} - - +{% if not snapshot and chartering %} + + + + - - - + {% if ballot_summary %} +
        {{ ballot_summary }} + {% endif %} + +{% endif %} - + + + + + - - - - + + + + + - + + + + + +
        WG State:{{ group.state.name }}
        Charter State: -
        - - {{ doc.get_state.name }} - - {% if chartering == "initial" %} - (Initial Chartering){% endif %} - {% if chartering == "rechartering" %} - (Rechartering){% endif %} -
        + {% if snapshot %} + Snapshot + {% endif %} +
        WG state{{ group.state.name }}
        Charter state + {% if not snapshot and can_manage %} + Edit + {% endif %} + + {{ doc.get_state.name }} - {% if ballot_summary %} -
        - ({{ ballot_summary }}) -
        - {% endif %} + {% if chartering == "initial" %} + Initial chartering + {% endif %} + {% if chartering == "rechartering" %} + Rechartering + {% endif %} +
        Telechat date + {% if can_manage %} + Edit + {% endif %} + + {% if not telechat %} + (None) + {% else %} + On agenda of {{ telechat.telechat_date|date:"Y-m-d" }} IESG telechat + {% endif %} -
        Responsible AD:{{ doc.ad|default:"none" }}

        Responsible AD + {% if can_manage %} + Edit + {% endif %} + + {{ doc.ad|default:"(None)" }} +
        Send notices to: - {{ doc.notify|default:"none" }} - -
        Send notices to + {% if can_manage %} + Edit + {% endif %} + + {{ doc.notify|default:"(None)" }} +
        Last updated: {{ doc.time|date:"Y-m-d" }}
        Last updated{{ doc.time|date:"Y-m-d" }}
        -

        +

        + {% if not snapshot and can_manage %} + {% if chartering %} + {% url "charter_startstop_process" name=doc.name option='abandon' as abandon_url %} + {% if abandon_url %} + Abandon chartering + {% endif %} -

        + {% if user|has_role:"Secretariat" %} + {% url "charter_approve" name=doc.name as approve_url %} + {% if approve_url %} + Approve charter + {% endif %} + {% endif %} -
        - {% if not snapshot and can_manage %} - {% if chartering %} - {% url "charter_startstop_process" name=doc.name option='abandon' as abandon_url %}{% if abandon_url %}Abandon Effort{% endif %} + {% else %} - {% if user|has_role:"Secretariat" %} - {% url "charter_approve" name=doc.name as approve_url %}{% if approve_url %}Approve Charter{% endif %} - {% endif %} + {% if group.state_id == "proposed" or group.state_id == "bof" %} + {% url "charter_submit" name=doc.name option='initcharter' as start_url %} + {% if start_url %} + Start chartering + {% endif %} + {% else %} + {% url "charter_submit" name=doc.name option='recharter' as recharter_url %} + {% if recharter_url %} + Recharter + {% endif %} + {% endif %} + {% endif %} +{% endif %} +

        - {% else %} - {% if group.state_id == "proposed" or group.state_id == "bof" %} - {% url "charter_submit" name=doc.name option='initcharter' as start_url %}{% if start_url %}Start Chartering{% endif %} - {% else %} - {% url "charter_submit" name=doc.name option='recharter' as recharter_url %}{% if recharter_url %}Recharter{% endif %} - {% endif %} - {% endif %} - - {% endif %} -
        -
        - -

        Other versions: plain text

        - -

        Charter {{ doc.canonical_name }}-{{ doc.rev }} +

        Charter
        {{ doc.canonical_name }}-{{ doc.rev }}

        {% if not snapshot and can_manage and chartering and group.state_id != "conclude" %} -Change charter text +

        Change charter text

        {% endif %} - {% if doc.rev != "" %} -
        - {{ content|safe|keep_spacing|sanitize_html|wordwrap:80|safe }} -
        + {{ content|safe|keep_spacing|sanitize_html|wordwrap:80|safe }} {% endif %} {% if not snapshot and chartering %} -

        Proposed Milestones -{% if can_manage %} -Edit charter milestones -{% endif %} -

        +

        Proposed milestones

        + {% if can_manage %} +

        Edit milestones

        + {% endif %} -{% if milestones %} -{% include "group/milestones.html" %} -{% else %} -

        No milestones for charter found.

        -{% endif %} + {% if milestones %} + {% include "group/milestones.html" %} + {% else %} +

        No milestones for charter found.

        + {% endif %} {% endif %} {% endblock %} diff --git a/ietf/templates/doc/document_conflict_review.html b/ietf/templates/doc/document_conflict_review.html index 8588517ab..a957c499d 100644 --- a/ietf/templates/doc/document_conflict_review.html +++ b/ietf/templates/doc/document_conflict_review.html @@ -1,109 +1,121 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} -{% block title %}{{ doc.name }}-{{ doc.rev }}{% endblock %} - -{% block pagehead %} - +{% block morecss %} +.edit { width: 1px } {% endblock %} +{% block title %}{{ doc.title }}{% endblock %} + {% block content %} {{ top|safe }} {% include "doc/revisions_list.html" %} -
        -
        - {% if snapshot %}Snapshot of{% endif %} - {% if doc.get_state_slug not in approved_states %}Proposed{% endif %} - IESG Conflict Review for the {{conflictdoc.stream}} document: {{ conflictdoc.canonical_name }}{% if conflictdoc.get_state_slug != 'rfc' %}-{{ conflictdoc.rev }}{% endif %} -
        + + + + + + + + + +
        + {% if doc.get_state_slug not in approved_states %} + Proposed conflict review + {% else %} + Conflict review + {% endif %} + + + {{ conflictdoc.canonical_name }}{% if conflictdoc.get_state_slug != 'rfc' %}-{{ conflictdoc.rev }}{% endif %} + + {{conflictdoc.stream}} stream - - - - + - {% if not snapshot and user|has_role:"Area Director,Secretariat" %} + + + + + - {% if request.user|has_role:"Secretariat" %}{% if doc.get_state_slug = 'appr-reqnopub-pend' or doc.get_state_slug = 'appr-noprob-pend' %} - - Approve conflict review - {% endif %}{% endif %} + {% if not snapshot %} + + + + - - {% if not snapshot %} - - - + + {% endif %} - - - {% endif %} + + + + + - - - - + + + + + - - - - - - - - - - - {% comment %} - - {% endcomment %} - -
        Conflict Review State: -
        - {{ doc.get_state.name }} + {% if snapshot %} + Snapshot + {% endif %} +
        Conflict review state + {% if not snapshot and user|has_role:"Area Director,Secretariat" %} + Edit + {% endif %} + + {{ doc.get_state.name }} +
        Telechat date + {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug not in approved_states %} + Edit + {% endif %} + + {% if not telechat %} + (None) + {% else %} + On agenda of {{ telechat.telechat_date|date:"Y-m-d" }} IESG telechat + {% if doc.returning_item %} (returning item){% endif %} + {% endif %} - {% endif %} - -
        Telechat Date: - - {% if not telechat %}Not on agenda of an IESG telechat{% else %}On agenda of {{ telechat.telechat_date|date:"Y-m-d" }} IESG telechat{% if doc.returning_item %} (returning item){% endif %}{% endif %} - - {% if ballot_summary %} -
        - ({{ ballot_summary }}) -
        - {% endif %} + {% if ballot_summary %} +
        {{ ballot_summary }} + {% endif %} +
        Shepherding AD + {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug not in approved_states %} + Edit + {% endif %} + + {{doc.ad}} +
        Shepherding AD: - - {{doc.ad}} - -
        Send notices to + {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug not in approved_states %} + Edit + {% endif %} + + {{doc.notify}} +
        Send notices to: - - {{doc.notify}} - -

        Last updated: {{ doc.time|date:"Y-m-d" }}

        - - - -

        Conflict Review for {{ conflictdoc.name }}-{{ conflictdoc.rev }} +

        Last updated{{ doc.time|date:"Y-m-d" }}
        +

        Conflict review
        {{ conflictdoc.name }}-{{ conflictdoc.rev }}

        {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug != 'apprsent' %} -Change conflict review text + Change conflict review text +{% endif %} + +{% if not snapshot and user|has_role:"Area Director,Secretariat" %} + {% if request.user|has_role:"Secretariat" %} + {% if doc.get_state_slug = 'appr-reqnopub-pend' or doc.get_state_slug = 'appr-noprob-pend' %} + Approve conflict review + {% endif %} + {% endif %} {% endif %} - {% if doc.rev %} -
        -{{ content|fill:"80"|safe|linebreaksbr|keep_spacing|sanitize_html|safe }} -
        +

        {{ content|fill:"80"|safe|linebreaksbr|keep_spacing|sanitize_html|safe }}

        {% endif %} {% endblock %} diff --git a/ietf/templates/doc/document_draft.html b/ietf/templates/doc/document_draft.html index 0985e3302..c1ccedc76 100644 --- a/ietf/templates/doc/document_draft.html +++ b/ietf/templates/doc/document_draft.html @@ -1,303 +1,400 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} -{% block title %}{% if doc.get_state_slug == "rfc" %}RFC {{ rfc_number }}{% else %}{{ name }}-{{ doc.rev }}{% endif %}{% endblock %} - {% block pagehead %} - - + + +{% endblock %} + +{% block morecss %} +.edit { width: 1px } +{% endblock %} + +{% block title %} + {% if doc.get_state_slug == "rfc" %} + RFC {{ rfc_number }} + {% else %} + {{ name }}-{{ doc.rev }} + {% endif %} {% endblock %} {% block content %} {{ top|safe }} -
        - - - - + + + + {% endif %} -{% else %} + + + + + -

        This Internet-Draft is no longer active. A copy of the expired Internet-Draft can be found here:
        -{{doc.href}} +{% if conflict_reviews %} +

        + + + + +{% endif %} -

        Abstract

        + + {% if doc.stream %} + + + + {% else %} + + + + {% endif %} + -

        - {% for author in doc.documentauthor_set.all %} - {{ author.author.person }} {% if not author.author.invalid_address %}<{{ author.author.address }}>{% endif %} - {% if not forloop.last %}
        {% endif %}{% endfor %} +{% if consensus %} +

        + + + + +{% endif %} + + + + + + + +{% if shepherd_writeup or can_edit_shepherd_writeup %} + + + + + +{% endif %} + +{% if published and started_iesg_process and published.time < started_iesg_process.time %} + + + +{% endif %} + + + + + + + +{% if iana_review_state %} + + + + + + + + + + + +{% endif %} + +{% if rfc_editor_state %} + + + + + +{% endif %} + + + + + + + + + + + + + +{% if iesg_state %} + {% if doc.note or can_edit %} + + + + + + {% endif %} +{% endif %} + + + + + + +
        Document type: - {% if doc.get_state_slug == "rfc" %} - RFC - {{ doc.std_level }} - ({% if published %}{{ published.time|date:"F Y" }}{% else %}publication date unknown{% endif %}{% if has_errata %}; Errata{% else %}; No errata{% endif %}) + + + + + + - {% if resurrected_by %}- resurrect requested by {{ resurrected_by }}{% endif %} - {% endif %} + {% if replaces or can_edit_stream_info %} + + + + + + {% endif %} - {% if replaces or can_edit_stream_info %} -
        - - Replaces: {{ replaces|join:", "|urlize_ietf_docs|default:"None" }} - -
        - {% endif %} - {% if replaced_by %}
        Replaced by: {{ replaced_by|join:", "|urlize_ietf_docs }}
        {% endif %} - - + {% if replaced_by %} + + + + + + {% endif %} - - - - + + + + + - - - - + + + + + - {% if doc.get_state_slug != "rfc" %} - - - - - {% endif %} - - - - - - - {% if conflict_reviews %} - - - - - {% endif %} - - - - - {% if doc.stream %} - - - {% else %} - - {% endif %} - - - {% if consensus %} - - - - - {% endif %} - - - - - - - {% if shepherd_writeup or can_edit_shepherd_writeup %} - - - - - {% endif %} - - - - {% if published and started_iesg_process and published.time < started_iesg_process.time %} - - - - {% endif %} - - - - - - - - - - - - {% if iesg_state %} - {% if doc.note or can_edit %} - - - - - {% endif %} - {% endif %} - - - - - - - -
        Document type + {% if doc.get_state_slug == "rfc" %} + RFC - {{ doc.std_level }} + ({% if published %}{{ published.time|date:"F Y" }}{% else %}publication date unknown{% endif %}{% if has_errata %}; Errata{% else %}; No errata{% endif %}) - {% if obsoleted_by %}
        Obsoleted by {{ obsoleted_by|join:", "|urlize_ietf_docs }}
        {% endif %} - {% if updated_by %}
        Updated by {{ updated_by|join:", "|urlize_ietf_docs }}
        {% endif %} - {% if obsoletes %}
        Obsoletes {{ obsoletes|join:", "|urlize_ietf_docs }}
        {% endif %} - {% if updates %}
        Updates {{ updates|join:", "|urlize_ietf_docs }}
        {% endif %} - {% if status_changes %}
        Status changed by {{ status_changes|join:", "|urlize_ietf_docs }}
        {% endif %} - {% if proposed_status_changes %}
        Proposed status changed by {{ proposed_status_changes|join:", "|urlize_ietf_docs }}
        {% endif %} - {% if rfc_aliases %}
        Also Known As {{ rfc_aliases|join:", "|urlize_ietf_docs }}
        {% endif %} - {% if draft_name %}
        Was {{ draft_name }} {% if submission %}({{ submission|safe }}){% endif %}
        {% endif %} - {% else %} - {{ doc.get_state }} Internet-Draft {% if submission %}({{ submission|safe }}){% endif %} + {% if obsoleted_by %}
        Obsoleted by {{ obsoleted_by|join:", "|urlize_ietf_docs }}
        {% endif %} + {% if updated_by %}
        Updated by {{ updated_by|join:", "|urlize_ietf_docs }}
        {% endif %} + {% if obsoletes %}
        Obsoletes {{ obsoletes|join:", "|urlize_ietf_docs }}
        {% endif %} + {% if updates %}
        Updates {{ updates|join:", "|urlize_ietf_docs }}
        {% endif %} + {% if status_changes %}
        Status changed by {{ status_changes|join:", "|urlize_ietf_docs }}
        {% endif %} + {% if proposed_status_changes %}
        Proposed status changed by {{ proposed_status_changes|join:", "|urlize_ietf_docs }}
        {% endif %} + {% if rfc_aliases %}
        Also known as {{ rfc_aliases|join:", "|urlize_ietf_docs }}
        {% endif %} + {% if draft_name %}
        Was {{ draft_name }} {% if submission %}({{ submission|safe }}){% endif %}
        {% endif %} + {% else %} + {{ doc.get_state }} Internet-Draft {% if submission %}({{ submission|safe }}){% endif %} + {% if resurrected_by %}- resurrect requested by {{ resurrected_by }}{% endif %} + {% endif %} +
        Replaces + {% if can_edit_stream_info %} + Edit + {% endif %} + + {{ replaces|join:", "|urlize_ietf_docs|default:"(None)" }} +
        Replaced by + {{ replaced_by|join:", "|urlize_ietf_docs }} +
        Document stream: - - {{ doc.stream|default:"No stream defined" }} - -
        Document stream + {% if can_change_stream %} + Edit + {% endif %} + + {{ doc.stream|default:"(None)" }} +
        Last updated: - {{ doc.time|date:"Y-m-d" }} - {% if latest_revision and latest_revision.time.date != doc.time.date %} - (latest revision {{ latest_revision.time|date:"Y-m-d" }}) - {% endif %} -
        Last updated + {{ doc.time|date:"Y-m-d" }} + {% if latest_revision and latest_revision.time.date != doc.time.date %} + (latest revision {{ latest_revision.time|date:"Y-m-d" }}) + {% endif %} +
        Intended RFC status: - - {{ doc.intended_std_level|default:"Unknown" }} -
        Other versions: - {% if doc.get_state_slug != "active" and doc.get_state_slug != "rfc" %}(expired, archived):{% endif %} - {% if file_urls %} - {% for label, url in file_urls %}{{ label}}{% if not forloop.last%}, {% endif %}{% endfor %} - {% else %} - (not online) - {% endif %} -
        IETF Conflict Review:{{ conflict_reviews|join:", "|urlize_ietf_docs }}

        {{ doc.stream }} State: - - {{ stream_state|default:"(None)" }} - - - {% for m in milestones %} - {{ m.due|date:"M Y" }} - {% endfor %} - - {% if stream_tags %} -
        {% for tag in stream_tags %}{{ tag.name }}{% if not forloop.last %}, {% endif %}{% endfor %}
        - {% endif %} -
        Stream State:No stream defined
        Consensus: - - {{ consensus }} - -
        Document shepherd: - - {{ doc.shepherd|default:"No shepherd assigned" }} - -
        Shepherd Write-Up: - - {% if shepherd_writeup %}Last changed {{ shepherd_writeup.time|date:"Y-m-d"}}{% else %}(None){% endif %} - -

        This information refers to IESG processing after the RFC was initially published:
        IESG State: - - {{ iesg_state_summary|default:"I-D Exists" }} - - {% if iana_review_state %} -
        IANA Review State: - {{ iana_review_state }} -
        - {% endif %} - - {% if iana_review_state %} -
        IANA Action State: - {{ iana_action_state }} -
        - {% endif %} - - {% if rfc_editor_state %} -
        - RFC Editor State: - {{ rfc_editor_state }}
        - {% endif %} - - - - {% if ballot_summary %}
        ({{ ballot_summary }})
        {% endif %} -
        Responsible AD: - - {{ doc.ad|default:"(None)" }} - -
        IESG Note: - - {{ doc.note|default:"(None)"|linebreaksbr }} - -
        Send notices to: - - {{ doc.notify|default:"No addresses provided"}} - -

        - - - - {% if can_edit and iesg_state %} - - {% endif %} - - {% if actions %} -
        - {% for label, url in actions %}{{ label }} {% endfor %} -
        - {% endif %} - - -{% if doc.get_state_slug == "active" or doc.get_state_slug == "rfc" %} - -
        -{{ content|safe }} -
        - -{% if split_content %} -

        [include full document text]

        +{% if doc.get_state_slug != "rfc" %} +
        Intended RFC status + {% if can_edit or can_edit_stream_info %} + Edit + {% endif %} + + {{ doc.intended_std_level|default:"(None)" }} +
        Other versions + {% if doc.get_state_slug != "active" and doc.get_state_slug != "rfc" %}
        Expired & archived
        {% endif %} + {% if file_urls %} + {% for label, url in file_urls %} + + + {{ label }} + {% endfor %} + {% else %} + (not online) + {% endif %} +
        IETF conflict review{{ conflict_reviews|join:", "|urlize_ietf_docs }}
        {{ doc.stream }} state + {% if doc.stream and can_edit_stream_info %} + Edit + {% endif %} + + {{ stream_state|default:"(None)" }} -

        {{ doc.abstract }}

        + {% for m in milestones %} + {{ m.due|date:"M Y" }} + {% endfor %} -

        Authors

        + {% if stream_tags %} +
        {% for tag in stream_tags %}{{ tag.name }}{% if not forloop.last %}, {% endif %}{% endfor %}
        + {% endif %} +
        Stream state(No stream defined)
        Consensus + {% if can_edit or can_edit_stream_info %} + Edit + {% endif %} + + {{ consensus }} + +
        Document shepherd + {% if can_edit_stream_info %} + Edit + {% endif %} + + {{ doc.shepherd|default:"(None)" }} +
        Shepherd write-up + {% if can_edit_shepherd_writeup %} + {% url "doc_edit_shepherd_writeup" name=doc.name as doc_edit_url %} + {% if doc_edit_url %} + Edit + {% endif %} + {% endif %} + + {% if shepherd_writeup %} + Show + (last changed {{ shepherd_writeup.time|date:"Y-m-d"}}) + {% else %} + (None) + {% endif %} +
        This information refers to IESG processing after the RFC was initially published:
        IESG state + {% if iesg_state and can_edit %} + Edit + {% endif %} + + {{ iesg_state_summary|default:"I-D Exists" }} +
        IANA review state + {% if can_edit_iana_state %} + Edit + {% endif %} + + {{ iana_review_state }} +
        IANA action state + {% if can_edit_iana_state %} + Edit + {% endif %} + + {{ iana_action_state }} +
        RFC Editor state{{ rfc_editor_state }}
        Telechat date + {% if can_edit %} + Edit + {% endif %} + + {% if telechat %} + On agenda of {{ telechat.telechat_date }} IESG telechat + {% if telechat.returning_item %} + (returning item) + {% endif %} + {% else %} + {% if can_edit %} + (None) + {% endif %} + {% endif %} + + {% if ballot_summary %} +
        {{ ballot_summary }} + {% endif %} +
        Responsible AD + {% if can_edit %} + Edit + {% endif %} + + {{ doc.ad|default:"(None)" }} +
        IESG note + {% if can_edit %} + Edit + {% endif %} + + {{ doc.note|default:"(None)"|linebreaksbr }} +
        Send notices to + {% if can_edit %} + Edit + {% endif %} + + {{ doc.notify|default:"(None)"}} +
        + +

        + Email authors + IPR {% if doc.related_ipr %} {{doc.related_ipr|length}}{% endif %} + References + Referenced by + Nits + Search lists + {% if user|has_role:"Area Director" %} + Search lists (ARO) + {% endif %} + {% if user.is_authenticated %} + {% if tracking_document %} + Untrack + {% else %} + Track + {% endif %} + {% endif %} + + {% if can_edit and iesg_state %} + Last call text + Ballot text + Announcement text + {% endif %} + + {% if actions %} + {% for label, url in actions %} + {{ label|capfirst_allcaps }} + {% endfor %} + {% endif %}

        -

        (Note: The e-mail addresses provided for the authors of this Internet-Draft may no longer be valid)

        +{% if doc.get_state_slug == "active" or doc.get_state_slug == "rfc" %} + {{ content|safe }} + {% if split_content %} + Show full document + {% endif %} + +{% else %} +

        +
        +
        + This Internet-Draft is no longer active. A copy of the expired Internet-Draft can be found at + https://www.ietf.org/archive/id/{{ doc.name }}-{{ doc.rev }}.txt +
        +
        +

        This Internet-Draft is no longer active. A copy of + the expired Internet-Draft can be found here:
        + {{doc.href}} + +

        Abstract

        +

        {{ doc.abstract }}

        + +

        Authors

        +

        + {% for author in doc.documentauthor_set.all %} + {% if not author.author.invalid_address %} + + + {% endif %} + {{ author.author.person }} + {% if not author.author.invalid_address %} + ({{ author.author.address }}) + {% endif %} + {% if not forloop.last %}
        {% endif %} + {% endfor %} +

        +

        (Note: The e-mail addresses provided for the authors of this Internet-Draft may no longer be valid.)

        +
        +
        {% endif %} {% endblock %} - -{% block js %} - - -{% endblock %} diff --git a/ietf/templates/doc/document_history.html b/ietf/templates/doc/document_history.html index 45d1637d4..76ec638fd 100644 --- a/ietf/templates/doc/document_history.html +++ b/ietf/templates/doc/document_history.html @@ -1,81 +1,110 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} {% block title %}History for {{ doc.name }}-{{ doc.rev }}{% endblock %} {% block pagehead %} - - + {% endblock %} {% block content %} {{ top|safe }} {% if diff_revisions and diff_revisions|length > 1 %} -
        -

        Diffs

        +

        Revision differences

        -
        - - - - - - - - -
        - - - - - - -
        - - -
        -
        -
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        + +
        +
        +
        + + + + +
        +
        +
        + +
        +
        + +
        +
        + +
        {% endif %}

        Document history

        {% if user|has_role:"Area Director,Secretariat,IANA,RFC Editor" %} -
        - Add comment + {% endif %} + + + + + + + + + -
        DateVersionByAction
        - - - {% for e in events %} - - - - - - - {% endfor %} + + {% for e in events %} + + + + + + + {% endfor %} +
        DateVersionByText
        {{ e.time|date:"Y-m-d" }}{{ e.rev }}{{ e.by }}{{ e.desc|format_history_text }} -
        {{ e.time|date:"Y-m-d" }}{{ e.rev }}{{ e.by|escape }}{{ e.desc|format_history_text }}
        {% endblock content %} - -{% block content_end %} - -{% endblock content_end %} diff --git a/ietf/templates/doc/document_referenced_by.html b/ietf/templates/doc/document_referenced_by.html index 9095e3136..29ee7594e 100644 --- a/ietf/templates/doc/document_referenced_by.html +++ b/ietf/templates/doc/document_referenced_by.html @@ -1,59 +1,64 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + {% block title %} References to {{alias_name}} {% endblock %} -{% block morecss %} -.referencetable {margin-top:1em;} -.referenctable .references {width:100%;} -.referencetable .references .reference .source {width:30%;} -.referencetable .references .reference .title {width:35%;} -.referencetable .references .reference .level {width:15%;} -.referencetable .references .reference .reftype {width:15%;} -.referencetable .references .reference .downref {width:5%;} -.reflinks {font-size:80%;float:right;} -.showmore {margin-top:1em;} -{% endblock %} + {% block content %}

        References to {{alias_name}}

        -
        -This is an experimental product. These dependencies are extracted using heuristics looking for strings with particular prefixes. Notably, this means that references to I-Ds by title only are not reflected here. If it's really important, please inspect the documents' references sections directly. -
        -
        + +

        + This is an experimental product. These dependencies are extracted using heuristics looking for strings with particular prefixes. Notably, this means that references to I-Ds by title only are not reflected here. If it's really important, please inspect the documents' references sections directly. +

        + +

        Showing RFCs and active Internet-Drafts, sorted by reference type, then document name. -

        +

        + {% if numdocs %} -
        -Results restricted to the first 250 of {{ numdocs }} documents. Show All -
        +
        +

        Showing only the first 250 of {{ numdocs }} documents.

        +

        Show all

        +
        {% endif %} -
        - - -{% for ref in refs %} - - - - - - - -{% endfor %} + +
        DocumentTitleStatusReference TypeDownref
        -{% with ref.source.canonical_name as name %} -{{name}} {% if ref.target.name != alias_name %}(as {{ref.target.name}}){% endif %} (refs, refby) -{% endwith %} - -{{ref.source.title}} - -{% ifequal ref.source.get_state.slug 'rfc' %} - {% with ref.source.std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%} -{% else %} - {% with ref.source.intended_std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%} -{% endifequal %} - -{{ref.relationship.name}} - -{{ref.is_downref|default:''}} -
        + + + + + + + + + + + {% for ref in refs %} + {% with ref.source.canonical_name as name %} + + + + + + + + {% endwith %} + {% endfor %} +
        DocumentTitleStatusTypeDownref
        + {{name}} + {% if ref.target.name != alias_name %} +
        As {{ref.target.name}} + {% endif %} +
        + {{ref.source.title}}
        + Refs + Ref'd by +
        + {% ifequal ref.source.get_state.slug 'rfc' %} + {% with ref.source.std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%} + {% else %} + {% with ref.source.intended_std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%} + {% endifequal %} + {{ref.relationship.name}}{{ref.is_downref|default:''}}
        -
        {% endblock %} diff --git a/ietf/templates/doc/document_references.html b/ietf/templates/doc/document_references.html index 070d9601c..40a139447 100644 --- a/ietf/templates/doc/document_references.html +++ b/ietf/templates/doc/document_references.html @@ -1,54 +1,51 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + {% block title %} References from {{doc.canonical_name}} {% endblock %} -{% block morecss %} -.referencetable {margin-top:1em;} -.referenctable .references {width:100%;} -.referencetable .references .reference .source {width:30%;} -.referencetable .references .reference .title {width:35%;} -.referencetable .references .reference .level {width:15%;} -.referencetable .references .reference .reftype {width:15%;} -.referencetable .references .reference .downref {width:5%;} -.reflinks {font-size:80%;float:right;} -{% endblock %} + {% block content %}

        References from {{doc.canonical_name}}

        -
        -This is an experimental product. These dependencies are extracted using heuristics looking for strings with particular prefixes. Notably, this means that references to I-Ds by title only are not reflected here. If it's really important, please inspect the documents' references sections directly. -
        -
        -Sorted by document name. -Reference type help -
        -
        - - -{% for ref in refs %} - - - - - - - -{% endfor %} + +

        + This is an experimental product. These dependencies are extracted using heuristics looking for strings with particular prefixes. Notably, this means that references to I-Ds by title only are not reflected here. If it's really important, please inspect the documents' references sections directly. +

        +

        +Reference type help +

        + +
        DocumentTitleStatusReference TypeDownref
        -{% with ref.target.name as name %} -{{name}} (refs, refby) -{% endwith %} - -{{ref.target.document.title}} - -{% ifequal ref.target.document.get_state.slug 'rfc' %} - {% with ref.target.document.std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%} -{% else %} - {% with ref.target.document.intended_std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%} -{% endifequal %} - -{{ref.relationship.name}} - -{{ref.is_downref|default:''}} -
        + + + + + + + + + + + {% for ref in refs %} + {% with ref.target.name as name %} + + + + + + + + {% endwith %} + {% endfor %}
        DocumentTitleStatusTypeDownref
        {{name}} + {{ref.target.document.title}}
        + Refs + Ref'd by +
        + {% ifequal ref.target.document.get_state.slug 'rfc' %} + {% with ref.target.document.std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%} + {% else %} + {% with ref.target.document.intended_std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%} + {% endifequal %} + {{ref.relationship.name}}{{ref.is_downref|default:''}}
        -
        + {% endblock %} diff --git a/ietf/templates/doc/document_status_change.html b/ietf/templates/doc/document_status_change.html index 8553a09e1..21a2209e3 100644 --- a/ietf/templates/doc/document_status_change.html +++ b/ietf/templates/doc/document_status_change.html @@ -1,137 +1,132 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} -{% block title %}{{ doc.canonical_name }}-{{ doc.rev }}{% endblock %} - -{% block pagehead %} - +{% block morecss %} +.edit { width: 1px } {% endblock %} +{% block title %}{{ doc.title }}{% endblock %} + {% block content %} {{ top|safe }} {% include "doc/revisions_list.html" %} -
        -
        - {% if snapshot %}Snapshot of{% endif %} - {% if doc.get_state_slug not in approved_states %}Proposed{% endif %} - Status change : - - {{ doc.title }} -
        + + + + + + -
        + {% if doc.get_state_slug not in approved_states %} + Proposed status change + {% else %} + Status change + {% endif %} + + {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug not in approved_states %} + Edit + {% endif %} + + {{ doc.title }} + {% if snapshot %} + Snapshot + {% endif %} +
        - {% regroup sorted_relations by relationship.name as relation_groups %} - {% for relation_group in relation_groups %} - - - - - {% endfor %} - - - + + + + + {% endfor %} - {% if not snapshot and user|has_role:"Area Director,Secretariat" %} + + + + + - {% if request.user|has_role:"Secretariat" %}{% if doc.get_state_slug = 'appr-pend' %} - - Approve RFC status changes - {% endif %}{% endif %} + + + + - + {% if ballot_summary %} +
        {{ ballot_summary }} + {% endif %} + + - - - + + + + - {% if ballot_summary %} -
        - ({{ ballot_summary }}) -
        - {% endif %} + + + + + - {% endif %} - - + + + + + +
        {{relation_group.grouper}}:{% for rel in relation_group.list %}{{rel.target.document.canonical_name|upper|urlize_ietf_docs}}{% if not forloop.last %}, {% endif %}{% endfor %}
        Review State: -
        - {{ doc.get_state.name }} + {% regroup sorted_relations by relationship.name as relation_groups %} + {% for relation_group in relation_groups %} +
        {{relation_group.grouper}}{% for rel in relation_group.list %}{{rel.target.document.canonical_name|upper|urlize_ietf_docs}}{% if not forloop.last %}, {% endif %}{% endfor %}
        Review state + {% if not snapshot and user|has_role:"Area Director,Secretariat" %} + Edit + {% endif %} + + {{ doc.get_state.name }} +
        Telechat date + {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug not in approved_states %} + Edit + {% endif %} + + {% if not telechat %} + (None) + {% else %} + On agenda of {{ telechat.telechat_date|date:"Y-m-d" }} IESG telechat + {% if doc.returning_item %}(returning item){% endif %} + {% endif %} - {% endif %} - -
        Telechat Date: - {% if not snapshot %} - - {% if not telechat %}Not on agenda of an IESG telechat{% else %}On agenda of {{ telechat.telechat_date|date:"Y-m-d" }} IESG telechat{% if doc.returning_item %} (returning item){% endif %}{% endif %} - +
        Shepherding AD + {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug not in approved_states %} + Edit + {% endif %} + + {{doc.ad}} +
        Send notices to + {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug not in approved_states %} + Edit + {% endif %} + + {{doc.notify}} +
        Last updated{{ doc.time|date:"Y-m-d" }}
        - - Shepherding AD: - - - {{doc.ad}} - - - +

        + {% if not snapshot and user|has_role:"Area Director,Secretariat" %} + {% if doc.get_state_slug not in approved_states %} + Edit affected RFCs + Edit last call text + {% endif %} - - Send notices to: - - - {{doc.notify}} - - - + {% if doc.get_state_slug != 'apprsent' %} + Edit status change text + {% endif %} + {% endif %} - -


        - - Last updated: {{ doc.time|date:"Y-m-d" }} - {% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug not in approved_states %} - - - - Edit Affected RFC List - - - - - Edit Last Call Text - - - - {% endif %} - - {% comment %} -
        - {% endcomment %} - - - -
        - -

        RFC Status Change : {{ doc.title }} - -{% if not snapshot and user|has_role:"Area Director,Secretariat" and doc.get_state_slug != 'apprsent' %} -Change status change text -{% endif %} -

        + {% if request.user|has_role:"Secretariat" and doc.get_state_slug = 'appr-pend' %} + Approve RFC status change + {% endif %} +

        {% if doc.rev %} -
        -{{ content|fill:"80"|safe|linebreaksbr|keep_spacing|sanitize_html|safe }} -
        + {{ content|fill:"80"|safe|linebreaksbr|keep_spacing|sanitize_html|safe }} {% endif %} {% endblock %} diff --git a/ietf/templates/doc/document_top.html b/ietf/templates/doc/document_top.html index 259315eda..25ee2e08a 100644 --- a/ietf/templates/doc/document_top.html +++ b/ietf/templates/doc/document_top.html @@ -1,9 +1,12 @@ -

        {{ doc.title }}
        {{ name }}

        +{% load ietf_filters %} -
        -
          - {% for name, t, url, active, tooltip in tabs %} -
        • {{ name }}
        • - {% endfor %} +

          {{ doc.title }}
          {{ name }}

          + + -
        +

        diff --git a/ietf/templates/doc/document_writeup.html b/ietf/templates/doc/document_writeup.html index aae69b4c9..d818b0d3a 100644 --- a/ietf/templates/doc/document_writeup.html +++ b/ietf/templates/doc/document_writeup.html @@ -1,28 +1,37 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load ietf_filters %} {% block title %}Writeups for {{ doc.name }}-{{ doc.rev }}{% endblock %} -{% block pagehead %} - -{% endblock %} - {% block content %} {{ top|safe }} {% for title, subtitle, writeups in sections %} -

        {{ title }}

        +

        + {{ title|capfirst_allcaps }} + {% if subtitle %} +
        {{ subtitle|safe }} + {% endif %} +

        -{% if subtitle %}

        {{ subtitle|safe }}

        {% endif %} + {% for name, text, url in writeups %} + {% if text %} +
        {{ text|urlize }}
        + {% endif %} -{% for name, text, url in writeups %} -
        -{% if can_edit %}{% if text %}Edit{% else %}Generate{% endif %} {{ name }}{% endif %} - -
        -{{ text }}
        -
        -
        +

        + {% if can_edit %} + + {% if text %} + Edit + {% else %} + Generate + {% endif %} + {{ name|lower_allcaps }} + + {% endif %} +

        + {% endfor %} {% endfor %} -{% endfor %} - {% endblock content %} diff --git a/ietf/templates/doc/draft/adopt_draft.html b/ietf/templates/doc/draft/adopt_draft.html index 5c3f46f75..01540c44d 100644 --- a/ietf/templates/doc/draft/adopt_draft.html +++ b/ietf/templates/doc/draft/adopt_draft.html @@ -1,43 +1,28 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Adopt {{ doc }} in Group{% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form.adopt-draft th { width: 8em; } -form.adopt-draft #id_comment { width: 30em; } -form.adopt-draft #id_weeks { width: 3em; } -form.adopt-draft .actions { text-align: right; padding-top: 1em; } -p.intro { max-width: 50em; } -{% endblock %} +{% block title %}Adopt {{ doc }} in group{% endblock %} {% block content %} -

        Adopt {{ doc }} in Group

        +

        Adopt {{ doc }} in group

        -

        You can adopt this draft into a group.

        +{% bootstrap_messages %} -

        For a WG, the draft enters the IETF stream and the +

        You can adopt this draft into a group. +For a WG, the draft enters the IETF stream and the stream state becomes "Call for Adoption by WG Issued". For an RG, the draft enters the IRTF stream and the stream state becomes "Active RG Document".

        -
        {% csrf_token %} - {% for field in form.hidden_fields %}{{ field }}{% endfor %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - -
        {{ field.label_tag }}{{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Cancel - -
        + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        + {% endblock %} diff --git a/ietf/templates/doc/draft/change_ad.html b/ietf/templates/doc/draft/change_ad.html index 4815e9db8..52dac710a 100644 --- a/ietf/templates/doc/draft/change_ad.html +++ b/ietf/templates/doc/draft/change_ad.html @@ -1,39 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} +{% load bootstrap3 %} -{% block title %} -Change the shepherding AD for {{ doc.name }}-{{ doc.rev }} -{% endblock %} +{% block title %}Change shepherding AD for {{ doc.name }}-{{ doc.rev }}{% endblock %} {% block content %} -

        Change the shepherding AD for {{ doc.name }}-{{ doc.rev }}

        +

        Change shepherding AD
        {{ doc.name }}-{{ doc.rev }}

        -
        {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
        {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Back - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/draft/change_consensus.html b/ietf/templates/doc/draft/change_consensus.html index 5e22bde5b..1c8d2c68b 100644 --- a/ietf/templates/doc/draft/change_consensus.html +++ b/ietf/templates/doc/draft/change_consensus.html @@ -1,21 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Change whether {{ doc.name }}-{{ doc.rev }} is the result of a consensus process{% endblock %} +{% load bootstrap3 %} + +{% block title %}Change consensus for {{ doc.name }}-{{ doc.rev }}{% endblock %} {% block content %} -

        Change whether {{ doc.name }}-{{ doc.rev }} is the result of a consensus process

        +

        Change consensus
        {{ doc.name }}-{{ doc.rev }}

        -
        {% csrf_token %} - - {{ form.as_table }} - - - - -
        - Back - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/draft/change_iana_state.html b/ietf/templates/doc/draft/change_iana_state.html index c7bb3fb98..d291b6818 100644 --- a/ietf/templates/doc/draft/change_iana_state.html +++ b/ietf/templates/doc/draft/change_iana_state.html @@ -1,24 +1,21 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Change IANA state of {{ doc }}{% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form table .actions { text-align: right; padding-top: 1em; } -{% endblock %} +{% block title %}Change IANA state for {{ doc }}{% endblock %} {% block content %} -

        Change IANA state of {{ doc }}

        +

        Change IANA state
        {{ doc }}

        -
        {% csrf_token %} - - {{ form.as_table }} - - - -
        - Back - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        - {% endblock %} diff --git a/ietf/templates/doc/draft/change_intended_status.html b/ietf/templates/doc/draft/change_intended_status.html index 836dc66bc..dc9163869 100644 --- a/ietf/templates/doc/draft/change_intended_status.html +++ b/ietf/templates/doc/draft/change_intended_status.html @@ -1,29 +1,21 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Change intended status for {{ doc }}{% endblock %} -{% block morecss %} -form.change-intended-status select { - width: 22em; -} -form.change-intended-status .actions { - text-align: right; - padding-top: 10px; -} -{% endblock %} - {% block content %} -

        Change intended status for {{ doc }}

        +

        Change intended status
        {{ doc }}

        -
        {% csrf_token %} - - {{ form.as_table }} - - - -
        - Back - -
        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/doc/draft/change_replaces.html b/ietf/templates/doc/draft/change_replaces.html index f1daf7ca2..2ba82a256 100644 --- a/ietf/templates/doc/draft/change_replaces.html +++ b/ietf/templates/doc/draft/change_replaces.html @@ -1,86 +1,39 @@ -{% extends "base.html" %} -{% block title %}Change which documents {{ doc }} replaces{% endblock %} -{% block pagehead %}{{ block.super }} - - - - - +{% extends "ietf.html" %} - +{% bootstrap_messages %} + +{% block pagehead %} + + {% endblock %} {% block content %} -

        Change which documents {{ doc }} replaces

        +

        Change documents replaced by
        {{ doc }}

        + +
        + {% csrf_token %} + +
        + + + Enter draft names, separated with commas. +
        + + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %} -{% csrf_token %} - {{ form.non_field_errors }} - {{ form.replaces.label_tag }} - - {{ form.replaces }} -
          - {{ form.replaces.errors }} - - - - - - - - -
          {{ form.comment.label_tag }}{{ form.comment.errors }} {{ form.comment }}
          - Back - -
          {% endblock %} + +{% block js %} + + +{% endblock %} diff --git a/ietf/templates/doc/draft/change_shepherd_writeup.html b/ietf/templates/doc/draft/change_shepherd_writeup.html index 0c2f835d8..5e9965608 100644 --- a/ietf/templates/doc/draft/change_shepherd_writeup.html +++ b/ietf/templates/doc/draft/change_shepherd_writeup.html @@ -1,40 +1,25 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -form #id_content { - width: 40em; - height: 450px; -} -{% endblock %} +{% load bootstrap3 %} {% block title %} Edit shepherd writeup for {{ doc.canonical_name }}-{{ doc.rev }} {% endblock %} {% block content %} -

          Edit shepherd writeup for {{ doc.canonical_name }}-{{ doc.rev }}

          +

          Edit shepherd writeup
          {{ doc.canonical_name }}-{{ doc.rev }}

          -
          {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
          {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
          {{ field.help_text }}
          {% endif %} - {{ field.errors }} -
          - Back - - -
          +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + + Back + {% endbuttons %}
          {% endblock %} diff --git a/ietf/templates/doc/draft/change_state.html b/ietf/templates/doc/draft/change_state.html index bf580af64..895dd69da 100644 --- a/ietf/templates/doc/draft/change_state.html +++ b/ietf/templates/doc/draft/change_state.html @@ -1,86 +1,69 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Change state of {{ doc }}{% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form.change-state select { width: 22em; } -form.change-state #id_comment { width: 30em; } -form.change-state .cancel-pub-note { width: 30em; color: #a00; } -form.change-state .actions { - text-align: right; - padding-top: 10px; -} -.next-states, -.prev-state { - margin-bottom: 30px; -} -.next-states form, -.prev-state form { - display: inline; - margin-right: 10px; -} -{% endblock %} +{% block title %}Change state for {{ doc }}{% endblock %} {% block content %} -

          Change state of {{ doc }}

          +

          Change state
          {{ doc }}

          -

          For help on the states, see the state table.

          +{% bootstrap_messages %} + +

          + Help on states +

          + +
          + {% csrf_token %} + {% bootstrap_form form %} -{% csrf_token %} - - {{ form.as_table }} {% if state and state.slug == "rfcqueue" %} - - - - + + Note: If you pull the draft out of the + {{ state.name }} state, the RFC Editor and IANA will be notified + by email with this comment, so they can update their queues. + {% endif %} - - - -
          Note: if you pull the draft out of the - {{ state.name }} state, the RFC Editor and IANA will be notified - by email with this comment so they can update their queues.
          - Back - -
          + + {% buttons %} + + Back + {% endbuttons %}
          {% if next_states %} -

          Or jump directly to

          +

          Or jump directly to

          -
          - {% for n in next_states %} -
          {% csrf_token %} - - -
          - {% endfor %} -
          +
          + {% for n in next_states %} +
          + {% csrf_token %} + + +
          + {% endfor %} +
          {% endif %} {% if to_iesg_eval %} -

          You could also jump directly to

          -
          -
          {% csrf_token %} - - -
          -

          - But the ballot for this document has not yet been issued. - Edit Ballot Text -

          -
          +

          You could also jump directly to

          + +
          + {% csrf_token %} + + + But the ballot for this document has not yet been issued. + Edit ballot text +
          {% endif %} {% if prev_state %} -

          Or revert to previous state

          +

          Or revert to previous state

          -
          -
          {% csrf_token %} - - -
          -
          +
          + {% csrf_token %} + + +
          {% endif %} {% endblock %} diff --git a/ietf/templates/doc/draft/change_stream.html b/ietf/templates/doc/draft/change_stream.html index 994d6c651..bd170cfd9 100644 --- a/ietf/templates/doc/draft/change_stream.html +++ b/ietf/templates/doc/draft/change_stream.html @@ -1,29 +1,20 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Change stream for {{ doc }}{% endblock %} -{% block morecss %} -form.change-stream select { - width: 22em; -} -form.change-stream .actions { - text-align: right; - padding-top: 10px; -} -{% endblock %} - {% block content %} -

          Change stream for {{ doc }}

          +

          Change stream
          {{ doc }}

          -
          {% csrf_token %} - - {{ form.as_table }} - - - -
          - Back - -
          +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + Back + {% endbuttons %}
          {% endblock %} diff --git a/ietf/templates/doc/draft/change_stream_state.html b/ietf/templates/doc/draft/change_stream_state.html index 7fa6fb433..6b220dac1 100644 --- a/ietf/templates/doc/draft/change_stream_state.html +++ b/ietf/templates/doc/draft/change_stream_state.html @@ -1,72 +1,43 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Change {{ state_type.label }} of {{ doc }}{% endblock %} +{% load bootstrap3 %} + +{% block title %}Change {{ state_type.label }} for {{ doc }}{% endblock %} -{% block morecss %} -.next-states { margin-bottom: 1em; } -.next-states a { - display: inline-block; - margin: 0 0.2em; - padding: 0.2em 0.3em; - border-radius: 0.2em; - cursor: pointer; - color: #333; - font-weight: bold; -} -.next-states a:hover { background-color: #eee; transition-duration: 0.2s; } -form.change-state th { max-width: 8em; } -form.change-state th, form.change-state td { padding-bottom: 0.3em; } -form.change-state #id_comment { width: 30em; } -form.change-state #id_weeks { width: 2em;} -form.change-state .actions { text-align: right; padding-top: 1em; } -form.change-state ul { padding: 0; margin: 0; } -form.change-state ul li { padding: 0; padding-bottom: 0.1em; margin: 0; list-style-type: none; } -form.change-state ul li input { vertical-align: middle; } -form.change-state ul li label { cursor: pointer; } -{% endblock %} {% block content %} -

          Change {{ state_type.label }} of {{ doc }}

          - -

          For help on the states, see the state table.

          +

          Change {{ state_type.label }}
          {{ doc }}

          {% if next_states %} -
          - Recommended next state{{ next_states|pluralize }}: - {% for state in next_states %}{{ state.name }} {% if not forloop.last %} or {% endif %}{% endfor %} -
          +

          + Move document to {{ next_states|pluralize:"to one of" }} the recommended next state{{ next_states|pluralize }}: +

          +

          + {% for state in next_states %} + + {% endfor %} + Help on states +

          {% endif %} -
          {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - -
          {{ field.label_tag }}{{ field }} - {% if field.help_text %}
          {{ field.help_text }}
          {% endif %} - - {{ field.errors }} -
          - Cancel - -
          + + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + Back + {% endbuttons %}
          {% endblock %} -{% block js %} - {% endblock %} diff --git a/ietf/templates/doc/draft/edit_iesg_note.html b/ietf/templates/doc/draft/edit_iesg_note.html index e604cb1d8..c627be641 100644 --- a/ietf/templates/doc/draft/edit_iesg_note.html +++ b/ietf/templates/doc/draft/edit_iesg_note.html @@ -1,34 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Edit IESG note for {{ doc.name }}{% endblock %} -{% block morecss %} -form.edit-iesg-note #id_note { - width: 600px; - height: 150px; -} -{% endblock %} - {% block content %} -

          Edit IESG note for {{ doc.name }}

          +

          Edit IESG note
          {{ doc.name }}

          -
          {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
          {{ field.label_tag }}{{ field }} - {% if field.help_text %}
          {{ field.help_text }}
          {% endif %} - {{ field.errors }}
          - Back - -
          +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
          + {% endblock %} diff --git a/ietf/templates/doc/draft/edit_info.html b/ietf/templates/doc/draft/edit_info.html index 7ca00b797..0d3d52513 100644 --- a/ietf/templates/doc/draft/edit_info.html +++ b/ietf/templates/doc/draft/edit_info.html @@ -1,64 +1,22 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Edit info on {{ doc }}{% endblock %} +{% load bootstrap3 %} +{% load ietf_filters %} -{% block scripts %} -function make_bold() -{ - var e = document.getElementById("ballotwarn"); - e.setAttribute("class","warning"); -} -{% endblock %} - -{% block morecss %} -form.edit-info #id_notify { - width: 600px; -} -form.edit-info #id_note { - width: 600px; - height: 150px; -} -form.edit-info .actions { - padding-top: 20px; -} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} +{% block title %}Edit info for {{ doc }}{% endblock %} {% block content %} -{% load ietf_filters %} -

          Edit info on {{ doc }}

          +

          Edit info
          {{ doc }}

          -
          {% csrf_token %} - - {% for field in form.standard_fields %} - - - - - {% endfor %} - - - - -
          {{ field.label_tag }}{{ field }} - {% if field.name == "telechat_date" %} - {% if not ballot_issued %} - A ballot for this document has not been issued: Edit Ballot Text - {% endif %} - {{ form.returning_item }} {{ form.returning_item.label_tag }} {{ form.returning_item.errors }} - {% endif %} - {% if field.name == "ad" %} - {% if user|has_role:"Area Director" %} - - {% endif %} - {% endif %} - {% if field.help_text %}
          {{ field.help_text }}
          {% endif %} - {{ field.errors }}
          - Back - -
          +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
          {% endblock %} diff --git a/ietf/templates/doc/draft/last_call_requested.html b/ietf/templates/doc/draft/last_call_requested.html index f7b3c571b..347c98273 100644 --- a/ietf/templates/doc/draft/last_call_requested.html +++ b/ietf/templates/doc/draft/last_call_requested.html @@ -1,17 +1,15 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Last Call Requested{% endblock %} +{% block title %}Last call requested{% endblock %} {% block content %} -

          Last Call Requested

          +

          Last call requested

          -

          Your request to issue the Last Call has been submitted to the Secretariat.

          +

          Your request to issue the last call has been submitted to the secretariat.

          -

          Note that the Last Call will not actually go out until the +

          Note that the last call will not actually go out until the secretariat takes appropriate steps. This may take up to one business day, as it involves a person taking action.

          -
          - Back -
          +Back {% endblock %} diff --git a/ietf/templates/doc/draft/make_last_call.html b/ietf/templates/doc/draft/make_last_call.html index 604c0dc90..f1f95fba5 100644 --- a/ietf/templates/doc/draft/make_last_call.html +++ b/ietf/templates/doc/draft/make_last_call.html @@ -1,39 +1,28 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Make Last Call for {{ doc.name }}{% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form.approve-ballot pre { - margin: 0; - padding: 4px; - border-top: 4px solid #eee; - border-bottom: 4px solid #eee; -} -form.approve-ballot .announcement { - overflow-x: auto; - overflow-y: scroll; - width: 800px; - height: 400px; - border: 1px solid #bbb; -} -{% endblock %} +{% block title %}Make last call for {{ doc.name }}{% endblock %} {% block content %} -

          Make Last Call for {{ doc.name }}

          +

          Make last call
          {{ doc.name }}

          -

          Make last call for following draft:

          +{% bootstrap_messages %} -
          {{ doc.file_tag }} ({{ doc.group.acronym }}) - {{ doc.intended_std_level.name }}
          +

          + Last call for: + {{ doc.name }} ({{ doc.group.acronym }}) to {{ doc.intended_std_level.name }} +

          -
          {% csrf_token %} - - {{ form.as_table }} -
          + + {% csrf_token %} + {% bootstrap_form form %} -
          - Back - - -
          + {% buttons %} + + + Back + {% endbuttons %}
          + {% endblock %} diff --git a/ietf/templates/doc/draft/request_publication.html b/ietf/templates/doc/draft/request_publication.html index 32aadcc40..370107bca 100644 --- a/ietf/templates/doc/draft/request_publication.html +++ b/ietf/templates/doc/draft/request_publication.html @@ -1,46 +1,53 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Request publication for {{ doc }}{% endblock %} -{% block morecss %} -p.warning { color: #a00; font-weight: bold; } -form.request-publication #id_subject, -form.request-publication #id_body { width: 50em; } -form.request-publication #id_body { height: 30em; } -{% endblock %} - {% block content %} -

          Request publication for {{ doc }}

          +

          Request publication
          {{ doc }}

          -

          Send a publication request to the RFC Editor for {{ doc }} and move -it to the {{ next_state.name }} stream state.

          +{% bootstrap_messages %} + +

          + Send a publication request to the RFC Editor for {{ doc }} and move it to the {{ next_state.name }} stream state. + Please edit the message and remove any parts in brackets you do not +fill in. For independent submissions, see the guidelines. +

          {% if not doc.intended_std_level %} -

          Note: Intended RFC status is not set for the document.

          +

          + Note: Intended RFC status is not set for the document. +

          {% endif %} {% if doc.stream_id != "ise" and not consensus_filled_in %} -

          Note: Consensus status is not set for the document.

          +

          + Note: Consensus status is not set for the document. +

          {% endif %} +
          + {% csrf_token %} -

          Please edit the message and remove any parts in brackets you do not -fill in. For independent submissions, see the guidelines.

          +
          + + +
          -{% csrf_token %} - - - - - - - - -
          From: {{ message.frm }}
          To: {{ message.to }}
          Subject: {{ form.subject }} {{ form.subject.errors }}
          Message: {{ form.body }} {{ form.body.errors }}
          - Cancel - - -
          +
          + + +
          + + {% bootstrap_form form %} + + {% buttons %} + + + Back + {% endbuttons %}
          + {% endblock %} diff --git a/ietf/templates/doc/draft/request_resurrect.html b/ietf/templates/doc/draft/request_resurrect.html index 8871015b8..76dd57353 100644 --- a/ietf/templates/doc/draft/request_resurrect.html +++ b/ietf/templates/doc/draft/request_resurrect.html @@ -1,19 +1,21 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Request resurrection of {{ doc }}{% endblock %} +{% block title %}Request resurrection for {{ doc }}{% endblock %} {% block content %} -

          Request resurrection of {{ doc }}

          +

          Request resurrection
          {{ doc }}

          -
          {% csrf_token %} -

          Request resurrection of the Internet Draft {{ doc.file_tag }}?

          +

          Request resurrection of the Internet-Draft {{ doc.file_tag }}?

          -

          This will send a notification to the Secretariat to resurrect the - I-D.

          +

          This will send a notification to the Secretariat to resurrect the I-D.

          -
          - Back - -
          + + {% csrf_token %} + +
          + + Back +
          + {% endblock %} diff --git a/ietf/templates/doc/draft/resurrect.html b/ietf/templates/doc/draft/resurrect.html index 5942abdcd..174d80e42 100644 --- a/ietf/templates/doc/draft/resurrect.html +++ b/ietf/templates/doc/draft/resurrect.html @@ -1,18 +1,24 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Resurrect {{ doc }}{% endblock %} {% block content %} -
          {% csrf_token %} -

          Resurrect {{ doc }}

          - -

          Resurrect {{ doc.file_tag }}?

          -

          This will change the status to Active{% if doc.idinternal.resurrect_requested_by %} and email a notice to {{ doc.idinternal.resurrect_requested_by }}{% endif %}.

          +

          Resurrect
          {{ doc }}

          -
          - Back - -
          +

          Resurrect {{ doc }}?

          + +

          + This will change the status to Active {% if doc.idinternal.resurrect_requested_by %} and email a notice to {{ doc.idinternal.resurrect_requested_by }}{% endif %}. +

          + + + {% csrf_token %} + +
          + + Back +
          + {% endblock %} diff --git a/ietf/templates/doc/draft/rfceditor_post_approved_draft_failed.html b/ietf/templates/doc/draft/rfceditor_post_approved_draft_failed.html index d27cd3ed7..fd15e1b40 100644 --- a/ietf/templates/doc/draft/rfceditor_post_approved_draft_failed.html +++ b/ietf/templates/doc/draft/rfceditor_post_approved_draft_failed.html @@ -1,10 +1,9 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Posting Approved Draft to RFC Editor Failed{% endblock %} +{% block title %}Posting approved I-D to RFC Editor failed{% endblock %} {% block content %} -

          Posting Approved Draft to RFC Editor Failed

          +

          Posting approved I-D to RFC Editor failed

          Sorry, when trying to notify the RFC Editor through HTTP, we hit an error.

          @@ -14,13 +13,11 @@ yet so if this is an intermittent error, you can go back and try again.

          The error was:

          -

          {{ error }}

          {% if response %} -

          The response from the RFC Editor was:

          - -

          {{ response|linebreaksbr }}

          +

          The response from the RFC Editor was:

          +

          {{ response|linebreaksbr }}

          {% endif %} {% endblock %} diff --git a/ietf/templates/doc/drafts_for_ad.html b/ietf/templates/doc/drafts_for_ad.html index 725967c6a..89b57a999 100644 --- a/ietf/templates/doc/drafts_for_ad.html +++ b/ietf/templates/doc/drafts_for_ad.html @@ -1,15 +1,8 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Documents for {{ ad_name }}{% endblock %} {% block content %}

          Documents for {{ ad_name }}

          - {% include "doc/search/search_results.html" %} - -{% endblock %} - -{% block js %} - - {% endblock %} diff --git a/ietf/templates/doc/drafts_in_iesg_process.html b/ietf/templates/doc/drafts_in_iesg_process.html index dc4a1b9de..be6e0a5ec 100644 --- a/ietf/templates/doc/drafts_in_iesg_process.html +++ b/ietf/templates/doc/drafts_in_iesg_process.html @@ -1,15 +1,11 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} +{% extends "ietf.html" %} {% load ietf_filters %} {% block pagehead %} -{% if last_call_only %}{% endif %} -{% endblock %} - -{% block morecss %} -th.area, td.area { text-align: left; padding-right: 0.5em; } -th.date, td.date { text-align: left; padding-right: 0.5em; white-space: nowrap; } +{% if last_call_only %} + +{% endif %} {% endblock %} {% block title %}{{ title }}{% endblock %} @@ -17,51 +13,41 @@ th.date, td.date { text-align: left; padding-right: 0.5em; white-space: nowrap; {% block content %}

          {{ title }}

          -{% for state, docs in grouped_docs %} -

          {{ state.name }}

          + + + + + + + + + + {% for state, docs in grouped_docs %} + -
          Area{% if state.slug == "lc" %}Expires at{% else %}Date{% endif %}Document
          {{ state.name }}
          - - - - + {% for doc in docs %} + + + - {% for doc in docs %} - - - - - - - - - - - - - - - - - - - - {% if doc.note %} - - - - - - {% endif %} - - {% endfor %} + + + {% endfor %} + {% endfor %} +
          Area{% if state.slug == "lc" %}Expires at{% else %}Date{% endif %}
          {% if doc.area_acronym %}{{ doc.area_acronym }}{% endif %} + {% if state.slug == "lc" %} + {% if doc.lc_expires %}{{ doc.lc_expires|date:"Y-m-d" }}{% endif %} + {% else %} + {{ doc.time|date:"Y-m-d" }} + {% endif %} +
          {% if doc.area_acronym %}{{ doc.area_acronym.upper }}{% endif %} - {% if state.slug == "lc" %} - {% if doc.lc_expires %}{{ doc.lc_expires|date:"M j, Y" }}{% endif %} - {% else %} - {{ doc.time|date:"M j, Y" }} - {% endif %} - {{ doc.title }} ({{ doc.intended_std_level.name }})
          {{ doc.name }}
          AD:{{ doc.ad.plain_name }}
          Note:{{ doc.note|linebreaksbr|urlize }}
          + {{ doc.title }} ({{ doc.intended_std_level.name }}) +
          {{ doc.name }} +
          AD: {{ doc.ad.plain_name }} + {% if doc.note %} +
          Note: {{ doc.note|linebreaksbr|urlize }} + {% endif %} +
          -{% endfor %} {% endblock %} diff --git a/ietf/templates/doc/drafts_in_last_call.html b/ietf/templates/doc/drafts_in_last_call.html index 9416973d5..1ced23dfe 100644 --- a/ietf/templates/doc/drafts_in_last_call.html +++ b/ietf/templates/doc/drafts_in_last_call.html @@ -1,15 +1,10 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Internet-Drafts in IETF Last Call{% endblock %} +{% block title %}Internet-Drafts in IETF last call{% endblock %} {% block content %} -

          Internet-Drafts in IETF Last Call

          +

          Internet-Drafts in IETF last call

          {% include "doc/search/search_results.html" %} {% endblock %} - -{% block js %} - - -{% endblock %} diff --git a/ietf/templates/doc/edit_notify.html b/ietf/templates/doc/edit_notify.html index 8b49178ae..571f82f02 100644 --- a/ietf/templates/doc/edit_notify.html +++ b/ietf/templates/doc/edit_notify.html @@ -1,43 +1,25 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -form.edit-info #id_notify { - width: 600px; -} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} +{% load bootstrap3 %} {% block title %} -Edit notification addresses for {{titletext}} +Edit notification addresses for {{titletext}} {% endblock %} {% block content %} -

          Edit notification addresses for {{titletext}}

          +

          Edit notification addresses
          {{titletext}}

          -
          {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
          {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
          {{ field.help_text }}
          {% endif %} - {{ field.errors }} -
          - Back - - -
          +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + + Back + {% endbuttons %}
          {% endblock %} diff --git a/ietf/templates/doc/edit_telechat_date.html b/ietf/templates/doc/edit_telechat_date.html index 92634699b..fce2d912b 100644 --- a/ietf/templates/doc/edit_telechat_date.html +++ b/ietf/templates/doc/edit_telechat_date.html @@ -1,36 +1,30 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %} -Set Telechat Date for {{ doc.name }} -{% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form.telechat-date td.actions { - padding-top: 1em; -} -{% endblock %} +{% block title %}Set telechat date for {{ doc.name }}{% endblock %} {% block content %} -{% load ietf_filters %} -

          Set Telechat Date for {{ doc.name }}

          +

          Set telechat date
          {{ doc.name }}

          -
          {% csrf_token %} - - {{ form.as_table }} - - - - -
          - Back - -
          +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
          + {% if prompts %} -
          -{% for prompt in prompts %} -
          {{prompt}}
          -{% endfor %} -
          + {% for prompt in prompts %} + {# XXX FACELIFT: check what this is #} +
          {{prompt}}
          + } + {% endfor %} {% endif %} + {% endblock %} diff --git a/ietf/templates/doc/frontpage.html b/ietf/templates/doc/frontpage.html index 545b935ef..3f114896f 100644 --- a/ietf/templates/doc/frontpage.html +++ b/ietf/templates/doc/frontpage.html @@ -1,78 +1,34 @@ -{% extends "base.html" %} -{% comment %} -Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). -All rights reserved. Contact: Pasi Eronen - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of the Nokia Corporation and/or its - subsidiary(-ies) nor the names of its contributors may be used - to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -{% endcomment %} +{% extends "ietf.html" %} {% block title %}IETF Datatracker{% endblock %} -{% block morecss %} -.ietf-main-title h1 { font-size:40px; font-weight:bold; margin-bottom:10px; margin-top:5px;} -td.ietf-main-logo { padding: 8px; } -.ietf-main-logo div { text-align:center; } -td.ietf-main-search { width:650px; padding:8px; } -td.ietf-main-intro { width:200px; background:#fff5df; padding:8px; border:1px solid #cccccc; } -.ietf-main-intro li { padding-left:0; margin-left:0; } -.ietf-main-intro ul { margin-left:5px; padding-left:10px; } -{% endblock %} - {% block content %} - - - - - +
          +
          + +

          Datatracker

          + {% ifnotequal server_mode "production" %} +

          Development Mode

          + {% endifnotequal %} +

          +
          - - - - -

          IETF Datatracker

            -The IETF Datatracker is the IETF's web system for managing information -about: - -
          +
          +
          +

          About

          +

          The IETF Datatracker is the IETF's web system for managing organizational information, such as:

          + +
          +
          +

          Search Documents

          + {% include "doc/search/search_form.html" %} + +
          +
          {% endblock content %} - -{% block js %} - - -{% endblock %} diff --git a/ietf/templates/doc/index_active_drafts.html b/ietf/templates/doc/index_active_drafts.html index f8d55a83b..e4a7899ca 100644 --- a/ietf/templates/doc/index_active_drafts.html +++ b/ietf/templates/doc/index_active_drafts.html @@ -1,9 +1,4 @@ -{% extends "base.html" %} - -{% block morecss %} -.contents { max-width: 50em; } -.contents a { float: left; width: 7em; margin-right: 2em; } -{% endblock %} +{% extends "ietf.html" %} {% block title %}Active Internet-Drafts{% endblock %} @@ -18,19 +13,24 @@ group. For normal use, it is recommended to use the Internet-Drafts (that page also lists some machine-readable files for download).

          -

          -{% for group in groups %}{{ group.acronym }} {% endfor %} +

          + {% for group in groups %} + {{ group.acronym }} + {% endfor %}

          -
          - {% for group in groups %} -

          {{ group.name }} ({{ group.acronym }})

          -{% for d in group.active_drafts %} -

          {{ d.title }}
          -{% for a in d.authors %}{{ a }}{% if not forloop.last %}, {% endif %}{% endfor %}
          -{{ d.name }}-{{ d.rev }} ({{ d.rev_time|date:"Y-m-d" }})

          -{% endfor %} +

          {{ group.name }} ({{ group.acronym }})

          + {% for d in group.active_drafts %} +

          + {{ d.title }}.
          + {% for a in d.authors %} + {{ a }}{% if not forloop.last %}, {% else %}.{% endif %} + {% endfor %} +
          {{ d.name }}-{{ d.rev }} +
          {{ d.rev_time|date:"Y-m-d" }} +

          + {% endfor %} {% endfor %} {% endblock %} diff --git a/ietf/templates/doc/index_all_drafts.html b/ietf/templates/doc/index_all_drafts.html index 66c7582b6..09b824162 100644 --- a/ietf/templates/doc/index_all_drafts.html +++ b/ietf/templates/doc/index_all_drafts.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}Index of all Internet-Drafts and RFCs{% endblock %} @@ -10,16 +10,16 @@ this page is to ensure all pages can be found by search engines. For normal use, it is recommended to use the search page.

          -

          There's also an index of +

          There is also an index of active Internet-Drafts with more information.

          In addition, the following files are available for download:

          Contents

          @@ -28,14 +28,13 @@ active Internet-Drafts with more information.

          {% for state, heading, count, links in categories %} -

          {{ heading }} ({{ count }})

          - - +

          {{ heading }} ({{ count }})

          + {% endfor %} {% endblock %} diff --git a/ietf/templates/doc/relationship_help.html b/ietf/templates/doc/relationship_help.html index e6f970e1f..56370699b 100644 --- a/ietf/templates/doc/relationship_help.html +++ b/ietf/templates/doc/relationship_help.html @@ -1,29 +1,27 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Document Relationships{% endblock %} - -{% block morecss %} -.ietf-table .name { white-space: nowrap; padding-right: 1em; } -.ietf-table .desc { max-width: 35em; } -{% endblock %} +{% block title %}Document relationships{% endblock %} {% block content %} -

          Document Relationships

          +

          Document relationships

          - - - - - - - - {% for rel in relations %} - - - - - - {% endfor %} +
          RelationshipDescriptionInverse Relationship
          {{ rel.name }}{{ rel.desc|linebreaksbr }}{{ rel.revname }}
          + + + + + + + + + {% for rel in relations %} + + + + + + {% endfor %} +
          RelationshipDescriptionInverse relationship
          {{ rel.name }}{{ rel.desc|linebreaksbr }}{{ rel.revname }}
          {% endblock %} diff --git a/ietf/templates/doc/revisions_list.html b/ietf/templates/doc/revisions_list.html index 0c23b878a..8aca86ff5 100644 --- a/ietf/templates/doc/revisions_list.html +++ b/ietf/templates/doc/revisions_list.html @@ -1,8 +1,8 @@ -
          - Versions: - - {% for rev in revisions %} - {{ rev }} - {% endfor %} - -
          + diff --git a/ietf/templates/doc/search/ipr_column_with_label.html b/ietf/templates/doc/search/ipr_column_with_label.html deleted file mode 100644 index e1e4eed27..000000000 --- a/ietf/templates/doc/search/ipr_column_with_label.html +++ /dev/null @@ -1,5 +0,0 @@ - - {% if doc.type_id == "draft" and doc.ipr %} - IPR: {{ doc.ipr|length }} - {% endif %} - diff --git a/ietf/templates/doc/search/search.html b/ietf/templates/doc/search/search.html index 3a69707fa..7daec5833 100644 --- a/ietf/templates/doc/search/search.html +++ b/ietf/templates/doc/search/search.html @@ -1,19 +1,13 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Search Internet-Drafts and RFCs{% endblock %} +{% block title %}Search documents{% endblock %} {% block content %} -

          Search Internet-Drafts and RFCs

          +

          Search documents

          -
          {% include "doc/search/search_form.html" %} -
          - -{% if meta.searching %}{% include "doc/search/search_results.html" %}{% endif %} +{% if meta.searching %} + {% include "doc/search/search_results.html" %} +{% endif %} {% endblock content %} - -{% block js %} - - -{% endblock %} diff --git a/ietf/templates/doc/search/search_form.html b/ietf/templates/doc/search/search_form.html index 277f4476e..3f1cfe01b 100644 --- a/ietf/templates/doc/search/search_form.html +++ b/ietf/templates/doc/search/search_form.html @@ -1,92 +1,134 @@ -{% comment %} -Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -All rights reserved. Contact: Pasi Eronen +{% load widget_tweaks %} +{% load ietf_filters %} -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +
          - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of the Nokia Corporation and/or its - subsidiary(-ies) nor the names of its contributors may be used - to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -{% endcomment %} - - - -
          - {{ form.name }} -
          - -
          - - - - - -
          +
          + {{ form.name|add_class:"form-control"|attr:"placeholder:Document name, number, title, etc." }} + + +
          {{ form.sort }} {# hidden field #} - Advanced +
          +
          + +
          +
          +
          +
          + +
          +
          +
          + +
          +
          + +
          +
          + +
          -
          + {% for doc_type in form.doctypes %} +
          + +
          + {% endfor %} +
          +
          -
          - - -{% for doc_type in form.doctypes %} - -{% endfor %} -
          -
          +
          +
          + + +
          +
          + {{ form.author|add_class:"form-control" }} +
          +
          -Additional search criteria: +
          +
          + + +
          +
          + {{ form.group|add_class:"form-control" }} +
          +
          -
          - {{ form.author }} -
          -
          - {{ form.group }} -
          -
          - {{ form.area }} -
          -
          - {{ form.ad }} -
          -
          - {{ form.state }} :: {{ form.substate }} -
          -
          - {{ form.stream }} -
          -
          +
          +
          + + +
          +
          + {{ form.area|add_class:"form-control" }} +
          +
          -
          - +
          +
          + + +
          +
          + {{ form.ad|add_class:"form-control" }} +
          +
          + +
          +
          + + +
          +
          + {{ form.state|add_class:"form-control col-sm-4" }} +
          +
          + {{ form.substate|add_class:"form-control" }} +
          +
          + +
          +
          + + +
          +
          + {{ form.stream|add_class:"form-control" }} +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          - + diff --git a/ietf/templates/doc/search/search_result_row.html b/ietf/templates/doc/search/search_result_row.html index 02c2d1cc3..28ac47785 100644 --- a/ietf/templates/doc/search/search_result_row.html +++ b/ietf/templates/doc/search/search_result_row.html @@ -1,84 +1,83 @@ -{% comment %} -Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -All rights reserved. Contact: Pasi Eronen - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of the Nokia Corporation and/or its - subsidiary(-ies) nor the names of its contributors may be used - to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -{% endcomment %} - +{% load widget_tweaks %} {% load ietf_filters %} - -{% if user.is_authenticated %} - {% if not doc.name in have_doc_status %} - - {% elif doc.name in doc_is_tracked %} - - Remove from your personal ID list + + + + + {% if user.is_authenticated %} + {% if not doc.name in have_doc_status %} + {% elif doc.name in doc_is_tracked %} + + + + {% else %} + + + + {% endif %} + {% endif %} - {% else %} - - Add to your personal ID list - - {% endif %} -{% endif %} + - {% if doc.get_state_slug == "rfc" %}RFC {{ doc.rfc_number }}{% else %}{{ doc.name }}-{{ doc.rev }}{% endif %} +

          + {% if doc.get_state_slug == "rfc" %}RFC {{ doc.rfc_number }}{% else %}{{ doc.name }}-{{ doc.rev }}{% endif %} - {% if doc.get_state_slug == "rfc" and "draft" in doc.name %} -
          (was {{ doc.name }}) - {% endif %} + {% if doc.get_state_slug == "rfc" and "draft" in doc.name %} + (was {{ doc.name }}) + {% endif %} +
          + {{ doc.title }} + {% if doc.has_errata %} + + Errata + + {% endif %} + + {% if doc.pages %} +
          {{doc.pages}} page{{ doc.pages|pluralize }} + {% endif %} +

          + + {% if user|has_role:"Secretariat" and doc.reschedule_form %} +
          + + {{ doc.reschedule_form.telechat_date|add_class:"form-control input-sm" }} +
          + {% if doc.reschedule_form.show_clear %} +
          + +
          + {% endif %} + {% endif %} -{{ doc.title }} + + {% if doc.latest_revision_date|timesince_days|new_enough:request and doc.get_state_slug != "rfc" %}{% endif %}{% if doc.get_state_slug == "rfc" %}{{ doc.latest_revision_date|date:"Y-m" }}{% else %}{{ doc.latest_revision_date|date:"Y-m-d" }}{% endif %}{% if doc.latest_revision_date|timesince_days|new_enough:request %}{% if doc.get_state_slug != "rfc" %}{% endif %} + New + {% endif %} - - {% if doc.get_state_slug == "rfc" %}{{ doc.latest_revision_date|date:"Y-m" }}{% else %}{{ doc.latest_revision_date|date:"Y-m-d" }}{% endif %} - - {% if doc.latest_revision_date|timesince_days|new_enough:request %} -
          new
          - {% endif %} - - {% if doc.get_state_slug == "active" and doc.expirable and doc.expires|timesince_days|expires_soon:request %} -
          expires soon
          - {% endif %} + {% if doc.get_state_slug == "active" and doc.expirable and doc.expires|timesince_days|expires_soon:request %} + Expires soon + {% endif %} {% include "doc/search/status_columns.html" %} - - {% if doc.iprs %} - {{ doc.iprs|length }} - {% endif %} + + {% if doc.iprs %} + + {{ doc.iprs|length }} + + {% endif %} {% if ad_name == None or ad_name != doc.ad.plain_name %} -{{ doc.ad|default:"" }}
          {{doc.shepherd|default:""}}
          + + {% if doc.ad %} +

          {{ doc.ad|default:"" }}

          + {% endif %} + {{doc.shepherd|default:""}} + {% endif %} diff --git a/ietf/templates/doc/search/search_results.html b/ietf/templates/doc/search/search_results.html index 2c9d77756..4a00709d4 100644 --- a/ietf/templates/doc/search/search_results.html +++ b/ietf/templates/doc/search/search_results.html @@ -1,76 +1,57 @@ -{% comment %}{% endcomment %} - {% load ietf_filters %} -
          -{% if not docs %} - {% if not skip_no_matches_warning %} -

          No documents match your query.

          - {% endif %} +{% if not docs and not skip_no_matches_warning %} +
          + No documents match your query. +
          {% else %} {% if meta.max %} -

          Too many documents match the query! Returning partial result only.

          +
          + Too many documents match your query! Returning only a partial result. +
          {% endif %} - - - {% if show_add_to_list and user.is_authenticated %}{% endif %} +
          + + + - {% for h in meta.headers %} - - {% endfor %} - + {% for h in meta.headers %} + {% if h.title != "Title" %} + + {% endif %} + {% endfor %} + + -{% regroup docs by search_heading as grouped_docs %} + {% regroup docs by search_heading as grouped_docs %} -{% for doc_group in grouped_docs %} - + + {% for doc_group in grouped_docs %} + + + + - {% for doc in doc_group.list %} - {% include "doc/search/search_result_row.html" %} - {% endfor %} -{% endfor %} + {% for doc in doc_group.list %} + {% include "doc/search/search_result_row.html" %} + {% endfor %} + {% endfor %} +
          + {% if show_add_to_list and user.is_authenticated %} + + {% endif %} + - {% if "sort_url" in h %} - {{ h.title }} - - {% else %} - {{ h.title }} - {% endif %} -
          + {% if "sort_url" in h %} + {{ h.title }} + {% if h.sorted %}{% endif %} + + {% else %} + {{ h.title }} + {% endif %} +
          {{ doc_group.grouper|plural:doc_group.list }}
          + {{ doc_group.grouper|plural:doc_group.list }} +
          {% endif %} - -
          diff --git a/ietf/templates/doc/search/status_columns.html b/ietf/templates/doc/search/status_columns.html index 71135cebf..0406e6767 100644 --- a/ietf/templates/doc/search/status_columns.html +++ b/ietf/templates/doc/search/status_columns.html @@ -1,43 +1,61 @@ -{% load ietf_filters %}{% load ballot_icon %} +{% load ietf_filters ballot_icon %} + - {{ doc.friendly_state|safe }} {% if not doc.get_state_slug == "rfc" %}{{ doc|state_age_colored }}{% endif %} +
          + {% ballot_icon doc %} +
          - {% block extra_status %} - {% if doc.telechat_date %}
          IESG Telechat: {{ doc.telechat_date }}{% endif %} - {% endblock %} + {% if not doc.get_state_slug == "rfc" %} + {% if '::' in doc.friendly_state %} + {{ doc.friendly_state|safe|split:"::"|join:"::" }} + {% else %} + {{ doc.friendly_state|safe }} + {% endif %} - {% if doc.get_state_slug != "rfc" %}{# I-D #} + {{ doc|state_age_colored:"facelift" }} - {% if doc|state:"draft-rfceditor" %} -
          RFC Editor State: {{ doc|state:"draft-rfceditor" }} - {% endif %} + {% if doc.telechat_date %} +
          IESG telechat: {{ doc.telechat_date }} + {% endif %} - {% if doc.stream %} -
          - {% if doc|state:"stream" %}{{ doc|state:"stream" }}{% else %}{{ doc.stream }}{% endif %} + {% with doc.active_defer_event as defer %} + {% if defer %} +
          Deferred by {{ defer.by }} on {{ defer.time|date:"Y-m-d" }}) + {% endif %} + {% endwith %} - {% if doc.milestones %} - {% for m in doc.milestones %}{{ m.due|date:"M Y" }}{% endfor %} - {% endif %} - {% endif %} + {% if doc.intended_std_level %} +
          {{ doc.intended_std_level }} + {% endif %} - {% else %}{# RFC #} + {% for m in doc.milestones %} + {{ m.due|date:"M Y" }} + {% endfor %} - {% if doc.obsoleted_by_list %} -
          Obsoleted by {{ doc.obsoleted_by_list|join:", "|urlize_ietf_docs }}
          - {% endif %} + {% if doc|state:"draft-rfceditor" %} +
          RFC Editor: {{ doc|state:"draft-rfceditor" }} + {% endif %} - {% if doc.updated_by_list %} -
          Updated by {{ doc.updated_by_list|join:", "|urlize_ietf_docs }}
          - {% endif %} + {% else %}{# RFC #} + {{ doc.std_level|safe }} RFC + + {% if doc.obsoleted_by_list %} +
          Obsoleted by {{ doc.obsoleted_by_list|join:", "|urlize_ietf_docs }} + {% endif %} + + {% if doc.updated_by_list %} +
          Updated by {{ doc.updated_by_list|join:", "|urlize_ietf_docs }} + {% endif %} + {% endif %} + + {% if doc.stream %} +
          + {% if doc|state:"stream" %} + {{ doc|state:"stream" }} + {% else %} + {{ doc.stream }} RFC stream + {% endif %} + {% endif %} - {% if doc.has_errata %} - - {% endif %} - {% endif %} - - - - {% ballot_icon doc %} diff --git a/ietf/templates/doc/shepherd_writeup.html b/ietf/templates/doc/shepherd_writeup.html index e62e4737b..2aba9897d 100644 --- a/ietf/templates/doc/shepherd_writeup.html +++ b/ietf/templates/doc/shepherd_writeup.html @@ -1,25 +1,20 @@ -{% extends "base.html" %} - -{% block morecss %} -form #id_content { - width: 40em; - height: 450px; -} -{% endblock %} +{% extends "ietf.html" %} {% block title %} Shepherd writeup for {{ doc.canonical_name }}-{{ doc.rev }} {% endblock %} {% block content %} -

          Shepherd writeup for {{ doc.canonical_name }}-{{ doc.rev }}

          +

          Shepherd writeup
          {{ doc.canonical_name }}-{{ doc.rev }}

          -
          {{writeup}}
          - -Back +
          {{writeup}}
          {% if can_edit %} -{% url "doc_edit_shepherd_writeup" name=doc.name as doc_edit_url %}{% if doc_edit_url %}Edit{% endif %} + {% url "doc_edit_shepherd_writeup" name=doc.name as doc_edit_url %} + {% if doc_edit_url %} + Edit + {% endif %} {% endif %} +Back {% endblock %} diff --git a/ietf/templates/doc/state_help.html b/ietf/templates/doc/state_help.html index a328d6c87..3c0624e5b 100644 --- a/ietf/templates/doc/state_help.html +++ b/ietf/templates/doc/state_help.html @@ -1,57 +1,59 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %}{{ title }}{% endblock %} -{% block morecss %} -.ietf-table .name { white-space: nowrap; padding-right: 1em; } -.ietf-table .desc { max-width: 35em; } -{% endblock %} - {% block content %}

          {{ title }}

          {% if state_type.slug == "draft-iesg" %} -

          View Diagram

          +

          View diagram

          {% endif %} - - - - - {% if has_next_states %}{% endif %} - - - {% for state in states %} - - - - {% if has_next_states %} - - {% endif %} - - {% endfor %} +
          StateDescriptionNext State
          {{ state.name }}{{ state.desc|safe|linebreaksbr }} - {% for s in state.next_states.all %} - {{ s.name }}
          - {% endfor %} -
          + + + + + {% if has_next_states %}{% endif %} + + + + {% for state in states %} + + + + {% if has_next_states %} + + {% endif %} + + {% endfor %} +
          StateDescriptionNext State
          {{ state.name }}{{ state.desc|safe|linebreaksbr }} + {% for s in state.next_states.all %} + {{ s.name }}
          + {% endfor %} +
          {% if tags %} -

          Tags

          +

          Tags

          - - - - - +
          TagDescription
          + + + + + + - {% for tag in tags %} - - - - - {% endfor %} -
          TagDescription
          {{ tag.name }}{{ tag.desc|linebreaksbr }}
          + + {% for tag in tags %} + + {{ tag.name }} + {{ tag.desc|linebreaksbr }} + + {% endfor %} + + {% endif %} {% endblock %} diff --git a/ietf/templates/doc/status_change/approve.html b/ietf/templates/doc/status_change/approve.html index 5294e71b6..cc11ace6a 100644 --- a/ietf/templates/doc/status_change/approve.html +++ b/ietf/templates/doc/status_change/approve.html @@ -1,41 +1,21 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Approve {{doc.canonical_name }}{% endblock %} -{% block morecss %} -textarea[id^="id_form-"][id$="-announcement_text"] { - overflow-x: auto; - overflow-y: scroll; - width: 800px; - height: 400px; - border: 1px solid #bbb; -} -{% endblock %} - {% block content %} -

          Approve {{ doc.canonical_name }}

          +

          Approve
          {{ doc.canonical_name }}

          -
          {% csrf_token %} - {{formset.management_form}} - - {% for form in formset.forms %} - {% for field in form.visible_fields %} - - - - {% endfor %} - {% endfor %} - - - -
          -
          {{ field.label_tag }}
          - {{ field }} - {% if field.help_text %}
          {{ field.help_text }}
          {% endif %} - {{ field.errors }} -
          - Back - -
          +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_formset formset %} + + {% buttons %} + + Back + {% endbuttons %}
          {% endblock %} diff --git a/ietf/templates/doc/status_change/edit_relations.html b/ietf/templates/doc/status_change/edit_relations.html index c4b05d5e0..d550961fe 100644 --- a/ietf/templates/doc/status_change/edit_relations.html +++ b/ietf/templates/doc/status_change/edit_relations.html @@ -1,74 +1,66 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Edit List of RFCs Affected By Status Change{% endblock %} - -{% block morecss %} -form.start-rfc-status-change-review #id_notify { - width: 600px; -} -form.start-rfc-status-change-review #id_document_name { - width: 510px; -} -form.start-rfc-status-change-review .actions { - padding-top: 20px; -} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} - -{% block pagehead %} -{% include "doc/status_change/status-change-edit-relations-js.html" %} -{% endblock %} +{% block title %}Edit RFCs affected by status change{% endblock %} {% block content %} -

          Edit List of RFCs Affected By Status Change

          +

          Edit RFCs affected by status change

          -
          {% csrf_token %} - - - - - - - -
          Affects RFCs: - {% for rfc,choice_slug in form.relations.items %} - - - - {% endfor %} - - - -
          - - - - -
          - -
          -
          Enter one of the affected RFC as RFCn
          - {{ form.non_field_errors }} -
          - - -
          +

          + {% comment %}XXX FACELIFT:{% endcomment %} + Note: With the redesigned UI, you currently must add new RFCs one by one. +

          + + + {% csrf_token %} + + {% for rfc,choice_slug in form.relations.items %} +
          +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          + {% endfor %} + +
          +
          +
          + +

          Enter new affected RFC.

          +
          + +
          + +
          +
          +
          + + {% if form.non_field_errors %} +
          {{ form.non_field_errors }}
          + {% endif %} + +
          + + Back +
          {% endblock %} diff --git a/ietf/templates/doc/status_change/last_call.html b/ietf/templates/doc/status_change/last_call.html index ba1508b19..09e4ee662 100644 --- a/ietf/templates/doc/status_change/last_call.html +++ b/ietf/templates/doc/status_change/last_call.html @@ -1,42 +1,27 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Last Call text for {{ doc }}{% endblock %} +{% load bootstrap3 %} +{% load ietf_filters %} -{% block morecss %} -form #id_last_call_text { - width: 700px; - height: 600px; -} -{% endblock %} +{% block title %}Last call text for {{ doc }}{% endblock %} {% block content %} -

          Last Call text for {{ doc }}

          +

          Last call text
          {{ doc }}

          -
          {% csrf_token %} +{% bootstrap_messages %} - {{ last_call_form.last_call_text }} + + {% csrf_token %} + {% bootstrap_form last_call_form %} -

          {{ last_call_form.last_call_text.errors }}

          - -{% comment %} - {% if can_request_last_call and need_intended_status %} -

          You need to select intended status of {{ need_intended_status }} and regenerate last call text to request last call.

          - {% endif %} -{% endcomment %} - -
          - Back - - - -
          + {% buttons %} + + + {% if user|has_role:"Secretariat" %} + Make last call + {% endif %} + + Back + {% endbuttons %}
          - -{% load ietf_filters %} -{% if user|has_role:"Secretariat" %} -

          -Make Last Call -

          -{% endif %} - {% endblock%} diff --git a/ietf/templates/doc/status_change/make_last_call.html b/ietf/templates/doc/status_change/make_last_call.html index abf2ddda2..8abc700fc 100644 --- a/ietf/templates/doc/status_change/make_last_call.html +++ b/ietf/templates/doc/status_change/make_last_call.html @@ -1,40 +1,47 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Make Last Call for {{ doc.name }}{% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form.approve-ballot pre { - margin: 0; - padding: 4px; - border-top: 4px solid #eee; - border-bottom: 4px solid #eee; -} -form.approve-ballot .announcement { - overflow-x: auto; - overflow-y: scroll; - width: 800px; - height: 400px; - border: 1px solid #bbb; -} +{% block pagehead %} + {% endblock %} +{% block title %}Make last call for {{ doc.name }}{% endblock %} + {% block content %} -

          Make Last Call for {{ doc.file_tag }}

          -

          ({{doc.title}})

          -

          Announcement Text:

          -
          -{{ announcement }} + +

          Make last call
          {{doc.name}}

          + +{% bootstrap_messages %} + +
          + +
          {{ announcement }}
          -
          {% csrf_token %} - - {{ form.as_table }} -
          + + {% csrf_token %} + {% bootstrap_form form %} -
          - Back - - -
          + {% buttons %} + + + Back + {% endbuttons %}
          {% endblock %} + + +{% block js %} + +{% endblock %} + +{% block scripts %} +$('#id_last_call_sent_date, #id_last_call_expiration_date').datepicker({ + format: "yyyy-mm-dd", + todayBtn: "linked", + todayHighlight: true, +}).wrap('
          ').parent().prepend(''); +{% endblock %} + + diff --git a/ietf/templates/doc/status_change/start.html b/ietf/templates/doc/status_change/start.html index cf31d1121..846a8a000 100644 --- a/ietf/templates/doc/status_change/start.html +++ b/ietf/templates/doc/status_change/start.html @@ -1,90 +1,84 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Begin RFC status change review {% endblock %} +{% load bootstrap3 %} -{% block morecss %} -form.start-rfc-status-change-review #id_notify { - width: 600px; -} -form.start-rfc-status-change-review #id_title { - width: 600px; -} -form.start-rfc-status-change-review #id_document_name { - width: 510px; -} -form.start-rfc-status-change-review .actions { - padding-top: 20px; -} -.warning { - font-weight: bold; - color: #a00; -} -{% endblock %} - -{% block pagehead %} -{% include "doc/status_change/status-change-edit-relations-js.html" %} -{% endblock %} +{% block title %}Begin RFC status change review{% endblock %} {% block content %}

          Begin RFC status change review

          -

          For help on the initial state choice, see the state table.

          +{% bootstrap_messages %} -
          {% csrf_token %} - - - - - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - -
          Affects RFCs: - {% for rfc,choice_slug in form.relations.items %} - - - - {% endfor %} - - - -
          - - - - -
          - -
          -
          Enter one of the affected RFC as RFCn
          - {{ form.non_field_errors }} -
          {{ field.label_tag }} - {% if field.label == "Document name" %}status-change-{% endif %} - {{ field }} - {% if field.help_text %}
          {{ field.help_text }}
          {% endif %} +

          Help on states

          + + + {% csrf_token %} + + + {% for rfc,choice_slug in form.relations.items %} +
          +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          + {% endfor %} + +
          +
          +
          + +

          Enter new affected RFC.

          +
          + +
          + +
          +
          +
          + +
          +
          +

          + {% comment %}XXX FACELIFT:{% endcomment %} + Note: With the redesigned UI, you currently must add new affected RFCs one by one, hitting submit each time. Only when the list of affected RFCs is complete and correct, move on to fill out the bottom part of the form (and do a final submit). +

          + +
          + + Back +
          +

          +
          +
          + +
          +
          + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %} +
          +
          - {{ field.errors }} -
          - -
          {% endblock %} diff --git a/ietf/templates/doc/status_change/status-change-edit-relations-js.html b/ietf/templates/doc/status_change/status-change-edit-relations-js.html deleted file mode 100644 index 99b08e31b..000000000 --- a/ietf/templates/doc/status_change/status-change-edit-relations-js.html +++ /dev/null @@ -1,78 +0,0 @@ - diff --git a/ietf/templates/doc/status_change/status_changes.html b/ietf/templates/doc/status_change/status_changes.html index 33827f5c2..fa4066b78 100644 --- a/ietf/templates/doc/status_change/status_changes.html +++ b/ietf/templates/doc/status_change/status_changes.html @@ -1,23 +1,36 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} -{% block title %}RFC Status Changes{% endblock %} + +{% block title %}RFC status changes{% endblock %} + {% block content %} -

          RFC Status Changes

          +

          RFC status changes

          {% if user|has_role:"Area Director,Secretariat" %} -

          Start new RFC status change document

          +

          New RFC status change

          {% endif %} + {% regroup docs by get_state as state_groups %} - - -{% for state in state_groups %} - -{% for doc in state.list %} - - - - -{% endfor %} -{% endfor %} +
          DocumentTitle
          {{state.grouper}}
          {{ doc.displayname_with_link|safe }}{{ doc.title }}
          + + + + + + + + + {% for state in state_groups %} + + + {% for doc in state.list %} + + + + + {% endfor %} + {% endfor %} + +
          DocumentTitle
          {{state.grouper}}
          {{ doc.displayname_with_link|safe }}{{ doc.title }}
          {% endblock content %} diff --git a/ietf/templates/doc/status_change/submit.html b/ietf/templates/doc/status_change/submit.html index bd3765fc2..e52246903 100644 --- a/ietf/templates/doc/status_change/submit.html +++ b/ietf/templates/doc/status_change/submit.html @@ -1,41 +1,24 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -form #id_content { - width: 40em; - height: 450px; -} -{% endblock %} +{% load bootstrap3 %} -{% block title %} -Edit status change text for {{doc.title}} -{% endblock %} +{% block title %}Edit status change text for {{doc.title}}{% endblock %} {% block content %} -

          Edit status change text for {{doc.title}}

          +

          Edit status change text
          {{doc.title}}

          -

          The text will be submitted as {{ doc.canonical_name }}-{{ next_rev }}

          -
          {% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
          {{ field.label_tag }} - {{ field }} - {% if field.help_text %}
          {{ field.help_text }}
          {% endif %} - {{ field.errors }} -
          - Back - - -
          +{% bootstrap_messages %} + +

          The text will be submitted as {{ doc.canonical_name }}-{{ next_rev }}:

          + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + + Back + {% endbuttons %}
          - {% endblock %} diff --git a/ietf/templates/doc/submit_to_iesg.html b/ietf/templates/doc/submit_to_iesg.html index d5be56dc7..105c0a52b 100644 --- a/ietf/templates/doc/submit_to_iesg.html +++ b/ietf/templates/doc/submit_to_iesg.html @@ -1,80 +1,77 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% block title %} -Publication Request for {{doc.name}}-{{doc.rev}} +Publication request for {{doc.name}}-{{doc.rev}} {% endblock %} {% block content %} -

          Publication Request for {{doc.name}}-{{doc.rev}}

          +

          Publication request
          {{doc.name}}-{{doc.rev}}

          -
          -Please verify the following information: -
          +

          + Please verify the following information: +

          -
          - +
          + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + +
          Intended status level{% if warn.intended_std_level %}{% endif %}{{doc.intended_std_level}}
          Intended Status Level:{% if warn.intended_std_level %}{% endif %}{{doc.intended_std_level}}
          Responsible AD{{ad}}
          Responsible AD:{{ad}}
          Document shepherd{% if warn.shepherd %}{% endif %}{{doc.shepherd}}
          Document Shepherd:{% if warn.shepherd %}{% endif %}{{doc.shepherd}}
          Shepherd write-up exists{% if warn.shepherd_writeup %}{% endif %}{%if shepherd_writeup %}Yes{%else%}No{%endif%}
          Shepherd Write-Up Exists:{% if warn.shepherd_writeup %}{% endif %}{%if shepherd_writeup %}Yes{%else%}No{%endif%}
          Also Notify:{% if notify %}{{notify}}{%else%}(None){%endif%}
          Annotation Tags:{% if warn.tags %}{% endif %}{% if not tags %}(None){%else%}{% for tag in tags %}{{ tag }}{% if not forloop.last%}, {%endif%}{% endfor %}{% endif %}
          Also notify{% if notify %}{{notify}}{%else%}(None){%endif%}
          Annotation tags{% if warn.tags %}{% endif %}{% if not tags %}(None){%else%}{% for tag in tags %}{{ tag }}{% if not forloop.last%}, {%endif%}{% endfor %}{% endif %}
          -
          - - {% if warn %} -
          - indicates the document might not be ready for submission. Please check each instance carefully to see if changes need to be made to the document's state before submitting. -
          +

          indicates the document might not be ready for submission. Please check each instance carefully to see if changes need to be made to the document's state before submitting.

          {% endif %} -
          +

          Upon submission:

            -
          • the document will be placed into the IESG '{{target_state.iesg}}' state
          • -
          • the document will be placed into the working group '{{target_state.wg}}' state
          • -{% if not ad == doc.ad %}
          • the responsible AD will be set as above
          • {% endif %} -{% if not notify == doc.notify %}
          • the document's state change notification list will be set as above
          • {% endif %} -
          • an entry will be made noting the publication request in the document's history
          • -
          • an email message will be sent to the working group chairs, the secretariat, and everyone listed above
          • -
          +
        • the document will be placed into the IESG '{{target_state.iesg}}' state
        • +
        • the document will be placed into the working group '{{target_state.wg}}' state
        • + {% if not ad == doc.ad %}
        • the responsible AD will be set as above
        • {% endif %} + {% if not notify == doc.notify %}
        • the document's state change notification list will be set as above
        • {% endif %} +
        • an entry will be made noting the publication request in the document's history
        • +
        • an email message will be sent to the working group chairs, the secretariat, and everyone listed above
        • +
        +

        -
        {% csrf_token %} - - + + {% csrf_token %} +
        + + +
        + {% endblock %} diff --git a/ietf/templates/email_failed.html b/ietf/templates/email_failed.html index 8d1ad47db..b1d92a143 100644 --- a/ietf/templates/email_failed.html +++ b/ietf/templates/email_failed.html @@ -1,27 +1,29 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}E-Mail Sending Failed{% endblock %} +{% block title %}E-mail sending failed{% endblock %} {% block content %} -

        E-Mail Sending Failed

        +

        E-mail sending failed

        -

        Sorry, the site needed to send an E-Mail message to complete this +

        +Sorry, the site needed to send an E-Mail message to complete this action, and that attempt failed. Please reload this page later to try again, or, if this condition persists, please send an -E-Mail to <webmaster@ietf.org> +e-mail to webmaster@ietf.org. +

        {% if debug %} -
        -

        Debug information, please forward when reporting this error:

        -
          -
        • Exception: {{ exception|escape }} -
        • Detail: {{ args|escape }} -
        • Traceback: -
          -{{ traceback|escape }}
          -
          -
        +
        +

        Debug information, please forward when reporting this error:

        +
          +
        • Exception: {{ exception|escape }}
        • +
        • Detail: {{ args|escape }}
        • +
        • Traceback: +
          +			{{ traceback|escape }}
          +			
          +
        • +
        {% endif %} {% endblock %} diff --git a/ietf/templates/group/active_rgs.html b/ietf/templates/group/active_rgs.html index b6f3c6aeb..93b6daa46 100644 --- a/ietf/templates/group/active_rgs.html +++ b/ietf/templates/group/active_rgs.html @@ -1,33 +1,32 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Active IRTF Research Groups{% endblock %} - -{% block morecss %} -.ietf-wg-table { width: 100%; max-width:50em; } -.ietf-wg-table tr { vertical-align:top; } -{% endblock morecss %} +{% block title %}Active IRTF research groups{% endblock %} {% block content %} -

        Active IRTF Research Groups

        +

        Active IRTF research groups

        -

        IRTF Chair:

        +

        IRTF chair

        +

        {{ irtf.chair.person.plain_name }}

        - +

        Active Research Groups

        -

        Active Research Groups:

        - -
        - - {% for group in groups %} - - - - - - {% endfor %} -
        {{ group.acronym }}{{ group.name }}{% for chair in group.chairs %}{{ chair.person.plain_name }}{% if not forloop.last %}, {% endif %}{% endfor %}
        -
        + + + + + + + + + + {% for group in groups %} + + + + + + {% endfor %} + +
        GroupNameChairs
        {{ group.acronym }}{{ group.name }}{% for chair in group.chairs %}{{ chair.person.plain_name }}{% if not forloop.last %}, {% endif %}{% endfor %}
        {% endblock %} diff --git a/ietf/templates/group/active_wgs.html b/ietf/templates/group/active_wgs.html index d4dbeac85..e1263af03 100644 --- a/ietf/templates/group/active_wgs.html +++ b/ietf/templates/group/active_wgs.html @@ -1,99 +1,88 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2009, All Rights Reserved #} -{% comment %} -Portion Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -All rights reserved. Contact: Pasi Eronen +{% extends "ietf.html" %} -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +{% block title %}Active IETF working groups{% endblock %} - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of the Nokia Corporation and/or its - subsidiary(-ies) nor the names of its contributors may be used - to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -{% endcomment %} - -{% block title %}Active IETF Working Groups{% endblock %} - -{% block morecss %} -.ietf-wg-table { width: 100%; max-width:70em; } -.ietf-wg-table tr { vertical-align:top; } -{% endblock morecss %} +{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %} {% block content %} -

        Active IETF Working Groups

        +
        +
        -

        See also: - Concluded Working Groups (www.ietf.org), - Concluded Working Groups (tools.ietf.org), - Historic Charters. -

        +

        Active IETF working groups

        - {% for area in areas %} -

        {{ area.name }}

        +Concluded WGs +Historic charters - {% if area.ads %} -

        Area Director{{ area.ads|pluralize }}:

        - - {% for ad in area.ads %} - - - - - {% endfor %} -
         {{ ad.person.plain_name }} <{{ ad.email.address }}>{% if ad.name == "pre-ad" %} (Incoming AD){% endif %}
        - {% endif %} +{% for area in areas %} +

        {{ area.name }} ({{ area.acronym }})

        - {% if area.urls %} -

        Area Specific Web Page{{ area.urls|pluralize}}:

        -

        - {% for url in area.urls %} - {{ url.name }}{% if not forloop.last %}
        {% endif %} - {% endfor %} -

        - {% endif %} + {% if area.ads %} +

        {{ area.acronym }} Area Director{{ area.ads|pluralize }} (AD{{ area.ads|pluralize }})

        +
          + {% for ad in area.ads %} +
        • + {{ ad.person.plain_name }} ({{ ad.email.address }}) + {% if ad.name == "pre-ad" %} (Incoming AD){% endif %} +
        • + {% endfor %} +
        + {% endif %} - {% if area.groups %} -

        Active Working Group{{ area.groups|pluralize}}:

        -
        - - {% for group in area.groups %} - - - - - - - - - {% endfor %} -
        {{ group.acronym }}{% for ad in area.ads %}{% if ad.person_id == group.ad_id %}{% endif %}{% endfor %}{{ group.name }}{{ group.list_email }}subscribe{% for chair in group.chairs %}{{ chair.person.plain_name }}{% if not forloop.last %}, {% endif %}{% endfor %}
        -
        - {% else %} -

        No Active Working Groups

        - {% endif %} + {% if area.urls %} +

        {{ area.acronym }} area-specific web page{{ area.urls|pluralize}}

        + + {% endif %} - {% endfor %}{# area #} + {% if area.groups %} +

        {{ area.acronym }} active WG{{ area.groups|pluralize}}

        + + + + + + + + + + + {% for group in area.groups %} + + + + + + + {% endfor %} + +
        GroupResponsible ADNameChairs
        {{ group.acronym }} + {% for ad in area.ads %} + {% if ad.person_id == group.ad_id %} + {{ ad.person.plain_name }} + {% endif %} + {% endfor %} + {{ group.name }} + {% for chair in group.chairs %} + {{ chair.person.plain_name }}{% if not forloop.last %}, {% endif %} + {% endfor %} +
        + {% else %} +

        No active {{ area.acronym }} WGs

        + {% endif %} +
        +{% endfor %} + +
        +
        + +
        +
        {% endblock %} diff --git a/ietf/templates/group/bofs.html b/ietf/templates/group/bofs.html index 4ead7bb54..4dd415e97 100644 --- a/ietf/templates/group/bofs.html +++ b/ietf/templates/group/bofs.html @@ -1,39 +1,39 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}BoFs{% endblock %} +{% block title %}BOFs{% endblock %} {% block content %} {% load ietf_filters %} -

        Bofs

        +

        Birds-of-a-feather (BOF) groups

        -

        Groups in the BoF state

        +

        Groups in the BOF state.

        {% if user|has_role:"Area Director,Secretariat" %} -

        Create a new BoF

        +

        Create new BOF

        {% endif %} {% if not groups %} -

        No groups found.

        +

        No BOFs found.

        {% else %} - - - - - - -{% for g in groups %} - - - - - -{% endfor %} -
        GroupNameDate
        - {{ g.acronym }} - - {{ g.name }} - {{ g.time|date:"Y-m-d" }}
        + + + + + + + + + + {% for g in groups %} + + + + + + {% endfor %} + +
        BOFNameDate
        {{ g.acronym }}{{ g.name }}{{ g.time|date:"Y-m-d" }}
        {% endif %} {% endblock %} diff --git a/ietf/templates/group/chartering_groups.html b/ietf/templates/group/chartering_groups.html index a7ebb298b..6a529fa3e 100644 --- a/ietf/templates/group/chartering_groups.html +++ b/ietf/templates/group/chartering_groups.html @@ -1,65 +1,68 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Chartering or Re-Chartering Groups{% endblock %} +{% block title %}Chartering or re-chartering groups{% endblock %} {% block content %} {% load ietf_filters %} {% load ballot_icon %} -

        Chartering or Re-Chartering Groups

        +

        Chartering or re-chartering groups

        -

        Groups with a charter in state - {% for s in charter_states %}{% if not forloop.first %}, {% if forloop.last %}or {% endif %}{% endif %}{{ s.name }}{% endfor %}. +

        + Groups with a charter in one of the following states:

        - +
          +{% for s in charter_states %} +
        • {{ s.name }}
        • +{% endfor %} +
        {% for t in group_types %} -

        {{ t.name }}s

        +

        {{ t.name }}s

        - {% if t.can_manage %} -

        Start chartering new {{ t.name }}

        - {% endif %} + {% if t.can_manage %} +

        Charter new {{ t.name }}

        + {% endif %} - {% if not t.chartering_groups %} -

        No groups found.

        - {% else %} - - - - - - - - {% for g in t.chartering_groups %} - - - - - + + + + + {% endfor %} + +
        GroupCharterDateStatus
        - {{ g.acronym }} - - {{ g.name }} - {{ g.charter.time|date:"Y-m-d" }} - {{ g.charter.get_state.name }} - {% if g.chartering_type == "initial" %}(Initial Chartering){% endif %} - {% if g.chartering_type == "recharter" %}(Rechartering){% endif %} - {% if not g.chartering_type and g.state_id != "active" %}({{ g.state.name }}){% endif %} + {% if not t.chartering_groups %} +

        No groups found.

        + {% else %} + + + + + + + + + + + {% for g in t.chartering_groups %} + + - {% if g.charter.telechat_date %}
        IESG Telechat: {{ g.charter.telechat_date|date:"Y-m-d" }}{% endif %} - - - - {% endfor %} -
        GroupNameDateStatus
        + {{ g.acronym }} + - {% ballot_icon g.charter %} -
        - {% endif %} +
        + {{ g.name }} + {{ g.charter.time|date:"Y-m-d" }} +
        {% ballot_icon g.charter %}
        + + {{ g.charter.get_state.name }} + {% if g.chartering_type == "initial" %}(Initial Chartering){% endif %} + {% if g.chartering_type == "recharter" %}(Rechartering){% endif %} + {% if not g.chartering_type and g.state_id != "active" %}({{ g.state.name }}){% endif %} + + {% if g.charter.telechat_date %}
        IESG Telechat: {{ g.charter.telechat_date|date:"Y-m-d" }}{% endif %} +
        + {% endif %} {% endfor %} - -{% endblock %} - -{% block js %} - - {% endblock %} diff --git a/ietf/templates/group/conclude.html b/ietf/templates/group/conclude.html index 872e6bea3..3cb5c2d2b 100644 --- a/ietf/templates/group/conclude.html +++ b/ietf/templates/group/conclude.html @@ -1,21 +1,14 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Request closing of {{ group.acronym }} {{ group.type.name }}{% endblock %} -{% block morecss %} -#id_instructions { - width: 40em; -} - -form.conclude .actions { - text-align: right; - padding-top: 10px; -} -{% endblock %} - {% block content %}

        Request closing of {{ group.acronym }} {{ group.type.name }}

        +{% bootstrap_messages %} +

        Please provide instructions regarding the disposition of each active Internet-Draft (such as to withdraw the draft, move it to @@ -24,16 +17,14 @@ form.conclude .actions { mailing list (will it remain open or should it be closed).

        -
        {% csrf_token %} - - {{ form.as_table }} - - - -
        - Cancel - -
        -
        +
        + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + Back + {% endbuttons %} + +
        {% endblock %} diff --git a/ietf/templates/group/concluded_groups.html b/ietf/templates/group/concluded_groups.html index fff7bf838..39586f260 100644 --- a/ietf/templates/group/concluded_groups.html +++ b/ietf/templates/group/concluded_groups.html @@ -1,42 +1,66 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Concluded Groups{% endblock %} - -{% block morecss %} -.concluded-groups .active-period { display: inline-block; margin-left: 0.5em; font-style: italic; } -.note { font-style: italic; } -{% endblock %} +{% block title %}Concluded groups{% endblock %} {% block content %} -

        Concluded Groups

        +

        Concluded groups

        -

        Note that the information on historical groups may be inaccurate.

        +

        Note that the information on historical groups may be inaccurate.

        {% for t in group_types %} -

        {{ t.name }}s

        +

        {{ t.name }}s

        - {% if t.slug == "wg" %}

        Some additional concluded WGs may - be present at tools.ietf.org/wg/concluded/

        {% endif %} - - {% if not t.concluded_groups %} -

        No groups found.

        - {% else %} - - {% for g in t.concluded_groups %} - - - - - {% endfor %} -
        - {{ g.acronym }} - {{ g.name }} - ({% if g.start_date %}{{ g.start_date|date:"M. Y" }}{% else %}?{% endif %} - - - {% if g.conclude_date %}{{ g.conclude_date|date:"M. Y" }}{% else %}?{% endif %}) -
        - {% endif %} + {% if t.slug == "wg" %} +

        + Some additional concluded WGs may + be present here. +

        + {% elif t.slug == "rg" %} +

        + The information below is incomplete and misses a few older RGs. + Please check the IRTF site + for more complete information. +

        + {% endif %} + {% if not t.concluded_groups %} +

        No groups found.

        + {% else %} + + + + + + + + + + + {% for g in t.concluded_groups %} + + + + + + + {% endfor %} + +
        GroupNameStartConcluded
        + {{ g.acronym }} + {{ g.name }} + {% if g.start_date %} + {{ g.start_date|date:"M. Y" }} + {% else %} + ? + {% endif %} + + {% if g.conclude_date %} + {{ g.conclude_date|date:"M. Y" }} + {% else %} + ? + {% endif %} +
        + {% endif %} {% endfor %} {% endblock %} diff --git a/ietf/templates/group/edit.html b/ietf/templates/group/edit.html index 1445382d2..c4c8ac1af 100644 --- a/ietf/templates/group/edit.html +++ b/ietf/templates/group/edit.html @@ -1,102 +1,60 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} +{% load ietf_filters %} {% block title %} {% if group %} -Edit {{ group.type.name }} {{ group.acronym }} + Edit {{ group.type.name }} {{ group.acronym }} {% else %} -Start chartering new group + Start chartering new group {% endif %} {% endblock %} -{% block morecss %} -form.edit td { padding-bottom: .5em; } -form.edit #id_name, -form.edit #id_list_email, -form.edit #id_list_subscribe, -form.edit #id_list_archive, -form.edit #id_urls, -form.edit #id_comments { width: 400px; } -form.edit input[type=checkbox] { vertical-align: middle; } -form.edit #id_urls { height: 4em; } -{% endblock %} - {% block pagehead %} - + + {% endblock %} {% block content %} -{% load ietf_filters %}

        {% if action == "edit" %} -Edit {{ group.type.name }} {{ group.acronym }} -{% else %} - {% if action == "charter" %} -Start chartering new group - {% else %} -Create new group or BoF - {% endif %} + Edit {{ group.type.name }} {{ group.acronym }} +{% else %} + {% if action == "charter" %} + Start chartering new group + {% else %} + Create new group or BOF + {% endif %} {% endif %}

        -

        Note that persons with authorization to manage information, e.g. -chairs and delegates, need a Datatracker account to actually do +{% bootstrap_messages %} + +

        Note that persons with authorization to manage information, e.g. +chairs and delegates, need a datatracker account to actually do so. New accounts can be created here.

        -
        {% csrf_token %} - {% for field in form.hidden_fields %}{{ field }}{% endfor %} - - {% for field in form.visible_fields %} - - - - - {% if field.name == "acronym" and form.confirm_msg %} - - - - - {% endif %} - {% endfor %} - - - - -
        {{ field.label_tag }} {% if field.field.required %}*{% endif %}{{ field }} - {% if field.name == "ad" and request.user|has_role:"Area Director" %} - - {% endif %} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - {{ form.confirm_msg }} -
        - {% if action == "edit" %} - Cancel - - {% else %} - {% if action == "charter" %} - - {% else %} - - {% endif %} - {% endif %} -
        + + {% csrf_token %} + {% bootstrap_form form layout='horizontal' %} + + {% buttons layout='horizontal' %} + {% if action == "edit" %} + + Back + {% else %} + {% if action == "charter" %} + + {% else %} + + {% endif %} + {% endif %} + {% endbuttons %}
        {% endblock %} -{% block content_end %} - - - - +{% block js %} + + {% endblock %} diff --git a/ietf/templates/group/group_about.html b/ietf/templates/group/group_about.html index 6f8265b37..d17158ec5 100644 --- a/ietf/templates/group/group_about.html +++ b/ietf/templates/group/group_about.html @@ -1,127 +1,134 @@ {% extends "group/group_base.html" %} {% load ietf_filters %} -{% block group_subtitle %}Charter{% endblock %} {% block group_content %} -
        {% if group.state_id == "conclude" %} -Note: The data for concluded {{ group.type.name }}s -is occasionally incorrect. +

        Note: The data for concluded {{ group.type.name }}s is occasionally incorrect.

        {% endif %} - - +
        Group
        + + + - - - - + + + + - + + + + - {% if group.parent and group.parent.type_id == "area" %} - - {% endif %} + + {% if group.parent and group.parent.type_id == "area" %} + + + {% endif %} + - - - - + + + + - {% if group.features.has_chartering_process %} - - - - - {% endif %} + + {% if group.features.has_chartering_process %} + + + {% endif %} + - {% with group.groupurl_set.all as urls %} - {% if urls %} - - - - - {% endif %} - {% endwith %} + + {% with group.groupurl_set.all as urls %} + {% if urls %} + + + {% endif %} + {% endwith %} + - + + {% for slug, label, roles in group.personnel %} + + + + + {% endfor %} - {% for slug, label, roles in group.personnel %} - - - - - {% endfor %} + {% if group.list_email %} + - {% if group.list_email %} - + + + + {% endif %} - - - - {% endif %} + {% if group.state_id != "conclude" %} + - {% if group.state_id != "conclude" %} - - - - - - - - - - - - {% endif %} + + + + + + + + + {% endif %}
        {{ group.type.name }}
        Name:{{ group.name }}
        Name{{ group.name }}
        Acronym:{{ group.acronym }}
        Acronym{{ group.acronym }}
        {{ group.parent.type.name }}:{{ group.parent.name }} ({{ group.parent.acronym }})
        {{ group.parent.type.name }}{{ group.parent.name }} ({{ group.parent.acronym }})
        State:{{ group.state.name }} - {% if requested_close %} - (but in the process of being closed) - {% endif %} -
        State + {{ group.state.name }} + {% if requested_close %} +
        In the process of being closed
        + {% endif %} +
        Charter: - {% if group.charter %} - {{ group.charter.name }}-{{ group.charter.rev }} ({{ group.charter.get_state.name }}) - {% else %} - none - {% if can_manage %} - - Submit Charter - {% endif %} - {% endif %} -
        Charter + {% if group.charter %} + {{ group.charter.name }}-{{ group.charter.rev }} + {{ group.charter.get_state.name }} + {% else %} + (None) + {% if user|has_role:"Area Director,Secretariat" %} + Submit charter + {% endif %} + {% endif %} +
        More info: - {% for url in urls %} - {{ url.name }}{% if not forloop.last %}
        {% endif %} - {% endfor %} -
        More info + {% for url in urls %} + {{ url.name }}{% if not forloop.last %}
        {% endif %} + {% endfor %} +
        Personnel
        Personnel
        {{ label }} + {% for r in roles %} + + {{ r.person.plain_name }} +
        + {% endfor %} +
        {{ label }}: - {% for r in roles %} - {{ r.person.plain_name }} <{{ r.email.address }}>
        - {% endfor %} -
        Mailing list
        Mailing List
        Address{{ group.list_email|urlize }}
        To subscribe{{ group.list_subscribe|urlize }}
        Archive{{ group.list_archive|urlize }}
        Address:{{ group.list_email|urlize }}
        To Subscribe:{{ group.list_subscribe|urlize }}
        Archive:{{ group.list_archive|urlize }}
        Jabber chat
        Jabber Chat
        Room Address:xmpp:{{ group.acronym }}@jabber.ietf.org
        Logs:http://jabber.ietf.org/logs/{{ group.acronym }}/
        Room addressxmpp://{{ group.acronym }}@jabber.ietf.org
        Logshttps://jabber.ietf.org/logs/{{ group.acronym }}/
        -
        - {% if group.features.has_chartering_process %} -

        Charter for {% if group.state_id == "proposed" %}Proposed{% endif %} {{ group.type.desc.title }}

        - -

        {{ group.charter_text|linebreaks }}

        +

        Charter for {% if group.state_id == "proposed" %}proposed{% endif %} {{ group.type.desc.title }}

        +

        {{ group.charter_text|linebreaks }}

        {% else %} -

        About

        - -

        {{ group.description|default:"No description yet."|linebreaks }}

        +

        About

        +

        {{ group.description|default:"No description yet."|linebreaks }}

        {% endif %} - {% if group.features.has_milestones %} -

        {% if group.state_id == "proposed" %}Proposed{% endif %} Milestones

        +

        + {% if group.state_id == "proposed" %} + Proposed milestones + {% else %} + Milestones + {% endif %} +

        + {% include "group/milestones.html" with milestones=group.milestones %} - {% include "group/milestones.html" with milestones=group.milestones %} - - {% if milestones_in_review %} -

        + {{ milestones_in_review|length }} new milestone{{ milestones_in_review|pluralize }} - currently in {{ milestone_reviewer }} review.

        - {% endif %} + {% if milestones_in_review %} +

        {{ milestones_in_review|length }} new milestone{{ milestones_in_review|pluralize }} + currently in {{ milestone_reviewer }} review.

        + {% endif %} {% endif %} {% endblock %} diff --git a/ietf/templates/group/group_base.html b/ietf/templates/group/group_base.html index ec1e0c381..7cb9445a5 100644 --- a/ietf/templates/group/group_base.html +++ b/ietf/templates/group/group_base.html @@ -1,87 +1,39 @@ -{% extends "base.html" %} -{% comment %} -{% endcomment %} {% load ietf_filters %} + {% block title %}{{ group.name }} ({{ group.acronym }}) - {% block group_subtitle %}{% endblock %}{% endblock %} -{% block morecss %} -.ietf-navset { - background:#214197 url(/images/yui/sprite.png) repeat-x left -1400px; - color:white; - border:1px solid black; - padding:4px; -} -.ietf-navset .selected { font-weight:bold; padding: 0 3px; } -.ietf-navset a, .ietf-navset a:visited { color: white; padding:0 3px; } - -.ietf-group-details { float:right; padding: 4px;margin-top:16px; margin-left: 16px; } -.ietf-group-details tr { vertical-align: top; } -.ietf-concluded-bg {background-color: #F8F8D0; } -.ietf-concluded-warning { background:red;color:white;padding:2px 2px;} -.ietf-proposed-bg { } -.ietf-proposed-warning { background:green;color:white;padding:2px 2px;} -.ietf-box th { font-weight: bold; padding-top: 1em; text-align: left; } -.ietf-box tr:first-child th { padding-top: 0; } -{% endblock morecss %} - {% block content %} -

        {{ group.name}} ({{ group.acronym }}) - {% if group.state_id == "dormant" or group.state_id == "conclude" %}
        (concluded {{ group.type.name }}){% endif %} - {% if group.state_id == "proposed" %}
        (proposed {{ group.type.name }}){% endif %} + {% if group.state_id == "dormant" or group.state_id == "conclude" %} + Concluded {{ group.type.name }} + {% endif %} + {% if group.state_id == "proposed" %} + Proposed {{ group.type.name }} + {% endif %}

        -
        -
        - {% for name, url in menu_entries %} - {{ name }} {% if not forloop.last %} | {% endif %} - {% endfor %} -
        + - {% if menu_actions %} -
        - {% for name, url in menu_actions %} - {{ name }} - {% endfor %} -
        - {% endif %} +

        + +{% if menu_actions %} +
        + {% for name, url in menu_actions %} + {{ name }} + {% endfor %}
        +{% endif %} {% block group_content %} {% endblock group_content %} -
        {% endblock content %} diff --git a/ietf/templates/group/group_documents.html b/ietf/templates/group/group_documents.html index 0795b9d99..58d169047 100644 --- a/ietf/templates/group/group_documents.html +++ b/ietf/templates/group/group_documents.html @@ -3,16 +3,8 @@ {% block group_subtitle %}Documents{% endblock %} {% block group_content %} -
        {% include "doc/search/search_results.html" %} - {% include "doc/search/search_results.html" with docs=docs_related meta=meta_related skip_no_matches_warning=True %} -
        {% endblock group_content %} - -{% block js %} - - -{% endblock %} diff --git a/ietf/templates/group/history.html b/ietf/templates/group/history.html index 66d2b0a8d..33dc81402 100644 --- a/ietf/templates/group/history.html +++ b/ietf/templates/group/history.html @@ -1,26 +1,28 @@ {% extends "group/group_base.html" %} {% load ietf_filters %} -{% block group_subtitle %}History{% endblock %} - {% block group_content %} -{% load ietf_filters %} -

        Group History

        - - - - - {% for e in events %} - - - - - - {% endfor %} +
        DateByText
        {{ e.time|date:"Y-m-d"}}{{ e.by.plain_name }}{{ e.desc|format_history_text }}
        + + + + + + + + + {% for e in events %} + + + + + + {% endfor %} +
        DateByAction
        {{ e.time|date:"Y-m-d"}} + {{ e.by.plain_name }} + {{ e.desc|format_history_text }}
        + {% endblock %} -{% block content_end %} - -{% endblock %} diff --git a/ietf/templates/group/index.html b/ietf/templates/group/index.html index 21bfda238..67979af6e 100644 --- a/ietf/templates/group/index.html +++ b/ietf/templates/group/index.html @@ -1,26 +1,33 @@ -{# Copyright The IETF Trust 2009, All Rights Reserved #} +{% extends "ietf.html" %} -{% extends "base.html" %} {% load ietf_filters %} -{% block title %}Other Streams{% endblock %} -{% block morecss %} -.ietf-wg-table { width: 100%; max-width:50em; } -.ietf-wg-table tr { vertical-align:top; } -{% endblock morecss %} +{% block title %}Other RFC streams{% endblock %} {% block content %} -

        Other Streams

        +

        Other RFC streams

        -
        - - {% for stream in streams %} - - - - - - {% endfor %} -
        {{ stream.acronym }}{{ stream.name }}{% with stream.get_chair as role %}{{role.person}} ({{role.name}}){% endwith %}
        -
        + + + + + + + + + {% for stream in streams %} + + + + + + {% endfor %} + +
        StreamOwnerStream manager
        {{ stream.acronym }}{{ stream.name }} + {% with stream.get_chair as role %} + {{role.person}} + ({{role.name}}) + {% endwith %} +
        {% endblock %} + diff --git a/ietf/templates/group/milestones.html b/ietf/templates/group/milestones.html index bb04907a5..07c8a6d82 100644 --- a/ietf/templates/group/milestones.html +++ b/ietf/templates/group/milestones.html @@ -1,17 +1,29 @@ {# assumes milestones is in context #} - -{% for milestone in milestones %} - - - - -{% endfor %} +
        - {% if milestone.resolved %}{{ milestone.resolved }}{% else %}{{ milestone.due|date:"M Y" }}{% endif %} - -
        {{ milestone.desc }}
        - {% for d in milestone.docs.all %} - {{ d.name }} - {% endfor %} -
        + + + + + + + + {% for milestone in milestones reversed %} + + + + + {% endfor %} +
        DateMilestone
        + {% if milestone.resolved %} + {{ milestone.resolved }} + {% else %} + {{ milestone.due|date:"M Y" }} + {% endif %} + + {{ milestone.desc }} + {% for d in milestone.docs.all %} +
        {{ d.name }} + {% endfor %} +
        diff --git a/ietf/templates/group/stream_documents.html b/ietf/templates/group/stream_documents.html index f086805fc..9a98870f6 100644 --- a/ietf/templates/group/stream_documents.html +++ b/ietf/templates/group/stream_documents.html @@ -1,15 +1,17 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2013, All Rights Reserved #} +{% extends "ietf.html" %} -{% block title %}{{ stream }} Stream Documents{% endblock %} +{% load ietf_filters %} + +{% block title %}{{ stream }} stream documents{% endblock %} {% block content %} -

        {{ stream }} Stream Documents

        +

        {{ stream }} stream documents

        + +{% if editable %} +

        + Assign delegates +

        +{% endif %} {% include "doc/search/search_results.html" %} {% endblock %} - -{% block js %} - - -{% endblock %} diff --git a/ietf/templates/group/stream_edit.html b/ietf/templates/group/stream_edit.html index 6b800fb65..275810475 100644 --- a/ietf/templates/group/stream_edit.html +++ b/ietf/templates/group/stream_edit.html @@ -1,55 +1,47 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Manage {{ group.name }} stream{% endblock %} +{% load ietf_filters %} +{% load bootstrap3 %} -{% block morecss %} -form.edit td { padding-bottom: .5em; } -{% endblock %} +{% block title %}Manage {{ group.name }} RFC stream{% endblock %} {% block pagehead %} - + + {% endblock %} {% block content %} -{% load ietf_filters %} -

        Manage {{ group.name }} stream

        +

        Manage {{ group.name }} RFC stream

        + +{% bootstrap_messages %}

        - Chair{{ chairs|pluralize }}: - {% for chair in chairs %} - {{ chair.person.plain_name }} <{{ chair.address }}>{% if not forloop.last %}, {% endif %} - {% endfor %} + Chair{{ chairs|pluralize }}: + {% for chair in chairs %} + {{ chair.person.plain_name }} <{{ chair.address }}> + {% if not forloop.last %}, {% endif %} + {% endfor %}

        -

        Delegates can be assigned with permission to do the tasks of the -chair{{ chairs|pluralize }}. Note that in order to actually do so, the delegates need a -Datatracker account. New accounts can be -created here.

        +

        + Delegates can be assigned with permission to do the tasks of the + chair{{ chairs|pluralize }}. Note that in order to actually do so, the delegates need a + datatracker account. New accounts can be created here. +

        + +
        + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %} -{% csrf_token %} - - {% for field in form.visible_fields %} - - - - - {% endfor %} - - - - -
        {{ field.label_tag }} {% if field.field.required %}*{% endif %}{{ field }} - {% if field.help_text %}
        {{ field.help_text }}
        {% endif %} - {{ field.errors }} -
        - Cancel - -
        {% endblock %} -{% block content_end %} - - - +{% block js %} + + {% endblock %} diff --git a/ietf/templates/help/index.html b/ietf/templates/help/index.html index 1f5924094..2c4bd742f 100644 --- a/ietf/templates/help/index.html +++ b/ietf/templates/help/index.html @@ -1,32 +1,36 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} +{% extends "ietf.html" %} -{% block title %} Document State Index{% endblock %} +{% block title %} Document state index{% endblock %} {% block content %} -

        Document State Index

        +

        Document state index

        Document state information is available for the following document and document state groups:

        - - - - - - -{% for type in types %} -{% if type.stategroups != None %} - - - - -{% endif %} -{% endfor %} +
        DocumentState Groups
        {{type.slug}} - {% for group in type.stategroups %} - {{ group }} - {% endfor %} -
        + + + + + + + + + {% for type in types %} + {% if type.stategroups != None %} + + + + + {% endif %} + {% endfor %} + +
        DocumentState groups
        {{type.slug}} + {% for group in type.stategroups %} + {{ group }}{% if not forloop.last %}, {% endif %} + {% endfor %} +
        diff --git a/ietf/templates/help/states.html b/ietf/templates/help/states.html index 8bad73115..2e4c6450f 100644 --- a/ietf/templates/help/states.html +++ b/ietf/templates/help/states.html @@ -1,27 +1,31 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} +{% extends "ietf.html" %} -{% block title %} {{type.label|cut:"state"|cut:"State"}} Statess{% endblock %} +{% block title %} {{type.label|cut:"state"|cut:"state"}} states{% endblock %} {% block content %} -

        {{type.label|cut:"state"|cut:"State"}} States

        +

        {{type.label|cut:"state"|cut:"State"}} states

        - - - - - - - -{% for state in states %} - - - - - -{% endfor %} +
        StateDescriptionNext State
        {{ state.name }}{{ state.desc|safe }}
          {% for s in state.next_states.all %}
        • {{ s.name }}
        • {%endfor%}
        + + + + + + + + + + {% for state in states %} + + + + + + {% endfor %} + +
        StateDescriptionNext states
        {{ state.name }}{{ state.desc|safe }}
          {% for s in state.next_states.all %}
        • {{ s.name }}
        • {%endfor%}
        diff --git a/ietf/templates/iesg/agenda.html b/ietf/templates/iesg/agenda.html index 04de8a160..33dfb93f2 100644 --- a/ietf/templates/iesg/agenda.html +++ b/ietf/templates/iesg/agenda.html @@ -1,40 +1,48 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} -{% block title %}IESG Agenda: {{ date }}{% endblock %} - {% block pagehead %} - + {% endblock %} {% block morecss %} -.agenda hr { margin-top: 2em; } -.agenda .section.s1 h3 { margin: 0; } -.agenda .section p, .agenda .section pre, .agenda blockquote, .agenda .agenda-doc { margin-left: 2.2em; } -.agenda h4 { margin-top: 0; margin-bottom: 0; } -.agenda h5 { font-size: inherit; margin: 1em 0; } -.agenda blockquote { width: 37.6em; font-style:italic; } -.agenda .agenda-doc { margin-top: 0.5em; margin-bottom: 0.8em; width: 95%; clear: both; } -.agenda .agenda-doc .ballot-icon-column { float: right; padding: 0.5em 1em; } -.agenda .stream { padding-left: 0.5em; } -{% endblock morecss %} +{% comment %} +FACELIFT: This is an ugly hack to suppress some whitespace in bootstrap-3.2.0. +Will hopefully be fixed in later versions, so this can be removed. +{% endcomment %} +.clearfix:before, .clearfix:after, .dl-horizontal dd:before, .dl-horizontal dd:after, +.container:before, .container:after, .container-fluid:before, .container-fluid:after, +.row:before, .row:after, .form-horizontal .form-group:before, .form-horizontal .form-group:after, +.btn-toolbar:before, .btn-toolbar:after, .btn-group-vertical>.btn-group:before, +.btn-group-vertical>.btn-group:after, .nav:before, .nav:after, .navbar:before, +.navbar:after, .navbar-header:before, .navbar-header:after, .navbar-collapse:before, +.navbar-collapse:after, .pager:before, .pager:after, .panel-body:before, +.panel-body:after, .modal-footer:before, .modal-footer:after { + content: none; +} +{% endblock %} + +{% block title %}IESG agenda: {{ date }}{% endblock %} + +{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %} {% block content %} -
        +
        +
        -

        IESG Agenda: {{ date }}

        +

        IESG agenda: {{ date }}

        -

        See also: Documents on Future -IESG Telechat Agendas and IESG Discuss -Positions.

        +

        + Documents on future agendas + DISCUSS positions +

        {% for num, section in sections %} -
        -{% if num|sectionlevel == 1 %}

        {{ num }}. {{ section.title|safe }}

        {% endif %} -{% if num|sectionlevel == 2 %}

        {{ num }} {{ section.title|safe }}

        {% endif %} -{% if num|sectionlevel == 3 %}

        {{ num }} {{ section.title|safe }}

        {% endif %} +{% if num|sectionlevel == 1 %}

        {{ num }}. {{ section.title|safe }}

        {% endif %} +{% if num|sectionlevel == 2 %}

        {{ num }} {{ section.title|safe }}

        {% endif %} +{% if num|sectionlevel == 3 %}

        {{ num }} {{ section.title|safe }}

        {% endif %} {% if num == "1.4" %}
        @@ -43,82 +51,102 @@ Positions.

        {% endif %} {% if num >= "2" and num < "5" %} - {% if num == "2" %} -
        - Reviews should focus on these questions: "Is this document a - reasonable basis on which to build the salient part of the Internet - infrastructure? If not, what changes would make it so?" -
        - {% endif %} + {% if num == "2" %} +

        + Reviews should focus on these questions: "Is this document a + reasonable basis on which to build the salient part of the Internet + infrastructure? If not, what changes would make it so?" +

        + {% endif %} - {% if num == "3.1" or num == "3.2" %} -
        - Reviews should focus on these questions: "Is this document a - reasonable contribution to the area of Internet engineering - which it covers? If not, what changes would make it so?" -
        - {% endif %} - - {% if num == "3.3" %} -
        - Reviews should focus on these questions: "Are the proposed - changes to document status appropriate? Have all requirements - for such a change been met? If not, what changes to the proposal - would make it appropriate?" -
        - {% endif %} + {% if num == "3.1" or num == "3.2" %} +

        + Reviews should focus on these questions: "Is this document a + reasonable contribution to the area of Internet engineering + which it covers? If not, what changes would make it so?" +

        + {% endif %} - {% if num == "3.4" %} -
        - The IESG will use RFC 5742 responses: 1) The IESG has concluded - that there is no conflict between this document and IETF work; 2) - The IESG has concluded that this work is related to IETF work done - in WG <X>, but this relationship does not prevent - publishing; 3) The IESG has concluded that publication could - potentially disrupt the IETF work done in WG <X> and - recommends not publishing the document at this time; 4) The IESG - has concluded that this document violates IETF procedures for - <Y> and should therefore not be published without IETF - review and IESG approval; or 5) The IESG has concluded that this - document extends an IETF protocol in a way that requires IETF - review and should therefore not be published without IETF review - and IESG approval.
        -
        - The document shepherd must propose one of these responses in the - conflict-review document, and the document shepherd may supply text - for an IESG Note in that document. The Area Director ballot positions - indicate consensus with the response proposed by the document shepherd - and agreement that the IESG should request inclusion of the IESG Note.
        -
        - Other matters may be recorded in comments, and the comments will - be passed on to the RFC Editor as community review of the document. -
        - {% endif %} + {% if num == "3.3" %} +

        + Reviews should focus on these questions: "Are the proposed + changes to document status appropriate? Have all requirements + for such a change been met? If not, what changes to the proposal + would make it appropriate?" +

        + {% endif %} + + {% if num == "3.4" %} +

        + The IESG will use RFC 5742 responses: +

        +
          +
        1. The IESG has concluded + that there is no conflict between this document and IETF work;
        2. +
        3. The IESG has concluded that this work is related to IETF work done + in WG <X>, but this relationship does not prevent + publishing;
        4. +
        5. The IESG has concluded that publication could + potentially disrupt the IETF work done in WG <X> and + recommends not publishing the document at this time;
        6. +
        7. The IESG + has concluded that this document violates IETF procedures for + <Y> and should therefore not be published without IETF + review and IESG approval; or
        8. +
        9. The IESG has concluded that this + document extends an IETF protocol in a way that requires IETF + review and should therefore not be published without IETF review + and IESG approval.
        10. +
        +

        + The document shepherd must propose one of these responses in the + conflict-review document, and the document shepherd may supply text + for an IESG Note in that document. The Area Director ballot positions + indicate consensus with the response proposed by the document shepherd + and agreement that the IESG should request inclusion of the IESG Note.

        +

        + Other matters may be recorded in comments, and the comments will + be passed on to the RFC Editor as community review of the document. +

        + {% endif %} - {% if "docs" in section %} - {% for doc in section.docs %} - {% if doc.type_id == "draft" or doc.type_id == "statchg" %}{% include "iesg/agenda_doc.html" %}{% endif %} - {% if doc.type_id == "conflrev" %}{% include "iesg/agenda_conflict_doc.html" %}{% endif %} - {% if doc.type_id == "charter" %}{% include "iesg/agenda_charter.html" %}{% endif %} - {% empty %} -

        NONE

        - {% endfor %} - {% endif %} + {% if "docs" in section %} + {% for doc in section.docs %} + {% if doc.type_id == "draft" or doc.type_id == "statchg" %}{% include "iesg/agenda_doc.html" %}{% endif %} + {% if doc.type_id == "conflrev" %}{% include "iesg/agenda_conflict_doc.html" %}{% endif %} + {% if doc.type_id == "charter" %}{% include "iesg/agenda_charter.html" %}{% endif %} + {% if not forloop.last %}
        {% endif %} + {% empty %} +

        (None)

        + {% endfor %} + {% endif %} {% endif %} {% if num|startswith:"6." and user|has_role:"Area Director,IAB Chair,Secretariat" %} -
        -{{ section.text|wordwrap:"76" }}
        -
        +
        {{ section.text|wordwrap:"76" }}
        {% endif %} -
        {% endfor %} +
        +
        + {% endif %} + {% endifchanged %} +
      • {{ section.title|safe }} + {% if num|sectionlevel == 1 %} + {% if not forloop.last %} +
      • +
        {% endblock content %} - -{% block js %} - - -{% endblock %} diff --git a/ietf/templates/iesg/agenda_charter.html b/ietf/templates/iesg/agenda_charter.html index 065ae8e1d..bf4a00d94 100644 --- a/ietf/templates/iesg/agenda_charter.html +++ b/ietf/templates/iesg/agenda_charter.html @@ -1,17 +1,22 @@ -{% load ballot_icon %} -
        -
        - {% ballot_icon doc %} -
        +{% load ietf_filters ballot_icon %} -
        - +{% comment %} +FACELIFT: There seems to be an issue here in bootstrap 3.2.0 where the +float interferes with the spacing of the following dl. Not a huge issue, +but shoudl investigate in the future. +{% endcomment %} +
        {% ballot_icon doc %}
        -
        {{ doc.group.name }} ({{doc.group.acronym}})
        +
        +
        {{ doc.group.type }} name
        +
        {{ doc.group.name }} ({{doc.group.acronym}})
        -
        Area: {{ doc.group.parent.acronym|upper }} ({{ doc.ad|default:"Sponsoring AD not assigned" }})
        -
        -
        +
        Charter
        +
        + + {{ doc.name}}-({{doc.rev}}) +
        + +
        Area
        +
        {{ doc.group.parent.acronym|upper }} ({{ doc.ad|default:"(None)" }})
        + diff --git a/ietf/templates/iesg/agenda_conflict_doc.html b/ietf/templates/iesg/agenda_conflict_doc.html index a2c5a8243..43ada78cd 100644 --- a/ietf/templates/iesg/agenda_conflict_doc.html +++ b/ietf/templates/iesg/agenda_conflict_doc.html @@ -1,46 +1,52 @@ {% load ietf_filters ballot_icon %} -
        -
        - {% ballot_icon doc %} -
        -
        - {{doc.name}}-{{doc.rev}} - [txt] +

        +

        {% ballot_icon doc %}
        -
        {{ doc.title }} +
        + {% with doc.conflictdoc as conflictdoc %} +
        Conflict review
        +
        + + + + {{ doc.canonical_name }} +
        + {{ doc.title }} +
        - {% with doc.conflictdoc as conflictdoc %} +
        {{ conflictdoc.stream }} {{ conflictdoc.intended_std_level }}
        +
        + + + + {{ conflictdoc.name }} +
        + {{ conflictdoc.title }} +
        -
        - {{ conflictdoc.name }}-{{ conflictdoc.rev }} - [txt] -
        {{ conflictdoc.title }} ({{ conflictdoc.stream }}: {{ conflictdoc.intended_std_level }}) - {% if conflictdoc.note %} -
        Note: {{ conflictdoc.note|linebreaksbr }} - {% endif %} + {% if conflictdoc.note %} +
        Note
        {{ conflictdoc.note|linebreaksbr }}
        + {% endif %} - {% if conflictdoc.ipr %} -
        -
        IPR:
        -
          - {% for ipr in conflictdoc.ipr %} - {% if ipr.ipr.status == 1 %} -
        • {{ ipr.ipr.title }}
        • - {% endif %} - {% endfor %} -
        +
        Token
        {{ doc.ad }}
        - {% endif %} -
        + {% with doc.active_defer_event as defer %} + {% if defer %} +
        Deferred by
        {{ defer.by }} on {{ defer.time|date:"Y-m-d" }}
        + {% endif %} + {% endwith %} - {% endwith %} - - Token: {{ doc.ad }} - {% with doc.active_defer_event as defer %} - {% if defer %} -
        Was deferred by {{ defer.by }} on {{ defer.time|date:"Y-m-d" }} - {% endif %} - {% endwith %} -
        -
        + {% if conflictdoc.ipr %} +
        IPR
        +
        + {% for ipr in conflictdoc.ipr %} + {% if ipr.ipr.status == 1 %} + {{ ipr.ipr.title }}
        + {% endif %} + {% endfor %} +
        + {% endif %} + {% endwith %} + +

        diff --git a/ietf/templates/iesg/agenda_doc.html b/ietf/templates/iesg/agenda_doc.html index fbb01e603..7426946f5 100644 --- a/ietf/templates/iesg/agenda_doc.html +++ b/ietf/templates/iesg/agenda_doc.html @@ -1,60 +1,60 @@ {% load ietf_filters ballot_icon %} -
        -
        - {% ballot_icon doc %} -
        -
        - {{ doc.canonical_name }} - {% with doc.rfc_number as rfc_number %} - {% if rfc_number %} - [txt] - {% else %} - [txt] - {% endif %} - {% endwith %} +
        {% ballot_icon doc %}
        - {% if doc.stream %} - {{ doc.stream }} stream{% endif %} +
        +
        + {% if doc.stream %} + {{ doc.stream }} stream + {% endif %} +
        -
        {{ doc.title }} ({{ doc.intended_std_level }}) +
        + {% with doc.rfc_number as rfc_number %} + {% if rfc_number %} + + {% else %} + + {% endif %} + + {% endwith %} + {{ doc.canonical_name }} +
        +
        {{ doc.intended_std_level }}
        {{ doc.title }}
        - {% if doc.note %} -
        Note: {{ doc.note|linebreaksbr }} - {% endif %} + {% if doc.note %} +
        Note
        {{ doc.note|linebreaksbr }}
        + {% endif %} - {% if doc.ipr %} -
        -
        IPR:
        -
          - {% for ipr in doc.ipr %} - {% if ipr.ipr.status == 1 %} -
        • {{ ipr.ipr.title }}
        • - {% endif %} - {% endfor %} -
        +
        Token
        {{ doc.ad }} ({{ doc.area_acronym|upper }} area)
        - {% endif %} + {% with doc.active_defer_event as defer %} + {% if defer %} +
        Deferred by
        {{ defer.by }} on {{ defer.time|date:"Y-m-d" }}
        + {% endif %} + {% endwith %} -
        Token: {{ doc.ad }} ({{ doc.area_acronym }} area) + {% if doc.iana_review_state %} +
        IANA review
        {{ doc.iana_review_state }}
        + {% endif %} - {% with doc.active_defer_event as defer %} - {% if defer %} -
        Was deferred by {{ defer.by }} on {{ defer.time|date:"Y-m-d" }} - {% endif %} - {% endwith %} + {% if doc.consensus %} +
        Consensus
        {{ doc.consensus }}
        + {% endif %} - {% if doc.iana_review_state %} -
        IANA Review: {{ doc.iana_review_state }} - {% endif %} + {% if doc.lastcall_expires %} +
        Last call expires
        {{ doc.lastcall_expires|date:"Y-m-d" }}
        + {% endif %} - {% if doc.consensus %} -
        Consensus: {{ doc.consensus }} - {% endif %} - - {% if doc.lastcall_expires %} -
        Last call expires: {{ doc.lastcall_expires|date:"Y-m-d" }} - {% endif %} - -
        -
        + {% if doc.ipr %} +
        IPR
        +
        + {% for ipr in doc.ipr %} + {% if ipr.ipr.status == 1 %} + {{ ipr.ipr.title }}
        + {% endif %} + {% endfor %} +
        + {% endif %} + diff --git a/ietf/templates/iesg/agenda_documents.html b/ietf/templates/iesg/agenda_documents.html index ea8c553ef..1e5568936 100644 --- a/ietf/templates/iesg/agenda_documents.html +++ b/ietf/templates/iesg/agenda_documents.html @@ -1,102 +1,75 @@ -{% extends "base.html" %} -{% comment %} -Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -All rights reserved. Contact: Pasi Eronen +{% extends "ietf.html" %} -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of the Nokia Corporation and/or its - subsidiary(-ies) nor the names of its contributors may be used - to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -{% endcomment %} {% load ballot_icon %} {% load ietf_filters %} -{% block title %}Documents on Future IESG Telechat Agendas{% endblock %} - -{% block morecss %} -.agenda_docs tr.oddrow {background-color: #EDF5FF; } -.agenda_docs tr.header.telechat-date { margin-top:10px; background:#2647A0; color: white;} -.agenda_docs tr.header.telechat-date td { font-size: 125%; } -.agenda_docs tr.header + tr.header { border-top: 2px solid white;} -.agenda_docs tr td { vertical-align: top; } -.agenda_docs tr .reschedule, -.agenda_docs tr .clear-returning-item { font-size: 11px; } -.agenda_docs tr .doc_pages { font-size: 80%; font-style: italic; } -.secretariat-actions { margin-bottom: 1em; } -{% endblock %} - {% block pagehead %} - + {% endblock %} +{% block title %}Documents on future IESG telechat agendas{% endblock %} + {% block content %} -

        Documents on Future IESG Telechat Agendas

        - -
        {% csrf_token %} +

        Documents on future IESG telechat agendas

        {% if user|has_role:"Secretariat" %} -
        - -
        + + {% csrf_token %} {% endif %} - - {% for t in telechats %} +

        IESG telechat {{t.date}}

        +

        + + + Full IESG agenda + - {% if not forloop.first %} -

        - {% endif %} + + + Download documents + +

        - + {% for num, section in t.sections %} + {% if "docs" not in section or section.docs %} + {% if num|sectionlevel == 1 %}

        {{ num }}. {{ section.title|safe }}

        {% endif %} + {% if num|sectionlevel == 2 %}

        {{ num }} {{ section.title|safe }}

        {% endif %} + {% if num|sectionlevel == 3 %}
        {{ num }} {{ section.title|safe }}
        {% endif %} + {% endif %} - {% if forloop.first %} - - {% endif %} - - - - {% for num, section in t.sections %} - {% if "docs" not in section or section.docs %} - - {% endif %} - {% if "docs" in section and section.docs %} - {% for doc in section.docs %}{% include "iesg/agenda_documents_row.html" %}{% endfor %} - {% endif %} - {% endfor %} + {% if "docs" in section and section.docs %} +
         
        IESG telechat {{t.date}}
        Full IESG Agenda
        Download Documents
        {{ num }}{% if num|sectionlevel == 1 %}.{% endif %} {{ section.title }}
        + + + + + + + + + + + + {% comment %} FACELIFT: We use the same template as the search results now. {% endcomment %} + {% for doc in section.docs %} + {% include "doc/search/search_result_row.html" %} + {% endfor %} + +
        + {% if show_add_to_list and user.is_authenticated %} + + {% endif %} + DocumentDateStatusIPRAD / Shepherd
        + {% endif %} + {% endfor %} +
        {% endfor %} - -
        + +{% if user|has_role:"Secretariat" %} + + +{% endif %} {% endblock content %} - -{% block content_end %} - - - -{% endblock %} diff --git a/ietf/templates/iesg/agenda_documents_row.html b/ietf/templates/iesg/agenda_documents_row.html deleted file mode 100644 index fbbec4897..000000000 --- a/ietf/templates/iesg/agenda_documents_row.html +++ /dev/null @@ -1,67 +0,0 @@ -{% comment %} - -{% endcomment %} - -{% load ballot_icon %} -{% load ietf_filters %} - - -
        {{ doc.displayname_with_link }}
        - {% with doc.active_defer_event as defer %}{% if defer %} -
        (deferred on {{ defer.time|date:"Y-m-d" }})
        - {% endif %}{% endwith %} - {% if user|has_role:"Secretariat" %} -
        - {% if doc.reschedule_form.show_clear %} -
        - {% endif %} - {% endif %} - -{{ doc.title }} - {% if doc.pages %}({{doc.pages}} pp){% endif %} - -{% include "iesg/agenda_documents_row_status.html" %} -{% include "doc/search/ipr_column_with_label.html" %} -{{ doc.ad|default:"" }} - diff --git a/ietf/templates/iesg/agenda_documents_row_status.html b/ietf/templates/iesg/agenda_documents_row_status.html deleted file mode 100644 index 191d11647..000000000 --- a/ietf/templates/iesg/agenda_documents_row_status.html +++ /dev/null @@ -1,4 +0,0 @@ -{% extends "doc/search/status_columns.html" %} -{% block extra_status %} -{% if doc.type_id == 'draft' %}
        Intended status: {{ doc.intended_std_level }}{% endif %} -{% endblock %} diff --git a/ietf/templates/iesg/discusses.html b/ietf/templates/iesg/discusses.html index ef134858a..20017d797 100644 --- a/ietf/templates/iesg/discusses.html +++ b/ietf/templates/iesg/discusses.html @@ -1,87 +1,73 @@ -{% extends "base.html" %} -{% comment %} -Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). -All rights reserved. Contact: Pasi Eronen - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of the Nokia Corporation and/or its - subsidiary(-ies) nor the names of its contributors may be used - to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -{% endcomment %} +{% extends "ietf.html" %} {% load ballot_icon %} {% load ietf_filters %} -{% block title %}IESG Discuss Positions{% endblock %} - -{% block morecss %} -.discusses-chooser label { display: inline-block; margin-right: 0.5em; } -.discusses-chooser input { vertical-align: middle; margin: 0; padding: 0; margin-right: 0.3em; } -{% endblock %} +{% block title %}IESG discuss positions{% endblock %} {% block content %} -

        IESG Discuss Positions

        +

        IESG discuss positions

        {% if user|has_role:"Area Director" %} -

        - Show: - - - +

        + + +

        {% endif %} - - - - - - - +
        DocumentStatusArea DirectorDiscusses
        + + + + + + + + - {% for doc in docs %} - - - - {% include "doc/search/status_columns.html" %} - - - - - {% endfor %} + + {% for doc in docs %} + + + {% include "doc/search/status_columns.html" %} + + + + {% endfor %} +
        DocumentStatusResponsible ADDiscusses
        {{ doc.displayname_with_link }}{{ doc.ad|default:"" }} - {% for p in doc.blocking_positions %} - {% if p.old_ad %}[{% endif %}{{ p.ad }}{% if p.old_ad %}]{% endif %} ({% if p.discuss_time %}{{ p.discuss_time|timesince_days }}{% endif %} days ago{% if doc.get_state_url != "rfc" and p.rev != doc.rev %} for -{{ p.rev }}{% endif %})
        - {% endfor %} -
        + {{ doc.displayname_with_link }} + {{ doc.ad|default:"" }} + {% for p in doc.blocking_positions %} + {% if p.old_ad %} + + {% endif %} + {{ p.ad }} + ({% if p.discuss_time %}{{ p.discuss_time|timesince_days }}{% endif %} + days ago{% if doc.get_state_url != "rfc" and p.rev != doc.rev %} + for -{{ p.rev }}{% endif %})
        + {% if p.old_ad %} +
        + {% endif %} + {% endfor %} +
        -{% endblock content %} - -{% block js %} - - - +{% endblock %} + +{% block scripts %} +$(".discuss").click(function () { + var x = $(this).find("input").val(); + if (x === "all") { + $("tbody tr").removeClass("hidden"); + } else { + $("tbody tr." + x).removeClass("hidden"); + $("tbody tr:not(." + x + ")").addClass("hidden"); + } +}); {% endblock %} diff --git a/ietf/templates/iesg/milestones_needing_review.html b/ietf/templates/iesg/milestones_needing_review.html index 547d06bf8..2df4988fc 100644 --- a/ietf/templates/iesg/milestones_needing_review.html +++ b/ietf/templates/iesg/milestones_needing_review.html @@ -1,25 +1,17 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Milestones Needing Review{% endblock %} - -{% block morecss %} -h3.ad { margin-bottom: 0.5em; } -div.milestones-for-group { margin: 0.5em 0; } -{% endblock %} +{% block title %}Milestones under review{% endblock %} {% block content %} -

        Milestones Needing Review

        +

        Milestones under review

        {% for ad in ads %} -

        {{ ad.plain_name }}

        - -{% for g in ad.groups_needing_review %} - -
        {{ g.name }} ({{ g.acronym }}) has new milestones:
        - -{% include "group/milestones.html" with milestones=g.milestones_needing_review %} - -{% endfor %} +

        {{ ad.plain_name }}

        + {% for g in ad.groups_needing_review %} +

        {{ g.name }} ({{ g.acronym }})

        + {% include "group/milestones.html" with milestones=g.milestones_needing_review %} + All {{ g.acronym }} milestones + {% endfor %} {% endfor %} {% endblock %} diff --git a/ietf/templates/iesg/review_decisions.html b/ietf/templates/iesg/review_decisions.html index 439cd1ae9..6dfdb2d8a 100644 --- a/ietf/templates/iesg/review_decisions.html +++ b/ietf/templates/iesg/review_decisions.html @@ -1,26 +1,29 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}IESG Review Decisions in {{ timeframe }}{% endblock %} - -{% block morecss %} -div.decisions h3 { margin-bottom: 0.5em; } -div.decisions div { padding-left: 1em; text-indent: -1em; } -{% endblock %} +{% block title %}IESG review decisions in {{ timeframe }}{% endblock %} {% block content %} -

        IESG Review Decisions in {{ timeframe }}

        +

        IESG review decisions in {{ timeframe }}

        Showing review decisions announced in {{ timeframe }}.

        -

        Announcements in: - {% for y in years %}{{ y }}{% if not forloop.last %}, {% endif %}{% endfor %} +

        + Announcements in: + {% for y in years %} + {{ y }}{% if not forloop.last %}, {% endif %} + {% endfor %}

        -
        {% for e in events %} - {% ifchanged %}

        {{ e.time|date:"F j, Y" }}

        {% endifchanged %} -
        {{ e.desc }}: {{ e.doc.name }} {% if e.doc.intended_std_level %}({{ e.doc.intended_std_level }}){% endif %} - {{ e.doc.title }}
        + {% ifchanged %} +

        {{ e.time|date:"F j, Y" }}

        + {% endifchanged %} + +

        + {{ e.desc }} {{ e.doc.name }} + {% if e.doc.intended_std_level %}({{ e.doc.intended_std_level }}){% endif %} + - {{ e.doc.title }} +

        {% endfor %} -
        {% endblock %} diff --git a/ietf/templates/ietf.html b/ietf/templates/ietf.html new file mode 100644 index 000000000..7a5b05ea5 --- /dev/null +++ b/ietf/templates/ietf.html @@ -0,0 +1,189 @@ +{% load ietf_filters %} +{% load wg_menu %} +{% load typogrify_tags %} + + + + + + + + {% block title %}No title{% endblock %} + {% if server_mode %} + {% ifnotequal server_mode "production" %}∂{% endifnotequal %} + {% endif %} + + + + + + + + + + {% block pagehead %}{% endblock %} + + + + + + {% filter amp|smartypants %} + + + + + +
        + {% if messages %} +
        +
        + {% for message in messages %} +

        {{ message }}

        + {% endfor %} +
        +
        + {% endif %} + +
        +
        + +
        +
        + + {% block content %}{% endblock %} + {% block content_end %}{% endblock %} +
        +
        + + +
        + + + + + + {% block js %}{% endblock %} + + + + {% endfilter %} + + diff --git a/ietf/templates/ietfauth/testemail.html b/ietf/templates/ietfauth/testemail.html index a01d11a75..b0102dd4a 100644 --- a/ietf/templates/ietfauth/testemail.html +++ b/ietf/templates/ietfauth/testemail.html @@ -1,10 +1,14 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Set up test email address{% endblock %} {% block content %}

        Set up test email address

        +{% bootstrap_messages %} +

        Since this server is running in test mode, all email to be sent out is intercepted and thrown away.

        @@ -14,12 +18,12 @@ cookie in your browser. So make sure cookies are enabled.

        Value of testmailcc: {{ cookie }}

        -
        {% csrf_token %} - - {{ form.as_table }} -
        -
        - -
        + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/ipr/details.html b/ietf/templates/ipr/details.html index 12780cb33..88b249071 100644 --- a/ietf/templates/ipr/details.html +++ b/ietf/templates/ipr/details.html @@ -1,402 +1,396 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} - -{% block title %}IPR Details - {{ ipr.title }}{% endblock %} - -{% block pagehead %} - -{% endblock %} +{% extends "ietf.html" %} +{% load ietf_filters %} {% block morecss %} -table.ipr { margin-top: 1em; } -.ipr .light td { background: #eeeeee; } -.ipr .dark td { background: #dddddd; } -.ipr th { background: #2647a0; color: white; } -.ipr { width: 101ex; border: 0; border-collapse: collapse; } -.ipr th, .ipr td { padding: 3px 6px; text-align: left; } -.ipr tr { vertical-align: top; } -.ipr td.iprlabel { width: 18ex; } -.iprdata { font-weight: bold; } +table.ipr td, table.ipr th { padding-right: 1em; vertical-align: top; } {% endblock %} + +{% block title %}{{ ipr.title }}{% endblock %} + +{% block pagehead %} + +{% endblock %} + {% block content %} - {% load ietf_filters %} - {% if section_list.title %} -

        {{ ipr.title }}

        +

        {{ ipr.title }}

        {% endif %} +{% if not ipr.comply %} +

        + This IPR disclosure does not comply with the formal requirements of Section 6, + "IPR Disclosures," of RFC 3979, "Intellectual Property Rights in IETF Technology." +

        +{% endif %} - {% if section_list.legacy_intro %} -

        This IPR disclosure was submitted by e-mail.

        - {% if not ipr.comply %} -

        - This IPR disclosure does not comply with the formal requirements of Section 6, - "IPR Disclosures," of RFC 3979, "Intellectual Property Rights in IETF Technology." -

        - {% endif %} -

        Sections {% block legacy_sections %}I, II, and IV{% endblock %} of "The Patent Disclosure and Licensing Declaration Template - for {{ section_list.disclosure_type }}" have been completed for this IPR disclosure. - Additional information may be available in the original submission.

        -

        The text of the original IPR disclosure is available further down, and also here:
        - {{ipr.legacy_url_0}}.

        - {% endif %} +
        +{% if section_list.legacy_intro %} +

        This IPR disclosure was submitted by e-mail.

        +

        + Sections {% block legacy_sections %}I, II, and IV{% endblock %} of + "The Patent Disclosure and Licensing Declaration Template + for {{ section_list.disclosure_type }}" have been completed for this IPR disclosure. + Additional information may be available in the original submission. +

        +

        + The text of the original IPR disclosure is available further down, and also at + {{ipr.legacy_url_0}}. +

        +{% endif %} {% if section_list.new_intro %} -

        Only those sections of the "Patent Disclosure and Licensing Declaration -Template for {{ section_list.disclosure_type }}" where the submitter provided - information are displayed.

        +

        + Only those sections of the "Patent Disclosure and Licensing Declaration + Template for {{ section_list.disclosure_type }}" where the submitter provided + information are displayed. +

        {% endif %} {% if section_list.new_intro or section_list.legacy_intro %} + {% if ipr.legacy_title_1 %} +

        {{ ipr.legacy_title_1 }}

        + {% endif %} - {% if ipr.legacy_title_1 %} -

        {{ ipr.legacy_title_1 }}

        - {% endif %} + {% if ipr.legacy_title_2 %} +

        {{ ipr.legacy_title_2 }}

        + {% endif %} - {% if ipr.legacy_title_2 %} -

        {{ ipr.legacy_title_2 }}

        - {% endif %} + {% for item in ipr.updates.all %} +

        + This IPR disclosure updates IPR disclosure ID #{{ item.updated.ipr_id }}, + {% if item.updated.status == 0 %} + "{{ item.updated.title }}". + {% else %} + {% if item.updated.status == 1 %} + "{{ item.updated.title }}". + {% else %} + "{{ item.updated.title }}", which was removed at the request of the submitter. + {% endif %} + {% endif %} +

        + {% endfor %} - {% for item in ipr.updates.all %} -

        This IPR disclosure updates IPR disclosure ID #{{ item.updated.ipr_id }}, - {% if item.updated.status == 0 %} - "{{ item.updated.title }}". - {% else %} - {% if item.updated.status == 1 %} - "{{ item.updated.title }}". + {% for item in ipr.updated_by.all %} + {% if item.processed == 1 and item.ipr.status != 2 %} +

        + This IPR disclosure has been updated by IPR disclosure ID #{{ item.ipr.ipr_id }}, + {% if item.status_to_be == 1 %} + "{{ item.ipr.title }}". + {% else %} + "{{ item.ipr.title }}", which was removed at the request of the submitter. + {% endif %} +

        + {% endif %} + {% endfor %} + +

        + +

        + +
        + Note: Updates to IPR disclosures must only be made by authorized + representatives of the original submitters. Updates will automatically + be forwarded to the current Patent Holder's Contact and to the Submitter + of the original IPR disclosure. +
        +
        +{% endif %} +
        + + +

        Submission date: {{ ipr.submitted_date|date:"F j, Y" }}

        + + +{% if section_list.holder %} +

        + {% cycle I,II,III,IV,V,VI,VII,VIII as section %}. + {% if section_list.third_party %}Possible{% endif %} + Patent holder/applicant ("patent holder") +

        + +
        + + + + + +
        Legal name{{ ipr.legal_name }}
        +
        +{% endif %} + +{% if section_list.holder_contact %} +

        + {% cycle section %}. + Patent holder's contact for license application +

        + +
        + + + + + + + + + +
        Name {{ ipr.holder_contact.name }}
        Title {{ ipr.holder_contact.title }}
        Department {{ ipr.holder_contact.department }}
        Address1 {{ ipr.holder_contact.address1 }}
        Address2 {{ ipr.holder_contact.address2 }}
        Telephone {{ ipr.holder_contact.telephone }}
        Fax {{ ipr.holder_contact.fax }}
        Email {{ ipr.holder_contact.email }}
        +
        +{% endif %} + +{% if section_list.ietf_contact %} +

        + {% cycle section %}. + Contact information for the IETF participant whose personal belief triggered this disclosure +

        + + {% if ipr.ietf_contact.name %} +
        + + + + + + + + + +
        Name {{ ipr.ietf_contact.name }}
        Title {{ ipr.ietf_contact.title }}
        Department {{ ipr.ietf_contact.department }}
        Address1 {{ ipr.ietf_contact.address1 }}
        Address2 {{ ipr.ietf_contact.address2 }}
        Telephone {{ ipr.ietf_contact.telephone }}
        Fax {{ ipr.ietf_contact.fax }}
        Email {{ ipr.ietf_contact.email }}
        +
        + {% else %} + No information submitted. + {% endif %} +{% endif %} + +{% if section_list.ietf_doc %} +

        + {% cycle section %}. + IETF document or other contribution to which this IPR disclosure relates +

        + +
        + + {% if ipr.rfclist %} + {% else %} - "{{ item.updated.title }}", which was removed at the request of the submitter. - {% endif %} - {% endif %} -

        - {% endfor %} + {% for iprdocalias in ipr.rfcs %} + + {% endfor %} + {% endif %} - {% for item in ipr.updated_by.all %} - {% if item.processed == 1 and item.ipr.status != 2 %} -

        - This IPR disclosure has been updated by IPR disclosure ID #{{ item.ipr.ipr_id }}, - {% if item.status_to_be == 1 %} - "{{ item.ipr.title }}". - {% else %} - "{{ item.ipr.title }}", which was removed at the request of the submitter. - {% endif %} -

        - {% endif %} - {% endfor %} + {% if ipr.draftlist %} + + {% else %} + {% for iprdocalias in ipr.drafts %} + + {% endfor %} + {% endif %} -

        Update this IPR disclosure. Note: Updates to IPR disclosures must only be made by authorized - representatives of the original submitters. Updates will automatically - be forwarded to the current Patent Holder's Contact and to the Submitter - of the original IPR disclosure.

        - -

        Submitted Date: {{ ipr.submitted_date|date:"F j, Y" }}

        - {% endif %} + {% if ipr.other_designations %} + + {% endif %} +
        RFC numbers{{ ipr.rfclist }}
        {{ iprdocalias.formatted_name|rfcspace }}"{{ iprdocalias.doc_alias.document.title }}"
        ID filenames (draft-...){{ ipr.draftlist }}
        {{ iprdocalias.formatted_name }}"{{ iprdocalias.doc_alias.document.title }}" (Internet-Draft)
        Designations for other contributions{{ ipr.other_designations }}
        +
        +{% endif %} + +{% if section_list.patent_info %} +

        + {% cycle section %}. + Disclosure of patent information (i.e., patents or patent + applications required to be disclosed by Section 6 of RFC 3979) +

        + + {% if ipr.patents or ipr.notes %} +

        + A. For granted patents or published pending patent applications, + please provide the following information: +

        +
        + + + + + + + + + +
        Patent, serial, publication, registration, + or application/file number(s){{ ipr.patents }}
        Date(s) granted or applied for {{ ipr.date_applied }}
        Country {{ ipr.country }}
        Additional notes{{ ipr.notes|linebreaks }}
        +
        + +

        + B. Does this disclosure relate to an unpublished pending patent application? +

        + +
        + {{ ipr.is_pending }} +
        + + {% if section_list.generic %} +

        + C. Does this disclosure apply to all IPR owned by + the submitter? +

        +
        {{ ipr.applies_to_all }}
        + + {% else %} +

        + C. If an Internet-Draft or RFC includes multiple parts and it is not + reasonably apparent which part of such Internet-Draft or RFC is alleged + to be covered by the patent information disclosed in Section + V(A) or V(B), it is helpful if the discloser identifies here the sections of + the Internet-Draft or RFC that are alleged to be so + covered: +

        + +
        + {% if ipr.document_sections %} + {{ ipr.document_sections|linebreaks }} + {% else %} + No information submitted + {% endif %} +
        + {% endif %} + + {% else %} +

        This disclosure relates to an unpublished pending patent application.

        + {% endif %} +{% endif %} - {% if section_list.holder %} - - - - - - - -
        - {% cycle I,II,III,IV,V,VI,VII,VIII as section %}. - {% if section_list.third_party %}Possible{% endif %} - Patent Holder/Applicant ("Patent Holder") -
        Legal Name: {{ ipr.legal_name }}
        - {% endif %} +{% if section_list.licensing %} + +

        + {% cycle section %}. + Licensing declaration +

        - {% if section_list.holder_contact %} - - - - - - - - - - - -
        - {% cycle section %}. - Patent Holder's Contact for License Application -
        Name: {{ ipr.holder_contact.name }}
        Title: {{ ipr.holder_contact.title }}
        Department: {{ ipr.holder_contact.department }}
        Address1: {{ ipr.holder_contact.address1 }}
        Address2: {{ ipr.holder_contact.address2 }}
        Telephone: {{ ipr.holder_contact.telephone }}
        Fax: {{ ipr.holder_contact.fax }}
        Email: {{ ipr.holder_contact.email }}
        - {% endif %} +

        + The Patent Holder states that its position with respect + to licensing any patent claims contained in the patent(s) or patent + application(s) disclosed above that would necessarily be infringed by + implementation of the technology required by the relevant IETF specification + ("Necessary Patent Claims"), for the purpose of implementing such + specification, is as follows(select one licensing declaration option only): +

        + +
        + {{ ipr.licensing_option }} +
        + + {% if ipr.stdonly_license %} +

        {{ ipr.stdonly_license }}

        +

        Above licensing declaration is limited solely to standards-track IETF documents.

        + {% endif %} + +

        + Licensing information, comments, notes, or URL for further information +

        + +
        + {% if ipr.comments %} + {{ ipr.comments|linebreaks }} + {% else %} + No information submitted. + {% endif %} +
        + + {% if ipr.lic_checkbox %} +

        + {% if ipr.lic_checkbox != 1 %}{{ ipr.lic_checkbox }}{% endif %} + The individual submitting this template represents and warrants that all + terms and conditions that must be satisfied for implementers of any + covered IETF specification to obtain a license have been disclosed in this + IPR disclosure statement. +

        + + {% if section_list.generic %} +

        + Note: According to + RFC 3979, + Section 6.4.3, unless you check the box + above, and choose either option a) or b), you must still file specific + IPR disclosures as appropriate. +

        + {% endif %} + {% endif %} + +

        Note: The individual submitting this template represents and warrants + that he or she is authorized by the Patent Holder to agree to the + above-selected licensing declaration.

        +{% endif %} - {% if section_list.ietf_contact %} - - - - - {% if ipr.ietf_contact.name %} - - - - - - - - - {% else %} - - {% endif %} -
        - {% cycle section %}. - Contact Information for the IETF Participant Whose Personal Belief Triggered this Disclosure: -
        Name: {{ ipr.ietf_contact.name }}
        Title: {{ ipr.ietf_contact.title }}
        Department: {{ ipr.ietf_contact.department }}
        Address1: {{ ipr.ietf_contact.address1 }}
        Address2: {{ ipr.ietf_contact.address2 }}
        Telephone: {{ ipr.ietf_contact.telephone }}
        Fax: {{ ipr.ietf_contact.fax }}
        Email: {{ ipr.ietf_contact.email }}
        No information submitted
        - {% endif %} +{% if section_list.submitter %} +

        + {% cycle section %}. + Contact information of submitter of this form (if different from the + contact information above) +

        + + {% if ipr.submitter.name %} + {% if ipr.ietf_contact_is_submitter %} + {% if section_list.holder_contact %} + Same as in Section II above: + + {% endif %} + + {% if section_list.ietf_contact %} + Same as in Section III above: + + {% endif %} + {% endif %} + +
        + + + + + + + + + +
        Name {{ ipr.submitter.name }}
        Title {{ ipr.submitter.title }}
        Department {{ ipr.submitter.department }}
        Address1 {{ ipr.submitter.address1 }}
        Address2 {{ ipr.submitter.address2 }}
        Telephone {{ ipr.submitter.telephone }}
        Fax {{ ipr.submitter.fax }}
        Email {{ ipr.submitter.email }}
        +
        + + {% else %} +
        No information submitted.
        + {% endif %} +{% endif %} - {% if section_list.ietf_doc %} - - - - - {% if ipr.rfclist %} - - {% else %} - {% for iprdocalias in ipr.rfcs %} - - {% endfor %} - {% endif %} - {% if ipr.draftlist %} - - {% else %} - {% for iprdocalias in ipr.drafts %} - - {% endfor %} - {% endif %} - {% if ipr.other_designations %} - - {% endif %} -
        - {% cycle section %}. - IETF Document or Other Contribution to Which this IPR Disclosure Relates: -
        RFC Numbers:{{ ipr.rfclist }}
        {{ iprdocalias.formatted_name|rfcspace }}:"{{ iprdocalias.doc_alias.document.title }}"
        I-D Filenames (draft-...):{{ ipr.draftlist }}
        Internet-Draft:"{{ iprdocalias.doc_alias.document.title }}"
        ({{ iprdocalias.formatted_name }})
        Designations for Other Contributions:{{ ipr.other_designations }}
        - {% endif %} +{% if section_list.notes %} +

        + {% cycle section %}. + Other Notes +

        - {% if section_list.patent_info %} - - - - - {% if ipr.patents or ipr.notes %} - - - - - - - - - - - - - - {% if section_list.generic %} - - - - {% else %} - - - - {% if ipr.document_sections %} - - {% else %} - - {% endif %} - {% endif %} - - {% else %} - - {% endif %} - -
        - {% cycle section %}. - Disclosure of Patent Information (i.e., patents or patent - applications required to be disclosed by Section 6 of RFC 3979) -
        - A. For granted patents or published pending patent applications, - please provide the following information:
        Patent, Serial, Publication, Registration, - or Application/File number(s): {{ ipr.patents }}
        Date(s) granted or applied for: {{ ipr.date_applied }}
        Country: {{ ipr.country }}
        Additional Notes:{{ ipr.notes|linebreaks }}
        - B. Does this disclosure relate to an unpublished pending patent application?: - {{ ipr.is_pending }} -
        - C. Does this disclosure apply to all IPR owned by - the submitter?: - {{ ipr.applies_to_all }} -
        - C. If an Internet-Draft or RFC includes multiple parts and it is not - reasonably apparent which part of such Internet-Draft or RFC is alleged - to be covered by the patent information disclosed in Section - V(A) or V(B), it is helpful if the discloser identifies here the sections of - the Internet-Draft or RFC that are alleged to be so - covered: -
        {{ ipr.document_sections|linebreaks }}
        No information submitted
        This disclosure relates to an unpublished pending patent application.
        - {% endif %} +
        + {% if ipr.other_notes %} + {{ ipr.other_notes|linebreaks }} + {% else %} + No information submitted. + {% endif %} +
        +{% endif %} - - {% if section_list.licensing %} - - - - - - - - - - - - - - {% if ipr.stdonly_license %} - - - - {% endif %} - - - - - {% if ipr.comments %} - - {% else %} - - {% endif %} - - {% if ipr.lic_checkbox %} - - - - - - {% endif %} - - - -
        - {% cycle section %}. - Licensing Declaration -
        - The Patent Holder states that its position with respect - to licensing any patent claims contained in the patent(s) or patent - application(s) disclosed above that would necessarily be infringed by - implementation of the technology required by the relevant IETF specification - ("Necessary Patent Claims"), for the purpose of implementing such - specification, is as follows(select one licensing declaration option only): -
        - {{ ipr.licensing_option }} -
        - {{ ipr.stdonly_license }} - Above licensing declaration is limited solely to standards-track IETF documents. -
        - Licensing information, comments, notes, or URL for further information: -
        {{ ipr.comments|linebreaks }}
        No information submitted
        -

        - {% if ipr.lic_checkbox != 1 %}{{ ipr.lic_checkbox }}{% endif %} - The individual submitting this template represents and warrants that all - terms and conditions that must be satisfied for implementers of any - covered IETF specification to obtain a license have been disclosed in this - IPR disclosure statement. -

        - {% if section_list.generic %} -

        - Note: According to - RFC 3979, - Section 6.4.3, unless you check the box - above, and choose either option a) or b), you must still file specific - IPR disclosures as appropriate. -

        - {% endif %} -
        - Note: The individual submitting this template represents and warrants - that he or she is authorized by the Patent Holder to agree to the - above-selected licensing declaration. -
        - {% endif %} - - - {% if section_list.submitter %} - - - - - {% if ipr.submitter.name %} - {% if ipr.ietf_contact_is_submitter %} - - {% if section_list.holder_contact %} - - - - {% endif %} - {% if section_list.ietf_contact %} - - - - {% endif %} - - {% endif %} - - - - - - - - - {% else %} - - {% endif %} -
        - {% cycle section %}. - Contact Information of Submitter of this Form (if different from the - Contact Information above) -
        - Same as in Section II above: - -
        - Same as in Section III above: - -
        Name: {{ ipr.submitter.name }}
        Title: {{ ipr.submitter.title }}
        Department: {{ ipr.submitter.department }}
        Address1: {{ ipr.submitter.address1 }}
        Address2: {{ ipr.submitter.address2 }}
        Telephone: {{ ipr.submitter.telephone }}
        Fax: {{ ipr.submitter.fax }}
        Email: {{ ipr.submitter.email }}
        No information submitted
        - {% endif %} - - - {% if section_list.notes %} - - - - - {% if ipr.other_notes %} - - {% else %} - - {% endif %} -
        - {% cycle section %}. - Other Notes: -
        {{ ipr.other_notes|linebreaks }}
        No information submitted
        - {% endif %} - - {% if ipr.legacy_url_0 %} -
        -

        The text of the original IPR declaration:

        - {% if ipr.legacy_text %} -
        {{ipr.legacy_text|safe}}
        - {% else %} - - {% endif %} -
        - {% endif %} +{% if ipr.legacy_url_0 %} +

        Text of original IPR declaration

        +
        +		{% if ipr.legacy_text %}
        +			{{ipr.legacy_text|safe}}
        +		{% else %}
        +			
        +		{% endif %}
        +	
        +{% endif %} {% endblock %} diff --git a/ietf/templates/ipr/details_edit.html b/ietf/templates/ipr/details_edit.html index 081d3632f..802b0b106 100644 --- a/ietf/templates/ipr/details_edit.html +++ b/ietf/templates/ipr/details_edit.html @@ -1,383 +1,325 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} +{% extends "ietf.html" %} + {% load ietf_filters %} -{% block title %}IPR Details - Form{% endblock %} -{% block bodyAttrs %} - {% if section_list.holder_contact %}onload="toggle_submitter_info('holder')"{% endif %} - {% if section_list.ietf_contact %}onload="toggle_submitter_info('ietf')"{% endif %} -{% endblock bodyAttrs %} +{% load bootstrap3 %} -{% block morecss %} -table.ipr { margin-top: 1em; } -.ipr .light td { background: #eeeeee; } -.ipr .dark td { background: #dddddd; } -.ipr th { background: #2647a0; color: white; } -.ipr { width: 101ex; border: 0; border-collapse: collapse; } -.ipr th, .ipr td { padding: 3px 6px; text-align: left; } -.ipr tr { vertical-align: top; } -.ipr td.iprlabel { width: 18ex; } -.iprdata { font-weight: bold; } - -.iprdata li { list-style:none;} - -.required { color: red; float: right; padding-top: 0.7ex; font-size: 130%; } -.errorlist { background: red; color: white; padding: 0.2ex 0.2ex 0.2ex 0.5ex; border: 0px; margin: 0px; } - ul.errorlist { margin: 0px; } -{% endblock %} +{% block title %}Patent disclosure and licensing declaration template for {{ section_list.disclosure_type|lower_allcaps }}{% endblock %} {% block content %} +

        + {{ section_list.disclosure_type|lower_allcaps|capfirst }}
        + Patent disclosure and licensing declaration template +

        -{% include "ipr/js.html" %} - -

        The Patent Disclosure and Licensing Declaration Template for {{ section_list.disclosure_type }}

        +{% bootstrap_messages %} {% if section_list.generic %} -

        This document is an IETF IPR Patent Disclosure and Licensing -Declaration Template and is submitted to inform the IETF of a) patent -or patent application information that is not related to a specific -IETF document or contribution, and b) an IPR Holder's intention with -respect to the licensing of its necessary patent claims. No actual -license is implied by submission of this template.

        +

        This document is an IETF IPR Patent Disclosure and Licensing + Declaration Template and is submitted to inform the IETF of a) patent + or patent application information that is not related to a specific + IETF document or contribution, and b) an IPR Holder's intention with + respect to the licensing of its necessary patent claims. No actual + license is implied by submission of this template.

        {% endif %} {% if section_list.specific %} -

        This document is an IETF IPR Disclosure and Licensing Declaration -Template and is submitted to inform the IETF of a) patent or patent -application information regarding the IETF document or contribution -listed in Section IV, and b) an IPR Holder's intention with respect to -the licensing of its necessary patent claims. No actual license is -implied by submission of this template. Please complete and submit a -separate template for each IETF document or contribution to which the -disclosed patent information relates.

        +

        This document is an IETF IPR Disclosure and Licensing Declaration + Template and is submitted to inform the IETF of a) patent or patent + application information regarding the IETF document or contribution + listed in Section IV, and b) an IPR Holder's intention with respect to + the licensing of its necessary patent claims. No actual license is + implied by submission of this template. Please complete and submit a + separate template for each IETF document or contribution to which the + disclosed patent information relates.

        {% endif %} {% if section_list.third_party %} -

        This form is used to let the IETF know about patent information -regarding an IETF document or contribution when the person letting the -IETF know about the patent has no relationship with the patent owners. -Click here -if you want to disclose information about patents or patent -applications where you do have a relationship to the patent owners or -patent applicants.

        +

        This form is used to let the IETF know about patent information + regarding an IETF document or contribution when the person letting the + IETF know about the patent has no relationship with the patent owners. + Click here + if you want to disclose information about patents or patent + applications where you do have a relationship to the patent owners or + patent applicants.

        {% endif %} {% if section_list.also_specific %} -

        Note: According to Section 6.4.3 of -RFC 3979, -"Intellectual Property Rights in IETF Technology," you -are still required to file specific disclosures on IPR unless your -generic disclosure satisfies certain conditions. Please see the -RFC for details.

        - {% endif %} +

        Note: According to Section 6.4.3 of + RFC 3979, + "Intellectual Property Rights in IETF Technology," you + are still required to file specific disclosures on IPR unless your + generic disclosure satisfies certain conditions. Please see the + RFC for details.

        +{% endif %} -

        If you wish to submit your IPR disclosure by e-mail, then please send -it to ietf-ipr@ietf.org. -Submissions made by e-mail that do not comply with the formal -requirements of Section 6, "IPR Disclosures," of -RFC 3979, -"Intellectual Property Rights in IETF Technology", -will be posted, but will be marked as "non-compliant".

        +

        + If you wish to submit your IPR disclosure by e-mail, then please send + it to ietf-ipr@ietf.org. + Submissions made by e-mail that do not comply with the formal + requirements of Section 6, "IPR Disclosures," of + RFC 3979, + "Intellectual Property Rights in IETF Technology", + will be posted, but will be marked as "non-compliant". +

        -
        {% csrf_token %} + + {% csrf_token %} - {% if ipr.errors %} -

        - There were errors in the submitted form -- see below. Please correct these and resubmit. - {% if ipr.non_field_errors %} -

          - {% for error in ipr.non_field_errors %} -
        • {{ error }}
        • - {% endfor %} -
        + {% if ipr.errors %} +
        +

        + There were errors in the submitted form -- see below. Please correct these and resubmit. +

        + {% if ipr.non_field_errors %} +
          + {% for error in ipr.non_field_errors %} +
        • {{ error }}
        • + {% endfor %} +
        + {% endif %} +
        {% endif %} -

        - {% endif %} -

        - Fields marked with "*" are required. -

        - + {% if section_list.holder %} +

        + {% cycle I,II,III,IV,V,VI,VII,VIII as section %}. + {% if section_list.third_party %}Possible{% endif %} + Patent holder/applicant ("patent holder") +

        + {% bootstrap_field ipr.legal_name layout='horizontal' %} + {% endif %} - {% if section_list.holder %} - - - - - - - -
        - {% cycle I,II,III,IV,V,VI,VII,VIII as section %}. - {% if section_list.third_party %}Possible{% endif %} - Patent Holder/Applicant ("Patent Holder") -
        Legal Name: {{ ipr.legal_name.errors }} * {{ ipr.legal_name }}
        - {% endif %} + {% if section_list.holder_contact %} +

        + {% cycle section %}. + Patent holder's contact for license application +

        + {% for field in ipr.holder_contact %} + {% if field.name != "update_auth" %} + {% bootstrap_field field layout='horizontal' %} + {% endif %} + {% endfor %} + {% endif %} - {% if section_list.holder_contact %} - - - - {% for field in ipr.holder_contact %} - {% if field.name != "update_auth" %} - - {% endif %} - {% endfor %} -
        - {% cycle section %}. - Patent Holder's Contact for License Application -
        {{field.label }}:{{ field.errors }} {% if field.field.required %}*{%endif%} {{ field }}
        - {% endif %} - - {% if section_list.ietf_contact %} - - - - - {% for field in ipr.ietf_contact %} - {% if field.name != "update_auth" %} - - {% endif %} - {% endfor %} -
        - {% cycle section %}. - Contact Information for the IETF Participant Whose Personal Belief Triggered this Disclosure: -
        {{field.label }}:{{ field.errors }} {% if field.field.required %}*{%endif%} {{ field }}
        - {% endif %} + {% if section_list.ietf_contact %} +

        + {% cycle section %}. + Contact information for the IETF participant whose personal belief triggered this disclosure +

        + {% for field in ipr.ietf_contact %} + {% if field.name != "update_auth" %} + {% bootstrap_field field layout='horizontal' %} + {% endif %} + {% endfor %} + {% endif %} - {% if section_list.ietf_doc %} - - - - - - - -
        - * - {% cycle section %}. - IETF Document or Other Contribution to Which this IPR Disclosure Relates: -
        RFC Numbers:{{ ipr.rfclist.errors }} {{ ipr.rfclist }}
        I-D Filenames (draft-...):{{ ipr.draftlist.errors}} {{ ipr.draftlist }}
        Designations for Other Contributions:{{ ipr.other_designations.errors }} {{ ipr.other_designations }}
        - {% endif %} + {% if section_list.ietf_doc %} +

        + {% cycle section %}. + IETF document or other contribution to which this IPR disclosure relates +

        + {% bootstrap_field ipr.rfclist layout='horizontal' %} + {% bootstrap_field ipr.draftlist layout='horizontal' %} + {% bootstrap_field ipr.other_designations layout='horizontal' %} + {% endif %} - {% if section_list.patent_info %} - - - - - {% if ipr.patents or ipr.notes %} - - - - - - - - - - - - - - {% if section_list.generic %} - - - - {% else %} - - - - {% if ipr.document_sections %} - - {% else %} - - {% endif %} - {% endif %} - - {% else %} - - {% endif %} - -
        - {% cycle section %}. - {% if section_list.generic %} - Disclosure of Patent Information (i.e., patents or patent - applications required to be disclosed by Section 6 of RFC3979) - {% endif %} - {% if section_list.specific %} - Disclosure of Patent Information (i.e., patents or patent - applications required to be disclosed by Section 6 of RFC3979) - {% endif %} - {% if section_list.third_party %} - Disclosure of Patent Information, if known (i.e., patents or - patent applications required to be disclosed by Section 6 of RFC3979) - {% endif %} -
        - A. For granted patents or published pending patent applications, - please provide the following information:
        Patent, Serial, Publication, Registration, - or Application/File number(s): {{ ipr.patents.errors }} * {{ ipr.patents }}
        Date(s) granted or applied for: {{ ipr.date_applied.errors }} * {{ ipr.date_applied }}
        Country: {{ ipr.country.errors }} * {{ ipr.country }}
        Additional Notes: {{ ipr.notes.errors }} {{ ipr.notes }}
        - B. Does your disclosure relate to an unpublished pending patent application?: -
        {{ ipr.is_pending.errors }} {{ ipr.is_pending }}
        -
        - C. Does this disclosure apply to all IPR owned by - the submitter?: -
        {{ ipr.applies_to_all.errors }} {{ ipr.applies_to_all }}
        -
        - C. If an Internet-Draft or RFC includes multiple parts and it is not - reasonably apparent which part of such Internet-Draft or RFC is alleged - to be covered by the patent information disclosed in Section - V(A) or V(B), it is helpful if the discloser identifies here the sections of - the Internet-Draft or RFC that are alleged to be so - covered: -
        {{ ipr.document_sections.errors }} {{ ipr.document_sections }}
        No information submitted
        This disclosure relates to an unpublished pending patent application.
        - {% endif %} + {% if section_list.patent_info %} +

        + {% cycle section %}. + {% if section_list.generic %} + Disclosure of patent information (i.e., patents or patent + applications required to be disclosed by Section 6 of RFC3979) + {% endif %} + {% if section_list.specific %} + Disclosure of patent information (i.e., patents or patent + applications required to be disclosed by Section 6 of RFC3979) + {% endif %} + {% if section_list.third_party %} + Disclosure of patent information, if known (i.e., patents or + patent applications required to be disclosed by Section 6 of RFC3979) + {% endif %} +

        + + {% if ipr.patents or ipr.notes %} +

        + A. For granted patents or published pending patent applications, + please provide the following information: +

        + {% bootstrap_field ipr.patents layout='horizontal' %} + {% bootstrap_field ipr.date_applied layout='horizontal' %} + {% bootstrap_field ipr.country layout='horizontal' %} + {% bootstrap_field ipr.notes layout='horizontal' %} + +

        B. Does your disclosure relate to an unpublished pending patent application?

        + {% bootstrap_field ipr.is_pending layout='horizontal' %} + + {% if section_list.generic %} +

        C. Does this disclosure apply to all IPR owned by the submitter?

        + {% bootstrap_field ipr.applies_to_all layout='horizontal' %} + + {% else %} +

        + C. If an Internet-Draft or RFC includes multiple parts and it is not + reasonably apparent which part of such Internet-Draft or RFC is alleged + to be covered by the patent information disclosed in Section + V(A) or V(B), it is helpful if the discloser identifies here the sections of + the Internet-Draft or RFC that are alleged to be so + covered: +

        + + {% if ipr.document_sections %} + {% bootstrap_field ipr.document_sections layout='horizontal' %} + {% else %} + No information submitted + {% endif %} + {% endif %} + {% else %} +

        This disclosure relates to an unpublished pending patent application.

        + {% endif %} +{% endif %} - {% if section_list.licensing %} - - - - - - - - - - - - - - - - - - - - - - - {% if ipr.lic_checkbox %} - - + {% if section_list.licensing %} + +

        + {% cycle section %}. + Licensing declaration +

        + + {% if section_list.generic %} + The Patent Holder states that its position with respect + to licensing any patent claims contained in the patent(s) or patent + application(s) disclosed above that would necessarily be infringed by + implementation of a technology required by a relevant IETF specification + ("Necessary Patent Claims"), for the purpose of implementing such + specification, is as follows (select one licensing declaration option only): + {% endif %} + {% if section_list.specific %} + The Patent Holder states that its position with respect + to licensing any patent claims contained in the patent(s) or patent + application(s) disclosed above that would necessarily be infringed by + implementation of the technology required by the relevant IETF specification + ("Necessary Patent Claims"), for the purpose of implementing such + specification, is as follows (select one licensing declaration option only): + {% endif %} + {% if section_list.third_party %} + The Patent Holder states that its position with respect + to licensing any patent claims contained in the patent(s) or patent + application(s) disclosed above that would necessarily be infringed by + implementation of the technology required by the relevant IETF specification + ("Necessary Patent Claims"), for the purpose of implementing such + specification, is as follows (select one licensing declaration option only): + {% endif %} + + {% comment %} + XXX FACELIFT: Figure out how to omit the first (empty) licensing_option. + {% endcomment %} + {% bootstrap_field ipr.licensing_option layout='horizontal' %} + {% bootstrap_field ipr.stdonly_license layout='horizontal' %} + {% bootstrap_field ipr.comments layout='horizontal' %} + + {% if ipr.lic_checkbox %} + {% if ipr.lic_checkbox != 1 %} + {% bootstrap_field ipr.lic_checkbox layout='horizontal' %} + {% endif %} + + {% if section_list.generic %} +

        + Note: According to + RFC 3979, + Section 6.4.3, unless you check the box + above, and choose either option a) or b), you must still file specific + IPR disclosures as appropriate. +

        + {% endif %} + {% endif %} + + Note: The individual submitting this template represents and warrants + that he or she is authorized by the Patent Holder to agree to the + above-selected licensing declaration. + {% endif %} + + {% if section_list.submitter %} +

        + {% cycle section %}. + Contact information of submitter of this form (if different from the + contact information above) +

        + + {% if ipr.ietf_contact_is_submitter %} +
        + {% if section_list.holder_contact %} +
        + +
        + {% endif %} + + {% if section_list.ietf_contact %} +
        + +
        + {% endif %} +
        + {% endif %} + + {% for field in ipr.submitter %} + {% if field.name != "update_auth" %} + {% bootstrap_field field layout='horizontal' %} + {% endif %} + {% endfor %} + {% endif %} - - {% endif %} - - - -
        - {% cycle section %}. - Licensing Declaration -
        - {% if section_list.generic %} - The Patent Holder states that its position with respect - to licensing any patent claims contained in the patent(s) or patent - application(s) disclosed above that would necessarily be infringed by - implementation of a technology required by a relevant IETF specification - ("Necessary Patent Claims"), for the purpose of implementing such - specification, is as follows (select one licensing declaration option only): - {% endif %} - {% if section_list.specific %} - The Patent Holder states that its position with respect - to licensing any patent claims contained in the patent(s) or patent - application(s) disclosed above that would necessarily be infringed by - implementation of the technology required by the relevant IETF specification - ("Necessary Patent Claims"), for the purpose of implementing such - specification, is as follows (select one licensing declaration option only): - {% endif %} - {% if section_list.third_party %} - The Patent Holder states that its position with respect - to licensing any patent claims contained in the patent(s) or patent - application(s) disclosed above that would necessarily be infringed by - implementation of the technology required by the relevant IETF specification - ("Necessary Patent Claims"), for the purpose of implementing such - specification, is as follows (select one licensing declaration option only): - {% endif %} -
        - {{ ipr.licensing_option.errors }} {{ ipr.licensing_option }} -
        {{ ipr.stdonly_license.errors }} - {{ ipr.stdonly_license }} - Above licensing declaration is limited solely to standards-track IETF documents. -
        - Licensing information, comments, notes, or URL for further information: -
        {{ ipr.comments.errors }} {{ ipr.comments }}
        -

        - {{ ipr.lic_checkbox.errors }} - {% if ipr.lic_checkbox != 1 %}{{ ipr.lic_checkbox }}{% endif %} - The individual submitting this template represents and warrants that all - terms and conditions that must be satisfied for implementers of any - covered IETF specification to obtain a license have been disclosed in this - IPR disclosure statement. -

        - {% if section_list.generic %} -

        - Note: According to - RFC 3979, - Section 6.4.3, unless you check the box - above, and choose either option a) or b), you must still file specific - IPR disclosures as appropriate. -

        - {% endif %} -
        - Note: The individual submitting this template represents and warrants - that he or she is authorized by the Patent Holder to agree to the - above-selected licensing declaration. -
        - {% endif %} + {% if section_list.notes %} +

        + {% cycle section %}. + Other notes +

        + {% bootstrap_field ipr.other_notes layout='horizontal' %} + {% endif %} - - {% if section_list.submitter %} - - - - - {% if ipr.ietf_contact_is_submitter %} - - {% if section_list.holder_contact %} - - - - {% endif %} - {% if section_list.ietf_contact %} - - - - {% endif %} - - {% endif %} - {% for field in ipr.submitter %} - {% if field.name != "update_auth" %} - - {% endif %} - {% endfor %} -
        - {% cycle section %}. - Contact Information of Submitter of this Form (if different from the - Contact Information above) -
        - Same as in Section II above: - -
        - Same as in Section III above: - -
        {{field.label }}:{{ field.errors }} {% if field.field.required %}*{%endif%} {{ field }}
        - {% endif %} - - - {% if section_list.notes %} - - - - - -
        - {% cycle section %}. - Other Notes: -
        {{ ipr.other_notes.errors }} {{ ipr.other_notes }}
        - {% endif %} - - -
        + {% buttons layout='horizontal' %} + + {% endbuttons %} + + +{% endblock %} + +{% block scripts %} +$(".submitter").click(function () { + var c = $(this).prop("checked"); + var n = $(this).attr("name"); + var from = n.replace("contact_is_submitter", ""); + + $("[id^=id_subm_]").each(function () { + if (c) { + $(this).val($("#id_" + from + this.id.replace("id_subm_", "")).val()); + } else { + $(this).val(""); + } + $(this).prop("disabled", c); + }); + + if (n === "hold_contact_is_submitter") { + $("[name=ietf_contact_is_submitter]").prop("checked", false); + } else { + $("[name=hold_contact_is_submitter]").prop("checked", false); + } +}); + +$(document).ready(function () { + $(".submitter").each(function () { + if ($(this).prop("checked")) { + $("[id^=id_subm_]").prop("disabled", true); + } + }); +}); {% endblock %} diff --git a/ietf/templates/ipr/disclosure.html b/ietf/templates/ipr/disclosure.html index c9c606305..65b2f27bf 100644 --- a/ietf/templates/ipr/disclosure.html +++ b/ietf/templates/ipr/disclosure.html @@ -1,52 +1,72 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %} -{% block title %}IPR Disclosure Page{% endblock %} +{% extends "ietf.html" %} + +{% block title %}IPR disclosures{% endblock %} + {% block content %} -

        IPR Disclosure Page

        +

        IPR disclosures

        - This page provides a mechanism for filing Disclosures about intellectual property rights - (IPR) and for finding out what IPR Disclosures have been filed. The IETF intellectual - property rights rules are defined in RFC 3979, - "Intellectual Property Rights in IETF Technology" - (updated by RFC4879, "Clarification of the Third Party Disclosure Procedure in RFC 3979"). -

        -

        - The IETF takes no position regarding the validity or scope of any - intellectual property rights or other rights that might be claimed to - pertain to the implementation or use of the technology described in any IETF documents or the extent to - which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. -

        + This page provides a mechanism for filing Disclosures about intellectual property rights + (IPR) and for finding out what IPR Disclosures have been filed. The IETF intellectual + property rights rules are defined in RFC 3979, + "Intellectual Property Rights in IETF Technology" + (updated by RFC4879, "Clarification of the Third Party Disclosure Procedure in RFC 3979"). +

        + +

        + The IETF takes no position regarding the validity or scope of any + intellectual property rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in any IETF documents or the extent to + which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. +

        -
        -

        To remove an IPR disclosure from the list, please contact the IETF Secretariat at ietf-ipr@ietf.org.

        +

        + To remove an IPR disclosure from the list, please contact the IETF Secretariat at ietf-ipr@ietf.org. +

        -
        -

        IETF Contribution: - any submission to the IETF intended by the Contributor for publication as all or part of an Internet-Draft or RFC (except for RFC Editor Contributions described below) and any statement made within the context of an IETF activity. Such statements include oral statements in IETF sessions, as well as written and electronic communications made at any time or place, which are addressed to:

        -

        - the IETF plenary session,
        - - any IETF working group or portion thereof,
        - - the IESG, or any member thereof on behalf or the IESG,
        - - the IAB or any member thereof on behalf of the IAB,
        - - any IETF mailing list, including the IETF list itself, any working group or design team list, or any other list functioning under IETF auspices,
        - - the RFC Editor or the Internet-Drafts function (except for RFC Editor Contributions described below).
        -

        -

        Statements made outside of an IETF session, mailing list or other function, that are clearly not intended to be input to an IETF activity, group or function, are not IETF Contributions in the context of this document.

        -

        A participant in any IETF activity is deemed to accept all IETF rules of process, as documented in Best Current Practices RFCs and IESG Statements

        +
        -

        A participant in any IETF activity acknowledges that written, audio and video records of meetings may be made and may be available to the public.

        +

        + IETF Contribution: + Any submission to the IETF intended by the Contributor for publication as all or part of an Internet-Draft or RFC (except for RFC Editor Contributions described below) and any statement made within the context of an IETF activity. Such statements include oral statements in IETF sessions, as well as written and electronic communications made at any time or place, which are addressed to: +

        -

        RFC Editor Contribution: - An Internet-Draft intended by the Contributor to be submitted to the - RFC Editor for publication as an Informational or Experimental RFC but not intended to be part of the IETF Standards Process.

        +
          +
        • the IETF plenary session,
        • +
        • any IETF working group or portion thereof,
        • +
        • the IESG, or any member thereof on behalf or the IESG,
        • +
        • the IAB or any member thereof on behalf of the IAB,
        • +
        • any IETF mailing list, including the IETF list itself, any working group or design team list, or any other list functioning under IETF auspices,
        • +
        • the RFC Editor or the Internet-Drafts function (except for RFC Editor Contributions described below).
        • +
        + +

        + Statements made outside of an IETF session, mailing list or other function, that are clearly not intended to be input to an IETF activity, group or function, are not IETF Contributions in the context of this document. +

        + +

        + A participant in any IETF activity is deemed to accept all IETF rules of process, as documented in Best Current Practices RFCs and IESG Statements. +

        + +

        + A participant in any IETF activity acknowledges that written, audio and video records of meetings may be made and may be available to the public. +

        + +
        + +

        + RFC Editor Contribution: + An Internet-Draft intended by the Contributor to be submitted to the + RFC Editor for publication as an Informational or Experimental RFC but not intended to be part of the IETF Standards Process. +

        {% endblock %} diff --git a/ietf/templates/ipr/js.html b/ietf/templates/ipr/js.html deleted file mode 100644 index e655dcc9d..000000000 --- a/ietf/templates/ipr/js.html +++ /dev/null @@ -1,63 +0,0 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} - diff --git a/ietf/templates/ipr/list.html b/ietf/templates/ipr/list.html index 6a8a9698a..6d0baa6ca 100644 --- a/ietf/templates/ipr/list.html +++ b/ietf/templates/ipr/list.html @@ -1,47 +1,79 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}IPR List{% endblock %} +{% extends "ietf.html" %} + +{% block title %}Intellectual property rights disclosures{% endblock %} + +{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %} + {% block content %} -

        IETF Page of Intellectual Property Rights Disclosures

        -

        -This page provides a mechanism for filing disclosures about intellectual property rights (IPR) and for finding out what IPR disclosures have been filed. The IETF intellectual property rights rules are defined in RFC 3979, "Intellectual Property Rights in IETF Technology."

        +
        +
        -

        -The IETF takes no position regarding the validity or scope of any -intellectual property rights or other rights that might be claimed to -pertain to the implementation or use of the technology described in any IETF documents or the extent to -which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights.

        -

        Click here to submit an IPR disclosure

        +

        Intellectual property rights disclosures

        -Search the IPR Disclosures +
        +

        + This page provides a mechanism for filing disclosures about intellectual property rights (IPR) and for finding out what IPR disclosures have been filed. The IETF intellectual property rights rules are defined in RFC 3979, "Intellectual Property Rights in IETF Technology." +

        - -

        Generic IPR Disclosures

        - - - {% for ipr in generic_disclosures %} - {% include "ipr/list_item.html" %} - {% endfor %} +

        + The IETF takes no position regarding the validity or scope of any + intellectual property rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in any IETF documents or the extent to + which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. +

        + + +

        + Submit an IPR disclosure + Search IPR disclosures +

        + +

        Generic IPR disclosures

        +
        Date SubmittedID #Title of IPR Disclosure
        + + + + + {% for ipr in generic_disclosures %} + {% include "ipr/list_item.html" %} + {% endfor %} +
        DateIDTitle
        - -

        Specific IPR Disclosures

        - - - {% for ipr in specific_disclosures %} - {% include "ipr/list_item.html" %} - {% endfor %} +

        Specific IPR disclosures

        +
        Date SubmittedID #Title of IPR Disclosure
        + + + + + {% for ipr in specific_disclosures %} + {% include "ipr/list_item.html" %} + {% endfor %} +
        DateIDTitle
        - -

        Specific Third Party IPR Disclosures

        - - - {% for ipr in thirdpty_disclosures %} - {% include "ipr/list_item.html" %} - {% endfor %} +

        Specific third-party IPR disclosures

        +
        Date SubmittedID #Title of IPR Disclosure
        + + + + + {% for ipr in thirdpty_disclosures %} + {% include "ipr/list_item.html" %} + {% endfor %} +
        DateIDTitle
        + +
        + +
        {% endblock %} - + diff --git a/ietf/templates/ipr/list_item.html b/ietf/templates/ipr/list_item.html index 03fa0b462..7aa6a68d3 100644 --- a/ietf/templates/ipr/list_item.html +++ b/ietf/templates/ipr/list_item.html @@ -1,46 +1,34 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} - - {{ ipr.submitted_date }} - {{ ipr.ipr_id }} - - {% if ipr.status == 1 %} - {{ ipr.title }} - {% else %} - {{ ipr.title }} -
        This IPR disclosure was removed at the request of the submitter. - {% endif %} -
        - {% for item in ipr.updates.all %} - {% if item.updated.status == 1 %} - Updates ID #{{ item.updated.ipr_id }}.
        - {% endif %} - {% endfor %} - {% for item in ipr.updated_by.all %} - {% if item.processed == 1 and item.ipr.status != 2 %} - Updated by ID #{{ item.ipr.ipr_id }}.
        - {% endif %} - {% endfor %} - - - {% if ipr.status == 1 %} - {% if ipr.legacy_title_1 %} - - - - - * - {{ ipr.legacy_title_1 }} - - - {% endif %} - {% if ipr.legacy_title_2 %} - - - - - * - {{ ipr.legacy_title_2 }} - - - {% endif %} - {% endif %} + + {{ ipr.submitted_date }} + {{ ipr.ipr_id }} + + {% if ipr.status == 1 %} + {{ ipr.title }} + {% else %} + {{ ipr.title }} +
        This IPR disclosure was removed at the request of the submitter. + {% endif %} + + {% for item in ipr.updates.all %} + {% if item.updated.status == 1 %} +
        Updates ID #{{ item.updated.ipr_id }}. + {% endif %} + {% endfor %} + + {% for item in ipr.updated_by.all %} + {% if item.processed == 1 and item.ipr.status != 2 %} +
        Updated by ID #{{ item.ipr.ipr_id }}. + {% endif %} + {% endfor %} + + {% if ipr.status == 1 %} + {% if ipr.legacy_title_1 %} +
        {{ ipr.legacy_title_1 }} + {% endif %} + {% if ipr.legacy_title_2 %} +
        {{ ipr.legacy_title_2 }} + {% endif %} + {% endif %} + + + diff --git a/ietf/templates/ipr/removed.html b/ietf/templates/ipr/removed.html index 64dd488a0..39d4fc2e3 100644 --- a/ietf/templates/ipr/removed.html +++ b/ietf/templates/ipr/removed.html @@ -1,12 +1,13 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2009, All Rights Reserved #} -{% block title %}IPR Details - {{ ipr.title }}{% endblock %} +{% extends "ietf.html" %} + +{% block title %}{{ ipr.title }}{% endblock %} + {% block content %}

        {{ ipr.title }}

        - +

        This IPR disclosure was removed at the submitter's request. - +

        {% endblock %} diff --git a/ietf/templates/ipr/search.html b/ietf/templates/ipr/search.html index 275d2f3f9..f1a194a03 100644 --- a/ietf/templates/ipr/search.html +++ b/ietf/templates/ipr/search.html @@ -1,103 +1,123 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}IPR Search{% endblock %} +{% extends "ietf.html" %} + +{% block title %}IPR search{% endblock %} -{% block morecss %} -form { clear:both; margin-top:1em;} -label { float:left; width: 200px; } -{% endblock %} {% block content %} -

        IPR Search

        -

        Document Search

        -
        -
        - - - - -
        +

        IPR search

        - -
        - - - - -
        +
        + +
        + +
        + + + + +
        +
        +
        + +
        + +
        + +
        + + + + +
        +
        +
        + +
        + +
        + +
        +
        + +
        +
        + +
        +
        +
        +
        + +
        +
        + +

        IPR search

        + +
        + +
        + +
        + + + + +
        +
        +
        + +
        + +
        + +
        + + + + +
        +
        +
        + +
        + +
        + +
        + + + + +
        + This search string must contain at least three characters, including at least one digit, and include punctuation marks. For best results, please enter the entire string, or as much of it as possible. +
        +
        + +
        -

        Keyword Search

        -
        - -
        - - - - -
        -
        - - - - -
        - - * The search string must contain at least three characters, including at least one digit, and include punctuation marks. For best results, please enter the entire string, or as much of it as possible. - -
        - - - - -
        -
        - - - - -
        -
        - - - - -
        -
        - -

        Back to IPR Disclosure Page

        +Back {% endblock %} diff --git a/ietf/templates/ipr/search_doc_list.html b/ietf/templates/ipr/search_doc_list.html index c117740c8..1d9468654 100644 --- a/ietf/templates/ipr/search_doc_list.html +++ b/ietf/templates/ipr/search_doc_list.html @@ -1,14 +1,14 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}IPR Disclosures - Select Internet-Draft{% endblock %} +{% extends "ietf.html" %} + +{% block title %}IPR disclosures - select Internet-Draft{% endblock %} {% block content %} -

        IPR Disclosures - Select Internet-Draft

        +

        IPR disclosures - select Internet-Draft

        -

        Please select one of following I-Ds

        +

        Please select one of following I-Ds:

        {% endblock %} diff --git a/ietf/templates/ipr/search_doc_result.html b/ietf/templates/ipr/search_doc_result.html index 6ad58d49c..23a5bb5f5 100644 --- a/ietf/templates/ipr/search_doc_result.html +++ b/ietf/templates/ipr/search_doc_result.html @@ -1,46 +1,65 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} {% extends "ipr/search_result.html" %} + {% load ietf_filters %} + {% block search_result %} - +

        Total number of IPR disclosures found: {{ iprs|length }}.

        - - {% for ipr in iprs %} - - - - - - {% endfor %} +
        Total number of IPR disclosures found: {{ iprs|length }}
        {{ ipr.submitted_date }}
      • ID # {{ ipr.ipr_id }}
      • "{{ ipr.title }}"
        + + + + + - - {% for doc in docs %} - - - - - {% if doc.iprs %} - {% for ipr in doc.iprs %} - - - - - - {% endfor %} - {% else %} - - - - - {% endif %} - - {% endfor %} + + {% for ipr in iprs %} + + + + + + {% endfor %} + +
        DateIDStatement

        Total number of documents searched: {{ docs|length}}
        - Search result on {{ doc.name|rfcspace|lstrip:"0"|rfcnospace }}, "{{ doc.document.title }}"{% if not forloop.first %}{% if doc.related %}, that was {{ doc.relation|lower }} {{ doc.related.source|rfcspace|lstrip:"0"|rfcnospace }}, "{{ doc.related.source.title }}"{% endif %}{% endif %} -
        {{ ipr.submitted_date }}
      • ID # {{ ipr.ipr_id }}
      • "{{ ipr.title }}"
        - No IPR disclosures have been submitted directly on {{ doc.name|rfcspace|lstrip:"0" }}{% if iprs %}, - but there are disclosures on {% if docs|length == 2 %}a related document{% else %}related documents{% endif %}, listed on this page{% endif %}. - -
        {{ ipr.submitted_date }}{{ ipr.ipr_id }}{{ ipr.title }}
        + +

        Total number of documents searched: {{ docs|length}}.

        + + + + + + + + + + {% for doc in docs %} + + + + + {% if doc.iprs %} + {% for ipr in doc.iprs %} + + + + + + {% endfor %} + {% else %} + + + + + + {% endif %} + {% endfor %} + +
        DateIDStatement
        + Results for {{ doc.name|rfcspace|lstrip:"0"|rfcnospace }} ("{{ doc.document.title }}"){% if not forloop.first %}{% if doc.related %}, that was {{ doc.relation|lower }} {{ doc.related.source|rfcspace|lstrip:"0"|rfcnospace }} ("{{ doc.related.source.title }}"){% endif %}{% endif %}: +
        {{ ipr.submitted_date }}{{ ipr.ipr_id }}{{ ipr.title }}
        + No IPR disclosures have been submitted directly on {{ doc.name|rfcspace|lstrip:"0" }}{% if iprs %}, + but there are disclosures on {% if docs|length == 2 %}a related document{% else %}related documents{% endif %}, listed on this page{% endif %}. +
        - {% endblock %} diff --git a/ietf/templates/ipr/search_doctitle_result.html b/ietf/templates/ipr/search_doctitle_result.html index 6fba0252f..5142e929c 100644 --- a/ietf/templates/ipr/search_doctitle_result.html +++ b/ietf/templates/ipr/search_doctitle_result.html @@ -1,52 +1,53 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} {% extends "ipr/search_result.html" %} -{% load ietf_filters %} - {% block search_result %} - - - {% if not count %} - - - - - {% else %} - - {% block iprlist %} - {% for alias in docs %} - - - - - {% if alias.iprs %} - {% for ipr in alias.iprs %} - - - - - - {% endfor %} - {% else %} - - - - - {% endif %} - - {% endfor %} - {% endblock %} - {% endif %} -
        {% block search_header %}Search result on {{ q }}{% endblock %}
        - No IPR disclosures related to a document with the word(s) {{ q }} in the title have been submitted. -
        Total number of IPR disclosures found: {{ count }}
        - IPR that is related to {{ alias.name|rfcspace|lstrip:"0"|rfcnospace }}, "{{ alias.document.title }}"{% if alias.related %}, that was {{ alias.relation|lower }} {{ alias.related.source.name|rfcspace|lstrip:"0"|rfcnospace }}, "{{ alias.related.source.title }}"{% endif %} - -
        {{ ipr.submitted_date }}
      • ID # {{ ipr.ipr_id }}
      • - {% for item in ipr.updated_by.all %} - {% if item.processed == 1 and item.ipr.status != 2 %} - IPR disclosure ID# {{ item.ipr.ipr_id }} "{{ item.ipr.title }}" Updates - {% endif %} - {% endfor %} - "{{ ipr.title }}" -
        No IPR disclosures related to {{ alias.name|rfcspace|lstrip:"0" }} have been submitted
        - {% endblock %} +{% load ietf_filters %} + +{% block search_header %}Search result on {{ q }}{% endblock %} + +{% block search_result %} + +{% if not count %} +

        No IPR disclosures related to a document with the word(s) {{ q }} in the title have been submitted.

        +{% else %} +

        Total number of IPR disclosures found: {{ count }}.

        + + + + + {% for alias in docs %} + + + + + {% if alias.iprs %} + {% for ipr in alias.iprs %} + + + + + + {% endfor %} + + {% else %} + + + + + + + {% endif %} + {% endfor %} + +
        DateIDStatement
        + IPR that is related to {{ alias.name|rfcspace|lstrip:"0"|rfcnospace }} ("{{ alias.document.title }}"){% if alias.related %} that was {{ alias.relation|lower }} {{ alias.related.source.name|rfcspace|lstrip:"0"|rfcnospace }} ("{{ alias.related.source.title }}"){% endif %} + +
        {{ ipr.submitted_date }}{{ ipr.ipr_id }} + {% for item in ipr.updated_by.all %} + {% if item.processed == 1 and item.ipr.status != 2 %} + IPR disclosure #{{ item.ipr.ipr_id }}: {{ item.ipr.title }}
        Updates: + {% endif %} + {% endfor %} + {{ ipr.title }} +
        No IPR disclosures related to {{ alias.name|rfcspace|lstrip:"0" }} have been submitted.
        +{% endif %} +{% endblock %} diff --git a/ietf/templates/ipr/search_error.html b/ietf/templates/ipr/search_error.html index 2601b7c58..3f625dc6e 100644 --- a/ietf/templates/ipr/search_error.html +++ b/ietf/templates/ipr/search_error.html @@ -1,13 +1,14 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}IPR Search Result Error{% endblock %} +{% extends "ietf.html" %} + +{% block title %}IPR search result error{% endblock %} + {% block content %} -

        IPR Search Result Error

        -

        Your request was not processed due to the following error(s):

        -

        - {{ error }} -

        +

        IPR search result error

        + +
        +

        Your request was not processed due to the following error(s):

        +

        {{ error }}

        +
        + {% endblock %} - - diff --git a/ietf/templates/ipr/search_holder_result.html b/ietf/templates/ipr/search_holder_result.html index bb4138f6d..f9d0ad30b 100644 --- a/ietf/templates/ipr/search_holder_result.html +++ b/ietf/templates/ipr/search_holder_result.html @@ -1,5 +1,13 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} {% extends "ipr/search_result.html" %} + {% load ietf_filters %} -{% block search_header %}{% if not count %}Search result on {{ q }}{% else %}Patent Owner/Applicant Search Result{% endif %}{% endblock %} -{% block intro_prefix %}IPR that was submitted by {{ q }}, and{% endblock %} + +{% block search_header %} + {% if not count %} + Search result on {{ q }} + {% else %} + Patent owner/applicant search result + {% endif %} +{% endblock %} + +{% block intro_prefix %}IPR that was submitted by {{ q }} and{% endblock %} diff --git a/ietf/templates/ipr/search_iprtitle_result.html b/ietf/templates/ipr/search_iprtitle_result.html index a27f3651a..bf5ed0d2d 100644 --- a/ietf/templates/ipr/search_iprtitle_result.html +++ b/ietf/templates/ipr/search_iprtitle_result.html @@ -1,7 +1,17 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} {% extends "ipr/search_result.html" %} + {% load ietf_filters %} -{% block search_header %}{% if not count %}Search result on {{ q }}{% else %}IPR Disclosure Title Search Result{% endif %}{% endblock %} + +{% block search_header %} + {% if not count %} + Search result on {{ q }} + {% else %} + IPR disclosure title search result + {% endif %} +{% endblock %} + {% block intro_prefix %}IPR that{% endblock %} -{% block intro_suffix %}and has the string "{{ q }}" within the IPR disclosure title.{% endblock %} -{% block search_failed %}No IPR disclosures with the word(s) "{{ q }}" in the title have been submitted{% endblock %} + +{% block intro_suffix %}and has the string "{{ q }}" within the IPR disclosure title:{% endblock %} + +{% block search_failed %}No IPR disclosures with the word(s) "{{ q }}" in the title have been submitted.{% endblock %} diff --git a/ietf/templates/ipr/search_patent_result.html b/ietf/templates/ipr/search_patent_result.html index 633672e1c..a569f176a 100644 --- a/ietf/templates/ipr/search_patent_result.html +++ b/ietf/templates/ipr/search_patent_result.html @@ -1,6 +1,15 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} {% extends "ipr/search_result.html" %} + {% load ietf_filters %} -{% block search_header %}{% if not count %}Search result on {{ q }}{% else %}Patent Information Search Result{% endif %}{% endblock %} -{% block search_failed %}No IPR disclosures with the word(s) "{{ q }}" in the Patent Information have been submitted{% endblock %} -{% block intro_prefix %}IPR that contains the string {{ q }} in the "Disclosure of Patent Information" section of the form, or in the body of the text (for disclosures submitted by e-mail), and{% endblock %} + +{% block search_header %} + {% if not count %} + Search result on {{ q }} + {% else %} + Patent information search result + {% endif %} +{% endblock %} + +{% block search_failed %}No IPR disclosures with the word(s) "{{ q }}" in the Patent Information have been submitted.{% endblock %} + +{% block intro_prefix %}IPR that contains the string {{ q }} in the "Disclosure of Patent Information" section of the form, or in the body of the text (for disclosures submitted by e-mail), and{% endblock %} diff --git a/ietf/templates/ipr/search_result.html b/ietf/templates/ipr/search_result.html index 91994c55e..794dbed60 100644 --- a/ietf/templates/ipr/search_result.html +++ b/ietf/templates/ipr/search_result.html @@ -1,72 +1,80 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %} -{% block morecss %} -{% endblock %} -{% block doctype %}{% endblock %} -{% block title %}IPR Search Result{% endblock %} -{% block content %} +{% extends "ietf.html" %} + {% load ietf_filters %} -

        IPR Disclosures

        - {% block search_result %} - - - {% if not iprs %} - - - - - {% else %} - - {% block iprlist %} - {% for ipr in iprs %} - - - - - - - - - - {% for item in ipr.updates.all %} - {% if item != ipr %} - - - - - - {% endif %} +{% block morecss %}{% endblock %} +{% block doctype %}{% endblock %} +{% block title %}IPR disclosures{% endblock %} + +{% block content %} +

        IPR disclosures

        + +

        {% block search_header %}Patent owner/applicant search result{% endblock %}

        + +{% block search_result %} +{% if not iprs %} +

        + {% block search_failed %}No IPR disclosures have been submitted by {{ q }}.{% endblock %} +

        +{% else %} +

        + Total number of IPR disclosures found: {{ count }}. +

        + +
        {% block search_header %}Patent Owner/Applicant Search Result{% endblock %}
        {% block search_failed %}No IPR disclosures have been submitted by {{ q }}{% endblock %}
        Total number of IPR disclosures found: {{ count }}
        - {% block intro_prefix %}IPR that was submitted by {{ q }}, and{% endblock %} - {% block related %} - {% with ipr.docs as iprdocaliases %} - {% if not iprdocaliases %} - is not related to a specific IETF contribution. - {% else %} - is related to - {% for item in iprdocaliases %} - {% if forloop.last and forloop.counter > 1 %}and{% endif %} - {{ item.formatted_name|rfcspace }}, "{{ item.doc_alias.document.title }}"{% if not forloop.last and forloop.counter > 1 %},{% endif %} - {% endfor %} - {% endif %} - {% endwith %} - {% endblock %} - {% block intro_suffix %}{% endblock %} -
        {{ ipr.submitted_date }}
      • ID # {{ ipr.ipr_id }}
      • "{{ ipr.title }}"
        {{ item.updated.submitted_date }}
      • ID # {{ item.updated.ipr_id }}
      • - IPR disclosure ID# {{ ipr.ipr_id }} "{{ ipr.title }}" - Updates {{ item.updated.title }} -
        + + + {% block iprlist %} + {% for ipr in iprs %} + + + + + + + + + + + + {% for item in ipr.updates.all %} + {% if item != ipr %} + + + + + + {% endif %} + {% endfor %} + {% endfor %} - - {% endfor %} - {% endblock %} - {% endif %} -
        DateIDStatement
        + {% block intro_prefix %}IPR that was submitted by {{ q }} and{% endblock %} + + {% block related %} + {% with ipr.docs as iprdocaliases %} + {% if not iprdocaliases %} + is not related to a specific IETF contribution. + {% else %} + is related to + {% for item in iprdocaliases %} + {% if forloop.last and forloop.counter > 1 %}and{% endif %} + {{ item.formatted_name|rfcspace }} ("{{ item.doc_alias.document.title }}"){% if not forloop.last and forloop.counter > 1 %},{% endif %} + {% endfor %} + {% endif %} + {% endwith %} + {% endblock %} + {% block intro_suffix %}{% endblock %} +
        {{ ipr.submitted_date }}{{ ipr.ipr_id }}{{ ipr.title }}
        {{ item.updated.submitted_date }}#{{ item.updated.ipr_id }} + IPR disclosure #{{ ipr.ipr_id }}: {{ ipr.title }} +
        Updates: {{ item.updated.title }} +
        - {% endblock %} -

        - - IPR Search Main Page
        - IPR Disclosure Page -
        + {% endblock %} + +{% endif %} {% endblock %} +

        + IPR search page + IPR disclosure page +

        +{% endblock %} diff --git a/ietf/templates/ipr/search_wg_result.html b/ietf/templates/ipr/search_wg_result.html index 644dfce00..cfec78164 100644 --- a/ietf/templates/ipr/search_wg_result.html +++ b/ietf/templates/ipr/search_wg_result.html @@ -1,53 +1,52 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} {% extends "ipr/search_result.html" %} -{% load ietf_filters %} - {% block search_result %} - - - {% if not count %} - - - - - - {% else %} - - {% block iprlist %} - {% for alias in docs %} - - - - - {% if alias.iprs %} - {% for ipr in alias.iprs %} - - - - - - {% endfor %} - {% else %} +{% load ietf_filters %} + +{% block search_header %}Working Group search results{% endblock %} + +{% block search_result %} +

        Total number of {{ q }} WG IPR disclosures found: {{ count }}.

        + +
        {% block search_header %}Working Group Search Result{% endblock %}
        - No IPR disclosures related to the {{ q }} working group have been submitted. -
        Total number of IPR disclosures found: {{ count }}
        Total number of IPR disclosures found: {{ count }}
        - IPR that is related to {{ alias.name|rfcspace|lstrip:"0"|rfcnospace }}, "{{ alias.document.title }}"{% if alias.related %}, that was {{ alias.relation|lower }} {{ alias.related.source|rfcspace|lstrip:"0"|rfcnospace }}, "{{ alias.related.source.title|escape }}"{% endif %} - {% if alias.product_of_this_wg %} which is a product of Working Group {{ q }}{% endif %} -
        {{ ipr.submitted_date }}
      • ID # {{ ipr.ipr_id }}
      • - {% for item in ipr.updates.all %} - {% if item.updated.status == 1 %} - IPR disclosure ID# {{ item.updated.ipr_id }}, "{{ item.updated.title }}" Updated by - {% endif %} - {% endfor %} - "{{ ipr.title }}" -
        + + + + + + + + {% for alias in docs %} - - + + + {% if alias.iprs %} + {% for ipr in alias.iprs %} + + + + + + {% endfor %} + + {% else %} + + + + + + {% endif %} - - {% endfor %} - {% endblock %} - {% endif %} -
        DateIDStatement
        No IPR disclosures related to {{ alias.name|rfcspace|lstrip:"0" }} have been submitted + IPR related to {{ alias.name|rfcspace|lstrip:"0"|rfcnospace }} ("{{ alias.document.title }}"){% if alias.related %} that was {{ alias.relation|lower }} {{ alias.related.source|rfcspace|lstrip:"0"|rfcnospace }} ("{{ alias.related.source.title|escape }}"){% endif %}{% if alias.product_of_this_wg %}, a product of the {{ q }} WG{% endif %}: +
        {{ ipr.submitted_date }}{{ ipr.ipr_id }} + {% for item in ipr.updates.all %} + {% if item.updated.status == 1 %} + IPR disclosure #{{ item.updated.ipr_id }}: {{ item.updated.title }}
        Updated by: + {% endif %} + {% endfor %} + {{ ipr.title }} +
        No IPR disclosures related to {{ alias.name|rfcspace|lstrip:"0" }} have been submitted.
        - {% endblock %} + {% endfor %} + + +{% endblock %} diff --git a/ietf/templates/ipr/submitted.html b/ietf/templates/ipr/submitted.html index 680f0750d..36ac4eb03 100644 --- a/ietf/templates/ipr/submitted.html +++ b/ietf/templates/ipr/submitted.html @@ -1,12 +1,15 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}IPR Submission{% endblock %} +{% extends "ietf.html" %} + +{% block title %}IPR submission successful{% endblock %} + {% block content %} -

        Your IPR disclosure has been submitted, and the IETF Secretariat has been notified.

        - -

        Please note that it may take one business day for your IPR disclosure to be posted -on the IETF Page of Intellectual Property Rights Notices.

        +

        IPR submission successful

        -

        Back to IPR Disclosure Page

        +

        Your IPR disclosure has been submitted, and the IETF Secretariat has been notified.

        + +

        Please note that it may take one business day for your IPR disclosure to be posted +on the IETF Page of Intellectual Property Rights Notices.

        + +Back {% endblock %} diff --git a/ietf/templates/ipr/update.html b/ietf/templates/ipr/update.html index 43c3e8419..40146948d 100644 --- a/ietf/templates/ipr/update.html +++ b/ietf/templates/ipr/update.html @@ -1,62 +1,40 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}IPR Update{% endblock %} +{% extends "ietf.html" %} -{% block morecss %} -table.ipr { margin-top: 1em; } -.ipr .light td { background: #eeeeee; } -.ipr .dark td { background: #dddddd; } -.ipr th { background: #2647a0; color: white; } -.ipr { width: 101ex; border: 0; border-collapse: collapse; } -.ipr th, .ipr td { padding: 3px 6px; text-align: left; } -.ipr tr { vertical-align: top; } -.ipr td.iprlabel { width: 18ex; } -.iprdata { font-weight: bold; } +{% load bootstrap3 %} -.required { color: red; float: right; padding-top: 0.7ex; font-size: 130%; } - .errorlist { background: red; color: white; padding: 0.2ex 0.2ex 0.2ex 0.5ex; border: 0px; margin: 0px; font-family: Arial, sans-serif; } - ul.errorlist { margin: 0px; } - .errorlist { background: red; color: white; padding: 0.2ex 0.2ex 0.2ex 0.5ex; border: 0px; margin: 0px; font-family: Arial, sans-serif; } - ul.errorlist { margin: 0px; } -{% endblock %} +{% block title %}IPR update{% endblock %} {% block content %} -

        Updating {{ type|title }} IPR Disclosure
        {{ ipr.title }}

        +

        Updating {{ type|title }} IPR Disclosure
        {{ ipr.title }}

        -
        {% csrf_token %} - {% if form.errors %} -

        - There were errors in the submitted form -- see below. Please correct these and resubmit. - {% if form.non_field_errors %} -

          - {% for error in form.non_field_errors %} -
        • {{ error }}
        • - {% endfor %} -
        +{% bootstrap_messages %} + + + {% csrf_token %} + + {% if form.errors %} +
        +

        + There were errors in the submitted form -- see below. Please correct these and resubmit. +

        + {% if form.non_field_errors %} +
          + {% for error in form.non_field_errors %} +
        • {{ error }}
        • + {% endfor %} +
        + {% endif %} +
        {% endif %} -

        - {% endif %} - - - - {% for field in form %} - {% if field.name != "update_auth" %} - - {% endif %} - {% endfor %} -
        - Contact Information for Submitter of this Update. -
        {{field.label }}:{{ field.errors }} {% if field.field.required %}*{%endif%} {{ field }}
        -

        - {{ form.update_auth.errors }} - * - {{ form.update_auth }} - I am authorized to update this IPR disclosure, and I understand that notification of this update will be provided to the submitter of the original IPR disclosure and to the Patent Holder's Contact. -

        -

        -  

        -
        +

        Contact information for submitter of this update

        + {% bootstrap_form form layout='horizontal' %} + + {% buttons layout='horizontal' %} + + Back + {% endbuttons %} + {% endblock %} diff --git a/ietf/templates/liaisons/approval_detail.html b/ietf/templates/liaisons/approval_detail.html index ec796f7d5..e4364406e 100644 --- a/ietf/templates/liaisons/approval_detail.html +++ b/ietf/templates/liaisons/approval_detail.html @@ -1,10 +1,10 @@ {% extends "liaisons/detail.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} {% block content %} {{ block.super }} -
        {% csrf_token %} - + + {% csrf_token %} +
        {% endblock %} diff --git a/ietf/templates/liaisons/approval_list.html b/ietf/templates/liaisons/approval_list.html index 6d91e4713..cdd219204 100644 --- a/ietf/templates/liaisons/approval_list.html +++ b/ietf/templates/liaisons/approval_list.html @@ -1,13 +1,13 @@ {% extends "liaisons/overview.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}Pending Liaison Statements{% endblock %} + +{% block title %}Pending liaison statements{% endblock %} {% block content-title %} -

        Pending Liaison Statements

        +

        Pending liaison statements

        {% endblock %} {% block management-links %} - +

        +Return to liaison list +

        {% endblock %} diff --git a/ietf/templates/liaisons/detail.html b/ietf/templates/liaisons/detail.html index 5aa8397b1..33fa3cf74 100644 --- a/ietf/templates/liaisons/detail.html +++ b/ietf/templates/liaisons/detail.html @@ -1,122 +1,147 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} +{% extends "ietf.html" %} + {% load ietf_filters %} -{% block title %}Liaison Statement: {% include 'liaisons/liaison_title.html' %}{% endblock %} +{% block title %}Liaison statement: {% include 'liaisons/liaison_title.html' %}{% endblock %} -{% block pagehead %} - - - -{% endblock %} - -{% block morecss %} -.ietf-liaison-details tr { vertical-align:top; } -{% endblock morecss %} {% block content %} -

        Liaison Statement: {% include 'liaisons/liaison_title.html' %}

        +

        + Liaison statement
        {% include 'liaisons/liaison_title.html' %} +

        - - - - - - - - +
        Submission Date:{{ liaison.submitted|date:"Y-m-d" }}
        From:{{ liaison.from_name }} - {% if liaison.from_contact %}({{ liaison.from_contact.person }}){% endif %} -
        + + + + + + + + + + + + - - - - + {% if liaison.from_contact %} + + + + + {% endif %} -{% if liaison.from_contact %} - - - + {% if liaison.response_contact %} + + + + + {% endif %} - - - - + {% if liaison.technical_contact %} + + + + + {% endif %} - - - - + {% if liaison.purpose %} + + + + + {% endif %} - - - - - {% if liaison.deadline %} - - - - - {% endif %} -{% endif %} + {% if liaison.deadline %} + + + + + {% endif %} -{% if relations %} - - - - -{% endif %} + {% if relations %} + + + + + {% endif %} -{% if liaison.related_to %} -{% if liaison.related_to.approved or is_approving %} - - - - -{% endif %} -{% endif %} + {% if liaison.related_to %} + {% if liaison.related_to.approved or is_approving %} + + + + + {% endif %} + {% endif %} - - - - + + + + -{% if liaison.from_contact and liaison.body %} - - - - -{% endif %} + {% if liaison.from_contact and liaison.body %} + + + + + {% endif %}
        Submission date{{ liaison.submitted|date:"Y-m-d" }}
        From + {{ liaison.from_name }} + {% if liaison.from_contact %}({{ liaison.from_contact.person }}) + {% endif %} +
        To + {% if liaison.from_contact %} + {{ liaison.to_name }} ({{ liaison.to_contact|parse_email_list }}) + {% else %} + {{ liaison.to_name|urlize }} + {% endif %} +
        To: - {% if liaison.from_contact %} - {{ liaison.to_name }} ({{ liaison.to_contact|parse_email_list }}) - {% else %} - {{ liaison.to_name|urlize }} - {% endif %} -
        Cc + {{ liaison.cc|parse_email_list }} +
        Cc:{{ liaison.cc|parse_email_list|make_one_per_line|safe|linebreaksbr }}
        Response contact + {{ liaison.response_contact|parse_email_list }} +
        Response Contact:{{ liaison.response_contact|parse_email_list|make_one_per_line|safe|linebreaksbr }}
        Technical contact + {{ liaison.technical_contact|parse_email_list }} +
        Technical Contact:{{ liaison.technical_contact|parse_email_list|make_one_per_line|safe|linebreaksbr }}
        Purpose{{ liaison.purpose.name }}
        Purpose:{{ liaison.purpose.name }}
        Deadline:{{ liaison.deadline }} - {% if liaison.action_taken %}Action Taken{% else %}Action Needed{% endif %} - {% if can_take_care %} -
        {% csrf_token %} - -
        - {% endif %} -
        Deadline + {{ liaison.deadline }} + {% if liaison.action_taken %} + Action Taken + {% else %} + Action Needed + {% endif %} + {% if can_take_care %} +
        + {% csrf_token %} + +
        + {% endif %} +
        Liaisons referring to this one: - {% for rel in relations %} - {% if rel.title %}{{ rel.title }}{% else %}Liaison #{{ rel.pk }}{% endif %}
        - {% endfor %} -
        Liaisons referring to this + {% for rel in relations %} + + {% if rel.title %}{{ rel.title }}{% else %}Liaison #{{ rel.pk }}{% endif %} + +
        + {% endfor %} +
        Referenced liaison: - {% if liaison.related_to.title %}{{ liaison.related_to.title }}{% else %}Liaison #{{ liaison.related_to.pk }}{% endif %} -
        Referenced liaison + + {% if liaison.related_to.title %}{{ liaison.related_to.title }}{% else %}Liaison #{{ liaison.related_to.pk }}{% endif %} + +
        Attachments: - {% for doc in liaison.attachments.all %} - {{ doc.title }}{% if not forloop.last %}
        {% endif %} - {% empty %} - (none) - {% endfor %} -
        Attachments + {% for doc in liaison.attachments.all %} + {{ doc.title }} + {% if not forloop.last %}
        {% endif %} + {% empty %} + (None) + {% endfor %} +
        Body:
        {{ liaison.body|wordwrap:"71" }}
        Body +
        {{ liaison.body|wordwrap:"71" }}
        +
        {% if can_edit %} -

        Edit Liaison

        +

        + Edit liaison +

        {% endif %} {% endblock %} diff --git a/ietf/templates/liaisons/field_help.html b/ietf/templates/liaisons/field_help.html index 85ef7899c..542aadbb7 100644 --- a/ietf/templates/liaisons/field_help.html +++ b/ietf/templates/liaisons/field_help.html @@ -1,103 +1,174 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %}{% load ietf_filters %} +{% extends "ietf.html" %} -{% block title %}Liaison Statement Management Tool Field Help{% endblock %} +{% load ietf_filters %} + +{% block title %}Liaison statement field help{% endblock %} {% block content %} -

        Liaison Statement Management Tool
        Field Help

        +

        Liaison statement field help

        -

        The table below provides descriptions of the fields included in the +

        + The table below provides descriptions of the fields included in the liaison statement submission form, and suggestions for completing them, -where appropriate. Additional materials that may be useful in -completing this form can be found in the following documents:

        +where appropriate. Additional materials that may be useful in +completing this form can be found in the following documents: +

        -

        For definitive information on generating liaison statements, please -see RFC 4053 (BCP 103) "Procedures for Handling Liaison Statements to and from the IETF."

        +

        + For definitive information on generating liaison statements, please +see + + RFC 4053 (BCP 103) "Procedures for Handling Liaison Statements to and from the IETF." + +

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
        FieldSub-fieldDescriptionComments
        From:Organization:The organization submitting the liaison statement.The field is filled in automatically.
        Submitter:The name and e-mail address of the person submitting the liaison statement.The field is filled in automatically.
        Reply To:The e-mail address(es) that will be inserted in the "To:" field when a recipient hits the "Reply" button on the message. -Mandatory
        Format:
             Name <e-mail address>
        To:Organization:The name of the organization (and sub-group, if applicable) to which the liaison statement is being sent.Drop Down Menu with available choices. If an SDO is not listed please contact statements@ietf.org
        POC(s):The e-mail address(es) of the recipient(s) of the liaison statement, separated by commas.The field is filled in automatically.
        Other Email Addresses:Response Contact:The e-mail address(es) to which any response should be sent, separated by commas.Optional
        Suggested Format:
             Name <e-mail address>
        Technical Contact:The e-mail address(es) of individuals or lists that may be contacted for clarification of the liaison statement, separated by commas.Optional
        Suggested Format:
             Name <e-mail address>
        Cc:The e-mail address(es) of the copy recipient(s) of the liaison statement, one on each line.Optional
        Suggested Format:
             Name <e-mail address>
        Purpose:Purpose:The intent of the liaison statement. Normally, one of four choices: (a) For action, (b) For comment, (c) For information, (d) In Response.The submitter selects one of the four choices, or selects "Other," and indicates the intent.
        Deadline:The date by which a comment or action is required.Mandatory if the purpose is "For comment" or "For action." Otherwise, optional.
        Liaison Statement:Title:The title of the liaison statement.Mandatory.
        Submission Date:The date the liaison was originally submitted.Mandatory.
        Body:The text of the liaison statement.Mandatory if there are no attachments. -
        Optional if the text of the liaison statement is provided in an attachment.
        Add Attachment:Title:The title of the attachment.Optional if there is text in the body, Mandatory if there is not.
        File:Browse to find the attachment.Optional if there is text in the body, Mandatory if there is not.
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        FieldSub-fieldDescriptionComments
        FromOrganizationThe organization submitting the liaison statement.The field is filled in automatically.
        Submitter + The name and e-mail address of the person submitting the liaison statement. + The field is filled in automatically.
        Reply to + The e-mail address(es) that will be inserted in the "To" field when a recipient hits the "reply" button on the message. + Mandatory format: Name <e-mail address>
        ToOrganization + The name of the organization (and sub-group, if applicable) to which the liaison statement is being sent. + + Drop-down menu with available choices. If an SDO is not listed, please contact statements@ietf.org +
        POC(s) + The e-mail address(es) of the recipient(s) of the liaison statement, separated by commas. + The field is filled in automatically.
        Other email addressesResponse contact + The e-mail address(es) to which any response should be sent, separated by commas. + Optional. Suggested format: Name <e-mail address>
        Technical contact + The e-mail address(es) of individuals or lists that may be contacted for clarification of the liaison statement, separated by commas. + Optional. Suggested format: Name <e-mail address>
        Cc + The e-mail address(es) of the copy recipient(s) of the liaison statement, one on each line. + Optional. Suggested format: Name <e-mail address>
        PurposePurpose + The intent of the liaison statement. Normally, one of four choices: (a) For action, (b) For comment, (c) For information, (d) In Response. + + The submitter selects one of the four choices, or selects "other" and indicates the intent. +
        DeadlineThe date by which a comment or action is required. + Mandatory if the purpose is "For comment" or "For action." Otherwise, optional. +
        Liaison statementsTitleThe title of the liaison statement.Mandatory.
        Submission dateThe date the liaison was originally submitted.Mandatory.
        BodyThe text of the liaison statement. + Mandatory if there are no attachments. Optional if the text of the liaison statement is provided in an attachment. +
        Add attachmentTitleThe title of the attachment. + Optional if there is text in the body, mandatory if there is not. +
        FileBrowse to find the attachment. + Optional if there is text in the body, mandatory if there is not. +
        {% endblock %} diff --git a/ietf/templates/liaisons/guide_from_ietf.html b/ietf/templates/liaisons/guide_from_ietf.html index 3c56a15c7..66f4c4f1f 100644 --- a/ietf/templates/liaisons/guide_from_ietf.html +++ b/ietf/templates/liaisons/guide_from_ietf.html @@ -1,63 +1,76 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %}{% load ietf_filters %} +{% extends "ietf.html" %} -{% block title %}Liaison Statements from the IETF - Guidelines for Completing the "Cc:" Field{% endblock %} +{% load ietf_filters %} + +{% block title %}Liaison statements from the IETF - guidelines for completing the "Cc:" field{% endblock %} {% block content %} -

        Liaison Statements from the IETF
        Guidelines for Completing the "Cc:" Field

        +

        Liaison statements from the IETF
        Guidelines for completing the "Cc:" field

        -

        The individuals copied on a liaison statement that is sent BY the IETF to another Standards Development Organization (SDO) depend on the IETF entity that is sending the liaison statement. +

        The individuals copied on a liaison statement that is sent by the IETF to another Standards Development Organization (SDO) depend on the IETF entity that is sending the liaison statement.

        +

        The following table provides guidelines for completing the "Cc:" field of liaison statements that are sent by the IETF.

        For definitive information on generating liaison statements, please see:

        + - - - - - - - - - - - - - - - - - - - - - - - +
        Liaison Statements FROM the IETF
        Submitting Entity (1)"Cc:" Field (1, 2, 3)
        • The IAB
        • The IESG
        • The IETF
        • An IETF Area
        • An IETF Working Group
        (1) Please see Section 4., "Approval and Transmission of Liaison Statements," -of RFC 4052 for information on who may submit a liaison statement on behalf of an IETF entity, and who should be copied.

        -(2) The IETF Secretariat, <statements@ietf.org>, is automatically blind-copied on every liaison statement sent by the IETF.

        -(3) Any addresses included in the "Response Contact" and "Technical Contact" fields of a liaison statement will also receive copies of the liaison statement.

        -(4) This guideline does not apply when sending a liaison statement to an SDO where no formal liaison relationship exists between the IETF and that SDO.

        -(5) A list of Area Directorate mailing lists is not currently available.

        -
        + + + + + + + + + + + + + + + + + + + + + +
        Submitting entity (1)Cc: field (1, 2, 3)
        The IABThe IETF Liaison Manager for the SDO (4)
        + The IAB Chair (if not the submitter) <iab-chair@iab.org>
        + The IAB <iab@iab.org>
        The IESGThe IETF Liaison Manager for the SDO (4)
        + The IETF Chair (if not the submitter) <chair@ietf.org>
        + The IESG <iesg@ietf.org>
        The IETFThe IETF Liaison Manager for the SDO (4)
        + The IETF Chair (if not the submitter) <chair@ietf.org>
        + The IESG <iesg@ietf.org>
        An IETF AreaThe IETF Liaison Manager for the SDO (4)
        + The IETF Area Director(s) (if not the submitter)
        + The IETF Chair <chair@ietf.org>
        + The IETF Area Directorate Mailing List (where applicable) (5)
        An IETF Working GroupThe IETF Liaison Manager for the SDO (4)
        + The IETF Working Group Chair(s) (if not the submitter)
        + The IETF Area Director(s)
        + The IETF Working Group Discussion List
        +

        +(1) Please see Section 4., "Approval and Transmission of Liaison Statements," +of RFC 4052 for information on who may submit a liaison statement on behalf of an IETF entity, and who should be copied. +

        +

        +(2) The IETF Secretariat, <statements@ietf.org>, is automatically blind-copied on every liaison statement sent by the IETF. +

        +

        +(3) Any addresses included in the "Response Contact" and "Technical Contact" fields of a liaison statement will also receive copies of the liaison statement. +

        +

        +(4) This guideline does not apply when sending a liaison statement to an SDO where no formal liaison relationship exists between the IETF and that SDO. +

        +

        +(5) A list of Area Directorate mailing lists is not currently available. +

        + {% endblock %} diff --git a/ietf/templates/liaisons/guide_to_ietf.html b/ietf/templates/liaisons/guide_to_ietf.html index 13146324e..69857524a 100644 --- a/ietf/templates/liaisons/guide_to_ietf.html +++ b/ietf/templates/liaisons/guide_to_ietf.html @@ -1,58 +1,64 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %}{% load ietf_filters %} +{% extends "ietf.html" %} -{% block title %}Liaison Statements to the IETF - Guidelines for Completing the "To:" and "Cc:" Fields{% endblock %} +{% load ietf_filters %} + +{% block title %}Liaison statements to the IETF - guidelines for completing the "To:" and "Cc:" fields{% endblock %} {% block content %} -

        Liaison Statements to the IETF
        Guidelines for Completing the "To:" and "Cc:" Fields

        +

        Liaison statements to the IETF
        Guidelines for completing the "To:" and "Cc:" fields

        -

        The following table provides guidelines for completing the "To:" and "Cc:" fields of liaison statements that are sent TO the IETF by other Standards Development Organizations (SDOs). +

        The following table provides guidelines for completing the "To:" and "Cc:" fields of liaison statements that are sent to the IETF by other Standards Development Organizations (SDOs).

        +

        For definitive information on generating liaison statements, please see RFC 4053 (BCP 103) "Procedures for Handling Liaison Statements to and from the IETF."

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
        Liaison Statements TO the IETF
        "To:" Field"Cc:" Field (1, 2)
        OrganizationPOC(s)
        • The IAB
        • The IAB Chair <iab-chair@iab.org>
        • The IESG
        • The IETF Chair <chair@ietf.org>
        • The IETF
        • The IETF Chair <chair@ietf.org>
        • An IETF Area
        • An IETF Working Group
        (1) The IETF Secretariat, <statements@ietf.org>, is automatically blind-copied on every liaison statement sent to the IETF.
        - (2) Any addresses included in the "Response Contact" and -"Technical Contact" fields of a liaison statement will also receive copies of the liaison statement.
        - (3) A list of Area Directorate mailing lists is not currently available.
        + + + + + + + + + + + + + + + + + + + + + + + + + + +
        To: organizationTo: POC(s)Cc: (1, 2)
        The IAB The IAB Chair <iab-chair@iab.org>The IETF Liaison Manager for the SDO
        + The IAB <iab@iab.org>
        The IESG The IETF Chair <chair@ietf.org>The IETF Liaison Manager for the SDO
        + The IESG <iesg@ietf.org>
        The IETF The IETF Chair <chair@ietf.org>The IETF Liaison Manager for the SDO
        + The IESG <iesg@ietf.org>
        An IETF Area The IETF Area Director(s)The IETF Liaison Manager for the SDO
        + The IETF Chair <chair@ietf.org>
        + The IETF Area Directorate Mailing List(where applicable) (3)
        An IETF Working Group The Working Group Chair(s)The IETF Liaison Manager for the SDO
        + The IETF Area Director(s)
        + The IETF Working Group Discussion List
        +

        + (1) The IETF Secretariat <statements@ietf.org>, is automatically blind-copied on every liaison statement sent to the IETF. +

        +

        + (2) Any addresses included in the "response contact" and +"technical contact" fields of a liaison statement will also receive copies of the liaison statement. +

        +

        + (3) A list of area directorate mailing lists is not currently available. +

        {% endblock %} diff --git a/ietf/templates/liaisons/help.html b/ietf/templates/liaisons/help.html index e5bf792db..5ca156d9c 100644 --- a/ietf/templates/liaisons/help.html +++ b/ietf/templates/liaisons/help.html @@ -1,15 +1,14 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block title %}Liaison Statement Management Tool Help{% endblock %} +{% block title %}Liaison statement help{% endblock %} {% block content %} -

        Liaison Statement Management Tool Help

        +

        Liaison statement help

        {% endblock %} diff --git a/ietf/templates/liaisons/liaison_table.html b/ietf/templates/liaisons/liaison_table.html index fdc18f5a7..7fb31730d 100644 --- a/ietf/templates/liaisons/liaison_table.html +++ b/ietf/templates/liaisons/liaison_table.html @@ -1,39 +1,49 @@ {% load ietf_filters %} + + + + + + + + + + -
        + Date {% if sort == "submitted" %}{% endif %} + + From {% if sort == "from_name" %}{% endif %} + + To {% if sort == "to_name" %}{% endif %} + + Deadline {% if sort == "deadline" %}{% endif %} + + Title {% if sort == "title" %}{% endif %} +
        - - - - - - - - -{% for liaison in liaisons %} - - - - - - - -{% endfor %} - + + {% for liaison in liaisons %} + + + + + + + + {% endfor %} +
        DateFromToDeadlineTitle
        {{ liaison.submitted|date:"Y-m-d" }}{{ liaison.from_name }} - {% if liaison.from_contact_id %} - {{ liaison.to_name }} - {% else %} - {{ liaison.to_name|strip_email }} - {% endif %} - - {{ liaison.deadline|default:"-"|date:"Y-m-d" }} - - {% if not liaison.from_contact_id %} - {% for doc in liaison.attachments.all %} - {{ doc.title }}
        - {% endfor %} - {% else %} - {{ liaison.title }} - {% endif %} - -
        {{ liaison.submitted|date:"Y-m-d" }}{{ liaison.from_name }} + {% if liaison.from_contact_id %} + {{ liaison.to_name }} + {% else %} + {{ liaison.to_name|strip_email }} + {% endif %} + {{ liaison.deadline|default:"-"|date:"Y-m-d" }} + {% if not liaison.from_contact_id %} + {% for doc in liaison.attachments.all %} + {{ doc.title }} +
        + {% endfor %} + {% else %} + {{ liaison.title }} + {% endif %} +
        diff --git a/ietf/templates/liaisons/liaison_title.html b/ietf/templates/liaisons/liaison_title.html index 5556aaafa..09b286827 100644 --- a/ietf/templates/liaisons/liaison_title.html +++ b/ietf/templates/liaisons/liaison_title.html @@ -1,5 +1,7 @@ -{% load ietf_filters %}{% if not liaison.from_contact %} - Liaison statement submitted by email from {{ liaison.from_name }} to {{ liaison.to_name|strip_email }} on {{ liaison.submitted|date:"Y-m-d" }} +{% load ietf_filters %} + +{% if not liaison.from_contact %} + Liaison statement submitted by email from {{ liaison.from_name }} to {{ liaison.to_name|strip_email }} on {{ liaison.submitted|date:"Y-m-d" }} {% else %} - {{ liaison.title }} + {{ liaison.title }} {% endif %} diff --git a/ietf/templates/liaisons/overview.html b/ietf/templates/liaisons/overview.html index 60eaae641..5369497ec 100644 --- a/ietf/templates/liaisons/overview.html +++ b/ietf/templates/liaisons/overview.html @@ -1,25 +1,26 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}Liaison Statements{% endblock %} +{% extends "ietf.html" %} -{% block pagehead %} - - -{% endblock %} +{% block title %}Liaison statements{% endblock %} {% block content %} {% block content-title %} -

        Liaison Statements

        +

        Liaison statements

        {% endblock %} {% block management-links %} {% if can_manage %} - +

        + {% if can_send_incoming %} + New incoming liaison + {% endif %} + {% if can_send_outgoing %} + New outgoing liaison + {% endif %} + {% if approvable %} + Approve pending liaison statement{{ approvable|pluralize }} {{ approvable }} + {% endif %} +

        {% endif %} {% endblock %} diff --git a/ietf/templates/mailinglists/group_archives.html b/ietf/templates/mailinglists/group_archives.html index 54f07377f..18ef443fb 100644 --- a/ietf/templates/mailinglists/group_archives.html +++ b/ietf/templates/mailinglists/group_archives.html @@ -1,30 +1,33 @@ -{% extends "base.html" %} -{# Copyright The IETF Trust 2008, All Rights Reserved #} +{% extends "ietf.html" %} -{% block title %}Web-based Working Group E-mail Archives{% endblock %} +{% block title %}Web-based Working Group email archives{% endblock %} {% block content %} -

        Web-based Working Group E-mail Archives

        +

        Web-based Working Group email archives

        These links to the Web-based working group e-mail archives are - extracted from the working group charters. Please consult the - charters for more information about the mailing lists and archives - of specific working groups. Charters for active working groups are - available on - the Active IETF Working Groups Web page. - Charters for concluded working groups are available on - the Concluded - Working Groups Web page.

        + extracted from the working group charters. Please consult the + charters for more information about the mailing lists and archives + of specific working groups. Charters for active working groups are + available on + the Active IETF Working Groups Web page. + Charters for concluded working groups are available on + the Concluded + Working Groups Web page.

        - - - - - {% for group in groups %} - - - - - {% endfor %} +
        AcronymName
        {{ group.acronym }}{{ group.name }}
        + + + + + + + {% for group in groups %} + + + + + {% endfor %} +
        AcronymName
        {{ group.acronym }}{{ group.name }}
        {% endblock %} diff --git a/ietf/templates/meeting/agenda-utc.html b/ietf/templates/meeting/agenda-utc.html deleted file mode 100644 index 7dd300b74..000000000 --- a/ietf/templates/meeting/agenda-utc.html +++ /dev/null @@ -1,255 +0,0 @@ -{% extends "base.html" %} -{% load ietf_filters %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% load humanize %} -{% block title %}IETF {{ schedule.meeting.number }} Meeting Agenda{% endblock %} - -{% block morecss %} -table#agenda { border: 0; border-collapse:collapse; } -#agenda td { padding-right:2em; } -#agenda tr.meeting-date td { padding-top:1em; padding-right:0;} - -table#wg-selector { border:1px solid black; border-collapse:collapse; } -#wg-selector td,#wg-selector th { border:1px solid black; padding: 2px} -#wg-selector div.selected { background-color: #c0c0FF; cursor: pointer; } -#wg-selector div.unselected { cursor: pointer; } -#wg-selector td.inactive div { background-color: #EEEEEE; color: #808080; cursor:default;} -#wg-selector.hidden { display: none; } -#wg-selector-toggle-text { text-decoration: underline; cursor: pointer; } -#wg-selector-triangle-right { vertical-align: text-top; } -#wg-selector-triangle-down { vertical-align: text-top; } - -table#ics-preconfig { border:1px solid black; border-collapse:collapse; margin-top:24px; margin-bottom:24px;} - -#weekview.hidden { display: none; } -#weekview { border: none; margin: 0 0 0 0; overflow: hidden;} -#ical-link.hidden { display: none; } -#ical-link { margin: 10px 0 0 0; padding: 10px; text-align: center; background-color: #2647a0; color: #FFFFFF } -#ical-link A:link { color: #FFFFFF; } -#ical-link A:visited { color: #FFFFFF; } -#ical-link A:active { color: #FF00FF; } -#ical-link A:hover { color: #FF0000; } - -tr.time-title { font-weight: bold; color:#800000;} -tr.grouprow > td { padding: 4px; } -td.materials { align:right; } -span.note { font-style: italic; color:#ff0000; } - -#APP-groups, #selector-APP { color:#008; background-color:#eef } -#GEN-groups, #selector-GEN { color:#080; background-color:#efe } -#INT-groups, #selector-INT { color:#088; background-color:#eff } -#OPS-groups, #selector-OPS { color:#800; background-color:#fee } -#RAI-groups, #selector-RAI { color:#808; background-color:#fef } -#RTG-groups, #selector-RTG { color:#880; background-color:#ffe } -#SEC-groups, #selector-SEC { color:#488; background-color:#dff } -#TSV-groups, #selector-TSV { color:#484; background-color:#dfd } -#IRTF-groups, #selector-IRTF { color:#448; background-color:#ddf } - -img.hidden { display: none; } - -.ietf-agenda-palette { border-collapse:collapse; border:2px solid black; background:white; overflow:hidden; } -.ietf-agenda-palette td { border:1px solid black; } -.ietf-agenda-palette td { padding: 4px; text-align:center;} -.ietf-agenda-palette td a { text-decoration:none; } -.bgnone {} -.bgaqua, .bgaqua a { background-color: aqua; color: black; } -.bgblue, .bgblue a { background-color: blue; color: black; } -.bgfuchsia, .bgfuchsia a { background-color: fuchsia; color: black; } -.bggray, .bggray a { background-color: gray; color: white; } -.bggreen, .bggreen a { background-color: green; color: white; } -.bglime, .bglime a { background-color: lime; color: black; } -.bgmaroon, .bgmaroon a { background-color: maroon; color: white; } -.bgnavy, .bgnavy a { background-color: navy; color: white; } -.bgolive, .bgolive a { background-color: olive; color: white; } -.bgpurple, .bgpurple a { background-color: purple; color: white; } -.bgred, .bgred a { background-color: red; color: black; } -.bgsilver, .bgsilver a { background-color: silver; color: black; } -.bgteal, .bgteal a { background-color: teal; color: white; } -.bgwhite, .bgwhite a { background-color: white; color: black; } -.bgyellow, .bgyellow a { background-color: yellow; color: black; } -.bgblack, .bgblack a { background-color: black; color: white; } -.groupagenda { display:none; } - -.timecolumn { white-space:nowrap; } - -{% endblock morecss %} - -{% block js %} - - - -{% endblock js %} - -{% block bodyAttrs %}onload='setGroupState();updateAgendaColors()'{% endblock %} -{% block content %} - -

        Time zone information:

        - The agenda times in this version of the agenda - are by default in UTC, but there's a handy conversion function which - you can use to make the page show times in your Browser's time. -
        -
        - -
        - -

        IETF {{ schedule.meeting.number }} Meeting Agenda

        - -

        {{ schedule.meeting.city }}, {{ schedule.meeting.date|date:"F j" }} – {% if schedule.meeting.date.month != schedule.meeting.end_date.month %}{{ schedule.meeting.end_date|date:"F " }}{% endif %}{{ schedule.meeting.end_date|date:"j, Y" }}
        -Updated {{ updated|date:"Y-m-d H:i:s T" }}

        -
        -(There's also a agenda with local times, a plaintext agenda and a tools-style agenda available)
        - -

        IETF agendas are subject to change, up to and during the meeting.

        - -{# cache this part for 5 minutes -- it takes 3-6 seconds to generate #} -{% load cache %}{% cache 3 ietf_meeting_agenda_utc schedule.meeting.number %} - -You can customize the agenda below to show only selected working group sessions. To be able to return to the customized view later, bookmark the resulting URL. -
        - - - Select working group sessions -
        - - - - {% for area in schedule.area_list %} - - {% endfor %} - - - {% for wg in schedule.groups %}{% ifchanged wg.parent.acronym %}{% if forloop.counter > 1 %} - {% endif %} - - - - - - - - - -
        - Preconfigured .ics links: - {% for area in schedule.area_list %} - {{area|upper}} • - {% endfor %} - Non-Area Events -
        - -{% if schedule.meeting.agenda_note %}

        {{ schedule.meeting.agenda_note|safe }}

        {% endif %} - - -{% for item in schedule.assignments.all %} - {% ifchanged %} - - - - {% endifchanged %} - {% if item.timeslot.type.slug == 'session' %} - {% ifchanged %} - - - - - {% endifchanged %} - {% endif %} - {% if item.timeslot.type.slug == 'break' or item.timeslot.type.slug == 'reg' or item.timeslot.type.slug == 'other' or item.timeslot.type.slug == 'plenary' %} - {% ifchanged %} - - - - - {% endifchanged %} - {% endif %} - {% if item.timeslot.type.slug = 'session' %} {% if item.session.group %} - - - - - - - - - - - - - {% endif %} {% endif %} - {% if item.timeslot.type.slug = 'plenary' %} - - - - - {% endif %} -{% endfor %} -
        -

        {{ item.timeslot.time|date:"l"|upper }}, {{ item.timeslot.time|date:"F j, Y" }}

        -
        - {{ item.timeslot.utc_start_time|date:"M d"}}   - {{ item.timeslot.utc_start_time|date:"Hi"}}-{{item.timeslot.utc_end_time|date:"Hi"}} UTC - - {{ item.timeslot.time|date:"l"}} {{item.timeslot.name}} -
        - {{ item.timeslot.utc_start_time|date:"M d"}}   - {{ item.timeslot.utc_start_time|date:"Hi"}}-{{item.timeslot.utc_end_time|date:"Hi"}} UTC - - {{item.timeslot.name}} - - - {% if item.timeslot.show_location %}{{item.timeslot.get_location}}{% endif %} -
        - {% if item.timeslot.show_location %}{{item.timeslot.get_location}}{% endif %}{{item.session.group.parent.acronym|upper}} - {% if item.session.group.charter %}{{item.session.group.acronym}} - {% else %}{{item.session.group.acronym}}{% endif %} - - {% if item.session.agenda %}{{item.session.group.name}} - {% else %}{{item.session.group.name}}{% endif %} - {% if item.session.is_bof %} BOF {% endif %} - {% if item.session.agenda_note %} -
        {{item.session.agenda_note}}{% endif %}
        {% if item.session.agenda %}drafts: tar|pdf{%endif%}
        - {% if item.session.agenda %} - {% if item.session.agenda.file_extension == "txt" or item.session.agenda.file_extension == "html" or item.session.agenda.file_extension == "htm" %} - - {% else %} - Agenda submitted in {{item.session.agenda.file_extension|upper}} format - {% endif %} - {% else %} - No Agenda Submitted - {% endif %} - {% if item.session.slides %} -

        Slides:

        -
          {% for slide in item.session.slides %} -
        1. - - {{ slide.title|clean_whitespace }} -
        2. - {% endfor %}
        - {% endif %} -
        - - {% if item.session.slides %} -

        Slides:

        -
          {% for slide in item.session.slides %} -
        1. - - {{ slide.title|clean_whitespace }} -
        2. - {% endfor %}
        - {% endif %} -
        - -{% endcache %} - -{% endblock %} diff --git a/ietf/templates/meeting/agenda.html b/ietf/templates/meeting/agenda.html index 7d59a8384..a3f6ba6b8 100644 --- a/ietf/templates/meeting/agenda.html +++ b/ietf/templates/meeting/agenda.html @@ -1,242 +1,443 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + {% load ietf_filters %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% load humanize %} -{% block title %}IETF {{ schedule.meeting.number }} Meeting Agenda{% endblock %} + +{% block title %} +IETF {{ schedule.meeting.number }} meeting agenda +{% if "-utc" in request.path %} + (UTC) +{% endif %} +{% endblock %} {% block morecss %} -table#agenda { border: 0; border-collapse:collapse; } -#agenda td { padding-right:2em; } -#agenda tr.meeting-date td { padding-top:1em; padding-right:0;} +iframe#weekview { height: 600px; width: 100%; } +tr:not(:first-child) th.gap { + height: 3em !important; + background-color: inherit !important; + border: none !important; +} +tr:first-child th.gap { + height: 0 !important; + background-color: inherit !important; + border: none !important; +} +{% endblock %} -table#wg-selector { border:1px solid black; border-collapse:collapse; } -#wg-selector td,#wg-selector th { border:1px solid black; padding: 2px} -#wg-selector div.selected { background-color: #c0c0FF; cursor: pointer; } -#wg-selector div.unselected { cursor: pointer; } -#wg-selector td.inactive div { background-color: #EEEEEE; color: #808080; cursor:default;} -#wg-selector.hidden { display: none; } -#wg-selector-toggle-text { text-decoration: underline; cursor: pointer; } -#wg-selector-triangle-right { vertical-align: text-top; } -#wg-selector-triangle-down { vertical-align: text-top; } +{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %} -table#ics-preconfig { border:1px solid black; border-collapse:collapse; margin-top:24px; margin-bottom:24px;} - -#weekview.hidden { display: none; } -#weekview { border: none; margin: 0 0 0 0; overflow: hidden;} -#ical-link.hidden { display: none; } -#ical-link { margin: 10px 0 0 0; padding: 10px; text-align: center; background-color: #2647a0; color: #FFFFFF } -#ical-link A:link { color: #FFFFFF; } -#ical-link A:visited { color: #FFFFFF; } -#ical-link A:active { color: #FF00FF; } -#ical-link A:hover { color: #FF0000; } - -tr.time-title { font-weight: bold; color:#800000;} -tr.grouprow > td { padding: 4px; } -td.materials { align:right; } -span.note { font-style: italic; color:#ff0000; } - -#APP-groups, #selector-APP { color:#008; background-color:#eef } -#GEN-groups, #selector-GEN { color:#080; background-color:#efe } -#INT-groups, #selector-INT { color:#088; background-color:#eff } -#OPS-groups, #selector-OPS { color:#800; background-color:#fee } -#RAI-groups, #selector-RAI { color:#808; background-color:#fef } -#RTG-groups, #selector-RTG { color:#880; background-color:#ffe } -#SEC-groups, #selector-SEC { color:#488; background-color:#dff } -#TSV-groups, #selector-TSV { color:#484; background-color:#dfd } -#IRTF-groups, #selector-IRTF { color:#448; background-color:#ddf } - -img.hidden { display: none; } - -.ietf-agenda-palette { border-collapse:collapse; border:2px solid black; background:white; overflow:hidden; } -.ietf-agenda-palette td { border:1px solid black; } -.ietf-agenda-palette td { padding: 4px; text-align:center;} -.ietf-agenda-palette td a { text-decoration:none; } -.bgnone {} -.bgaqua, .bgaqua a { background-color: aqua; color: black; } -.bgblue, .bgblue a { background-color: blue; color: black; } -.bgfuchsia, .bgfuchsia a { background-color: fuchsia; color: black; } -.bggray, .bggray a { background-color: gray; color: white; } -.bggreen, .bggreen a { background-color: green; color: white; } -.bglime, .bglime a { background-color: lime; color: black; } -.bgmaroon, .bgmaroon a { background-color: maroon; color: white; } -.bgnavy, .bgnavy a { background-color: navy; color: white; } -.bgolive, .bgolive a { background-color: olive; color: white; } -.bgpurple, .bgpurple a { background-color: purple; color: white; } -.bgred, .bgred a { background-color: red; color: black; } -.bgsilver, .bgsilver a { background-color: silver; color: black; } -.bgteal, .bgteal a { background-color: teal; color: white; } -.bgwhite, .bgwhite a { background-color: white; color: black; } -.bgyellow, .bgyellow a { background-color: yellow; color: black; } -.bgblack, .bgblack a { background-color: black; color: white; } -.groupagenda { display:none; } - -.timecolumn { white-space:nowrap; } - -{% endblock morecss %} - -{% block pagehead %} - - - -{% endblock pagehead %} -{% block bodyAttrs %}onload='setGroupState();updateAgendaColors()'{% endblock %} {% block content %} -

        IETF {{ schedule.meeting.number }} Meeting Agenda

        +
        +
        -

        {{ schedule.meeting.city }}, {{ schedule.meeting.date|date:"F j" }} – {% if schedule.meeting.date.month != schedule.meeting.end_date.month %}{{ schedule.meeting.end_date|date:"F " }}{% endif %}{{ schedule.meeting.end_date|date:"j, Y" }}
        -Updated {{ updated|date:"Y-m-d H:i:s T" }}

        -
        -(There's also a agenda with UTC times, a plaintext agenda and a tools-style agenda available)
        +

        + IETF {{ schedule.meeting.number }} meeting agenda + {% if "-utc" in request.path %} + (UTC) + {% endif %} +
        + + {{ schedule.meeting.city }}, {{ schedule.meeting.date|date:"F j" }} - + {% if schedule.meeting.date.month != schedule.meeting.end_date.month %} + {{ schedule.meeting.end_date|date:"F " }} + {% endif %} + {{ schedule.meeting.end_date|date:"j, Y" }} + +

        -

        IETF agendas are subject to change, up to and during the meeting.

        +

        Updated {{ updated|date:"Y-m-d \a\t G:i:s (T)" }}

        +

        +

        + Note: IETF agendas are subject to change, up to and during a meeting. +

        + +

        +{% if "-utc" in request.path %} + Agenda in local timezone +{% else %} + Agenda in UTC timezone +{% endif %} + Plaintext agenda + Tools-style agenda +

        {# cache this part for 5 minutes -- it takes 3-6 seconds to generate #} -{% load cache %}{% cache 300 ietf_meeting_agenda schedule.meeting.number %} +{% load cache %} +{% cache 300 ietf_meeting_agenda_utc schedule.meeting.number request.path %} -You can customize the agenda below to show only selected working group sessions. To be able to return to the customized view later, bookmark the resulting URL. -
        - - - Select working group sessions +

        Agenda

        + +
        +
        + +
        +
        + +

        + You can customize the agenda view to show only selected sessions, + by clicking on groups and areas in the table below. + To be able to return to the customized view later, bookmark the resulting URL. +

        + +

        Groups displayed in italics are BOFs.

        + + + {% regroup schedule.groups by parent.acronym as area_sessions %} + + + + {% for area in area_sessions %} + + {% endfor %} + + + + + {% for area in area_sessions %} + + {% endfor %} + + +
        + +
        +
        + {% for wg in area.list %} +
        + +
        + {% endfor %} +
        +
        + +

        Also show sessions of these groups:

        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        - - - {% for area in schedule.area_list %} - - {% endfor %} - - - {% for wg in schedule.groups %}{% ifchanged wg.parent.acronym %}{% if forloop.counter > 1 %} - {% endif %} - - - +

        Download as .ics

        +

        + {% for area in schedule.area_list %} + {{area|upper}} + {% endfor %} + Non-area events + +

        + + +

        + Schedule + {% if schedule.meeting.agenda_note %} + {{ schedule.meeting.agenda_note|removetags:"h1"|safe }} + {% endif %} +

        + + + + + {% for item in schedule.assignments.all %} + + {% ifchanged item.timeslot.time|date:"Y-m-d" %} + + + + + {% endifchanged %} + + {% if item.timeslot.type.slug == 'session' %} + {% ifchanged %} + + + + + {% endifchanged %} + {% endif %} + + {% if item.timeslot.type.slug == 'break' or item.timeslot.type.slug == 'reg' or item.timeslot.type.slug == 'other' %} + {% with item.timeslot.time|date:"D-Hi"|lower|add:"-"|add:item.session.group.acronym|lower as session_id %} + + + + + + {% endwith %} + {% endif %} + + {% if item.timeslot.type.slug = 'session' or item.timeslot.type.slug == 'plenary' %} + {% if item.session.group %} + {% with item.timeslot.time|date:"D-Hi"|lower|add:"-"|add:item.session.group.parent.acronym|lower|add:"-"|add:item.session.group.acronym|lower as session_id %} + + + {% if item.timeslot.type.slug == 'plenary' %} + + + + {% else %} + + + + + + + + {% endif %} + + + + + {% endwith %} + {% endif %} + {% endif %} + {% endfor %}
        + {% if "-utc" in request.path %} + {{ item.timeslot.utc_start_time|date:"l, F j, Y" }} (UTC) + {% else %} + {{ item.timeslot.time|date:"l, F j, Y" }} ({{item.timeslot.tzname}}) + {% endif %} +
        + {% if "-utc" in request.path %} + {{item.timeslot.utc_start_time|date:"G:i"}}-{{item.timeslot.utc_end_time|date:"G:i"}} + {% else %} + {{item.timeslot.time|date:"G:i"}}-{{item.timeslot.end_time|date:"G:i"}} + {% endif %} + + {% if "-utc" in request.path %} + {{ item.timeslot.utc_start_time|date:"l"}} + {% else %} + {{ item.timeslot.time|date:"l"}} + {% endif %} + {{item.timeslot.name|capfirst_allcaps}} +
        + {% if "-utc" in request.path %} + {{item.timeslot.utc_start_time|date:"G:i"}}-{{item.timeslot.utc_end_time|date:"G:i"}} + {% else %} + {{item.timeslot.time|date:"G:i"}}-{{item.timeslot.end_time|date:"G:i"}} + {% endif %} + + {% if item.timeslot.show_location %} + {{item.timeslot.get_location|split:"/"|join:"/"}} + {% endif %} + + {{item.timeslot.name}} +
        + {% if "-utc" in request.path %} + {{item.timeslot.utc_start_time|date:"G:i"}}-{{item.timeslot.utc_end_time|date:"G:i"}} + {% else %} + {{item.timeslot.time|date:"G:i"}}-{{item.timeslot.end_time|date:"G:i"}} + {% endif %} + + {% if item.timeslot.show_location %} + {{item.timeslot.get_location|split:"/"|join:"/"}} + {% endif %} + + + {% if item.timeslot.show_location %} + {{item.timeslot.get_location|split:"/"|join:"/"}} + {% endif %} + {{item.session.group.parent.acronym}} + {% if item.session.group.charter %} + {{item.session.group.acronym}} + {% else %} + {{item.session.group.acronym}} + {% endif %} + + {% if item.session.agenda %} + + {% endif %} + {% if item.timeslot.type.slug == 'plenary' %} + {{item.timeslot.name}} + {% else %} + {{item.session.group.name}} + {% endif %} + {% if item.session.agenda %} + + {% endif %} + + {% if item.session.group.state.name = "BOF" %} + BOF + {% endif %} + + {% if item.session.agenda_note %} +
        {{item.session.agenda_note}} + {% endif %} + + +
        + {% if item.session.agenda %} + + + + {% endif %} +
        - - - - -
        - Preconfigured .ics links: - {% for area in schedule.area_list %} - {{area|upper}} • - {% endfor %} - Non-Area Events -
        - -{% if schedule.meeting.agenda_note %}

        {{ schedule.meeting.agenda_note|safe }}

        {% endif %} - - -{% for item in schedule.assignments.all %} - {% ifchanged %} - - - - {% endifchanged %} - {% if item.timeslot.type.slug == 'session' %} - {% ifchanged %} - - - - - {% endifchanged %} - {% endif %} - {% if item.timeslot.type.slug == 'break' or item.timeslot.type.slug == 'reg' or item.timeslot.type.slug == 'other' or item.timeslot.type.slug == 'plenary' %} - {% ifchanged %} - - - - - {% endifchanged %} - {% endif %} - {% if item.timeslot.type.slug = 'session' %} {% if item.session.group %} - - - - - - - - - - - - - {% endif %} {% endif %} - {% if item.timeslot.type.slug = 'plenary' %} - - - - - {% endif %} -{% endfor %} -
        -

        {{ item.timeslot.time|date:"l"|upper }}, {{ item.timeslot.time|date:"F j, Y" }}

        -
        - {{item.timeslot.time|date:"Hi"}}-{{item.timeslot.end_time|date:"Hi"}} {{item.timeslot.tzname}} - - {{ item.timeslot.time|date:"l"}} {{item.timeslot.name}} -
        - {{item.timeslot.time|date:"Hi"}}-{{item.timeslot.end_time|date:"Hi"}} {{item.timeslot.tzname}} - - {{item.timeslot.name}} - {% if item.timeslot.show_location %}- {{item.timeslot.get_location}}{% endif %} -
        - {% if item.timeslot.show_location %}{{item.timeslot.get_location}}{% endif %}{{item.session.group.parent.acronym|upper}} - {% if item.session.group.charter %}{{item.session.group.acronym}} - {% else %}{{item.session.group.acronym}}{% endif %} - - {% if item.session.agenda %}{{item.session.group.name}} - {% else %}{{item.session.group.name}}{% endif %} - {% if item.session.group.state.name = "BOF" %} BOF {% endif %} - {% if item.session.agenda_note %} -
        {{item.session.agenda_note}}{% endif %}
        {% if item.session.agenda %}drafts: tar|pdf{%endif%}
        - {% if item.session.agenda %} - {% if item.session.agenda.file_extension == "txt" or item.session.agenda.file_extension == "html" or item.session.agenda.file_extension == "htm" %} - - {% else %} - Agenda submitted in {{item.session.agenda.file_extension|upper}} format - {% endif %} - {% else %} - No Agenda Submitted - {% endif %} - {% if item.session.slides %} -

        Slides:

        -
          {% for slide in item.session.slides %} -
        1. - - {{ slide.title|clean_whitespace }} -
        2. - {% endfor %}
        - {% endif %} -
        - - {% if item.session.slides %} -

        Slides:

        -
          {% for slide in item.session.slides %} -
        1. - - {{ slide.title|clean_whitespace }} -
        2. - {% endfor %}
        - {% endif %} -
        +
        +
        + +
        +
        {% endcache %} - +{% endblock %} + +{% block scripts %} + +function toggle_visibility() { + var h = window.location.hash; + h = h.replace(/^#?,?/, ''); + + // reset UI elements to default state + $(".pickview").removeClass("active disabled"); + $(".pickviewneg").addClass("active"); + + if (h) { + // if there are items in the hash, hide all rows that are + // hidden by default, show all rows that are shown by default + $('[id^="row-"]').hide(); + $.each($(".pickviewneg").text().trim().split(/ +/), function (i, v) { + v = v.trim().toLowerCase(); + $('[id^="row-"]').filter('[id*="-' + v + '"]').show(); + }); + + // show the customizer + $("#customize").collapse("show"); + + // loop through the has items and change the UI element and row visibilities accordingly + $.each(h.split(","), function (i, v) { + if (v.indexOf("-") == 0) { + // this is a "negative" item: when present, hide these rows + v = v.replace(/^-/, ''); + $('[id^="row-"]').filter('[id*="-' + v + '"]').hide(); + $(".view." + v).find("button").removeClass("active disabled"); + $("button.pickviewneg." + v).removeClass("active"); + } else { + // this is a regular item: when present, show these rows + $('[id^="row-"]').filter('[id*="-' + v + '"]').show(); + $(".view." + v).find("button").addClass("active disabled"); + $("button.pickview." + v).addClass("active"); + } + }); + + // show the week view + $("#weekview").attr("src", "week-view.html" + window.location.hash).removeClass("hidden"); + + // show the custom .ics link + $("#ical-link").removeClass("hidden"); + + } else { + // if the hash is empty, show all and hide weekview + $('[id^="row-"]').show(); + $("#ical-link, #weekview").addClass("hidden"); + } +} + +$(".pickview, .pickviewneg").click(function () { + var h = window.location.hash; + var item = $(this).text().trim().toLowerCase(); + if ($(this).hasClass("pickviewneg")) { + item = "-" + item; + } + + re = new RegExp('(^|#|,)' + item + "(,|$)"); + if (h.match(re) == null) { + if (h.replace("#", "").length == 0) { + h = item; + } else { + h += "," + item; + } + h = h.replace(/^#?,/, ''); + } else { + h = h.replace(re, "$2").replace(/^#?,/, ''); + } + window.location.hash = h.replace(/^#$/, ''); + toggle_visibility(); +}) + +$(document).ready(function () { + toggle_visibility(); +}) + +$(".modal").on("show.bs.modal", function () { + var i = $(this).find(".frame"); + if ($(i).data("src")) { + $.get($(i).data("src"), function (data, status, xhr) { + var t = xhr.getResponseHeader("content-type"); + if (t.indexOf("text/plain") > -1) { + data = "
        " + data + "
        "; + } else if(t.indexOf("text/html") > -1) { + $(i).addClass("well"); + } else { + data = "

        Unknown type: " + xhr.getResponseHeader("content-type") + "

        "; + } + $(i).html(data); + }); + } +}) {% endblock %} diff --git a/ietf/templates/meeting/group_materials.html b/ietf/templates/meeting/group_materials.html index 52058f7c0..8d2c7bdbd 100644 --- a/ietf/templates/meeting/group_materials.html +++ b/ietf/templates/meeting/group_materials.html @@ -1,32 +1,53 @@ {% load ietf_filters %} - - - - - -
        - - - - - {% if session.name %} - {{ session.name }} - {% else %} - {{session.group.acronym.upper}} - {% if session.group.state.slug == "bof" %} ({{ session.group.state.slug }}){% endif %} - {% endif %} - - - {% if session.status_id == 'canceled' %} - Session Cancelled - {% else %} - {% if session.agenda %}Agenda{% else %}{% if show_agenda == "True" %}No agenda received {% endif %}{% endif %}
        - {% if session.minutes %}Minutes{% else %}{% if show_agenda == "True" %}No minutes received{% endif %}{% endif %}
        - {% with session.slides as slides %} - {% for slide in slides %} - {{ slide.title|clean_whitespace }}
        - {% endfor %} - {% endwith %} - {% endif %} -
        + + + + {% comment %} + + + + {% endcomment %} + {% if session.name %} + {{ session.name }} + {% else %} + {{session.group.acronym}} + {% if session.group.state.slug == "bof" %} + {{ session.group.state.slug|upper }} + {% endif %} + {% endif %} + + + {% if session.status_id == 'canceled' %} + Session cancelled + {% else %} + + {% if session.agenda %} + Agenda + {% else %} + {% if show_agenda == "True" %} + No agenda + {% endif %} + {% endif %} + + + {% if session.minutes %} + Minutes + {% else %} + {% if show_agenda == "True" %} + No minutes + {% endif %} + {% endif %} + + + {% with session.slides as slides %} + {% for slide in slides %} + {{ slide.title|clean_whitespace }} +
        + {% empty %} + No slides + {% endfor %} + {% endwith %} + + {% endif %} + diff --git a/ietf/templates/meeting/materials.html b/ietf/templates/meeting/materials.html index 29b9f9246..5edbf4391 100644 --- a/ietf/templates/meeting/materials.html +++ b/ietf/templates/meeting/materials.html @@ -1,116 +1,174 @@ -{% extends "base.html" %}{% load ietf_filters %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}IETF {{ meeting_num }} Preliminary & Interim Materials{% endblock %} -{% block morecss %} -table.ietf-materials { width: 99%; border-bottom:1px solid #cbcbcb; nopadding: 0; margin: 0; vertical-align: top; border-collapse: collapse;} -table.ietf-materials tr {vertical-align: top; } -table.ietf-materials td { padding:0.5em 0; } -{% endblock morecss %} +{% extends "ietf.html" %} + +{% load ietf_filters %} + +{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %} + +{% block title %}IETF {{ meeting_num }} preliminary & interim materials{% endblock %} {% block content %} -

        IETF {{ meeting_num }} Meeting Materials

        +
        +
        + +

        IETF {{ meeting_num }} meeting materials

        {% if submission_started %} -

        Submission cutoff date: {{ cut_off_date|date:"F j, Y" }}
        -Corrections to submissions cutoff date: {{ cor_cut_off_date|date:"F j, Y" }}

        +

        + Submission cutoff date: {{ cut_off_date|date:"F j, Y" }}
        + Corrections to submissions cutoff date: {{ cor_cut_off_date|date:"F j, Y" }} +

        {% endif %} - -
        -
        - {% if plenaries %} - Plenaries  |  - {% endif %} - {% if ietf %} - {% regroup ietf|dictsort:"group.parent.acronym" by group.parent.acronym as areas %} - {% for area in areas %} - {% if not forloop.first %} | {% endif %} - {{ area.grouper.upper }} - {% endfor %} - {% endif %} - {% if training %} -  |  Training - {% endif %} - {% if iab %} -  |  IAB - {% endif %} - {% if irtf %} -  |  IRTF - {% endif %} +

        + Meeting materials manager + Meeting requests/conflicts +

        - - - - -
        {# cache for 15 minutes, as long as there's no proceedings activity. takes 4-8 seconds to generate. #} {% load cache %} {% cache 900 ietf_meeting_materials meeting_num cache_version %} {% with "True" as show_agenda %} - -{% if plenaries %} - -

        Plenaries

        - {% for session in plenaries %} - {% include "meeting/group_materials.html" %} - {% endfor %} -{% endif %} + + {% if plenaries %} +

        Plenaries

        + + + + + + + + + - -{% regroup ietf|dictsort:"group.parent.acronym" by group.parent.name as areas %} -{% for sessions in areas %} - -

        {{ sessions.grouper }}

        - {% for session in sessions.list|dictsort:"group.acronym" %} - {% ifchanged session.group.acronym %} - {% include "meeting/group_materials.html" %} - {% endifchanged %} - {% endfor %} -{% endfor %} + + {% for session in plenaries %} + {% include "meeting/group_materials.html" %} + {% endfor %} + +
        GroupAgendaMinutesSlides
        + {% endif %} - -{% if training %} - {% with "False" as show_agenda %} - -

        Training

        - {% for session in training %} - {% ifchanged %} - {% include "meeting/group_materials.html" %} - {% endifchanged %} - {% endfor %} - {% endwith %} -{% endif %} - + + {% regroup ietf|dictsort:"group.parent.acronym" by group.parent.name as areas %} + {% for sessions in areas %} +

        {{sessions.list.0.group.parent.acronym|upper}} {{ sessions.grouper }}

        + + + + + + + + + - -{% if iab %} - -

        IAB

        - {% for session in iab %} - {% ifchanged %} - {% include "meeting/group_materials.html" %} - {% endifchanged %} - {% endfor %} -{% endif %} - + + {% for session in sessions.list|dictsort:"group.acronym" %} + {% ifchanged session.group.acronym %} + {% include "meeting/group_materials.html" %} + {% endifchanged %} + {% endfor %} + +
        GroupAgendaMinutesSlides
        + {% endfor %} - -{% if irtf %} - -

        IRTF

        - {% for session in irtf|dictsort:"group.acronym" %} - {% ifchanged %} - {% include "meeting/group_materials.html" %} - {% endifchanged %} - {% endfor %} -{% endif %} - + + {% if training %} + {% with "False" as show_agenda %} +

        Training

        + + + + + + + + + + + + {% for session in training %} + {% ifchanged %} + {% include "meeting/group_materials.html" %} + {% endifchanged %} + {% endfor %} + +
        GroupAgendaMinutesSlides
        + {% endwith %} + {% endif %} + + + {% if iab %} +

        IAB Internet Architecture Board

        + + + + + + + + + + + + {% for session in iab %} + {% ifchanged %} + {% include "meeting/group_materials.html" %} + {% endifchanged %} + {% endfor %} + +
        GroupAgendaMinutesSlides
        + {% endif %} + + + {% if irtf %} +

        IRTF Internet Research Task Force

        + + + + + + + + + + + + {% for session in irtf|dictsort:"group.acronym" %} + {% ifchanged %} + {% include "meeting/group_materials.html" %} + {% endifchanged %} + {% endfor %} + +
        GroupAgendaMinutesSlides
        + {% endif %} {% endwith %} - {% endcache %} +
        +
        + +
        +
        {% endblock %} diff --git a/ietf/templates/meeting/requests.html b/ietf/templates/meeting/requests.html index 204072c5c..b3d33d124 100644 --- a/ietf/templates/meeting/requests.html +++ b/ietf/templates/meeting/requests.html @@ -1,64 +1,118 @@ -{% extends "base.html" %}{% load ietf_filters %} -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% block title %}IETF {{ meeting.num }} Meeting Timeslot Requests{% endblock %} -{% block morecss %} -@media print { - .title { font-size: 1.0cm !important; padding-top: 6cm; text-align: center;} - .loc { text-align:center; font-size: 0.75cm} -} -.loc { width: 100% } -h2 { border-style: none none solid none ; page-break-before: always;} -h3 { color: #0000a0 } -th { text-align: right; vertical-align: text-top; } -.even { background-color: #fff; } -.odd { background-color: #ddf; } -.h { text-align: center; border-style: none none solid none; border-width: 1px;} -.conflict { background-color: #fbb; } -.conflic2 { background-color: #fd6; } -.conflic3 { background-color: #ff8; } -.status { text-align: center; background-color: #004; color: #fff; } -.no-req {border-style: solid; border-width: 1px; padding: 5px; font-weight:bold ; background-color: #333; color: #fff} +{% extends "ietf.html" %} -{% endblock morecss %} +{% load ietf_filters %} + +{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %} + +{% block title %}IETF {{ meeting.num }} timeslot requests{% endblock %} {% block content %} -

        IETF {{ meeting.number }} Meeting Timeslot Requests

        -
        {{meeting.city}}, {{meeting.country}} -- {{meeting.venue_name}}
        +
        +
        - -{% for session in sessions %} -{% if session.group.parent %} -{% ifchanged %} -
        -

        {{session.group.parent.acronym|upper}} - {{session.group.parent.name}}

        -
        No schedule request:{% for group in groups_not_meeting %}{% if group.parent.id == session.group.parent.id %} {{group.acronym|upper}}{%endif%}{% endfor %}

        - - - - - - - - - -{% endifchanged %} -{%ifchanged%} - -{%endifchanged%} - - - - - - - - - -{% endif %} +

        IETF {{ meeting.number }} timeslot requests
        +{{meeting.city}}, {{meeting.country}} -- {{meeting.venue_name}} +

        + +{% regroup sessions by group.parent as area_sessions %} +{% for area in area_sessions %} +

        + {{area.grouper.acronym|upper}} {{area.grouper.name}} +

        +

        + No timeslot request received for: + {% for group in groups_not_meeting %} + {% if group.parent.id == area.grouper.id %} + {{ group.acronym }} + {% endif %} + {% endfor %} +

        + +
        DurationSizeRequested ByArea DirectorConflictsSpecial Requests
        {{session.status}}
        {{session.group.acronym|upper}}{% if not session.requested_duration %}{{session.status}}{%else%} {{session.requested_duration|stringformat:"s"|slice:"0:4"}} {% endif %}{{session.attendees}} - {{session.requested_by}} - - {% if session.group.ad %}{{session.group.ad}} {%endif%} - {%if session.requested_duration%}{% for constraint in session.constraints %}{%ifchanged%}{%endifchanged%} {% if constraint %} {% if not forloop.first %}, {%endif%}{{constraint.brief_display}}{% if constraint.target.parent.id != constraint.source.parent.id and not constraint.person %} ({{constraint.target.parent.acronym}}){%endif%} {% endif %} {% endfor %}{%endif%}{% if session.comments %}{{session.comments|linebreaksbr}}{% endif %}
        + + + + + + + + + + + + + {% for session in area.list %} + {% ifchanged %} + + {% endifchanged %} + + + + + + + + + + + + + + + + + {% endfor %} + +
        GroupLengthSizeRequesterADConflictsSpecial requests
        {{session.status|capfirst}}
        + + {{session.group.acronym}} + + + {% if session.requested_duration %} + {{session.requested_duration|stringformat:"s"|slice:"0:4"}} + {% endif %} + {{session.attendees|default:""}} + {{session.requested_by}} + + {% if session.group.ad %} + {{session.group.ad}} + {% endif %} + + {% if session.requested_duration %} + {% regroup session.constraints by name as prioritized_constraints %} + {% for grouped_constraint in prioritized_constraints %} + {% if not forloop.first %} + {% ifchanged grouped_constraint.grouper %}
        {% endifchanged %} + {% endif %} + {% for constraint in grouped_constraint.list %} + {% if constraint.target.parent.id == constraint.source.parent.id and not constraint.person %} + + {% endif %} + {% if constraint.name.slug == "bethere" %} + {{constraint.brief_display|clean_whitespace}}{% if not forloop.last %}, {% endif %} + {% else %} + + {{constraint.brief_display}} + + {% endif %} + {% if constraint.target.parent.id == constraint.source.parent.id and not constraint.person %} + + {% endif %} + {% endfor %} + {% endfor %} + {% endif %} +
        + {% if session.comments %}{{session.comments|linebreaksbr}}{% endif %} +
        {% endfor %} - -{% endblock %} +
        +
        + +
        +
        + +{% endblock %} diff --git a/ietf/templates/message/message.html b/ietf/templates/message/message.html index dc8a62059..595df7503 100644 --- a/ietf/templates/message/message.html +++ b/ietf/templates/message/message.html @@ -1,20 +1,17 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} -{% block title %}Announcement: {{ message.time|date:"F j, Y" }} - {{ message.subject }}{% endblock %} +{% block title %}Announcement: {{ message.subject }} - {{ message.time|date:"F j, Y" }}{% endblock %} {% block content %} -

        Announcement: {{ message.time|date:"F j, Y" }} - {{ message.subject }}

        +

        Announcement
        {{ message.subject }}
        {{ message.time|date:"F j, Y" }}

        - From: {{ message.frm }}
        - To: {{ message.to }}
        - Date: {{ message.time|date:"F j, Y" }}
        - Subject: {{ message.subject }} + From: {{ message.frm }}
        + To: {{ message.to }}
        + Date: {{ message.time|date:"F j, Y" }}
        + Subject: {{ message.subject }}

        -
        -
        -{{ message.body }}
        -
        +
        {{ message.body }}
        {% endblock %} diff --git a/ietf/templates/nomcom/announcements.html b/ietf/templates/nomcom/announcements.html index 24ad4830d..f616dd72e 100644 --- a/ietf/templates/nomcom/announcements.html +++ b/ietf/templates/nomcom/announcements.html @@ -1,79 +1,131 @@ -{% extends "base.html" %} +{% extends "ietf.html" %} + {% load ietf_filters %} + +{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %} + {% block title %}IAB/IESG Nominating Committee{% endblock %} + {% block content %} +
        +
        +

        IAB/IESG Nominating Committee

        -

        Current Committee Chair: {{ curr_chair.person.plain_name }}

        +

        + Current committee chair: + {{ curr_chair.person.plain_name }} +

        {% for regime in regimes %} -
        +

        Messages from {{ regime.group.start_year }}/{{ regime.group.end_year }}

        -

        Messages from {{ regime.group.start_year }} - {{ regime.group.end_year }}

        + {# use person email address here rather than the generic nomcom-chair@ietf.org #} +

        + Committee chair: + {{ regime.chair.person.plain_name }} +

        - {# use person email address here rather than the generic nomcom-chair@ietf.org #} -

        Committee Chair: {{ regime.chair.person.plain_name }}

        - - - - - - - {% for m in regime.announcements %} - - - - - - {% endfor %} -
        DateSubjectSent To
        {{ m.time|date:"Y-M-d" }}{{ m.subject }}{{ m.to_name }}
        + + + + + + + + + + {% for m in regime.announcements|dictsortreversed:"time" %} + + + + + + {% endfor %} + +
        DateSubjectSent to
        {{ m.time|date:"Y-m-d" }}{{ m.subject }}{{ m.to_name }}
        {% endfor %} -
        {# somebody ought to import these announcements in the DB instead of this mess #} +

        Messages from 2003/2004

        +

        Committee chair: Rich Draves

        + + + + + + + + + + + + + + + + + + + + + + + + +
        DateSubject
        August 25, 2003IETF Nominations Committee Chair Announcement
        September 22, 2003NomCom call for volunteers
        Selection of the Nominations Committee
        October 06, 2004NomCom Volunteer List
        October 10, 2003NomCom Selection
        October 17, 2003Call for Nominees
        October 24, 2003NomCom members
        November 07, 2003NomCom at IETF
        November 14, 2003NomCom News
        November 26, 2003Reminder - nominations to replace Randy Bush
        December 01, 2003Randy Bush replacement schedule
        January 14, 2004Randy Bush replacement
        February 13, 2004NomCom results
        September 28, 2004Call for Security AD nominations
        November 07, 2004Steve Bellovin replacement
        -

        Messages from 2003-2004 NomCom

        -Committee Chair: Rich Draves -

      • IETF Nominations Committee Chair Announcement August 25, 2003 -
      • NomCom call for volunteers September 22, 2003 -
      • Selection of the Nominations Committee -
      • NomCom Volunteer List October 06, 2004 -
      • NomCom Selection October 10, 2003 -
      • Call for Nominees October 17, 2003 -
      • NomCom members October 24, 2003 -
      • NomCom at IETF November 07, 2003 -
      • NomCom News November 14, 2003 -
      • Reminder - nominations to replace Randy Bush November 26, 2003 -
      • Randy Bush replacement schedule December 01, 2003 -
      • Randy Bush replacement January 14, 2004 -
      • NomCom results February 13, 2004 -
      • Call for Security AD nominations September 28, 2004 -
      • Steve Bellovin replacement November 07, 2004 - -

        Messages from 2002-2003 NomCom

        -Committee Chair: Phil Roberts -

        -
      • First Call for Volunteers July 30, 2002 -
      • Selection of the Nominations Committee -
      • Announcement of the Nominations Committee September 18, 2002 -
      • Announcement of IESG and IAB Nominations Requests October 21, 2002 -
      • Announcement of IESG and IAB Nominations Requests November 5, 2002 -
      • Announcement of IESG and IAB Nominations Requests November 12, 2002 -
      • IETF Nomcom Announcement February 27, 2003 -
      • Announcement of IESG and IAB Nominations Request June 11, 2003 -
      • Nomcom result announcement July 15, 2003 +

        Messages from 2002/2003

        +

        Committee chair: Phil Roberts

        + + + + + + + + + + + + + + + + + + +
        DateSubject
        July 30, 2002First Call for Volunteers
        Selection of the Nominations Committee
        September 18, 2002Announcement of the Nominations Committee
        October 21, 2002Announcement of IESG and IAB Nominations Requests
        November 5, 2002Announcement of IESG and IAB Nominations Requests
        November 12, 2002Announcement of IESG and IAB Nominations Requests
        February 27, 2003IETF Nomcom Announcement
        June 11, 2003Announcement of IESG and IAB Nominations Request
        July 15, 2003Nomcom result announcement
        -

        Historical Information

        -
      • IAB/IESG Nominating Committee Members (by year) +

        Historical information

        + -

        References

        -
      • The Internet Standards Process (RFC 2026) -
      • IAB and IESG Selection, Confirmation, and Recall Process: Operation of the Nominating and Recall Committees (RFC 3777) (Also BCP10) -
      • Publicly Verifiable Nominations Committee (NomCom) Random Selection (RFC 3797) +

        References

        + + +
      • +
        + +
        +
        {% endblock %} diff --git a/ietf/templates/nomcom/delete_nomcom.html b/ietf/templates/nomcom/delete_nomcom.html index 15f85f312..ebe244bfd 100644 --- a/ietf/templates/nomcom/delete_nomcom.html +++ b/ietf/templates/nomcom/delete_nomcom.html @@ -1,15 +1,14 @@ {% extends "nomcom/nomcom_private_base.html" %} -{% block subtitle %}- Delete Nomcom{% endblock %} +{% block subtitle %}- Delete NomCom{% endblock %} {% block nomcom_content %} -

        Are you sure you want to delete all data about {{ nomcom.group.name }}?

        -
        {% csrf_token %} -
        - - -
        -
        +

        Are you sure you want to delete all data about {{ nomcom.group.name }}?

        +
        + {% csrf_token %} + + +
        {% endblock %} diff --git a/ietf/templates/nomcom/deleted.html b/ietf/templates/nomcom/deleted.html index 5728b6c09..d36b1f382 100644 --- a/ietf/templates/nomcom/deleted.html +++ b/ietf/templates/nomcom/deleted.html @@ -2,6 +2,6 @@ {% block content %} -
        All data about the nomcom has been removed
        +

        All data about the NomCom has been removed.

        {% endblock %} diff --git a/ietf/templates/nomcom/edit_chair.html b/ietf/templates/nomcom/edit_chair.html index cc3604a6b..99c1b3f32 100644 --- a/ietf/templates/nomcom/edit_chair.html +++ b/ietf/templates/nomcom/edit_chair.html @@ -5,14 +5,14 @@ {% block content %}

        Edit {{ state.group.acronym }} chair

        -{% if form.errors %}
        Please correct the following errors
        {% endif %} +{% if form.errors %}
        Please correct the following errors
        {% endif %}
        {% csrf_token %} {{ form }}
        - -

        + +

        {% endblock %} diff --git a/ietf/templates/nomcom/edit_chair_preview.html b/ietf/templates/nomcom/edit_chair_preview.html index 04bb844e8..4fb7b8a55 100644 --- a/ietf/templates/nomcom/edit_chair_preview.html +++ b/ietf/templates/nomcom/edit_chair_preview.html @@ -22,9 +22,9 @@
        {% csrf_token %} {% for field in form %}{{ field.as_hidden }} {% endfor %} - - -

        + + +

        {% endif %} @@ -35,8 +35,8 @@ {{ form }}
        - -

        + +

        diff --git a/ietf/templates/nomcom/edit_members.html b/ietf/templates/nomcom/edit_members.html index 78f67d01b..0a75e8dcd 100644 --- a/ietf/templates/nomcom/edit_members.html +++ b/ietf/templates/nomcom/edit_members.html @@ -1,18 +1,22 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% load bootstrap3 %} + {% block subtitle %} - Edit members{% endblock %} {% block nomcom_content %}

        Edit members

        -{% if form.errors %}
        Please correct the following errors
        {% endif %} +{% bootstrap_messages %} -
        {% csrf_token %} - -{{ form }} -
        - -

        + + {% csrf_token %} + {% bootstrap_form form %} + + + {% buttons %} + + {% endbuttons %}
        {% endblock %} diff --git a/ietf/templates/nomcom/edit_members_preview.html b/ietf/templates/nomcom/edit_members_preview.html index e99228732..4e0e67f84 100644 --- a/ietf/templates/nomcom/edit_members_preview.html +++ b/ietf/templates/nomcom/edit_members_preview.html @@ -1,48 +1,48 @@ -{% extends "base.html" %} +{% extends "nomcom/nomcom_private_base.html" %} -{% block title %}Edit {{ state.group.acronym }} members{% endblock %} +{% load bootstrap3 %} -{% block content %} -

        Edit {{ state.group.acronym }} members

        +{% block subtitle %} - Preview members{% endblock %} + +{% block nomcom_content %} +

        Preview members

        {% if state.members_info %} -

        Members info

        -
          - {% for member in state.members_info %} -
        • Email: {{ member.email }}. Person Name: {{ member.person.name }}
        • - {% endfor %} -
        +
        + {% for member in state.members_info %} +
        {{ member.person.name }}
        {{ member.email }}
        + {% endfor %} +
        {% endif %} {% if state.emails_not_found %} -

        Members not found

        -
          - {% for email in state.emails_not_found %} -
        • {{ email }}
        • - {% endfor %} -
        - {% if state.rolodex_url %}Please go to {{ state.rolodex_url }} to add these people.{% endif %} +

        Members not found

        +
          + {% for email in state.emails_not_found %} +
        • {{ email }}
        • + {% endfor %} +
        + {% if state.rolodex_url %}Please go to {{ state.rolodex_url }} to add these people.{% endif %} {% endif %} - - -{% csrf_token %} -{% for field in form %}{{ field.as_hidden }} -{% endfor %} - - -

        + + {% csrf_token %} + {% for field in form %}{{ field.as_hidden }}{% endfor %} + + + -

        Or edit it again

        +

        Edit members again

        -{% csrf_token %} -
        -{{ form }} -
        - -

        + + {% csrf_token %} + {% bootstrap_form form %} + + + {% buttons %} + + {% endbuttons %} - {% endblock %} diff --git a/ietf/templates/nomcom/edit_nomcom.html b/ietf/templates/nomcom/edit_nomcom.html index 989d0de7c..021d5abdd 100644 --- a/ietf/templates/nomcom/edit_nomcom.html +++ b/ietf/templates/nomcom/edit_nomcom.html @@ -1,59 +1,57 @@ {% extends "nomcom/nomcom_private_base.html" %} -{% block subtitle %}- Edit settings{% endblock %} +{% load bootstrap3 %} + +{% block pagehead %} + +{% endblock %} + +{% block subtitle %} - Settings{% endblock %} {% block nomcom_content %} -

        Edit settings

        +

        Settings

        {% if message %} -
        {{ message.1 }}
        +
        {{ message.1 }}
        {% endif %} -{% if form.errors %}
        Please correct the following errors
        {% endif %} +{% bootstrap_messages %} -
        {% csrf_token %} -{{ form }} + + {% csrf_token %} + {% bootstrap_form form %} -

        Reminder Dates

        +

        Reminder Dates

        -

        If the "reminder interval" field of nomcom isn't filled, the following dates will be used to send reminders.

        +

        If the "reminder interval" field of nomcom isn't filled, the following dates will be used to send reminders.

        -

        The valid format: YYYY-MM-DD

        +

        The valid format: YYYY-MM-DD

        - {{ formset.management_form }} - {% for form in formset.forms %} - {% if form.errors %}
        Please correct the following errors
        {% endif %} -
        -
        -
        - {% for field in form %} -
        - -
        -
        {{ field.help_text }}
        - {{ field }} - {{ field.errors }} -
        -
        -
        - {% endfor %} -
        -
        -
        -
        - {% endfor %} + {% bootstrap_formset formset %} -

        + {% buttons %} + + {% endbuttons %}

        Delete Nomcom

        -

        To delete all data about {{ nomcom.group.name }}, click here

        +

        + Delete NomCom +

        {% endblock %} + +{% block js %} + +{% endblock %} + +{% block scripts %} +$('input[id*="reminderdates"][type="text"]').datepicker({ + format: "yyyy-mm-dd", + todayBtn: "linked", + todayHighlight: true, +}).wrap('
        ').parent().prepend(''); +{% endblock %} + + diff --git a/ietf/templates/nomcom/edit_nominee.html b/ietf/templates/nomcom/edit_nominee.html index ca309ff79..1fedea1f2 100644 --- a/ietf/templates/nomcom/edit_nominee.html +++ b/ietf/templates/nomcom/edit_nominee.html @@ -1,28 +1,27 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% load bootstrap3 %} {% load nomcom_tags %} -{% block subtitle %} - Edit nominee {{ nominee }}{% endblock %} +{% block subtitle %} - Edit Nominee {{ nominee }}{% endblock %} {% block nomcom_content %} -

        Back to list of nominees

        +{% bootstrap_messages %} -

        Edit email of {{ nominee }}

        +

        Edit email
        {{ nominee }}

        {% if message %} -
        {{ message.1 }}
        +

        {{ message.1 }}

        {% endif %} -{% if form.errors %}
        Please correct the following errors
        {% endif %} - -
        {% csrf_token %} - -{{ form }} -
        -

        + + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + Back + {% endbuttons %}
        - - {% endblock %} diff --git a/ietf/templates/nomcom/edit_position.html b/ietf/templates/nomcom/edit_position.html index be1ed7ce5..60d9b4abd 100644 --- a/ietf/templates/nomcom/edit_position.html +++ b/ietf/templates/nomcom/edit_position.html @@ -1,12 +1,22 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% load bootstrap3 %} + +{% block subtitle %} - {% if position %}Edit{% else %}Add{% endif %} positions{% endblock %} + {% block nomcom_content %} -

        {% if position %}Edit{% else %}Add{% endif %} position

        -{% if form.errors %}
        Please correct the following errors
        {% endif %} +

        {% if position %}Edit{% else %}Add{% endif %} position

        -
        {% csrf_token %} -{{ form }} -

        Cancel

        +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + Back + {% endbuttons %}
        -{% endblock nomcom_content %} +{% endblock %} diff --git a/ietf/templates/nomcom/edit_template.html b/ietf/templates/nomcom/edit_template.html index 3ace5492c..faf54e259 100644 --- a/ietf/templates/nomcom/edit_template.html +++ b/ietf/templates/nomcom/edit_template.html @@ -1,40 +1,40 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% block subtitle %} - Template: {{ template }}{% endblock %} + +{% load bootstrap3 %} + {% block nomcom_content %}

        Template: {{ template }}

        -

        Meta information

        -
        Title
        -
        {{ template.title }} -
        Group
        -
        {{ template.group }}
        -
        Template type
        -
        {{ template.type.name }} - {% if template.type.slug == "rst" %} -

        This template uses the syntax of reStructuredText. Get a quick reference at http://docutils.sourceforge.net/docs/user/rst/quickref.html.

        -

        You can do variable interpolation with $varialbe if the template allows any variable.

        - {% endif %} - {% if template.type.slug == "django" %} -

        This template uses the syntax of the default django template framework. Get more info at https://docs.djangoproject.com/en/dev/topics/templates/.

        -

        You can do variable interpolation with the current django markup {{variable}} if the template allows any variable.

        - {% endif %} - {% if template.type.slug == "plain" %} -

        This template uses plain text, so no markup is used. You can do variable interpolation with $variable if the template allows any variable.

        - {% endif %} -
        - {% if template.variables %} -
        Variables allowed in this template
        -
        {{ template.variables|linebreaks }}
        - {% endif %} +
        Title
        +
        {{ template.title }} +
        Group
        +
        {{ template.group }}
        +
        Template type
        +
        {{ template.type.name }}: + {% if template.type.slug == "rst" %} + This template uses the syntax of reStructuredText. Get a quick reference at http://docutils.sourceforge.net/docs/user/rst/quickref.html. You can do variable interpolation with $variable if the template allows any variable. + {% elif template.type.slug == "django" %} + This template uses the syntax of the default django template framework. Get more info at https://docs.djangoproject.com/en/dev/topics/templates/. You can do variable interpolation with the current django markup {{variable}} if the template allows any variable. + {% elif template.type.slug == "plain" %} + This template uses plain text, so no markup is used. You can do variable interpolation with $variable if the template allows any variable. + {% endif %} +
        + {% if template.variables %} +
        Variables allowed in this template
        +
        {{ template.variables|linebreaks }}
        + {% endif %}
        -

        Edit template content

        +
        + {% csrf_token %} + {% bootstrap_form form %} -{% if form.errors %}
        Please correct the following errors
        {% endif %} - -{% csrf_token %} -{{ form }} -

        Cancel

        + {% buttons %} + + Back + {% endbuttons %}
        {% endblock nomcom_content %} diff --git a/ietf/templates/nomcom/inc.feedback_pending_header.html b/ietf/templates/nomcom/inc.feedback_pending_header.html deleted file mode 100644 index f9f58734f..000000000 --- a/ietf/templates/nomcom/inc.feedback_pending_header.html +++ /dev/null @@ -1,11 +0,0 @@ - - {% if not extra_step %}{% endif %} - Date - {% if extra_step %} - Type - {% else %} - U{% for t in type_dict.keys %}{{ t }}{% endfor %} - {% endif %} - Author - Subject - diff --git a/ietf/templates/nomcom/index.html b/ietf/templates/nomcom/index.html index fe287ad47..683a2a99b 100644 --- a/ietf/templates/nomcom/index.html +++ b/ietf/templates/nomcom/index.html @@ -1,37 +1,40 @@ -{# Copyright The IETF Trust 2009, All Rights Reserved #} - -{% extends "base.html" %} +{% extends "ietf.html" %} {% load ietf_filters %} -{% block title %}IAB/IESG NomcOms{% endblock %} - +{% block title %}IAB/IESG NomComs{% endblock %} {% block content %}

        IAB/IESG NomComs

        -
        - - - - - - - - {% for nomcom in nomcom_list %} - - - - - - - {% endfor %} -
        YearChair
        {{ nomcom.label }}{% with nomcom.get_chair as role %}{{role.person}}{% endwith %} - {% if nomcom.ann_url %} - Announcements - {% endif %} - - {% if nomcom.url %} - Pages - {% endif %} -
        -
        + + + + + + + + + + + {% for nomcom in nomcom_list|dictsortreversed:"label" %} + + + + + + + {% endfor %} + +
        YearChairAnnouncementsPages
        {{ nomcom.label }} + {% with nomcom.get_chair as role %} + {{role.person}} + {% endwith %} + + {% if nomcom.ann_url %} + Announcements + {% endif %} + + {% if nomcom.url %} + Pages + {% endif %} +
        {% endblock %} diff --git a/ietf/templates/nomcom/list_positions.html b/ietf/templates/nomcom/list_positions.html index 398a57fe7..9852403cb 100644 --- a/ietf/templates/nomcom/list_positions.html +++ b/ietf/templates/nomcom/list_positions.html @@ -1,30 +1,37 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% block subtitle %} - Positions{% endblock %} + {% block nomcom_content %}

        Positions in {{ nomcom.group }}

        -Add a new position + +Add new position + {% if positions %} - {% for position in positions %} -

        {{ position.name }} [Edit] [Remove]

        -
        -
        Description:
        -
        {{ position.description }}
        -
        Incumbent:
        -
        {{ position.incumbent }}
        -
        Is open:
        -
        {{ position.is_open }}
        -
        Templates:
        -
        -
          - {% for template in position.get_templates %} -
        • {{ template }}
        • - {% endfor %} -
        -
        -
        - {% endfor %} + {% for position in positions %} +

        {{ position.name }}

        +
        +
        Description
        +
        {{ position.description }}
        +
        Incumbent
        +
        {{ position.incumbent }}
        +
        Is open
        +
        {{ position.is_open }}
        +
        Templates
        +
        + {% for template in position.get_templates %} + {{ template }}
        + {% endfor %} +
        +
        Actions
        +
        + Edit + Remove +
        +
        + {% endfor %} {% else %} -

        There are no positions defined.

        +

        There are no positions defined.

        {% endif %} {% endblock nomcom_content %} diff --git a/ietf/templates/nomcom/list_templates.html b/ietf/templates/nomcom/list_templates.html index 6a02c3737..41fa8bcf0 100644 --- a/ietf/templates/nomcom/list_templates.html +++ b/ietf/templates/nomcom/list_templates.html @@ -1,29 +1,32 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% block subtitle %} - Defined templates{% endblock %} + {% block nomcom_content %} -

        Defined templates for {{ nomcom.group }}

        +

        Defined templates

        {% if template_list %} -
          -{% for template in template_list %} -
        • {{ template }}
        • -{% endfor %} -
        +
          + {% for template in template_list %} +
        • {{ template }}
        • + {% endfor %} +
        {% else %} -

        There are no templates defined for this group.

        +

        There are no templates defined for this group.

        {% endif %} -

        Defined templates for positions in {{ nomcom.group }}

        + +

        Defined templates for positions

        {% if positions %} - {% for position in positions %} -

        {{ position.name }}

        -
          - {% for template in position.get_templates %} -
        • {{ template }}
        • - {% endfor %} -
        - {% endfor %} + {% for position in positions %} +

        {{ position.name }}

        +
          + {% for template in position.get_templates %} +
        • {{ template }}
        • + {% endfor %} +
        + {% endfor %} {% else %} -

        There are no positions defined.

        +

        There are no positions defined.

        {% endif %} {% endblock nomcom_content %} diff --git a/ietf/templates/nomcom/nomcom_base.html b/ietf/templates/nomcom/nomcom_base.html index c28ade67d..54481f4b6 100644 --- a/ietf/templates/nomcom/nomcom_base.html +++ b/ietf/templates/nomcom/nomcom_base.html @@ -1,3 +1,3 @@ {% extends "base.html" %} -{% block title %}Nomcom {{ year }}{% block subtitle %}{% endblock %}{% endblock %} +{% block title %}NomCom {{ year }}{% block subtitle %}{% endblock %}{% endblock %} diff --git a/ietf/templates/nomcom/nomcom_private_base.html b/ietf/templates/nomcom/nomcom_private_base.html index f09b556c7..30081c8aa 100644 --- a/ietf/templates/nomcom/nomcom_private_base.html +++ b/ietf/templates/nomcom/nomcom_private_base.html @@ -1,41 +1,51 @@ -{% extends "nomcom/nomcom_base.html" %} +{% extends "ietf.html" %} {% load nomcom_tags %} +{% block title %}NomCom {{ year }} Private{% block subtitle %}{% endblock %}{% endblock %} + {% block content %} -

        Nomcom {{ year }} Private Area

        +

        NomCom {{ year }} Private area

        -
        -
        - {% if selected == "index" %}Nominees{% else %}Nominees{% endif %} | - {% if nomcom|has_publickey %} - {% if selected == "nominate" %}Nominate{% else %}Nominate{% endif %} | - {% if selected == "feedback" %}Enter Comments{% else %}Enter Comments{% endif %} | - {% if selected == "questionnaire" %}Questionnaire response{% else %}Questionnaire response{% endif %} | - {% endif %} - {% if selected == "view_feedback" %}View Comments{% else %}View Comments{% endif %} | - {% if selected == "private_key" %}Private Key{% else %}Private Key{% endif %} - {% if user|is_chair:year %} | - {% if selected == "feedback_pending" %}Pending Feedback{% else %}Pending Feedback{% endif %} | - {% if selected == "feedback_email" %}Enter Email Feedback{% else %}Enter Email Feedback{% endif %} | - {% if selected == "send_accept_reminder" %}Send Accept Reminder{% else %}Send Accept Reminder{% endif %} | - {% if selected == "send_questionnaire_reminder" %}Send Questionnaire Reminder{% else %}Send Questionnaire Reminder{% endif %} - {% endif %} -
        - {% if user|is_chair:year %} -
        - {% if selected == "edit_nomcom" %}Edit Settings{% else %}Edit Settings{% endif %} | - {% if selected == "edit_templates" %}Edit Pages{% else %}Edit Pages{% endif %} | - {% if selected == "edit_positions" %}Edit Positions{% else %}Edit Positions{% endif %} | - {% if selected == "merge" %}Merge Email Addresses{% else %}Merge Email Addresses{% endif %} | - {% if selected == "edit_members" %}Edit Nomcom Members{% else %}Edit Nomcom Members{% endif %} -
        - {% endif %} -
        + +

        + +{% block nomcom_content %} +{% endblock %} {% endblock %} diff --git a/ietf/templates/nomcom/nomcom_public_base.html b/ietf/templates/nomcom/nomcom_public_base.html index 1eb2ab1f1..ae29c40e8 100644 --- a/ietf/templates/nomcom/nomcom_public_base.html +++ b/ietf/templates/nomcom/nomcom_public_base.html @@ -1,22 +1,25 @@ -{% extends "nomcom/nomcom_base.html" %} +{% extends "ietf.html" %} {% load nomcom_tags %} +{% block title %}NomCom {{ year }}{% block subtitle %}{% endblock %}{% endblock %} + {% block content %} -

        Nomcom {{ year }} Pages

        +

        NomCom {{ year }}

        -
        - {% if selected == "index" %}Home{% else %}Home{% endif %} | - {% if nomcom|has_publickey %} - {% if selected == "nominate" %}Nominate{% else %}Nominate{% endif %} | - {% if selected == "feedback" %}Provide Comments{% else %}Provide Comments{% endif %} | - {% endif %} - {% if selected == "requirements" %}Desired Expertise{% else %}Desired Expertise{% endif %} | - {% if selected == "questionnaires" %}Questionnaires{% else %}Questionnaires{% endif %} | -
        + +

        - {% block nomcom_content %} - {% endblock %} +{% block nomcom_content %} +{% endblock %} {% endblock %} diff --git a/ietf/templates/nomcom/private_feedback.html b/ietf/templates/nomcom/private_feedback.html index 4e2ec4ab6..97c7d5010 100644 --- a/ietf/templates/nomcom/private_feedback.html +++ b/ietf/templates/nomcom/private_feedback.html @@ -1,70 +1,63 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% load bootstrap3 %} {% load nomcom_tags %} -{% block morecss %} -.content .primary { - width: 50em; - padding-right: 2em; - float: left; - display: inline; -} - -table.nominees tr td { - padding-left: 1em; -} - -#id_comments { - width: 40em; -} -{% endblock %} - {% block subtitle %} - Feedback{% endblock %} {% block nomcom_content %} -

        Select a nominee from the list of nominees to provide input about that nominee. - (This will fill in the non-editable fields in the form).

        - +

        + First select a nominee from the list of nominees to provide input about that nominee. + This will fill in the non-editable fields in the form. +

        {% if message %} -
        {{ message.1 }}
        +

        {{ message.1 }}

        {% endif %} +{% bootstrap_messages %} + {% if nomcom|has_publickey %} +
        +
        +

        Nominees

        -
        -
        - {% if form.errors %}
        Please correct the following errors
        {% endif %} + {% for p in positions %} + {% if p.nomineeposition_set.accepted.not_duplicated %} +

        {{ p.name }}

        +
        + {% for np in p.nomineeposition_set.accepted.not_duplicated %} + + {{ np.nominee }} + {% add_num_nominations user np.position np.nominee %} + + {% endfor %} +
        + {% endif %} + {% endfor %} -
        {% csrf_token %} - {{ form }} +

        + An number after a name indicates + that you have given comments on this nominee + earlier. If you position the mouse pointer over + it, you should see how many comments + exist from you for this nominee. +

        +
        -
        - -
        +
        +

        Provide feedback

        - -
        -
        -

        Nominees

        - - - {% for p in positions %} - {% if p.nomineeposition_set.accepted.not_duplicated %} - - {% for np in p.nomineeposition_set.accepted.not_duplicated %} - - - - {% endfor %} - {% endif %} - {% endfor %} -
        {{ p.name }}:
        {{ np.nominee }}
        -
        +
        + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} +
        +
        - - {% endif %} {% endblock %} diff --git a/ietf/templates/nomcom/private_feedback_email.html b/ietf/templates/nomcom/private_feedback_email.html index e5ba5bc3d..06b9c771e 100644 --- a/ietf/templates/nomcom/private_feedback_email.html +++ b/ietf/templates/nomcom/private_feedback_email.html @@ -1,31 +1,25 @@ {% extends "nomcom/nomcom_private_base.html" %} -{% load nomcom_tags %} +{% load bootstrap3 %} {% block subtitle %} - Provide feedback email{% endblock %} {% block nomcom_content %} - {% if message %} -
        {{ message.1 }}
        +
        {{ message.1 }}
        {% endif %} {% if nomcom|has_publickey %} + {% bootstrap_messages %} -
        - {% if form.errors %}
        Please correct the following errors
        {% endif %} - -
        {% csrf_token %} - {{ form }} - -
        - -
        - -
        -
        - +
        + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} +
        {% endif %} diff --git a/ietf/templates/nomcom/private_index.html b/ietf/templates/nomcom/private_index.html index ddb10f446..c8c5635af 100644 --- a/ietf/templates/nomcom/private_index.html +++ b/ietf/templates/nomcom/private_index.html @@ -1,124 +1,125 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% block morecss %} +.edit { width: 1px } +{% endblock %} + {% block subtitle %} - Administration {% endblock %} {% block nomcom_content %} -

        Nominations stats

        +

        Nomination status

        - - - - - - - - - -{% for item in stats %} - - - - - - - - -{% endfor %} +
        PositionAcceptedDeclinedPendingQuestionnaire responseTotal
        {{ item.position__name }}{{ item.accepted }}{{ item.declined }}{{ item.pending }}{{ item.questionnaire }}{{ item.total }}
        + + + + + + + + + + + + {% for item in stats %} + + + + + + + + + {% endfor %} +
        PositionAcceptedDeclinedPendingQuestionnaire responseTotal
        {{ item.position__name }}{{ item.accepted }}{{ item.declined }}{{ item.pending }}{{ item.questionnaire }}{{ item.total }}
        -
        +

        Nominees by position

        +
        +
        + + +
        -

        List of nominees by position

        +
        + + +
        -

        The following is a list of registered nominees. - -

        - -
        -

        Select Filters

        - - - - - - - -
        - - - - - - -
        - -
        - - - {% if is_chair %} -
        {% csrf_token %} - {% if message %} -
        {{ message.1 }}
        - {% endif %} -
        - - -
        - {% endif %} -
        - -
        - - - {% if is_chair %}{% endif %} - - - - - - {% for np in nominee_positions %} - - {% if is_chair %} - - {% endif %} - - - - - {% endfor %} -
        NomineesPositionStateQuestionnaire response
        {{ np.nominee }}{% if is_chair %} (edit){% endif %}{{ np.position.name }}{{ np.state }}{{ np.questionnaires|yesno:"Yes,No,No" }} -
        -
        + + {% if is_chair %} - +
        {% csrf_token %} +{% endif %} + + + + + {% if is_chair %}{% endif %} + + + + + + + + {% for np in nominee_positions %} + + {% if is_chair %} + + + {% endif %} + + + + + + + {% endfor %} + +
        NomineePositionStateQuestionnaire response
        Edit + {{ np.nominee }} + {{ np.position.name }}{{ np.state }}{{ np.questionnaires|yesno:"Yes,No,No" }}
        + +{% if is_chair %} + + {% if message %} +

        {{ message.1 }}

        + {% endif %} + +
        + + +
        + + + +
        {% endif %} -
        Enter private key {% if message %} -
        {{ message.1 }}
        +

        {{ message.1 }}

        {% endif %} -

        In order to access the {{ nomcom.group }} data you have to enter your private key. Please paste it in the text area below. The key must be in the following format:

        @@ -24,11 +25,12 @@ CKn79FUPkVdlG8miRUY2UIU=
         
         

        If you don't have a private key, please contact the group chair. You can leave the key empty and continue navigation without access to the encrypted data.

        -
        {% csrf_token %} - -{{ form }} -
        -

        -
        +
        + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} +
        {% endblock %} diff --git a/ietf/templates/nomcom/private_merge.html b/ietf/templates/nomcom/private_merge.html index 07a28e20f..7470fdff4 100644 --- a/ietf/templates/nomcom/private_merge.html +++ b/ietf/templates/nomcom/private_merge.html @@ -1,39 +1,42 @@ {% extends "nomcom/nomcom_private_base.html" %} -{% block subtitle %} - Merging nominee email addresses {% endblock %} +{% load bootstrap3 %} + +{% block subtitle %} - Merging emails {% endblock %} {% block nomcom_content %} -

        Merging nominee email addresses

        -

        - If a nominee has been nominated with multiple email addresses, the nominee will - appear multiple times in the nomination list, as the email address is used as - the unique identifier for each nominee. In order to permit comments and nominations - to be submitted under multiple email addresses, there is a list of secondary email - addresses which needs to be kept up-to-date. When nominations of one particular nominee - have already been made under different email addresses, the nomination comments from the - secondary address also needs to be merged with those under the primary address. -

        -

        - It doesn't matter particularly which email address is used as primary, as far as the - nominee information maintenance goes, but it's probably handier for the nomcom if the - primary address is the one which the nominee prefers at the time. -

        +

        Merging nominee email addresses

        +

        + If a nominee has been nominated with multiple email addresses, the nominee will + appear multiple times in the nomination list, as the email address is used as + the unique identifier for each nominee. In order to permit comments and nominations + to be submitted under multiple email addresses, there is a list of secondary email + addresses which needs to be kept up-to-date. When nominations of one particular nominee + have already been made under different email addresses, the nomination comments from the + secondary address also needs to be merged with those under the primary address. +

        - {% if message %} -
        {{ message.1 }}
        - {% endif %} +

        + It doesn't matter particularly which email address is used as primary, as far as the + nominee information maintenance goes, but it's probably handier for the nomcom if the + primary address is the one which the nominee prefers at the time. +

        - {% if form.errors %}
        Please correct the following errors
        {% endif %} +{% if message %} +
        {{ message.1 }}
        +{% endif %} -
        {% csrf_token %} - {{ form }} +{% bootstrap_messages %} -
        - -
        + + {% csrf_token %} + {% bootstrap_form form %} -
        + {% buttons %} + + {% endbuttons %} + {% endblock %} diff --git a/ietf/templates/nomcom/private_nominate.html b/ietf/templates/nomcom/private_nominate.html index 7cb2a6140..3a592b2f0 100644 --- a/ietf/templates/nomcom/private_nominate.html +++ b/ietf/templates/nomcom/private_nominate.html @@ -1,26 +1,30 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% load bootstrap3 %} {% load nomcom_tags %} {% block subtitle %} - Nominate{% endblock %} {% block nomcom_content %} +

        Candidate nomination

        + +{% bootstrap_messages %} + {% if message %} -
        {{ message.1 }}
        +

        {{ message.1 }}

        {% endif %} {% if nomcom|has_publickey %} - {% if form.errors %}
        Please correct the following errors
        {% endif %} -
        {% csrf_token %} - {{ form }} + + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} +
        -
        - -
        - - {% endif %} {% endblock %} diff --git a/ietf/templates/nomcom/private_questionnaire.html b/ietf/templates/nomcom/private_questionnaire.html index d637b5107..63d587087 100644 --- a/ietf/templates/nomcom/private_questionnaire.html +++ b/ietf/templates/nomcom/private_questionnaire.html @@ -1,36 +1,31 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% load bootstrap3 %} {% load nomcom_tags %} {% block subtitle %} - Quesionnaire Response{% endblock %} {% block nomcom_content %} - {% if message %} -
        {{ message.1 }}
        +

        {{ message.1 }}

        {% endif %} {% if nomcom|has_publickey %} + {% if questionnaire_response %} +

        Questionnaire response

        + {{ questionnaire_response }} + {% endif %} -
        -{% if questionnaire_response %} -

        Questionnaire response:

        -{{ questionnaire_response }} + {% bootstrap_messages %} -{% endif %} -
        - {% if form.errors %}
        Please correct the following errors
        {% endif %} - -
        {% csrf_token %} - {{ form }} - -
        - -
        - -
        -
        +
        + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} +
        {% endif %} {% endblock %} diff --git a/ietf/templates/nomcom/process_nomination_status.html b/ietf/templates/nomcom/process_nomination_status.html index 80f2faeb9..e856944f8 100644 --- a/ietf/templates/nomcom/process_nomination_status.html +++ b/ietf/templates/nomcom/process_nomination_status.html @@ -5,7 +5,7 @@ {% block nomcom_content %} {% if message %} -
        {{ message.1 }}
        +
        {{ message.1 }}
        {% endif %} {% if need_confirmation %} @@ -13,7 +13,7 @@ {{ form }}
        - +
        diff --git a/ietf/templates/nomcom/public_feedback.html b/ietf/templates/nomcom/public_feedback.html index 86900138a..a323339c5 100644 --- a/ietf/templates/nomcom/public_feedback.html +++ b/ietf/templates/nomcom/public_feedback.html @@ -1,77 +1,63 @@ {% extends "nomcom/nomcom_public_base.html" %} +{% load bootstrap3 %} {% load nomcom_tags %} -{% block morecss %} -.content .primary { - width: 50em; - padding-right: 2em; - float: left; - display: inline; -} - -table.nominees tr td { - padding-left: 1em; -} - -#id_comments { - width: 40em; -} - -{% endblock %} - {% block subtitle %} - Feedback{% endblock %} {% block nomcom_content %} -

        Select a nominee from the list of nominees to provide input about that nominee. - (This will fill in the non-editable fields in the form).

        - +

        + First select a nominee from the list of nominees to provide input about that nominee. + This will fill in the non-editable fields in the form. +

        {% if message %} -
        {{ message.1 }}
        +

        {{ message.1 }}

        {% endif %} +{% bootstrap_messages %} + {% if nomcom|has_publickey %} +
        +
        +

        Nominees

        -
        -
        - {% if form.errors %}
        Please correct the following errors
        {% endif %} + {% for p in positions %} + {% if p.nomineeposition_set.accepted.not_duplicated %} +

        {{ p.name }}

        +
        + {% for np in p.nomineeposition_set.accepted.not_duplicated %} + + {{ np.nominee }} + {% add_num_nominations user np.position np.nominee %} + + {% endfor %} +
        + {% endif %} + {% endfor %} -
        {% csrf_token %} - {{ form }} +

        + An number after a name indicates + that you have given comments on this nominee + earlier. If you position the mouse pointer over + it, you should see how many comments + exist from you for this nominee. +

        +
        -
        - -
        +
        +

        Provide feedback

        - -
        -
        -

        Nominees

        - - - {% for p in positions %} - {% if p.nomineeposition_set.accepted.not_duplicated %} - - - {% for np in p.nomineeposition_set.accepted.not_duplicated %} - - - - {% endfor %} - {% endif %} - {% endfor %} -
        {{ p.name }}:
        {% add_num_nominations user np.position np.nominee %}{{ np.nominee }}
        -

        An asterisk * in front of a name indicates - that you have given comments on this nominee - earlier. If you position the mouse pointer over - the asterisk you should see how many comments - exist from you for this nominee.

        -
        +
        + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} +
        +
        - - {% endif %} {% endblock %} diff --git a/ietf/templates/nomcom/public_nominate.html b/ietf/templates/nomcom/public_nominate.html index c1bfbc3d1..28bc1de41 100644 --- a/ietf/templates/nomcom/public_nominate.html +++ b/ietf/templates/nomcom/public_nominate.html @@ -1,5 +1,6 @@ {% extends "nomcom/nomcom_public_base.html" %} +{% load bootstrap3 %} {% load nomcom_tags %} {% block subtitle %} - Nominate{% endblock %} @@ -7,20 +8,19 @@ {% block nomcom_content %} {% if message %} -
        {{ message.1 }}
        +

        {{ message.1 }}

        {% endif %} +{% bootstrap_messages %} + {% if nomcom|has_publickey %} - {% if form.errors %}
        Please correct the following errors
        {% endif %} - -
        {% csrf_token %} - {{ form }} - -
        - -
        - -
        +
        + {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} +
        {% endif %} {% endblock %} diff --git a/ietf/templates/nomcom/questionnaires.html b/ietf/templates/nomcom/questionnaires.html index ddd1fbc46..041db6f45 100644 --- a/ietf/templates/nomcom/questionnaires.html +++ b/ietf/templates/nomcom/questionnaires.html @@ -3,38 +3,23 @@ {% block subtitle %} - Questionnaires {% endblock %} {% block nomcom_content %} -

        Questionnaires

        -
        - - Pick the position questionnaires to view from the list immediately above -
        - {% for position in positions %} -
        -

        {{ position.description }}

        - {{ position.get_questionnaire|linebreaks}} -
        - {% endfor %} -
        - +

        Questionnaires

        + + +
        + {% for position in positions %} +
        +

        {{ position.description }}

        + {{ position.get_questionnaire|linebreaks}} +
        + {% endfor %} +
        {% endblock %} diff --git a/ietf/templates/nomcom/remove_position.html b/ietf/templates/nomcom/remove_position.html index 2140721ed..aad577ee8 100644 --- a/ietf/templates/nomcom/remove_position.html +++ b/ietf/templates/nomcom/remove_position.html @@ -13,7 +13,7 @@

        Do you want to remove it?

        {% csrf_token %} -

        No, get me out of here

        +

        No, get me out of here

        {% endblock nomcom_content %} diff --git a/ietf/templates/nomcom/requirements.html b/ietf/templates/nomcom/requirements.html index c8cc0614d..cb4353132 100644 --- a/ietf/templates/nomcom/requirements.html +++ b/ietf/templates/nomcom/requirements.html @@ -3,48 +3,31 @@ {% block subtitle %} - Desired Expertise {% endblock %} {% block nomcom_content %} -

        Desired Expertise

        -
        - These pages contain the current summaries of desired expertise for open - positions, provided to the Nomcom by the IESG, IAB, and IAOC. As the Nomcom - proceeds, per BCP 10, we receive input from the community on the - qualifications required for the positions. The Nomcom bases selections on - all of this information. These pages may be updated periodically. -
        +

        Desired expertise

        -
        -
          +

          +These pages contain the current summaries of desired expertise for open +positions, provided to the Nomcom by the IESG, IAB, and IAOC. As the Nomcom +proceeds, per BCP 10, we receive input from the community on the +qualifications required for the positions. The Nomcom bases selections on +all of this information. These pages may be updated periodically. +

          + + +
        - Click on a position above to view the summary of desired expertise for that position -
        +
        {% for position in positions %} -
        -

        {{ position.description }}

        - {{ position.get_requirement|linebreaks}} -
        +
        +

        {{ position.description }}

        + {{ position.get_requirement|linebreaks}} +
        {% endfor %} -
        -
        - - +
        {% endblock %} diff --git a/ietf/templates/nomcom/send_reminder_mail.html b/ietf/templates/nomcom/send_reminder_mail.html index 9bc7c9555..2640f19a0 100644 --- a/ietf/templates/nomcom/send_reminder_mail.html +++ b/ietf/templates/nomcom/send_reminder_mail.html @@ -1,48 +1,59 @@ {% extends "nomcom/nomcom_private_base.html" %} + +{% load bootstrap3 %} {% load ietf_filters %} {% block subtitle %} - Send reminder messages {% endblock %} {% block nomcom_content %} -

        Send a message to the selected nominees reminding them to {{reminder_description}}

        +

        Send remider to {{reminder_description}}

        + +

        The message that will be sent is as follows:

        +
        {{ mail_template.content|wrap_text:80 }}
        + +{% if mail_template %} +

        + Edit the message +

        +{% endif %}

        These are the nominees that are in the '{{state_description}}' state for the listed positions.

        The message that will be sent is shown below the list of nominees.

        -
        {% csrf_token %} -

        Nominees who have not responded

        +{% bootstrap_messages %} - {% if message %} -
        {{ message.1 }}
        - {% endif %} +{% if message %} +
        {{ message.1 }}
        +{% endif %} - - - - - - - {% for nominee in nominees %} - - - - - - {% endfor %} -
        NomineesPositions
        {{ nominee }}{{nominee.interesting_positions|join:", "}}
        - -
        - -
        - -
        + + {% csrf_token %} + + + + + + + + + + {% for nominee in nominees %} + + + + + + {% endfor %} + +
        NomineePositions
        + + {{ nominee }}{{nominee.interesting_positions|join:", "}}
        + {% buttons %} + + {% endbuttons %}
        -

        The message that will be sent is as follows: {% if mail_template %}(Edit the message){% endif %}

        - -
        {{ mail_template.content|wrap_text:80 }}
        - {% endblock %} diff --git a/ietf/templates/nomcom/view_feedback.html b/ietf/templates/nomcom/view_feedback.html index 4060c9916..f3a0446c2 100644 --- a/ietf/templates/nomcom/view_feedback.html +++ b/ietf/templates/nomcom/view_feedback.html @@ -2,44 +2,57 @@ {% load nomcom_tags %} -{% block subtitle %} - View comments {% endblock %} +{% block subtitle %} - View feedback {% endblock %} {% block nomcom_content %} -

        Feedback related to Nominees

        +

        Feedback related to nominees

        - - - - {% for ft in feedback_types %} - - {% endfor %} - -{% for nominee, feedback in nominees_feedback.items %} - - - {% for f in feedback %} - - {% endfor %} - -{% endfor %} +
        Nominee{{ ft.name }}
        {{ nominee }}{{ f.1 }}
        + + + + {% for ft in feedback_types %} + + {% endfor %} + + + + {% for nominee, feedback in nominees_feedback.items %} + + + {% for f in feedback %} + + {% endfor %} + + {% endfor %} +
        Nominee{{ ft.name }}
        + {{ nominee }} + {{ f.1 }}
        {% if independent_feedback_types %}

        Feedback not related to Nominees

        - - - - {% for ft in independent_feedback_types %} - - {% endfor %} - - - - {% for count in independent_feedback %} - - {% endfor %} - + +
        {{ ft.name }}
        View feedback not related to nominees{{ count }}
        + + + + {% for ft in independent_feedback_types %} + + {% endfor %} + + + + + + {% for count in independent_feedback %} + + {% endfor %} + +
        {{ ft.name }}
        + View feedback not related to nominees + {{ count }}
        {% endif %} {% endblock %} diff --git a/ietf/templates/nomcom/view_feedback_nominee.html b/ietf/templates/nomcom/view_feedback_nominee.html index 1cdb73155..1bec75c2c 100644 --- a/ietf/templates/nomcom/view_feedback_nominee.html +++ b/ietf/templates/nomcom/view_feedback_nominee.html @@ -2,68 +2,59 @@ {% load nomcom_tags %} -{% block subtitle %} - View comments of {{ nominee.email.person.name }}{% endblock %} +{% block subtitle %} - View feedback about {{ nominee.email.person.name }}{% endblock %} {% block nomcom_content %} -

        Back to list of nominees

        +

        Feedback about {{ nominee }}

        -

        Feedback of {{ nominee }}

        + -
        -
          - {% for ft in feedback_types %} -
        • {{ ft.name }}
        • - {% endfor %} -
        - Pick the feedback type to view from the list immediately above -
        - {% for ft in feedback_types %} -
        - {% for feedback in nominee.feedback_set.all %} - {% if feedback.type.slug == ft.slug %} -
        -

        From {{ feedback.author|formatted_email|default:"Anonymous" }} ({{ feedback.time|date:"Y-m-d" }})

        - {% if ft.slug == "nomina" %} - {% for fn in feedback.nomination_set.all %} - {% if fn.candidate_name %} -

        Candidate name:

        {{ fn.candidate_name }}
        - {% endif %} - {% if fn.candidate_phone %} -

        Candidate phone:

        {{ fn.candidate_phone }}
        - {% endif %} - {% endfor %} - {% endif %} -

        Positions:

        {{ feedback.positions.all|join:"," }}
        - {% if feedback.subject %} -

        Subject:

        {{ feedback.subject }}
        - {% endif %} -

        Body

        -
        {% decrypt feedback.comments request year 1 %}
        -
        - {% endif %} - {% endfor %} -
        - {% endfor %} -
        +
        + {% for ft in feedback_types %} +
        + {% for feedback in nominee.feedback_set.all %} + {% if feedback.type.slug == ft.slug %} + {% if forloop.first %}

        {% else %}
        {% endif %} +
        +
        From
        +
        {{ feedback.author|formatted_email|default:"Anonymous" }}
        +
        Date
        +
        {{ feedback.time|date:"Y-m-d" }})
        - + {% if ft.slug == "nomina" %} + {% for fn in feedback.nomination_set.all %} + {% if fn.candidate_name %} +
        Nominee
        +
        {{ fn.candidate_name }}
        + {% endif %} + {% if fn.candidate_phone %} +
        Nominee phone
        +
        {{ fn.candidate_phone }}
        + {% endif %} + {% endfor %} + {% endif %} +
        Positions
        +
        {{ feedback.positions.all|join:"," }}
        + {% if feedback.subject %} +
        Subject
        +
        {{ feedback.subject }}
        + {% endif %} +
        Body
        +
        {% decrypt feedback.comments request year 1 %}
        +
        + {% endif %} + {% endfor %} +
        + {% endfor %} +
        +

        +Back {% endblock %} diff --git a/ietf/templates/nomcom/view_feedback_pending.html b/ietf/templates/nomcom/view_feedback_pending.html index f6be1e70d..4af2e01b0 100644 --- a/ietf/templates/nomcom/view_feedback_pending.html +++ b/ietf/templates/nomcom/view_feedback_pending.html @@ -1,132 +1,156 @@ {% extends "nomcom/nomcom_private_base.html" %} +{% load bootstrap3 %} {% load nomcom_tags %} - {% block subtitle %} - Feeback pending{% endblock %} -{% block pagehead %} - -{% endblock %} - -{% block js %} -{{ block.super }} - - -{% endblock %} - {% block nomcom_content %}

        Feedback pending from email list

        {% if message %} -
        {{ message.1 }}
        +

        {{ message.1 }}

        {% endif %} {% if formset.forms %} -{% if extra_step %} -

        Please, provide the following information about nominees to complete the classification of this feedback.

        +
        + {% csrf_token %} + + {% if extra_ids %} + + {% endif %} + + {% bootstrap_form formset.management_form %} + + {% if extra_step %} +

        Please, provide the following information about nominees to complete the classification of this feedback.

        + + {% for form in formset.forms %} +
        +
        Date
        +
        {{ form.instance.time|date:"r" }}
        +
        Author
        +
        {{ form.instance.author }}
        +
        Subject
        +
        {{ form.instance.subject }}
        +
        Type
        +
        {{ form.feedback_type }}
        +
        Feedback
        +
        +
        {% decrypt form.instance.comments request year 1 %}
        +
        +
        Information
        +
        + {% bootstrap_form form %} +
        +
        + + {% if not forloop.last %}
        {% endif %} + {% endfor %} + + {% buttons %} + + Cancel & leave unclassified + {% endbuttons %} + + {% else %} + + + + + + + + {% for legend, t in type_dict.items %} + + + + + {% endfor %} + +
        CodeExplanation
        UUnclassified
        {{ legend }}{{ t.name }}
        + + + + + + + {% for t in type_dict.keys %} + + {% endfor %} + + + + + + + {% for form in formset.forms %} + {% if form.errors %} + + + + {% endif %} + + + + + {{ form.id }} + {% for choice in form.type.field.choices %} + + {% endfor %} + + + + + + + + + + + {% endfor %} +
        DateU{{ t }}AuthorSubject
        Please correct the following errors
        {{ form.instance.time|date:"r" }} + + {{ form.instance.author }}{{ form.instance.subject }} + +
        + + {% buttons %} + + {% if default_type %} + + {% endif %} + {% endbuttons %} + {% endif %} +
        + +{% else %} +

        There is no pending feedback.

        {% endif %} -
        -
        {% csrf_token %} - {% if extra_ids %}{% endif %} -
        - {% if extra_step %} - - Cancel and leave the following feedback unclassified - {% else %} - - {% if default_type %}{% endif %} - {% endif %} -
        - {% if not extra_step %} -
        -

        Feedback types

        - (U) Unclassified, {% for legend, t in type_dict.items %}({{ legend }}) {{ t.name }}{% if not forloop.last %},{% endif %} {% endfor %} -
        - {% endif %} - {{ formset.management_form }} - - {% include "nomcom/inc.feedback_pending_header.html" %} - {% for form in formset.forms %} - {% if forloop.counter|divisibleby:"20" %}{% include "nomcom/inc.feedback_pending_header.html" %}{% endif %} - {% if form.errors %}{% endif %} - - {% if not extra_step %}{% endif %} - - {% if extra_step %} - - {% else %} - {{ form.id }} - {% for choice in form.type.field.choices %} - - {% endfor %} - {% endif %} - - - {% if extra_step %} - - - {% else %} - - {% endif %} - - {% endfor %} -
        Please correct the following errors
        {{ form.instance.time|date:"r" }}{{ form.feedback_type }}{{ form.instance.author }} - {{ form.instance.subject }}
        - {% for field in form %} -
        - {% if extra_step %} - - {% endif %} -
        -
        {{ field.help_text }}
        - {{ field }} - {{ field.errors }} -
        -
        -
        - {% endfor %} -
        -
        {% decrypt form.instance.comments request year 1 %}
        -
        -
        - {% if extra_step %} - - Cancel and leave the following feedback unclassified - {% else %} - - {% if default_type %}{% endif %} - {% endif %} -
        -
        -
        -{% else %} -

        There is no pending feedback.

        -{% endif %} {% endblock %} diff --git a/ietf/templates/nomcom/view_feedback_unrelated.html b/ietf/templates/nomcom/view_feedback_unrelated.html index 9418f1d81..aee15ddf9 100644 --- a/ietf/templates/nomcom/view_feedback_unrelated.html +++ b/ietf/templates/nomcom/view_feedback_unrelated.html @@ -6,58 +6,48 @@ {% block nomcom_content %} -

        Back to list of feedback

        -

        Feedback not related to nominees

        -
        - - Pick the feedback type to view from the list immediately above -
        - {% for ft in feedback_types %} -
        - {% for feedback in ft.feedback %} -
        -

        From {{ feedback.author|formatted_email|default:"Anonymous" }} ({{ feedback.time|date:"Y-m-d" }})

        - {% if ft.slug == "nomina" %} - {% for fn in feedback.nomination_set.all %} - {% if fn.candidate_name %} -

        Candidate name: {{ fn.candidate_name }}

        - {% endif %} - {% if fn.candidate_phone %} -

        Candidate phone: {{ fn.candidate_phone }}

        - {% endif %} - {% endfor %} - {% endif %} - Positions: {{ feedback.positions.all|join:"," }} -
        {% decrypt feedback.comments request year 1 %}
        -
        - {% endfor %} -
        - {% endfor %} -
        + - +
        + {% for ft in feedback_types %} +
        + {% for feedback in ft.feedback %} + {% if forloop.first %}

        {% else %}
        {% endif %} +
        +
        From
        +
        {{ feedback.author|formatted_email|default:"Anonymous" }}
        +
        Date
        +
        {{ feedback.time|date:"Y-m-d" }})
        + {% if ft.slug == "nomina" %} + {% for fn in feedback.nomination_set.all %} + {% if fn.candidate_name %} +
        Nominee
        +
        {{ fn.candidate_name }}
        + {% endif %} + {% if fn.candidate_phone %} +
        Nominee phone
        +
        {{ fn.candidate_phone }}
        + {% endif %} + {% endfor %} + {% endif %} +
        Positions
        +
        {{ feedback.positions.all|join:"," }}
        +
        Body
        +
        {% decrypt feedback.comments request year 1 %}
        +
        + {% endfor %} +
        + {% endfor %} +
        +

        +Back {% endblock %} diff --git a/ietf/templates/nomcom/year_index.html b/ietf/templates/nomcom/year_index.html index e6d2487a6..65d80bd40 100644 --- a/ietf/templates/nomcom/year_index.html +++ b/ietf/templates/nomcom/year_index.html @@ -3,5 +3,6 @@ {% block subtitle %} - Home {% endblock %} {% block nomcom_content %} - {{ template|safe }} + {# XXX FACELIFT: The content below comes from somewhere not in the svn repo? #} + {{ template|safe }} {% endblock %} diff --git a/ietf/templates/registration/base.html b/ietf/templates/registration/base.html deleted file mode 100644 index 8c06ed64e..000000000 --- a/ietf/templates/registration/base.html +++ /dev/null @@ -1,6 +0,0 @@ -{% extends "base.html" %} - -{% block morecss %} -table.register-form ul.errorlist{ list-style-type: none; color: red; padding: 0px; margin: 0px; } -table.register-form p { margin-top: 0px; } -{% endblock %} diff --git a/ietf/templates/registration/change_password.html b/ietf/templates/registration/change_password.html index 10fa5bd73..33c434373 100644 --- a/ietf/templates/registration/change_password.html +++ b/ietf/templates/registration/change_password.html @@ -1,23 +1,31 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Change password{% endblock %} {% block content %} -
        -

        Change password

        + {% if success %} -

        Your password has been updated.

        -

        Now you can sign in

        +

        Password change successful

        + +

        Your password has been updated.

        + Sign in + {% else %} -

        Hello, you can select a new password below for your user {{ username }}.

        -
        {% csrf_token %} - - {{ form }} -
        -
        - -
        -
        +

        Change password

        + + {% bootstrap_messages %} + +

        You can change the password below for your user {{ username }} below.

        +
        + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + {% endbuttons %} +
        + {% endif %} -
        {% endblock %} diff --git a/ietf/templates/registration/confirm.html b/ietf/templates/registration/confirm.html index 57a094587..0d23e637c 100644 --- a/ietf/templates/registration/confirm.html +++ b/ietf/templates/registration/confirm.html @@ -1,23 +1,30 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} -{% block title %}Confirm account creation{% endblock %} +{% load bootstrap3 %} + +{% block title %}Complete account creation{% endblock %} {% block content %} -
        -

        Confirm account creation

        + {% if success %} -

        Your account with login name '{{ email }}' has been created, using the password you have selected.

        -

        Now you can sign in

        +

        Account creation successful

        + +

        Your account with login name {{ email }} has been created, using the password you have selected.

        + Sign in + {% else %} -

        In order to complete the setup of your account with login name '{{ email }}', please set a password:

        -
        {% csrf_token %} - - {{ form }} -
        -
        - -
        -
        +

        Complete account creation

        + + {% bootstrap_messages %} + +

        In order to complete the setup of your account with login name {{ email }}, please choose a password:

        +
        + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + {% endbuttons %} +
        {% endif %} -
        {% endblock %} diff --git a/ietf/templates/registration/confirm_new_email.html b/ietf/templates/registration/confirm_new_email.html index 039821313..9d998ddb8 100644 --- a/ietf/templates/registration/confirm_new_email.html +++ b/ietf/templates/registration/confirm_new_email.html @@ -1,20 +1,21 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} {% block title %}Confirm new email address{% endblock %} {% block content %} -

        Confirm new email address

        -{% if success %} -

        Your account with login name '{{ username }}' has been updated to include the email address '{{ email }}'.

        -

        You may now wish to edit your profile.

        -{% else %} -

        An error has occured when attempting to add the email address '{{ email }}' to your account '{{ username }}'.

        -

          -{% for field,msgs in error.items %} -{% for msg in msgs %}
        • {{field}}: {{msg}} -{% endfor %}{% endfor %}
        +{% if success %} +

        Your account with login name {{ username }} has been updated to include the email address {{ email }}.

        + Edit profile +{% else %} +

        An error has occured when attempting to add the email address '{{ email }}' to your account '{{ username }}'.

        +

          + {% for field,msgs in error.items %} + {% for msg in msgs %} +
        • {{field}}: {{msg}} + {% endfor %} + {% endfor %} +
        {% endif %} -
        {% endblock %} diff --git a/ietf/templates/registration/confirm_profile_update.html b/ietf/templates/registration/confirm_profile_update.html index 226c069dd..834db2047 100644 --- a/ietf/templates/registration/confirm_profile_update.html +++ b/ietf/templates/registration/confirm_profile_update.html @@ -1,19 +1,21 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} -{% block title %}Confirm Profile Update{% endblock %} +{% block title %}Profile update{% endblock %} {% block content %} -
        -

        Confirm Confirm Profile Update

        {% if success %} -

        Your account has been successfully updated to reflect the change(s) you submitted.

        -{% for email in new_emails %} -

        A confirmation email has been sent to {{email}}. It will be added to your account after you click on the link it contains.

        -{% endfor %} -

        You may continue editing your profile.

        +

        Profile update successful

        + +

        Your account has been successfully updated to reflect the changes you submitted.

        + {% for email in new_emails %} +

        A confirmation email has been sent to {{email}}. The email will be activated after you click on the link it contains.

        + {% endfor %} + Edit profile {% else %} -

        An error has occured when attempting to update your account.

        -{% if error %}

        {{ error }}

        {% endif %} +

        Profile update unsuccessful

        +

        An error has occurred when attempting to update your account.

        + {% if error %} +

        {{ error }}

        + {% endif %} {% endif %} -
        {% endblock %} diff --git a/ietf/templates/registration/create.html b/ietf/templates/registration/create.html index d5c38fac4..5b6690264 100644 --- a/ietf/templates/registration/create.html +++ b/ietf/templates/registration/create.html @@ -1,79 +1,51 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} -{% block title %}Account Creation{% endblock %} +{% load bootstrap3 %} -{% block scripts %} - {{ block.super }} - -(function($) { - var checkUsername = function() { - var field = $(this); - var url = $("#check_user_name_url").val(); - var error = field.next('.username-error'); - - $.ajax({ - url: url, - data: {username: field.val()}, - dataType: 'json', - success: function(response) { - if (response.error) { - error.text(response.error); - error.show(); - } else { - error.hide(); - } - } - }); - } - - $(document).ready(function(){ - $('#id_email').after(' '); - $('#id_email').keyup(checkUsername).blur(checkUsername); - }); -})(jQuery); -{% endblock %} +{% block title %}Account creation{% endblock %} {% block content %} -
        -

        Account Creation

        + +{% bootstrap_messages %} + {% if success %} -

        Your account creation request has been received successfully.
        - We have sent you an email with instructions on how to complete the process.

        -

        Best regards, -
        -
        -

        - The datatracker login manager service
        - (for the IETF Secretariat) +

        Account created successfully

        +

        Your account creation request has been successfully received.

        +

        We have sent you an email with instructions on how to complete the process.

        -
        {% else %} -
        {% csrf_token %} -

        - If you already have an account, and want to use a new email address,
        - please go to your account profile page and - add the new email
        - address there. -

        +
        +
        +

        Account creation

        +

        Please enter your email address in order to create a new datatracker account.

        + + {% csrf_token %} + {% bootstrap_form form %} -

        - If you already have an account, but forgot your password,
        please use the password reset form. -

        + {% buttons %} + + {% endbuttons %} + +
        +
        +

        Other options

        -
        - -

        Please enter your email address in order to create a new account.

        - - - {{ form }} -
        -
        - - -
        - - +

        + If you already have an account and want to use a new email address, + please go to your account profile page and +

        +

        + Add a new email address +

        +

         

        +

        + If you already have an account but forgot your password, + please simply +

        +

        + Reset your password +

        +
        {% endif %} -
        {% endblock %} diff --git a/ietf/templates/registration/edit_profile.html b/ietf/templates/registration/edit_profile.html index 4c144c84b..011ef0a46 100644 --- a/ietf/templates/registration/edit_profile.html +++ b/ietf/templates/registration/edit_profile.html @@ -1,147 +1,171 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %} +{% extends "ietf.html" %} -{% block morecss %} -table.userProfile { - text-align: left; -} -th { - vertical-align: top; - text-align: right !important; - font-weight: bold !important; -} -.active { - color: #008000; - color: #008000; -} -.inactive { - color: #800000; - text-decoration: line-through; -} -.even { - background-color: #e0e0ff; -} -.odd { - background-color: #ffffff; -} +{% load widget_tweaks %} + +{% block scripts %} + $(document).ready(function() { + $("input[type=checkbox]").each(style_email); + }); + + function style_email(i, e) { + if (e.checked) { + $(e).parent().addClass("text-success");; + $(e).parent().removeClass("text-danger line-through"); + } else { + $(e).parent().addClass("text-danger line-through"); + $(e).parent().removeClass("text-success"); + } + } + + function add_email() { + $("#emails").append(''); + $("#emails").children().last().focus(); + + } {% endblock %} -{% block pagehead %} - -{% endblock %} - -{% block bodyAttrs %}onload='init_form();'{% endblock %} - {% block title %}Profile for {{ user }}{% endblock %} {% block content %} -

        User information for {{ user.username }}

        +

        Profile for {{ user.username }}

        -
        {% csrf_token %} - - - - - - - {% for role in roles %} - - - - - - - {% endfor %} - {% for email in emails %} - - - - - - {% endfor %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + {% csrf_token %} - -
        User name:{{ user.username }}
        {% if forloop.first %}Roles:{% endif %}{{ role.name }} in {{ role.group.acronym|upper }} ({{ role.group.type }}) -
        {% if forloop.first %}Email:{% endif %} - - {{email}}
        Note: Email addresses cannot be deleted, only deactivated.
        {{person_form.name.label}}:{{person_form.name}} - The preferred form of your name
        {{person_form.ascii.label}}:{{person_form.ascii}} - Your name as rendered in ASCII (Latin, unaccented) characters
        {{person_form.ascii_short.label}}:{{person_form.ascii_short}} - Short form, if any, of your name as rendered in ASCII (blank is okay)
        {{person_form.affiliation.label}}:{{person_form.affiliation}} - Employer, university, sponsor, etc.
        Mailing Address:{{person_form.address}}
        +
        + +
        +

        {{ user.username }}

        +
        +
        +
        + +
        + {% for role in roles %} +
        +
        + +
        +
        + Email to use for {{ role.name|lower }} role in {{ role.group.acronym|upper }} ({{ role.group.type }}). +
        +
        + {% endfor %} +
        +
        +
        + +
        +
        +
        + {% for email in emails %} +
        + +
        + {% endfor %} +
        +
        + Note: Email addresses cannot be deleted, only deactivated. +
        +
        +
        +
        + +
        +
        + +
        +
        + +
        + +
        +
        +
        + {{person_form.name|add_class:"form-control"}} +
        +
        + The preferred form of your name. +
        +
        +
        +
        + +
        + +
        +
        +
        + {{person_form.ascii|add_class:"form-control"}} +
        +
        + Your name as rendered in ASCII (Latin, unaccented) characters. +
        +
        +
        +
        + +
        + +
        +
        +
        + {{person_form.ascii_short|add_class:"form-control"}} +
        +
        + Short form, if any, of your name as rendered in ASCII (blank is okay). +
        +
        +
        +
        + +
        + +
        +
        +
        + {{person_form.affiliation|add_class:"form-control"}} +
        +
        + Employer, university, sponsor, etc. +
        +
        +
        +
        + +
        + +
        +
        +
        + {{person_form.address|add_class:"form-control"}} +
        +
        + Postal mailing address. +
        +
        +
        +
        + +
        +
        + +
        +
        {% endblock %} diff --git a/ietf/templates/registration/index.html b/ietf/templates/registration/index.html index 0f99a91b4..335d5fcd0 100644 --- a/ietf/templates/registration/index.html +++ b/ietf/templates/registration/index.html @@ -1,24 +1,19 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} -{% block title %}Account Management{% endblock %} +{% block title %}Account management{% endblock %} {% block content %} -
        -

        Account Management

        +

        Account management

        -

        - You can: -

        -

        - +
        + {% if user.username %} + View/edit profile + {% else %} + Sign in + {% endif %} + New account + Reset password + Change browser preferences
        + {% endblock %} diff --git a/ietf/templates/registration/logged_out.html b/ietf/templates/registration/logged_out.html index 2893d26b2..2b4e9f58e 100644 --- a/ietf/templates/registration/logged_out.html +++ b/ietf/templates/registration/logged_out.html @@ -1,16 +1,10 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} -{% block title %}Signed Out{% endblock %} +{% block title %}Signed out{% endblock %} {% block content %} -
        -

        You have been signed out

        -{% if request.META.HTTP_REFERER %} - -{% endif %} -
        -
        +Sign in {% endblock %} {% if request.META.HTTP_REFERER %} diff --git a/ietf/templates/registration/login.html b/ietf/templates/registration/login.html index bfeb01603..94ea50227 100644 --- a/ietf/templates/registration/login.html +++ b/ietf/templates/registration/login.html @@ -1,19 +1,21 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} + +{% load bootstrap3 %} {% block title %}Sign in{% endblock %} {% block content %} -
        -
        -

        Sign In

        -
        {% csrf_token %} - - {{ form }} - -
        - -
        +

        Sign in

        + +{% bootstrap_messages %} + + + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + {% endbuttons %}
        -
        -
        + {% endblock %} diff --git a/ietf/templates/registration/missing_person.html b/ietf/templates/registration/missing_person.html index be57ab0e6..ddc3a3f13 100644 --- a/ietf/templates/registration/missing_person.html +++ b/ietf/templates/registration/missing_person.html @@ -1,8 +1,7 @@ -{# Copyright The IETF Trust 2007, All Rights Reserved #} -{% extends "base.html" %} +{% extends "ietf.html" %} {% block content %} -

        Missing Person Info

        +

        Missing person info

        There is no person record associated with your login. Please diff --git a/ietf/templates/registration/password_reset.html b/ietf/templates/registration/password_reset.html index bc2558396..fe2a8d5d0 100644 --- a/ietf/templates/registration/password_reset.html +++ b/ietf/templates/registration/password_reset.html @@ -1,30 +1,31 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} -{% block title %}Password Reset Request{% endblock %} +{% load bootstrap3 %} + +{% block title %}Password reset{% endblock %} {% block content %} -

        -

        Password Reset Request

        + {% if success %} -

        Your password reset request has been successfully received.
        - We have sent you an email with instructions on how to set a new password.

        -

        Best regards, -
        -
        -

        - The datatracker login manager service
        - (for the IETF Secretariat) -
        -

        +

        Password reset successful

        +

        Your password reset request has been successfully received .

        +

        We have sent you an email with instructions on how to set a new password.

        + {% else %} -
        {% csrf_token %} - - {{ form }} -
        -
        - -
        -
        +

        Password reset

        + + {% bootstrap_messages %} + +

        Please enter an email address associated with the account for which you would like to reset the password.

        + +
        + {% csrf_token %} + {% bootstrap_form form %} + + {% buttons %} + + {% endbuttons %} +
        + {% endif %} -
        {% endblock %} diff --git a/ietf/templates/release/release.html b/ietf/templates/release/release.html index 45368f1cb..b1fe8920a 100644 --- a/ietf/templates/release/release.html +++ b/ietf/templates/release/release.html @@ -1,38 +1,33 @@ -{% extends "registration/base.html" %} +{% extends "ietf.html" %} {% block title %}Release information{% endblock %} {% block content %} -
        -

        Version {{ entry.version }}, released {{ entry.date }}

        -

        - {% if entry.prev %}← previous release{% else %}← previous release{% endif %} - | - {% if entry.next %}next release →{% else %}next release →{% endif %} -

        -

        - Release Notes: - -

        -{{entry.logentry|safe}}
        -      
        - -

        - -

        Release list:

        - +

        + +Version {{ entry.version }} +
        Released {{ entry.date }} +

        + + + +

        {{ entry.version }} release notes

        + +
        {{entry.logentry|safe}}
        + +

        All releases

        + {% for item in releases %} - {% ifchanged %}{% endifchanged %} - - - - - + {% ifchanged %}

        {{ item.date|slice:"7:11" }}

        {% endifchanged %} + {{ item.version }} from {{ item.date|slice:":11" }}
        {% endfor %} -

        {{ item.date|slice:"7:11" }}

        {{ item.version }}{{ item.date|slice:":11" }}
        {% endblock %} diff --git a/ietf/templates/submit/add_preapproval.html b/ietf/templates/submit/add_preapproval.html index cf17904c4..baac0ad7a 100644 --- a/ietf/templates/submit/add_preapproval.html +++ b/ietf/templates/submit/add_preapproval.html @@ -1,75 +1,58 @@ {% extends "submit/submit_base.html" %} -{% block title %}Add Pre-Approval{% endblock %} -{% block morecss %} -{{ block.super }} -p { max-width: 50em; } -.name-template { padding: 0.2em 0.5em; background-color: #eee; cursor: pointer; transition: background-color 0.3s; } -.name-template:hover { background-color: #aaa; } -form.add-preapproval input[name=name] { width: 30em; } -ul.errorlist { color: #a00; padding: 0px; margin: 0px; list-style-type: none; } -form .actions { padding-top: 1em; text-align: right; } -form .actions a { display: inline-block; margin-right: 1em; } -{% endblock %} +{% load humanize %} +{% load bootstrap3 %} + +{% block title %}Add pre-approval{% endblock %} {% load ietf_filters %} {% block submit_content %} -

        Add Pre-Approval

        +{% bootstrap_messages %} + +

        Add pre-approval

        You can register a pre-approved draft name. Then the chair approval step of group -00 submissions is suspended for that draft name so a future submission is posted to the data tracker immediately.

        -

        When the revision 00 draft is submitted, the pre-approval will not -be shown anymore as it has fulfilled its purpose (only revision 00 submissions are +

        When the revision -00 draft is submitted, the pre-approval will not +be shown anymore as it has fulfilled its purpose (only revision -00 submissions are subject to approval). If the draft never shows up, you can instead later cancel the pre-approval to get rid of it.

        Instructions

        -

        Do not include -00 and do not include a file extension +

        Do not include -00 and do not include a file extension like .txt in the name.

        {% if user|has_role:"Secretariat" %} -

        Only group submissions are subject to approval and are thus pre-approvable.

        +

        Only group submissions are subject to approval and are thus pre-approvable.

        {% else %} -

        As chair{% if groups|length > 1 %} of {{ groups|length }} groups{% endif %} you can pre-approve draft names on the form (click to pre-fill): - - {% for g in groups %} - - {% endfor %} -
        draft-{% if g.type_id == "rg"%}irtf{% else %}ietf{% endif %}-{{ g.acronym }}-something
        -

        +

        As chair{% if groups|length > 1 %} of {{ groups|length|apnumber }} groups{% endif %} you can pre-approve draft names on the form:

        + +

        + {% for g in groups %} + + {% endfor %} +

        {% endif %} -
        {% csrf_token %} - - - - - - {% if form.name.errors %} - - {% endif %} + + {% csrf_token %} + {% bootstrap_form form %} - - - -
        {{ form.name.label_tag }}{{ form.name }}
        {{ form.name.errors }}
        - Cancel - -
        + {% buttons %} + + Back + {% endbuttons %}
        {% endblock %} {% block scripts %} -jQuery(function () { - jQuery(".name-template").click(function (){ - // clear text first to make sure the cursor ends up at the end - jQuery("form.add-preapproval input[name=name]").text("").focus().val(jQuery(this).text().replace("something", "")); - }); +$(".name-template").click(function (){ + $("form input[name=name]").text("").focus().val($(this).text().replace("something", "")); }); {% endblock %} diff --git a/ietf/templates/submit/approvals.html b/ietf/templates/submit/approvals.html index 6a270488d..d24c67b92 100644 --- a/ietf/templates/submit/approvals.html +++ b/ietf/templates/submit/approvals.html @@ -1,99 +1,97 @@ {% extends "submit/submit_base.html" %} -{% block title %}Draft Submission Approvals{% endblock %} -{% block morecss %} -{{ block.super }} -table.approvals td, table.preapprovals td, table.recently-approved td, -table.approvals th, table.preapprovals th, table.recently-approved th { text-align: left; padding-right: 8px; padding-bottom: 4px; } - -table.preapprovals tr td a.cancel { visibility: hidden; } -table.preapprovals tr:hover { background-color: #eee; } -table.preapprovals tr:hover td a.cancel { visibility: visible; } -{% endblock %} +{% block title %}Draft submission approvals{% endblock %} {% load ietf_filters %} {% block submit_content %} {% if user.is_authenticated %} -

        Submissions you can approve

        +

        Submissions you can approve

        -{% if not approvals %} -

        You don't have any submissions to approve.

        -{% else %} - - - - - - {% for s in approvals %} - - - - - {% endfor %} -
        SubmissionSubmitted
        {{ s.name }}-{{ s.rev }}{{ s.submission_date }}
        -{% endif %} + {% if not approvals %} +

        You don't have any submissions to approve.

        + {% else %} + + + + + + + + + {% for s in approvals %} + + + + + {% endfor %} + +
        DraftSubmitted
        {{ s.name }}-{{ s.rev }}{{ s.submission_date }}
        + {% endif %} -

        Pre-approved drafts not yet submitted

        +

        Pre-approved drafts not yet submitted

        -{% if user|has_role:"Secretariat,WG Chair,RG Chair" %} -

        You can add a pre-approval.

        -{% endif %} + {% if user|has_role:"Secretariat,WG Chair,RG Chair" %} +

        Add pre-approval

        + {% endif %} -{% if not preapprovals %} -

        No pre-approvals within your jurisdiction found.

        -{% else %} + {% if not preapprovals %} +

        No pre-approvals within your jurisdiction found.

        + {% else %} + + + + + + + + + + + {% for p in preapprovals %} + + + + + + + {% endfor %} + +
        Draft namePre-approvedBy
        {{ p.name }}{{ p.time|date:"Y-m-d" }}{{ p.by }}Cancel
        + {% endif %} - - - - - - - {% for p in preapprovals %} - - - - - - - {% endfor %} -
        Draft namePre-approvedBy
        {{ p.name }}{{ p.time|date:"Y-m-d" }}{{ p.by }}cancel pre-approval
        -{% endif %} +

        Approved drafts within the past {{ days }} days

        -

        Approved drafts within the past {{ days }} days

        - -{% if not recently_approved %} -

        No drafts approved.

        -{% else %} - - - - - - - {% for d in recently_approved %} - - - - - {% endfor %} -
        DraftSubmitted
        {{ d.name }}{{ d.submission_date }}
        -{% endif %} + {% if not recently_approved %} +

        No drafts approved.

        + {% else %} + + + + + + + + + {% for d in recently_approved %} + + + + + {% endfor %} + +
        DraftSubmitted
        {{ d.name }}{{ d.submission_date }}
        + {% endif %} {% else %} -

        Submission approvals

        -

        - - This is where Chairs and Secretariat can approve and pre-approve document - submissions which require approval, such as WG -00 drafts. - -

        -

        - - You need to sign in in order to handle approvals. - -

        +

        Submission approvals

        +

        + This is where chairs and the secretariat can approve and pre-approve document + submissions which require approval, such as WG -00 drafts. +

        +

        + You need to sign in in order to handle approvals. +

        {% endif %} {% endblock %} diff --git a/ietf/templates/submit/cancel_preapproval.html b/ietf/templates/submit/cancel_preapproval.html index 901f3c390..0e2144c47 100644 --- a/ietf/templates/submit/cancel_preapproval.html +++ b/ietf/templates/submit/cancel_preapproval.html @@ -1,23 +1,24 @@ {% extends "submit/submit_base.html" %} -{% block title %}Cancel Pre-Approval{% endblock %} -{% block morecss %} -{{ block.super }} -form.actions { margin-top: 1em; } -form.actions a { display: inline-block; margin-right: 1em; } -{% endblock %} +{% block title %}Cancel pre-approval{% endblock %} {% block submit_content %} -

        Cancel Pre-Approval

        +

        Cancel pre-approval

        -Pre-approval of {{ preapproval.name }} by {{ preapproval.by }} -on {{ preapproval.time }}. +

        + Pre-approval of {{ preapproval.name }} by {{ preapproval.by }} + on {{ preapproval.time }}. +

        -
        {% csrf_token %} - Don't cancel - - + + {% csrf_token %} + + +
        + + Back +
        {% endblock %} diff --git a/ietf/templates/submit/confirm_submission.html b/ietf/templates/submit/confirm_submission.html index 433b6bb14..070f6f9b2 100644 --- a/ietf/templates/submit/confirm_submission.html +++ b/ietf/templates/submit/confirm_submission.html @@ -2,43 +2,37 @@ {% block title %}Confirm submission of {{ submission.name }}{% endblock %} -{% block morecss %} -{{ block.super }} -p.error { color: red; font-weight: bold; font-size: 1.5em; } -{% endblock %} - - {% block submit_content %}

        Confirm submission of {{ submission.name }}

        {% if submission.state_id != "auth" and submission.state_id != "aut-appr" %} - {% if submission.state_id == "posted" %} -

        The submission has already been posted. See the draft here.

        - {% else %} -

        The submission is not in a state where it can be confirmed.

        + {% if submission.state_id == "posted" %} +

        The submission has already been posted. See the draft here.

        + {% else %} +

        The submission is not in a state where it can be confirmed.

        -

        Go to the status page - to see what has happened to it.

        - {% endif %} +

        Go to the status page + to see what has happened to it.

        + {% endif %} {% else %} - {% if not key_matched %} -

        Incorrect authorization key.

        + {% if not key_matched %} +

        Incorrect authorization key.

        -

        Double-check the link you followed. If everything fails, you can go to - the status page, - cancel the submission and try again.

        - {% else %} -

        Authorization key accepted.

        +

        Double-check the link you followed. If everything fails, you can go to + the status page, + cancel the submission and try again.

        + {% else %} +

        Authorization key accepted.

        -

        Please press the button below to finish posting of - {{ submission.name }}-{{ submission.rev }}

        +

        Please press the button below to finish posting of + {{ submission.name }}-{{ submission.rev }}.

        -
        {% csrf_token %} - -
        - {% endif %} +
        {% csrf_token %} + +
        + {% endif %} {% endif %} @@ -46,11 +40,11 @@ p.error { color: red; font-weight: bold; font-size: 1.5em; } {% block scripts %} jQuery(function () { - jQuery("form").submit(function() { - if (this.submittedAlready) - return false; - else - this.submittedAlready = true; - }); + jQuery("form").submit(function() { + if (this.submittedAlready) + return false; + else + this.submittedAlready = true; + }); }); {% endblock %} diff --git a/ietf/templates/submit/edit_submission.html b/ietf/templates/submit/edit_submission.html index 1d34214cc..6b54fbfe5 100644 --- a/ietf/templates/submit/edit_submission.html +++ b/ietf/templates/submit/edit_submission.html @@ -1,114 +1,88 @@ {% extends "submit/submit_base.html" %} +{% load bootstrap3 %} + {% load submit_tags %} -{% block title %}Adjust Meta-Data of Submitted {{ submission.name }}{% endblock %} - -{% block morecss %} -{{ block.super }} -table.metadata-table tr th { padding-right: 2em; } -table.metadata-table #id_edit-title, table.metadata-table #id_edit-abstract, table.metadata-table #id_edit-note { width: 40em; } -table.authors td { vertical-align: top; } -table.authors tr.empty { display: none; } -input.add-author { margin-left: 42em; } -div.manual-posting { margin-top: 2em; } -{% endblock %} +{% block title %}Adjust meta-data of submitted {{ submission.name }}{% endblock %} {% block submit_content %} -

        Adjust Meta-Data of Submitted {{ submission.name }}

        -
      -

      All IETF Contributions are subject to the rules of RFC 5378 and RFC 3979 (updated by RFC 4879).

      +

      All IETF Contributions are subject to the rules of RFC 5378 and RFC 3979 (updated by RFC 4879).

      Statements made outside of an IETF session, mailing list or other function, that are clearly not intended to be input to an IETF activity, group or function, are not IETF Contributions in the context of this notice.

      -

      Please consult RFC 5378 and RFC 3979 for details.

      +

      Please consult RFC 5378 and RFC 3979 for details.

      A participant in any IETF activity is deemed to accept all IETF rules of process, as documented in Best Current Practices RFCs and IESG Statements.

      diff --git a/ietf/templates/submit/problem-reports-footer.html b/ietf/templates/submit/problem-reports-footer.html index 8216223a5..1812e1483 100644 --- a/ietf/templates/submit/problem-reports-footer.html +++ b/ietf/templates/submit/problem-reports-footer.html @@ -1,4 +1,4 @@ -

      + The IETF is an organized activity of the Internet Society. + Please send problem reports to ietf-action@ietf.org.

      diff --git a/ietf/templates/submit/search_submission.html b/ietf/templates/submit/search_submission.html index 80fe87728..5dfdffe94 100644 --- a/ietf/templates/submit/search_submission.html +++ b/ietf/templates/submit/search_submission.html @@ -1,18 +1,33 @@ {% extends "submit/submit_base.html" %} +{% load bootstrap3 %} + {% block title %}Submission status{% endblock %} {% block submit_content %} -

      Please enter the name of the Internet-Draft you wish to view - submission status for:

      +{% bootstrap_messages %} -
      {% csrf_token %} - {% if error %}
      {{ error }}
      {% endif %} - - +

      + Please enter the name of the Internet-Draft you wish to view the + submission status of. +

      + + + {% csrf_token %} + + {% if error %} +

      {{ error }}

      + {% endif %} + +
      + + +
      + + {% buttons %} + + {% endbuttons %}
      -{% include "submit/problem-reports-footer.html" %} - {% endblock %} diff --git a/ietf/templates/submit/submission_files.html b/ietf/templates/submit/submission_files.html index 1328ab845..5c0e69459 100644 --- a/ietf/templates/submit/submission_files.html +++ b/ietf/templates/submit/submission_files.html @@ -1,11 +1,8 @@ -{% if files %} -
        {% for file in files %} - {% if file.exists %} -
      • {{ file.name }}
      • - {% else %} -
      • {{ file.name }} This file is not found on staging area
      • - {% endif %} + {% if file.exists %} + + + {{ file.name }} + + {% endif %} {% endfor %} -
      -{% endif %} diff --git a/ietf/templates/submit/submission_status.html b/ietf/templates/submit/submission_status.html index a20e5e133..f36201560 100644 --- a/ietf/templates/submit/submission_status.html +++ b/ietf/templates/submit/submission_status.html @@ -2,284 +2,320 @@ {% load ietf_filters submit_tags %} -{% block title %}Status of submission of {{ submission.name }}-{{ submission.rev }}{% endblock %} +{% block title %}Submission status of {{ submission.name }}-{{ submission.rev }}{% endblock %} {% block submit_content %} {% if submission.state_id != "uploaded" %} -

      Status of the submission: {{ submission.state.name }}

      -{% endif %} +

      Submission status: {{ submission.state.name }}

      +{% endif %} -{% if message %} -
      {{ message.1 }}
      +{% if message %} +

      {{ message.1 }}

      {% endif %} {% if submission.state_id == "aut-appr" and submission.submitter_parsed.email not in confirmation_list|join:", " %} -
      - Please note that since the database does not have your email address in the list of authors of previous - revisions of the document, you are not receiving a confirmation email yourself; one of the - addressees above will have to send a confirmation in order to complete the submission. This is done - to avoid document hijacking. If none of the known previous authors will be able to confirm the - submission, please contact the Secretariat for action. -
      +

      + Please note that since the database does not have your email address in the list of authors of previous + revisions of the document, you are not receiving a confirmation email yourself; one of the + addressees above will have to send a confirmation in order to complete the submission. This is done + to avoid document hijacking. If none of the known previous authors will be able to confirm the + submission, please contact the Secretariat for action. +

      {% endif %} {% if submitter_form.errors %} -
      Please fix errors in the form below
      +

      Please fix errors in the form below.

      {% endif %} -

      IDNITS

      +

      I-D nits

      - {% if passes_idnits %} - Your draft has been verified to meet IDNITS requirements. - {% else %} - Your draft has NOT been verified to meet IDNITS requirements. - {% endif %} - (View IDNITS Results) + {% if passes_idnits %} + Your draft has been verified to meet I-D nits requirements. + {% else %} + Your draft has NOT been verified to meet I-D nits requirements. + {% endif %}

      + -