Merged in Lars Eggert's changes to the search page, and Henrik's lefthand-menu addition
- Legacy-Id: 1255
This commit is contained in:
parent
ce266472d4
commit
4506cb41e1
2
ietf/.gitignore
vendored
2
ietf/.gitignore
vendored
|
@ -1,3 +1 @@
|
|||
/*.swp
|
||||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
1
ietf/idtracker/.gitignore
vendored
1
ietf/idtracker/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
1
ietf/idtracker/fixtures/.gitignore
vendored
Normal file
1
ietf/idtracker/fixtures/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
|
@ -5,7 +5,7 @@ from models import IESGLogin, IDStatus, Area, IDState, IDSubState
|
|||
|
||||
class IDSearch(forms.Form):
|
||||
search_job_owner = forms.ChoiceField(choices=(), required=False)
|
||||
search_group_acronym = forms.CharField(widget=forms.TextInput(attrs={'size': 6, 'maxlength': 10}), required=False)
|
||||
search_group_acronym = forms.CharField(widget=forms.TextInput(attrs={'size': 7, 'maxlength': 10}), required=False)
|
||||
search_status_id = forms.ModelChoiceField(IDStatus.objects.all(), empty_label="--All", required=False)
|
||||
search_area_acronym = forms.ModelChoiceField(Area.objects.filter(status=Area.ACTIVE), empty_label="--All/Any", required=False)
|
||||
search_cur_state = forms.ModelChoiceField(IDState.objects.all(), empty_label="--All/Any", required=False)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# Copyright The IETF Trust 2007, All Rights Reserved
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
from ietf.utils import FKAsOneToOne
|
||||
from django.test import TestCase
|
||||
|
@ -117,6 +118,7 @@ class IDIntendedStatus(models.Model):
|
|||
pass
|
||||
|
||||
class InternetDraft(models.Model):
|
||||
DAYS_TO_EXPIRE=185
|
||||
id_document_tag = models.AutoField(primary_key=True)
|
||||
title = models.CharField(maxlength=255, db_column='id_document_name')
|
||||
id_document_key = models.CharField(maxlength=255, editable=False)
|
||||
|
@ -153,9 +155,19 @@ class InternetDraft(models.Model):
|
|||
self.id_document_key = self.title.upper()
|
||||
super(InternetDraft, self).save()
|
||||
def displayname(self):
|
||||
return "%s-%s.txt" % ( self.filename, self.revision_display() )
|
||||
if self.status.status == "Replaced":
|
||||
css="replaced"
|
||||
else:
|
||||
css="active"
|
||||
return '<span class="' + css + '">' + self.filename + '</span>'
|
||||
def displayname_with_link(self):
|
||||
if self.status.status == "Replaced":
|
||||
css="replaced"
|
||||
else:
|
||||
css="active"
|
||||
return '<a class="' + css + '" href="%s">%s</a>' % ( self.doclink(), self.filename )
|
||||
def doclink(self):
|
||||
return "http://www.ietf.org/internet-drafts/%s" % ( self.displayname() )
|
||||
return "http://" + settings.TOOLS_SERVER + "/html/%s" % ( self.filename )
|
||||
def group_acronym(self):
|
||||
return self.group.acronym
|
||||
def __str__(self):
|
||||
|
@ -176,12 +188,26 @@ class InternetDraft(models.Model):
|
|||
def filename_with_link(self, text=None):
|
||||
if text is None:
|
||||
text=self.filename
|
||||
if self.status.status != 'Active':
|
||||
return text
|
||||
else:
|
||||
return '<a href="%s">%s</a>' % ( self.doclink(), text )
|
||||
def displayname_with_link(self):
|
||||
return self.filename_with_link(self.displayname())
|
||||
return '<a href="%s">%s</a>' % ( self.doclink(), text )
|
||||
def expiration(self):
|
||||
return self.revision_date + datetime.timedelta(self.DAYS_TO_EXPIRE)
|
||||
def can_expire(self):
|
||||
# Copying the logic from expire-ids-1 without thinking
|
||||
# much about it.
|
||||
if self.review_by_rfc_editor:
|
||||
return False
|
||||
idinternal = self.idinternal
|
||||
if idinternal:
|
||||
cur_state_id = idinternal.cur_state_id
|
||||
# 42 is "AD is Watching"; this matches what's in the
|
||||
# expire-ids-1 perl script.
|
||||
# A better way might be to add a column to the table
|
||||
# saying whether or not a document is prevented from
|
||||
# expiring.
|
||||
if cur_state_id < 42:
|
||||
return False
|
||||
return True
|
||||
|
||||
class Meta:
|
||||
db_table = "internet_drafts"
|
||||
class Admin:
|
||||
|
@ -364,7 +390,7 @@ class Rfc(models.Model):
|
|||
def revision_display(self):
|
||||
return "RFC"
|
||||
def doclink(self):
|
||||
return "http://www.ietf.org/rfc/%s" % ( self.displayname() )
|
||||
return "http://" + settings.TOOLS_SERVER + "/html/%s" % ( self.displayname() )
|
||||
def doctype(self):
|
||||
return "RFC"
|
||||
def filename_with_link(self):
|
||||
|
@ -581,12 +607,17 @@ class DocumentComment(models.Model):
|
|||
if self.created_by_id and self.created_by_id != 999:
|
||||
return self.created_by.__str__()
|
||||
else:
|
||||
return "system"
|
||||
return "(System)"
|
||||
def get_username(self):
|
||||
if self.created_by_id and self.created_by_id != 999:
|
||||
return self.created_by.login_name
|
||||
else:
|
||||
return "system"
|
||||
return "(System)"
|
||||
def get_fullname(self):
|
||||
if self.created_by_id and self.created_by_id != 999:
|
||||
return self.created_by.first_name + " " + self.created_by.last_name
|
||||
else:
|
||||
return "(System)"
|
||||
def datetime(self):
|
||||
# this is just a straightforward combination, except that the time is
|
||||
# stored incorrectly in the database.
|
||||
|
|
1
ietf/idtracker/templatetags/.gitignore
vendored
1
ietf/idtracker/templatetags/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
|
@ -169,6 +169,11 @@ def allononeline(text):
|
|||
"""Simply removes CRs, LFs, leading and trailing whitespace from the given string."""
|
||||
return text.replace("\r", "").replace("\n", "").strip()
|
||||
|
||||
@register.filter(name='allononelinew')
|
||||
def allononelinew(text):
|
||||
"""Map runs of whitespace to a single space and strip leading and trailing whitespace from the given string."""
|
||||
return re.sub("[\r\n\t ]+", " ", text).strip()
|
||||
|
||||
@register.filter(name='rfcspace')
|
||||
def rfcspace(string):
|
||||
"""
|
||||
|
@ -213,9 +218,63 @@ def inpast(date):
|
|||
return date < datetime.datetime.now()
|
||||
return True
|
||||
|
||||
@register.filter(name='truncatemore')
|
||||
def truncatemore(text, arg):
|
||||
"""Truncate the text if longer than 'words', and if truncated,
|
||||
add a link to the full text (given in 'link').
|
||||
"""
|
||||
from django.utils.text import truncate_words
|
||||
args = arg.split(",")
|
||||
if len(args) == 3:
|
||||
count, link, format = args
|
||||
elif len(args) == 2:
|
||||
format = "[<a href='%s'>more</a>]"
|
||||
count, link = args
|
||||
else:
|
||||
return text
|
||||
try:
|
||||
length = int(count)
|
||||
except ValueError: # invalid literal for int()
|
||||
return text # Fail silently.
|
||||
if not isinstance(text, basestring):
|
||||
text = str(text)
|
||||
words = text.split()
|
||||
if len(words) > length:
|
||||
words = words[:length]
|
||||
words.append(format % link)
|
||||
return ' '.join(words)
|
||||
|
||||
@register.filter(name="wrap_long_lines")
|
||||
def wrap_long_lines(text):
|
||||
"""Wraps long lines without loosing the formatting and indentation
|
||||
of short lines"""
|
||||
if type(text) != type(""):
|
||||
return text
|
||||
text = re.sub(" *\r\n", "\n", text) # get rid of DOS line endings
|
||||
text = re.sub(" *\r", "\n", text) # get rid of MAC line endings
|
||||
text = re.sub("( *\n){3,}", "\n\n", text) # get rid of excessive vertical whitespace
|
||||
lines = text.split("\n")
|
||||
filled = []
|
||||
wrapped = False
|
||||
for line in lines:
|
||||
if wrapped and line.strip() != "":
|
||||
line = filled[-1] + " " + line
|
||||
filled = filled[:-1]
|
||||
else:
|
||||
wrapped = False
|
||||
while (len(line) > 80) and (" " in line[:80]):
|
||||
wrapped = True
|
||||
breakpoint = line.rfind(" ",0,79)
|
||||
filled += [ line[:breakpoint] ]
|
||||
line = line[breakpoint+1:]
|
||||
filled += [ line.rstrip() ]
|
||||
return "\n".join(filled)
|
||||
|
||||
def _test():
|
||||
import doctest
|
||||
doctest.testmod()
|
||||
|
||||
if __name__ == "__main__":
|
||||
_test()
|
||||
|
||||
|
|
@ -76,7 +76,24 @@ def search(request):
|
|||
if status != '':
|
||||
q_objs.append(Q(draft__status=status,rfc_flag=0))
|
||||
matches = IDInternal.objects.all().filter(*q_objs)
|
||||
matches = matches.order_by('cur_state', 'cur_sub_state', '-primary_flag')
|
||||
matches = matches.order_by('cur_state', 'cur_sub_state', 'ballot_id', '-primary_flag')
|
||||
# sort by date in reverse
|
||||
# first build docstate groups, within which we sort
|
||||
# in each docstate group, we build ballot id groups, which we sort
|
||||
m1 = [] # list of: docstate, list of: event date; ballot id; list of: ms for the ballot id
|
||||
for m in matches:
|
||||
if m1 and m1[-1][0] == m.docstate():
|
||||
if m1[-1][1] and m1[-1][1][0][1] == m.ballot_id:
|
||||
m1[-1][1][0][2].append(m)
|
||||
else:
|
||||
m1[-1][1].append((m.event_date, m.ballot_id, [m]))
|
||||
else:
|
||||
m1.append((m.docstate(), [(m.event_date, m.ballot_id, [m])]))
|
||||
matches = []
|
||||
for ms in m1: ms[1].sort(reverse=True)
|
||||
for ms in m1:
|
||||
for mt in ms[1]:
|
||||
matches.extend(mt[2])
|
||||
#
|
||||
# Now search by I-D exists, if there could be any results.
|
||||
# If searching by job owner, current state or substate, there
|
||||
|
@ -119,6 +136,7 @@ def search(request):
|
|||
'form': form,
|
||||
'matches': matches,
|
||||
'searching': searching,
|
||||
'spacing': True
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
# proof of concept, orphaned for now
|
||||
|
@ -209,7 +227,7 @@ def view_id(request, queryset, slug, slug_field):
|
|||
except IDInternal.DoesNotExist:
|
||||
draft = get_object_or_404(InternetDraft, filename=slug)
|
||||
return render_to_response('idtracker/idinternal_notfound.html', {'draft': draft}, context_instance=RequestContext(request))
|
||||
return render_to_response('idtracker/idinternal_detail.html', {'object': object}, context_instance=RequestContext(request))
|
||||
return render_to_response('idtracker/idinternal_detail.html', {'object': object, 'spacing': False}, context_instance=RequestContext(request))
|
||||
|
||||
def view_rfc(request, object_id):
|
||||
'''A replacement for the object_detail generic view for this
|
||||
|
@ -223,7 +241,7 @@ def view_rfc(request, object_id):
|
|||
This view gets the appropriate row from IDInternal and
|
||||
calls the template with the necessary context.'''
|
||||
object = get_object_or_404(IDInternal, pk=object_id, rfc_flag=1)
|
||||
return render_to_response('idtracker/idinternal_detail.html', {'object': object}, context_instance=RequestContext(request))
|
||||
return render_to_response('idtracker/idinternal_detail.html', {'object': object, 'spacing': False}, context_instance=RequestContext(request))
|
||||
|
||||
# Wrappers around object_detail to give permalink a handle.
|
||||
# The named-URLs feature in django 0.97 will eliminate the
|
||||
|
|
1
ietf/proceedings/.gitignore
vendored
1
ietf/proceedings/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
75
ietf/proceedings/feeds.py
Normal file
75
ietf/proceedings/feeds.py
Normal file
|
@ -0,0 +1,75 @@
|
|||
import re
|
||||
from django.contrib.syndication.feeds import Feed
|
||||
from django.utils.feedgenerator import Atom1Feed
|
||||
from ietf.proceedings.models import WgProceedingsActivities
|
||||
from ietf.proceedings.models import Slide, WgAgenda, Proceeding
|
||||
from datetime import datetime, time
|
||||
from django.db import connection
|
||||
|
||||
class LatestWgProceedingsActivity(Feed):
|
||||
feed_type = Atom1Feed
|
||||
link = "/foo"
|
||||
description = "foobar"
|
||||
language = "en"
|
||||
feed_url = "/feed/ipr/"
|
||||
base_url = "http://www3.ietf.org/proceedings/"
|
||||
|
||||
def items(self):
|
||||
objs = []
|
||||
for act in WgProceedingsActivities.objects.order_by('-act_date')[:60]:
|
||||
obj = {}
|
||||
|
||||
m = re.match("^slide, '(.*)', was uploaded$", act.activity)
|
||||
if m:
|
||||
obj['title'] = m.group(1)
|
||||
obj['title'] = re.sub("[^ -~]+", "", obj['title'])
|
||||
slides = Slide.objects.filter(meeting=act.meeting).filter(slide_name=m.group(1)).filter(group_acronym_id=act.group_acronym_id)
|
||||
if len(slides) == 1:
|
||||
obj['link'] = self.base_url + slides[0].file_loc()
|
||||
|
||||
m = re.match("^agenda was uploaded$", act.activity)
|
||||
if m:
|
||||
obj['title'] = "agenda";
|
||||
agendas = WgAgenda.objects.filter(meeting=act.meeting).filter(group_acronym_id=act.group_acronym_id)
|
||||
if len(agendas) == 1:
|
||||
dir = Proceeding.objects.get(meeting_num=act.meeting).dir_name
|
||||
obj['link'] = self.base_url + dir + "/agenda/" + agendas[0].filename
|
||||
|
||||
if len(obj) > 0:
|
||||
try:
|
||||
act.irtf = False
|
||||
obj['group_acronym'] = act.acronym()
|
||||
except:
|
||||
act.irtf = True
|
||||
try:
|
||||
obj['group_acronym'] = act.acronym()
|
||||
except:
|
||||
obj['group_acronym'] = "?"
|
||||
obj['date'] = datetime.combine(act.act_date, time(int(act.act_time[0:2]), int(act.act_time[3:5]), int(act.act_time[6:8])))
|
||||
obj['author'] = str(act.act_by)
|
||||
objs.append(obj)
|
||||
|
||||
return objs
|
||||
|
||||
def get_object(self, bits):
|
||||
obj = {}
|
||||
obj['title'] = "This is the title";
|
||||
return obj
|
||||
|
||||
def title(self, obj):
|
||||
return "Meeting Materials Activity"
|
||||
|
||||
def item_link(self, item):
|
||||
if 'link' in item:
|
||||
return item['link']
|
||||
else:
|
||||
return ""
|
||||
|
||||
def item_pubdate(self, item):
|
||||
return item['date']
|
||||
|
||||
def item_author_name(self, item):
|
||||
return item['author']
|
||||
|
||||
def item_author_email(self, item):
|
||||
return None;
|
|
@ -469,3 +469,23 @@ class Slide(models.Model, ResolveAcronym):
|
|||
db_table = 'slides'
|
||||
class Admin:
|
||||
pass
|
||||
|
||||
class WgProceedingsActivities(models.Model, ResolveAcronym):
|
||||
id = models.AutoField(primary_key=True)
|
||||
group_acronym_id = models.IntegerField(null=True, blank=True)
|
||||
group_acronym = models.ForeignKey(Acronym, raw_id_admin=True)
|
||||
|
||||
meeting = models.ForeignKey(Meeting, db_column='meeting_num')
|
||||
activity = models.CharField(blank=True, maxlength=255)
|
||||
act_date = models.DateField(null=True, blank=True)
|
||||
act_time = models.CharField(blank=True, maxlength=100)
|
||||
act_by = models.ForeignKey(PersonOrOrgInfo, db_column='act_by')
|
||||
irtf = None
|
||||
|
||||
def __str__(self):
|
||||
#return "IETF%d: %s slides (%s)" % (self.meeting_id, self.acronym(), self.activity)
|
||||
return "this is WgProceedingsActivities.__str__"
|
||||
class Meta:
|
||||
db_table = 'wg_proceedings_activities'
|
||||
class Admin:
|
||||
pass
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
# http://code.djangoproject.com/wiki/SplitSettings
|
||||
|
||||
import os
|
||||
|
||||
import syslog
|
||||
syslog.openlog("django", syslog.LOG_PID, syslog.LOG_LOCAL0)
|
||||
|
||||
|
@ -15,16 +14,21 @@ BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
|||
DEBUG = True
|
||||
TEMPLATE_DEBUG = DEBUG
|
||||
|
||||
# Domain name of the IETF
|
||||
IETF_DOMAIN = 'ietf.org'
|
||||
|
||||
ADMINS = (
|
||||
('IETF Django Developers', 'django-project@ietf.org'),
|
||||
('IETF Django Developers', 'django-project@' + IETF_DOMAIN),
|
||||
('GMail Tracker Archive', 'ietf.tracker.archive+errors@gmail.com'),
|
||||
)
|
||||
|
||||
# Server name of the tools server
|
||||
TOOLS_SERVER = 'tools.' + IETF_DOMAIN
|
||||
|
||||
# Override this in the settings_local.py file:
|
||||
SERVER_EMAIL = 'Django Server<django-project@ietf.org>'
|
||||
SERVER_EMAIL = 'Django Server <django-project@' + TOOLS_SERVER + '>'
|
||||
|
||||
|
||||
DEFAULT_FROM_EMAIL = 'IETF Secretariat <ietf-secretariat-reply@ietf.org>'
|
||||
DEFAULT_FROM_EMAIL = 'IETF Secretariat <ietf-secretariat-reply@' + IETF_DOMAIN + '>'
|
||||
|
||||
MANAGERS = ADMINS
|
||||
|
||||
|
@ -33,7 +37,7 @@ DATABASE_NAME = 'ietf' # Or path to database file if using sqlite3.
|
|||
DATABASE_USER = 'ietf' # Not used with sqlite3.
|
||||
#DATABASE_PASSWORD = 'playing' # Not used with sqlite3.
|
||||
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
|
||||
#DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
|
||||
DATABASE_HOST = '130.129.48.40' # Set to empty string for localhost. Not used with sqlite3.
|
||||
|
||||
# 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
|
||||
|
@ -131,6 +135,8 @@ INSTALLED_APPS = (
|
|||
'ietf.my',
|
||||
'ietf.proceedings',
|
||||
'ietf.redirects',
|
||||
# not yet merged from the Vancouver branch
|
||||
# 'ietf.wgcharter',
|
||||
)
|
||||
|
||||
INTERNAL_IPS = (
|
||||
|
|
1
ietf/templates/.gitignore
vendored
1
ietf/templates/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
1
ietf/templates/announcements/.gitignore
vendored
1
ietf/templates/announcements/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
50
ietf/templates/announcements/send.html
Normal file
50
ietf/templates/announcements/send.html
Normal file
|
@ -0,0 +1,50 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}IETF Announcement{% endblock %}
|
||||
|
||||
{% block head %}
|
||||
<style type="text/css" media="all">@import "/css/base.css";</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div>
|
||||
<form action="{% url ietf.announcements.views.send %}" method="post">
|
||||
{% if form.is_valid %}{% ifequal request.POST.op "Preview" %}
|
||||
<pre>
|
||||
From: {{ form.clean_data.sender }}
|
||||
To: {{ form.clean_data.recipient }}{% if form.clean_data.cc %}
|
||||
Cc: {{ form.clean_data.cc }}{% endif %}{% if form.clean_data.bcc %}
|
||||
Bcc: {{ form.clean_data.bcc }}{% endif %}{% if form.clean_data.reply_to %}
|
||||
Reply-to: {{ form.clean_data.reply_to }}{% endif %}
|
||||
|
||||
{{ form.clean_data.body }}
|
||||
</pre>
|
||||
<input class="form-submit" name="op" type="submit" value="Send"/>
|
||||
{% endifequal %}{% endif %}
|
||||
|
||||
{% for field in form %}
|
||||
<div class="form-item">
|
||||
{{ field.label_tag }}
|
||||
|
||||
{# Ideally this would go in the <lable> tag #}
|
||||
{% if field.field.required %}
|
||||
<span class="form-required" title="This field is required.">*</span>
|
||||
{% endif %}
|
||||
|
||||
{{ field }}
|
||||
|
||||
{% if field.help_text %}
|
||||
<div class="description">
|
||||
{{ field.help_text }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if field.errors %}{{field.errors }}{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
<input class="form-submit" name="op" type="submit" value="Preview"/>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
13
ietf/templates/announcements/send_confirm.html
Normal file
13
ietf/templates/announcements/send_confirm.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}IETF Announcement{% endblock %}
|
||||
|
||||
{% block head %}
|
||||
<style type="text/css" media="all">@import "http://cvs.drupal.org/viewvc.py/drupal/drupal/modules/system/system.css?view=co";</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Announcement sent.</h2>
|
||||
{% endblock %}
|
|
@ -1,112 +0,0 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
|
||||
<head>
|
||||
<title>{% block title %}IETF Data{% endblock %} - WCF</title>
|
||||
|
||||
<style type="text/css">
|
||||
@import "http://www1.tools.ietf.org/demo/www.ietf.org/v1.css";
|
||||
</style>
|
||||
</head><body>
|
||||
|
||||
<div id="leftmenu">
|
||||
<div class="menulogo">
|
||||
<img class="menulogo" src="/images/ietflogo2i.png" alt="IETF logo" />
|
||||
</div>
|
||||
<ul>
|
||||
<li><a title="About the Internet Engineering Task Force">About the IETF</a>
|
||||
<ul> <!--sublist for about-->
|
||||
<li><a title="What is the IETF?">Overview</a></li>
|
||||
<li><a title="History of the IETF, from the Education Team">IETF history</a></li>
|
||||
<!-- note: this link should be changed to reflect the new struct -->
|
||||
<li><a title="How an IETF standard is adopted">IETF standards process</a></li>
|
||||
<!-- same as "process? -->
|
||||
<!-- <li><a href="#">IETF rules</a></li> -->
|
||||
|
||||
<!-- I don't know of a "who's who" -->
|
||||
<!-- <li><a href="#">People</a></li> -->
|
||||
|
||||
</ul></li><!--end about sublist-->
|
||||
<li><a title="What the IETF is doing">IETF activities</a>
|
||||
<ul> <!--sublist for activities-->
|
||||
<li><a title="Internet Engineering Steering Group">IESG</a></li>
|
||||
<li><a title="Liasons with other standards bodies">IETF Liaison Activities</a></li>
|
||||
<li><a title="The Secretariat, provided by NeuStar Secretariat Services">IETF administration</a> </li>
|
||||
<li><a title="IESG and IAB Nominations Committee">The NomCom</a></li>
|
||||
<li><a title="IETF Working Groups">Working Groups</a></li>
|
||||
<li><a title="Meetings past, present, and future">Meetings</a></li>
|
||||
<li><a href="http://tools.ietf.org" >More Tools</a></li>
|
||||
</ul> </li><!--end activities sublist-->
|
||||
|
||||
<li><a title="Documents of the IETF">Documents</a>
|
||||
<ul><!--sublist for documents-->
|
||||
<li><a href="/demo/www.ietf.org/documents/rfc" title="Repository of RFC documents">RFCs</a></li>
|
||||
<li><a title="Internet Draft pages">Internet-Drafts</a></li>
|
||||
<li><a title="Proceedings of past meetings">Proceedings</a></li>
|
||||
<li><a href="/demo/www.ietf.org/submit/" title="Submit Internet Drafts">Submission</a></li>
|
||||
</ul> <!--end documents sublist-->
|
||||
<li><a title="Other sites having to do with the IETF">Related sites</a>
|
||||
<ul> <!--begin othersites sublist-->
|
||||
<li><a href="http://www.iab.org">IAB</a></li>
|
||||
<li><a href="http://koi.uoregon.edu/~iaoc/">IASA</a></li>
|
||||
<li><a href="http://www.rfc-editor.org/">RFC Editor</a></li>
|
||||
<li><a href="http://www.iana.org/">IANA</a></li>
|
||||
<li><a href="http://www.irtf.org/">IRTF</a></li>
|
||||
</ul> </li><!--end the othersites sublist-->
|
||||
<li>Site search:</li>
|
||||
<li><form method="get" action="http://www.google.com/u/ietf">
|
||||
<input name="q" size="16" maxlength="255" value="" type="text" /><br />
|
||||
<input name="sa" value="Go" type="submit" />
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="maincontent">
|
||||
{% block content %}{% endblock %}
|
||||
{% block main_content %}{% endblock %}
|
||||
{% if debug %}
|
||||
<div id="debug">
|
||||
<h2>Queries</h2>
|
||||
<p>
|
||||
{{ sql_queries|length }} Queries
|
||||
{% ifnotequal sql_queries|length 0 %}
|
||||
(<span style="cursor: pointer;" onclick="document.getElementById('debugQueryTable').style.display='';">Show</span>)
|
||||
{% endifnotequal %}
|
||||
</p>
|
||||
<table id="debugQueryTable" style="display: none;">
|
||||
<col width="1"></col>
|
||||
<col></col>
|
||||
<col width="1"></col>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<th scope="col">SQL</th>
|
||||
<th scope="col">Time</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for query in sql_queries %}<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter }}</td>
|
||||
<td>{{ query.sql|escape }}</td>
|
||||
<td>{{ query.time }}</td>
|
||||
</tr>{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
|
||||
The IETF is an organized activity of the <a href="http://www.isoc.org">Internet Society</a>
|
||||
{% include "footer.html" %}
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,56 +1,43 @@
|
|||
{% block doctype %}<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
{% endblock %}
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
|
||||
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
<!-- Copyright The IETF Trust 2007, All Rights Reserved -->
|
||||
<head>
|
||||
<!-- Project Revision {{ revision_num }}, {{ revision_time }} -->
|
||||
<title>{% block title %}IETF Data{% endblock %}{% ifnotequal server_mode "production" %} - {{ server_mode|upper }} MODE{% endifnotequal %}</title>
|
||||
{% ifnotequal server_mode "production" %}
|
||||
<link rel="icon" href="/images/ietf-dev-icon.bmp" />
|
||||
{% else %}
|
||||
<link rel="icon" href="/images/ietf-icon.bmp" />
|
||||
{% endifnotequal %}
|
||||
{% block head %}{% endblock %}
|
||||
<style type="text/css"><!--
|
||||
{% block css %}{% endblock %}
|
||||
// -->
|
||||
</style>
|
||||
</head>
|
||||
<body {% block body_attributes %}{% endblock %}>
|
||||
<center>
|
||||
<table border=0 cellpadding=0 cellspacing=0>
|
||||
<tr>
|
||||
<td><a href="http://www.ietf.org/home.html"><img src="/images/header/ietflogo_sm.gif" border="0" /></a></td>
|
||||
<td><a href="http://www.ietf.org/home.html"><img src="/images/header/home11.gif" border="0" /></a></td>
|
||||
<td><img src="/images/header/separator.gif" border="0" /></td>
|
||||
<td><a href="http://www.ietf.org/html.charters/wg-dir.html"><img src="/images/header/wg11.gif" border="0" /></a></td>
|
||||
<td><img src="/images/header/separator.gif" border="0" /></td>
|
||||
<td><a href="http://www.ietf.org/meetings/meetings.html"><img src="/images/header/meetings11.gif" border="0" /></a></td>
|
||||
<td><img src="/images/header/separator.gif" border="0" /></td>
|
||||
<td><a href="http://www.ietf.org/proceedings_directory.html"><img src="/images/header/proceed11.gif" border="0" /></a></td>
|
||||
<td><img src="/images/header/separator.gif" border="0" /></td>
|
||||
<td><a href="{% url ietf.idindex.views.search %}"><img src="/images/header/id-index11.gif" border="0" /></a></td>
|
||||
<td><img src="/images/header/separator.gif" border="0" /></td>
|
||||
<td><a href="http://www.ietf.org/rfc.html"><img src="/images/header/rfc11.gif" border="0" /></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
{% if user.is_authenticated %}
|
||||
<span style="float: right; font-size: 80%;">Logged in as {{ user }}
|
||||
|
|
||||
<a href="/accounts/logout/">Log Out</a></span>
|
||||
{% endif %}
|
||||
<hr/>
|
||||
<!-- end new headers and layout -->
|
||||
<div id="content">
|
||||
{% block content %}{% endblock %}
|
||||
{% block main_content %}{% endblock %}
|
||||
</div>
|
||||
{% block footer %}{% include "footer.html" %}{% endblock %}
|
||||
{% include "debug.html" %}
|
||||
</body>
|
||||
<!-- Copyright The IETF Trust 2007, All Rights Reserved -->
|
||||
|
||||
<head>
|
||||
<!-- Project Revision {{ revision_num }}, {{ revision_time }} -->
|
||||
<title>{% block title %}IETF Data{% endblock %}{% ifnotequal server_mode "production" %} - {{ server_mode|upper }} MODE{% endifnotequal %}</title>
|
||||
|
||||
{% ifnotequal server_mode "production" %}
|
||||
<link rel="icon" href="/images/ietf-dev-icon.bmp" />
|
||||
{% else %}
|
||||
<link rel="icon" href="/images/ietf-icon.bmp" />
|
||||
{% endifnotequal %}
|
||||
<link rel="stylesheet" href="/css/base.css" type="text/css" />
|
||||
{% block head %}{% endblock %}
|
||||
<style type="text/css"><!--
|
||||
{% block css %}{% endblock %}
|
||||
// -->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body {% block body_attributes %}{% endblock %}>
|
||||
<div id="leftmenu">
|
||||
{% include "leftmenu.html" %}
|
||||
</div>
|
||||
|
||||
<!-- end new headers and layout -->
|
||||
<div id="content">
|
||||
{% if user.is_authenticated %}
|
||||
<span style="float: right; font-size: 80%;">Logged in as {{ user }} |
|
||||
<a href="/accounts/logout/">Log Out</a></span>
|
||||
{% endif %}
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
{% block footer %}{% include "footer.html" %}{% endblock %}
|
||||
{% include "debug.html" %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% if debug %}
|
||||
{% load ietf_filters %}
|
||||
<div id="debug">
|
||||
<div id="debug" style="clear: right;">
|
||||
<h2>Queries</h2>
|
||||
<p>
|
||||
{{ sql_queries|length }} Queries ({{ sql_queries|timesum }}s)
|
||||
|
|
1
ietf/templates/feeds/.gitignore
vendored
1
ietf/templates/feeds/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% load ietf_filters %}
|
||||
{{ obj.comment_text|format_textarea|truncatewords_html:"40" }}
|
||||
{{ obj.comment_text|format_textarea|truncatewords_html:"20" }}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% load ietf_filters %}
|
||||
{{ obj.telechat_minute|escape|linebreaks|truncatewords_html:"40" }}
|
||||
{{ obj.telechat_minute|escape|linebreaks|truncatewords_html:"20" }}
|
||||
|
|
1
ietf/templates/feeds/wg-proceedings_title.html
Normal file
1
ietf/templates/feeds/wg-proceedings_title.html
Normal file
|
@ -0,0 +1 @@
|
|||
{{ obj.group_acronym }}: {{ obj.title|escape }}
|
|
@ -1,6 +1,6 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
<div id="footer">
|
||||
<hr/>
|
||||
<div style="width: 100%; height: 1em; font-size: 9pt; font-style: italic;">
|
||||
<span style="float: left;">Made with <a href="http://www.djangoproject.com/">django</a></span>
|
||||
<span style="float: right;">v{{ version_num }}, {{ revision_date }} - <a href="mailto:webtools@ietf.org">webtools@ietf.org</a></span>
|
||||
</div>
|
||||
|
|
1
ietf/templates/idindex/.gitignore
vendored
1
ietf/templates/idindex/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
|
@ -29,6 +29,23 @@
|
|||
<b>{{ form.other_group.label_tag }}</b> {{ form.other_group }}
|
||||
<b>{{ form.status_id.label_tag }}</b> {{ form.status_id }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<table style="width:100%" cellpadding="2" cellspacing="1" border="0" bgcolor="#ffffff">
|
||||
|
||||
<tr>
|
||||
<td><b>{{ form.sub_after_date.label_tag }}</b></td><td>{{ form.sub_after_date }}</td><td><b>{{ form.exp_after_date.label_tag }}</b></td><td>{{ form.exp_after_date }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{{ form.sub_before_date.label_tag }}</b></td><td>{{ form.sub_before_date }}</td><td><b>{{ form.exp_before_date.label_tag }}</b></td><td>{{ form.exp_before_date }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{{ form.sub_within_date.label_tag }}</b></td><td>{{ form.sub_within_date }}</td><td><b>{{ form.exp_within_date.label_tag }}</b></td><td>{{ form.exp_within_date }}</td>
|
||||
</tr>
|
||||
|
||||
</table></td></tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Author:</b></td>
|
||||
<td>{{ form.last_name.label_tag }} {{ form.last_name }}
|
||||
|
@ -37,7 +54,17 @@
|
|||
<tr><td colspan="2" align="center"><br><input type="submit" value=" Search "></td></tr>
|
||||
</table>
|
||||
</td></tr></table>
|
||||
</form>
|
||||
|
||||
</center>
|
||||
|
||||
{% if form.errors %}
|
||||
<p class="error">
|
||||
Please fix the following error{{ form.errors|pluralize }} and retry your search:
|
||||
{{ form.errors }}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
|
1
ietf/templates/idtracker/.gitignore
vendored
1
ietf/templates/idtracker/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "idtracker/base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
{% load ietf_filters %}
|
||||
|
||||
{% block title %}-- Ballot for {{ object.drafts.all.0.document.filename }}{% endblock %}
|
||||
|
||||
{% block idcontent %}
|
||||
{% block content %}
|
||||
<pre>
|
||||
To: Internet Engineering Steering Group <iesg@ietf.org>
|
||||
From: IESG Secretary <iesg-secretary@ietf.org>
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
<html>
|
||||
<HEAD>
|
||||
<!-- Project Revision {{ revision_num }}, {{ revision_time }} -->
|
||||
<title>IETF I-D Tracker {% block title %}{% endblock %}{% ifnotequal server_mode "production" %} - {{ server_mode|upper }} MODE{% endifnotequal %}</title>
|
||||
{% ifnotequal server_mode "production" %}
|
||||
<link rel="icon" href="/images/ietf-dev-icon.bmp" />
|
||||
{% else %}
|
||||
<link rel="icon" href="/images/ietf-icon.bmp" />
|
||||
{% endifnotequal %}
|
||||
{% block head %}{% endblock %}
|
||||
|
||||
<STYLE TYPE="text/css">
|
||||
<!--
|
||||
|
||||
TD {text-decoration: none; color: #000000; font: 9pt arial;}
|
||||
A:Link {color: #0000ff; text-decoration:underline}
|
||||
A:Hover {color: #ff0000; text-decoration:underline}
|
||||
A:visited {color: #0000ff; text-decoration:underline}
|
||||
.largefont {font-weight: bold; color: #000000; font: 18pt arial}
|
||||
.largefont2 {color: #000000; font: 14pt verdana}
|
||||
.largefont3 {color: #000000; font: 13pt verdana}
|
||||
.largefont_red {font-weight: bold; color: #ff0000; font: 16pt arial}
|
||||
-->
|
||||
</STYLE>
|
||||
|
||||
</head>
|
||||
<body link="blue" vlink="blue">
|
||||
|
||||
{% block idcontent %}
|
||||
{% endblock %}
|
||||
|
||||
{% include "footer.html" %}
|
||||
{% include "debug.html" %}
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,31 +1,42 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "idtracker/base.html" %}
|
||||
|
||||
{% extends "base.html" %}
|
||||
{% load ietf_filters %}
|
||||
|
||||
{% block title %}-- comment on {{ object.document.document.filename }}{% endblock %}
|
||||
{% block title %}
|
||||
Comment on {{ object.document.document.filename }}
|
||||
{% endblock %}
|
||||
|
||||
{% block idcontent %}
|
||||
{% block content %}
|
||||
<h1 class="first">Comment on {{ object.document.document.displayname_with_link }}</h1>
|
||||
|
||||
{% if object.ballot %}
|
||||
<h3><font color="red">[IN IESG DISCUSSION <b>*{{ object.get_ballot_display }}*</b>]</font></h3>
|
||||
{% endif %}
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
|
||||
<tr><td><b>Date and Time:</td><td>{{ object.date }}, {{ object.time }}</td></tr>
|
||||
<tr><td><b>Document:</td><td>{{ object.document.document.filename }}</td></tr>
|
||||
<tr><td><b>Version:</td><td>{{ object.version }}</td></tr>
|
||||
<tr><td><b>Commented by:</td><td>{{ object.get_author }}</td></tr>
|
||||
<table class="top">
|
||||
|
||||
<tr><th>Date:</th><td>{{ object.date }}, {{ object.time }}</td></tr>
|
||||
<tr><th>Document:</th>
|
||||
<td>{{ object.document.document.displayname_with_link }}</td>
|
||||
</tr>
|
||||
<tr><th>Version:</th><td>{{ object.version }}</td></tr>
|
||||
<tr><th>Commented by:</th><td>{{ object.get_author }}</td></tr>
|
||||
|
||||
{% if object.origin_state %}
|
||||
<tr><td><b>State before Comment:</td><td>{{ object.origin_state }}</td></tr>
|
||||
<tr><th>State before Comment:</th><td>{{ object.origin_state }}</td></tr>
|
||||
{% endif %}
|
||||
|
||||
{% if object.result_state %}
|
||||
<tr><td><b>State after Comment:</td><td>{{ object.result_state }}</td></tr>
|
||||
<tr><th>State after Comment:</th><td>{{ object.result_state }}</td></tr>
|
||||
{% endif %}
|
||||
<tr><td><b>Comment:</td><td>{{ object.comment_text|format_textarea }}</td></tr>
|
||||
|
||||
<tr><th>Comment:</th><td>
|
||||
|
||||
{% if object.ballot %}
|
||||
<span class="{{ object.get_ballot_display }}">[IESG Evaluation {{ object.get_ballot_display|upper }}] </span>
|
||||
{% endif %}
|
||||
|
||||
<pre>{{ object.comment_text|wrap_long_lines }}</pre></td></tr>
|
||||
</table>
|
||||
<center><form>
|
||||
<input type="button" value="close" onClick="history.go(-1);return true">
|
||||
</form></center>
|
||||
|
||||
<form action="."><p><input type="button" value="Back" onClick="history.go(-1)"/></p></form>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% block title %}Send E-Mail{% endblock %}
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% block title %}Your email has been sent.{% endblock %}
|
||||
|
||||
|
|
|
@ -1,292 +1,220 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "idtracker/base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% load ietf_filters %}
|
||||
|
||||
{% block title %}-- {{ object.document.filename }}{% endblock %}
|
||||
|
||||
{% block head %}
|
||||
<link rel="alternate" type="application/atom+xml" href="/feed/comments/{{ object.document.filename }}/">
|
||||
<link rel="alternate" type="application/atom+xml" href="/feed/comments/{{ object.document.filename }}/"/>
|
||||
{% endblock %}
|
||||
|
||||
{% block idcontent %}
|
||||
<table width="90%" cellpading="1" cellspacing="0">
|
||||
<tr>
|
||||
<td bgcolor="000000">
|
||||
<table width="100%" cellspacing="0" cellpading="5">
|
||||
<tr bgcolor="BEBEBE" align="center">
|
||||
<th colspan="2">
|
||||
<div class="largefont">
|
||||
Detail Info
|
||||
</div>
|
||||
{% if object.ballot_others.count %}
|
||||
<div align="right">
|
||||
<a href="#action">Action List</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</th>
|
||||
</tr>
|
||||
{% block content %}
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
{{ object.document.doctype }} Name:
|
||||
</div>
|
||||
</td>
|
||||
<h1 class="first">Detailed Information</h1>
|
||||
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
{{ object.document.displayname_with_link }}
|
||||
{% ifequal object.document.doctype "Draft" %}
|
||||
{% ifnotequal object.document.status.status "Active" %}
|
||||
({{ object.document.status.status }})
|
||||
{% endifnotequal %}
|
||||
{% endifequal %}
|
||||
<font color="red">
|
||||
{% if object.via_rfc_editor %}
|
||||
(Independent submission via RFC Editor)
|
||||
{% else %}
|
||||
{% ifequal object.document.group_acronym "none" %}
|
||||
(Individual submission)
|
||||
{% else %}
|
||||
(WG <{{ object.document.group_acronym }}> submission)
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
</font>
|
||||
{% ifequal object.document.status.status "Replaced" %}
|
||||
<br>Replaced by
|
||||
{% if object.document.replaced_by.idinternal %}
|
||||
<a href="{{ object.document.replaced_by.idinternal.get_absolute_url }}">
|
||||
{% endif %}
|
||||
{{ object.document.replaced_by.filename }}
|
||||
{% if object.document.replaced_by.idinternal %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endifequal %}
|
||||
{% if object.document.replaces_set.count %}
|
||||
<br>Replaces
|
||||
{% for replaces in object.document.replaces_set.all %}
|
||||
{% if replaces.idinternal %}
|
||||
<a href="{{ replaces.idinternal.get_absolute_url }}">
|
||||
{% endif %}
|
||||
{{ replaces.filename }}{% if replaces.idinternal %}</a>{% endif %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!--
|
||||
{% if object.ballot_others.count %}
|
||||
<a href="#action">Action List</a>
|
||||
{% endif %}
|
||||
-->
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
IESG Discussion:
|
||||
</div>
|
||||
</td>
|
||||
<table class="top">
|
||||
<tr>
|
||||
<th>
|
||||
{{ object.document.doctype }} Name:
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
{% if object.ballot.ballot_issued %}
|
||||
<a href="{% url ietf.idtracker.views.view_ballot object.ballot_id %}">IESG evaluation record</a>
|
||||
[<a href="/idtracker/help/evaluation/">What
|
||||
they mean</a>]
|
||||
[<a href="/idtracker/help/ballot/">How they are
|
||||
recorded</a>]
|
||||
{% else %}
|
||||
No IESG evaluation record
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<td>
|
||||
{{ object.document.displayname_with_link }}
|
||||
{% ifequal object.document.doctype "Draft" %}
|
||||
{% ifnotequal object.document.status.status "Active" %}
|
||||
({{ object.document.status.status }})
|
||||
{% endifnotequal %}
|
||||
{% endifequal %}
|
||||
{% if object.via_rfc_editor %}
|
||||
(Independent submission via RFC Editor)
|
||||
{% else %}
|
||||
{% ifequal object.document.group_acronym "none" %}
|
||||
(Individual submission)
|
||||
{% else %}
|
||||
(<a href="/idtracker/?search_group_acronym={{ object.document.group_acronym }}">{{ object.document.group_acronym|upper }}</a> WG submission)
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% ifequal object.document.status.status "Replaced" %}
|
||||
Replaced by
|
||||
{% if object.document.replaced_by.idinternal %}
|
||||
<a href="{{ object.document.replaced_by.idinternal.get_absolute_url }}">
|
||||
{% endif %}
|
||||
{{ object.document.replaced_by.displayname_with_link }}
|
||||
{% if object.document.replaced_by.idinternal %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endifequal %}
|
||||
{% if object.document.replaces_set.count %}
|
||||
<br>Replaces
|
||||
{% for replaces in object.document.replaces_set.all %}
|
||||
{% if replaces.idinternal %}
|
||||
<a href="{{ replaces.idinternal.get_absolute_url }}">
|
||||
{% endif %}
|
||||
{{ replaces.displayname_with_link }}{% if replaces.idinternal %}</a>{% endif %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
Version:
|
||||
</div>
|
||||
</td>
|
||||
<tr>
|
||||
<th>
|
||||
Version:
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
{{ object.document.revision }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<td>
|
||||
{{ object.document.revision }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
Intended Status:
|
||||
</div>
|
||||
</td>
|
||||
<tr>
|
||||
<th>
|
||||
Intended Status:
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
{{ object.document.intended_status }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<td>
|
||||
{{ object.document.intended_status }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
On Next Agenda?
|
||||
</div>
|
||||
</td>
|
||||
<tr>
|
||||
<th>
|
||||
On Next Agenda?
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
{{ object.agenda|yesno:"Yes,No" }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<td>
|
||||
{{ object.agenda|yesno:"Yes,No" }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
Current State:
|
||||
</div>
|
||||
</td>
|
||||
<tr>
|
||||
<th>
|
||||
IESG Discussion:
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
<a href="/idtracker/help/state/{{ object.cur_state_id }}/">
|
||||
{{ object.cur_state }}</a>
|
||||
{% if object.cur_sub_state %}
|
||||
::
|
||||
<a href="/idtracker/help/substate/{{ object.cur_sub_state_id }}/">
|
||||
{{ object.cur_sub_state }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if object.rfc_flag %}
|
||||
{% else %}
|
||||
{% ifequal object.cur_state.state "RFC Ed Queue" %}
|
||||
<a href="http://www.rfc-editor.org/queue.html#{{ object.document.filename }}">
|
||||
[RFC Editor State]</a>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<a href="/idtracker/help/state/">
|
||||
[Show States Table]</a>
|
||||
</td>
|
||||
</tr>
|
||||
<td>
|
||||
{% if object.ballot.ballot_issued %}
|
||||
<a href="{% url ietf.idtracker.views.view_ballot object.ballot_id %}">IESG evaluation record</a>
|
||||
[<a href="/idtracker/help/evaluation/">What they mean</a>]
|
||||
[<a href="/idtracker/help/ballot/">How they are recorded</a>]
|
||||
{% else %}
|
||||
No IESG evaluation record
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
Responsible AD:
|
||||
</div>
|
||||
</td>
|
||||
<tr>
|
||||
<th>
|
||||
Current State:
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
{{ object.job_owner }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<td>
|
||||
<a title="{{ object.cur_state.description|escape|allononelinew }}" href="/idtracker/help/state/{{ object.cur_state_id }}/">
|
||||
{{ object.cur_state }}</a>
|
||||
{% if object.cur_sub_state %}
|
||||
::
|
||||
<a title="{{ object.cur_sub_state.description|escape|allononelinew }}" href="/idtracker/help/substate/{{ object.cur_sub_state_id }}/">
|
||||
{{ object.cur_sub_state }}</a>
|
||||
{% endif %}
|
||||
{% if object.rfc_flag %}
|
||||
{% else %}
|
||||
{% ifequal object.cur_state.state "RFC Ed Queue" %}
|
||||
<a href="http://www.rfc-editor.org/queue.html#{{ object.document.filename }}">
|
||||
[RFC Editor State]</a>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
<a href="/idtracker/help/state/">
|
||||
[State explanations]</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
Status Date:
|
||||
</div>
|
||||
</td>
|
||||
<tr>
|
||||
<th>
|
||||
Responsible AD:
|
||||
</th>
|
||||
|
||||
<td bgcolor="white">
|
||||
<div class="largefont3">
|
||||
{% firstof object.status_date " " %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<td>
|
||||
{{ object.job_owner }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
Note:
|
||||
</div>
|
||||
</td>
|
||||
<tr>
|
||||
<th>
|
||||
Status Date:
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<div class="largefont3">
|
||||
{# |unformat_textarea #}
|
||||
{% firstof object.note %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<td>
|
||||
{% firstof object.status_date " " %}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="white">
|
||||
<td width="20%"> </td>
|
||||
<tr>
|
||||
<th>
|
||||
Note:
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<form action="{% url ietf.idtracker.views.search %}" method="GET">
|
||||
<input type="submit" value=
|
||||
"Main Menu">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<td>
|
||||
{# |unformat_textarea #}
|
||||
{% firstof object.note %}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!--
|
||||
<tr>
|
||||
<td/>
|
||||
|
||||
<td>
|
||||
<form action="{% url ietf.idtracker.views.search %}" method="GET">
|
||||
<input type="submit" value=
|
||||
"Main Menu">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
</table>
|
||||
|
||||
{% if object.ballot_others.count %}
|
||||
<a name="action"></a>
|
||||
<table border="1" bgcolor="black">
|
||||
<tr><td><font color="white"><h3>Actions</h3></font>
|
||||
<h1>Ballot Set</h1>
|
||||
{% regroup object.ballot_set by docstate as grouped %}
|
||||
{% include "idtracker/search_result_table.html" %}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
<h3>Comment Log <span style="font-size: 80%">[<a href="/feed/comments/{{ object.document.filename }}/">atom feed</a>]</span></h3>
|
||||
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
<tr bgcolor="#7DC189">
|
||||
<th>Date</th>
|
||||
<h1>Comment Log [<a href="/feed/comments/{{ object.document.filename }}/">atom feed</a>]</h1>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Version</th>
|
||||
|
||||
<th>Comment</th>
|
||||
<th>Action</th>
|
||||
<th>Who</th>
|
||||
<th>Date</th>
|
||||
</tr>
|
||||
|
||||
{% for comment in object.public_comments %}
|
||||
<tr bgcolor="{% cycle #CFE1CC,#7DC189 %}">
|
||||
<td>{{ comment.version }}</td>
|
||||
|
||||
<td>
|
||||
{% if comment.ballot %}
|
||||
<span class="{{ comment.get_ballot_display }}">[IESG Evaluation {{ comment.get_ballot_display|upper }}] </span>
|
||||
{% endif %}
|
||||
|
||||
{{ comment.comment_text|removetags:"b br"|truncatewords_html:"20" }}
|
||||
[<a href="{{ comment.get_absolute_url }}">more</a>]
|
||||
</td>
|
||||
|
||||
<td>{{ comment.get_fullname }}</td>
|
||||
<td>{{ comment.date }}</td>
|
||||
|
||||
<td align="center">{{ comment.version }}</td>
|
||||
|
||||
<td><font color="blue">[{{ comment.get_username }}]</font>
|
||||
{% if comment.ballot %}
|
||||
<font color="red">[IN IESG DISCUSSION
|
||||
<b>*{{ comment.get_ballot_display }}*</b>]</font>
|
||||
{% endif %} {{ comment.comment_text|format_textarea|truncatewords_html:"25" }}</td>
|
||||
|
||||
<!-- this form element technically belongs inside the <td>
|
||||
but that actually changes the visible spacing in most
|
||||
browsers, so we let layout concerns make us write
|
||||
invalid HTML. -->
|
||||
<form action="{{ comment.get_absolute_url }}" method="GET">
|
||||
<td>
|
||||
<input type="submit" value="View Detail">
|
||||
</td>
|
||||
</form>
|
||||
</tr>
|
||||
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br>
|
||||
|
||||
|
||||
<form action="{% url ietf.idtracker.views.search %}" method="GET">
|
||||
<input type="submit" value="Main Menu">
|
||||
<input type="button" name="back_button" value="BACK"
|
||||
onclick="history.go(-1);return true">
|
||||
</form>
|
||||
<p><a href="{% url ietf.idtracker.views.search %}">Main Menu</a></p>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% block title %}Not Found - {{ draft.filename }}{% endblock %}
|
||||
|
||||
|
|
|
@ -1,101 +1,86 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "idtracker/base.html" %}
|
||||
|
||||
{% block title %}-- Search{% endblock %}
|
||||
{% extends "base.html" %}
|
||||
{% load ietf_filters %}
|
||||
{% block title %}IETF I-D Tracker{% endblock %}
|
||||
|
||||
{% block idcontent %}
|
||||
{% block content %}
|
||||
|
||||
{# does this belong here or is it better in the head? #}
|
||||
<script language="javascript">
|
||||
function clear_fields() {
|
||||
document.search_form.search_job_owner.selectedIndex=0;
|
||||
document.search_form.search_status_id.selectedIndex=0;
|
||||
document.search_form.search_area_acronym.selectedIndex=0;
|
||||
document.search_form.search_cur_state.selectedIndex=0;
|
||||
document.search_form.sub_state_id.selectedIndex=0;
|
||||
document.search_form.search_group_acronym.value = "";
|
||||
document.search_form.search_filename.value = "";
|
||||
document.search_form.search_rfcnumber.value = "";
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript" language="javascript">
|
||||
function clear_fields() {
|
||||
document.search_form.search_job_owner.selectedIndex = 0;
|
||||
document.search_form.search_status_id.selectedIndex = 0;
|
||||
document.search_form.search_area_acronym.selectedIndex = 0;
|
||||
document.search_form.search_cur_state.selectedIndex = 0;
|
||||
document.search_form.sub_state_id.selectedIndex = 0;
|
||||
document.search_form.search_group_acronym.value = "";
|
||||
document.search_form.search_filename.value = "";
|
||||
document.search_form.search_rfcnumber.value = "";
|
||||
}
|
||||
</script>
|
||||
|
||||
<form action="." method="GET" name="search_form">
|
||||
|
||||
<center>
|
||||
{% if searching %}
|
||||
{% else %}
|
||||
<img src="/images/ietflogo2e.gif" border="0" height="137" width="280"><br>
|
||||
<h1>IETF I-D TRACKER</h1>
|
||||
{% endif %}
|
||||
|
||||
<table cellpadding="1" cellspacing="0" border="0">
|
||||
<tr bgcolor="silver">
|
||||
<th colspan="2">I-D - Search Criteria</th>
|
||||
</tr>
|
||||
<h1 class="first">IETF I-D Tracker</h1>
|
||||
|
||||
<form action="." method="get" name="search_form">
|
||||
<table class="top">
|
||||
<tr>
|
||||
<td align="right"><label for="id_search_job_owner"><b>Responsible
|
||||
AD:</b></label></td>
|
||||
<td>{{ form.search_job_owner }} <label for="id_search_group_acronym">
|
||||
<b>WG Acronym:</b></label>{{ form.search_group_acronym }} <label
|
||||
for="id_search_status_id"><b>Status:</b></label>
|
||||
{{ form.search_status_id }}</td>
|
||||
<th><label for="id_search_job_owner">Responsible AD:</label></th>
|
||||
<td>{{ form.search_job_owner }} </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right"><label for="id_search_cur_state"><b>Document
|
||||
State:</b></label></td>
|
||||
<td>{{ form.search_cur_state }} <label for="id_sub_state_id"><b>sub
|
||||
state</b>: {{ form.sub_state_id }}</label> </td>
|
||||
<th><label for="id_search_group_acronym">WG Acronym:</label></th>
|
||||
<td>{{ form.search_group_acronym }} </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right"><label for=
|
||||
"id_search_filename"><b>Filename:</b></label></td>
|
||||
<td>{{ form.search_filename }} <label for=
|
||||
"id_search_rfcnumber"><b>RFC Number:</b></label> {{ form.search_rfcnumber }}
|
||||
<label for="id_search_area_acronym"><b>Area Acronym:</b></label>
|
||||
{{ form.search_area_acronym }}</td>
|
||||
<th><label for="id_search_area_acronym">Area Acronym:</label></th>
|
||||
<td>{{ form.search_area_acronym }} </td>
|
||||
</tr>
|
||||
|
||||
{% if form.errors %}
|
||||
<tr>
|
||||
<td colspan="2">Please fix the following errors and try your search again:
|
||||
{{ form.errors }}</td>
|
||||
<th><label for="id_search_status_id">Status:</label></th>
|
||||
<td>{{ form.search_status_id }} </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><a href="/idtracker/help/state/">Current State:</a></th>
|
||||
<td>{{ form.search_cur_state }}{{ form.sub_state_id }} </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="id_search_filename">Draft Name:</label></th>
|
||||
<td>{{ form.search_filename }} </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="id_search_rfcnumber">RFC Number:</label></th>
|
||||
<td>{{ form.search_rfcnumber }} </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td/>
|
||||
<td class="buttons">
|
||||
<input type="button" value="Reset Form" onClick="clear_fields()"/>
|
||||
<input type="submit" value="Search I-Ds"/>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
<TR BGCOLOR="silver">
|
||||
<TD ALIGN="CENTER" colspan="2"><INPUT TYPE="submit" VALUE="SEARCH" name="search_button">
|
||||
<input type="button" value="Clear Fields" onClick="clear_fields();">
|
||||
</TD>
|
||||
|
||||
</TR>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<HR>
|
||||
Document States: <a href="/images/state_diagram.gif">State Diagram</a> and
|
||||
<a href="/idtracker/help/state/">State Explanations</a>
|
||||
{% if form.errors %}
|
||||
<p class="error">
|
||||
Please fix the following error{{ form.errors|pluralize }} and retry your search:
|
||||
{{ form.errors }}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
</center>
|
||||
|
||||
{% if matches %}
|
||||
<hr>
|
||||
<b>Search Result</b><br>
|
||||
{% regroup matches by docstate as grouped %}
|
||||
{% include "idtracker/search_result_table.html" %}
|
||||
{% else %}
|
||||
{% if searching %}
|
||||
<p>No matches to your query.</p>
|
||||
<p class="error">No matches to your query.</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if matches or searching %}
|
||||
<form action="." method="POST">
|
||||
<input type="submit" value="Main Menu">
|
||||
<input type="button" name="back_button" value="BACK" onClick="history.go(-1);return true">
|
||||
</form>
|
||||
<p><a href=".">Back</a></p>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,55 +0,0 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
<h1 style="text-align: center; color: red;">IESG Data Tracker</h1>
|
||||
|
||||
<table cellpadding="1" cellspacing="0" border="0">
|
||||
<form method="post">
|
||||
|
||||
<input type="hidden" name="command" value="search_list">
|
||||
<TR BGCOLOR="silver"><Th colspan="2">I-D - Search Criteria</Th></TR>
|
||||
<TR><TD colspan="2">
|
||||
<table cellpadding="1" cellspacing="0" border="0">
|
||||
|
||||
<TR><td align="right">
|
||||
<label for="id_job_owner"><B>Responsible AD:</B></label></td>
|
||||
<td>{{ form.job_owner }}
|
||||
<label for="id_group_acronym"><B>WG Acronym:</B></label>
|
||||
[TBD<!-- - model needs to fix group_acronym in idform-->]
|
||||
<label for="id_status"><B>Status:</B></label>
|
||||
{{ idform.status }}</td>
|
||||
</tr>
|
||||
<tr><td align="right">
|
||||
<label for="id_cur_state"><b>Document State:</b></label></td>
|
||||
<td>{{ form.cur_state }}
|
||||
<label for="id_cur_sub_state"><b>sub state</b>:
|
||||
{{ form.cur_sub_state }}</label>
|
||||
</td></tr>
|
||||
<tr><td align="right">
|
||||
<label for="id_filename"><b>Filename:</b></label></td>
|
||||
<td>{{ idform.filename }}
|
||||
|
||||
<label for="id_rfc_number"><b>RFC Number:<b></label>
|
||||
{{ idform.rfc_number }}
|
||||
|
||||
<label for="id_area_acronym"><b>Area:</b></label>
|
||||
{{ form.area_acronym }}</td></tr>
|
||||
<tr><td align="right">
|
||||
<label for="id_note"><b>Note:</b></label>
|
||||
</td><td>
|
||||
{{ form.note }} (have to fix this in view)
|
||||
</td></tr>
|
||||
<tr><td colspan="2">
|
||||
<input type="submit">
|
||||
</td></tr>
|
||||
</form>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
{% if matches %}
|
||||
<ul>
|
||||
{% for match in matches %}
|
||||
<li>{{ match.filename }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<p>No matches to your query.</p>
|
||||
{% endif %}
|
|
@ -1,38 +1,48 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
|
||||
{% load myifchanged %}
|
||||
<tr bgcolor="#{% myifchanged match.ballot_id %}{% cycle F8D6F8,E2AFE2 as ballotcolor %}{% else %}{% if match.synthetic %}{% cycle ballotcolor %}{% else %}{% cyclevalue ballotcolor %}{% endif %}{% endmyifchanged %}">
|
||||
{% if match.synthetic %}
|
||||
<td> </td>
|
||||
{% else %}
|
||||
<!-- this form element technically belongs inside the <td>
|
||||
but that actually changes the visible spacing in most
|
||||
browsers, so we let layout concerns make us write
|
||||
invalid HTML. -->
|
||||
<form method="GET" action="{% url ietf.idtracker.views.view_id match.document.filename %}"><td><input type="submit" value="DETAIL"></td></form>
|
||||
{% endif %}
|
||||
<td nowrap>{% if match.primary_flag %}<li>{% else %}<dd>{% endif %}{{ match.document.filename_with_link }} ({{ match.document.intended_status }})
|
||||
{# we can't do alternating row colors with CSS alone #}
|
||||
<tr
|
||||
bgcolor="#{% myifchanged match.ballot_id %}{% cycle F8D6F8,E2AFE2 as ballotcolor %}{% else %}{% if match.synthetic %}{% cycle ballotcolor %}{% else %}{% cyclevalue ballotcolor %}{% endif %}{% endmyifchanged %}">
|
||||
|
||||
|
||||
<td {% if not match.primary_flag %} class="nonprimary" {% endif %} >
|
||||
|
||||
<a href="{% url ietf.idtracker.views.view_id match.document.filename %}">
|
||||
{{ match.document.displayname }}
|
||||
</a>
|
||||
|
||||
{% ifequal match.document.status.status "Replaced" %}
|
||||
<br> Replaced by
|
||||
{% if match.document.replaced_by.idinternal %}
|
||||
<p class="replace">Replaced by
|
||||
<!-- {% if match.document.replaced_by.idinternal %}
|
||||
<a href="{% url ietf.idtracker.views.search %}?search_filename={{ match.document.replaced_by.filename }}">
|
||||
{% endif %}
|
||||
{{ match.document.replaced_by.filename }}
|
||||
{% if match.document.replaced_by.idinternal %}
|
||||
--> {{ match.document.replaced_by.displayname_with_link }}
|
||||
<!-- {% if match.document.replaced_by.idinternal %}
|
||||
</a>
|
||||
{% endif %}
|
||||
--> </p>
|
||||
{% endifequal %}
|
||||
|
||||
{% if match.document.replaces_set.count %}
|
||||
<br> Replaces
|
||||
<p class="replace">Replaces
|
||||
{% for replaces in match.document.replaces_set.all %}
|
||||
{% if replaces.idinternal %}
|
||||
<!-- {% if replaces.idinternal %}
|
||||
<a href="{% url ietf.idtracker.views.search %}?search_filename={{ replaces.filename }}">
|
||||
{% endif %}
|
||||
{{ replaces.filename }}{% if replaces.idinternal %}</a>{% endif %}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
--> {{ replaces.displayname_with_link }}
|
||||
<!-- {% if replaces.idinternal %}</a>{% endif %}{% if not forloop.last %}</p><p class="replace">{% endif %}
|
||||
--> {% endfor %}</p>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ match.document.revision_display }}</td>
|
||||
|
||||
<td>
|
||||
<a href="{{ match.document.doclink }}">{{ match.document.revision_display }}</a>
|
||||
</td>
|
||||
|
||||
<td>{{ match.document.intended_status }}</td>
|
||||
|
||||
<td>{{ match.job_owner }}</td>
|
||||
<td>{% firstof match.status_date "" %}</td>
|
||||
|
||||
<td>{{ match.event_date }}</td>
|
||||
</tr>
|
||||
|
|
|
@ -1,15 +1,36 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% for group in grouped %}
|
||||
<h3>In State: <a href="/idtracker/help/state/{{ group.list.0.cur_state_id }}/">{{ group.list.0.cur_state }}</a>{% if group.list.0.cur_sub_state %} :: <a href="/idtracker/help/substate/{{ group.list.0.cur_sub_state_id }}/">{{ group.list.0.cur_sub_state }}</a>{% endif %}</h3>
|
||||
<table bgcolor="#DFDFDF" cellspacing="0" cellpadding="0" border="0" width="800">
|
||||
<tr bgcolor="#A3A3A3"><th> </th><th width="250">Name (Intended Status)</th><th>Ver</th><th>Responsible AD</th><th>Status Date</th><th>Modified (EST)</th></tr>
|
||||
{# Same sort algorithm as I-D tracker #}
|
||||
{% regroup group.list by primary_flag as primaries %}
|
||||
{% for pgroup in primaries %}
|
||||
{% for match in pgroup.list|dictsort:"document.filename" %}
|
||||
{% include "idtracker/search_result_row.html" %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endfor %}
|
||||
|
||||
<table>
|
||||
|
||||
{% for group in grouped %}
|
||||
{% load ietf_filters %}
|
||||
|
||||
<tr>
|
||||
<th {% if spacing %} class="state" {% endif %} colspan="7">
|
||||
State:
|
||||
<a title="{{ group.list.0.cur_state.description|escape|allononelinew }}" href="/idtracker/help/state/{{ group.list.0.cur_state_id }}/">{{ group.list.0.cur_state }}</a>
|
||||
{% if group.list.0.cur_sub_state %}
|
||||
:: <a title="{{ group.list.0.cur_sub_state.description|escape|allononelinew }}" href="/idtracker/help/substate/{{ group.list.0.cur_sub_state_id }}/">
|
||||
{{ group.list.0.cur_sub_state }}</a>
|
||||
{% endif %}
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>Document</th>
|
||||
<th>Version</th>
|
||||
<th>Intended Status</th>
|
||||
<th>Responsible AD</th>
|
||||
<th>Modified</th>
|
||||
</tr>
|
||||
|
||||
{# Same sort algorithm as I-D tracker #}
|
||||
{% regroup group.list by primary_flag as primaries %}
|
||||
{% for pgroup in primaries %}
|
||||
{% for match in pgroup.list %}
|
||||
{% include "idtracker/search_result_row.html" %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
</table>
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "idtracker/base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% block idcontent %}
|
||||
{% block content %}
|
||||
<h3>{{ state.state }}</h3>
|
||||
{{ state.description|escape }}
|
||||
<center><form>
|
||||
<input type="button" value="close" onClick="window.close();">
|
||||
<center><form action=".">
|
||||
<input type="button" value="Back" onClick="history.go(-1);"/>
|
||||
</form></center>
|
||||
{% endblock%}
|
||||
|
|
|
@ -1,42 +1,57 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "idtracker/base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% block idcontent %}
|
||||
{% block content %}
|
||||
|
||||
<h2>Main States</h2>
|
||||
<a href="/images/state_diagram.gif">[View States Diagram]</a><br>
|
||||
<table cellpadding="1" cellspacing="0" border="1" width="750">
|
||||
<h1 class="first">Main I-D States</h1>
|
||||
|
||||
|
||||
<tr>
|
||||
<th>State Name</th><th>Description</th><th>Next State(s)</th>
|
||||
<table class="states">
|
||||
|
||||
<tr class="states">
|
||||
<th>State <a href="/images/state_diagram.gif">[View Diagram]</a></th>
|
||||
<th>Description</th>
|
||||
<th>Next State(s)</th>
|
||||
</tr>
|
||||
<tr><td>I-D Exists</td>
|
||||
<td width="700">Initial (default) state for all internet drafts. Such documents are<br>
|
||||
|
||||
{# XXX I-D Exists should be added to the database #}
|
||||
<tr class="states">
|
||||
<td>I-D Exists</td>
|
||||
<td >Initial (default) state for all internet drafts. Such documents are
|
||||
not being tracked by the IESG as no request has been made of the
|
||||
IESG to do anything with the document.</td>
|
||||
<td><ul><li> AD is watching<li> Publication Requested</ul></td></tr>
|
||||
<td>
|
||||
<ul class="states">
|
||||
<li> AD is watching
|
||||
<li> Publication Requested</ul>
|
||||
</td></tr>
|
||||
|
||||
{% for state in states %}
|
||||
<tr>
|
||||
<td width="200">{{ state.state }}</td><td width="350">{{ state.description }}</td><td width="200">
|
||||
<ul>
|
||||
{% for next in state.nextstate.all %}
|
||||
<li>{{ next.next_state.state }}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<tr class="states">
|
||||
<td class="state">{{ state.state }}</td>
|
||||
<td>{{ state.description }}</td>
|
||||
<td>
|
||||
<ul class="states">
|
||||
{% for next in state.nextstate.all %}
|
||||
<li>{{ next.next_state.state }}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<h2>Sub States</h2>
|
||||
<table cellpadding="1" cellspacing="0" border="1" width="750">
|
||||
|
||||
<tr><th width="250">Sub State Name</th><th>Description</th></tr>
|
||||
<h1>Sub States</h1>
|
||||
<table class="states">
|
||||
|
||||
<tr class="states"><th>Sub State Name</th><th>Description</th></tr>
|
||||
|
||||
{% for substate in substates %}
|
||||
<tr><td>{{ substate.sub_state }}</td>
|
||||
<td>{{ substate.description }}</td></tr>
|
||||
<tr class="states">
|
||||
<td class="state">{{ substate.sub_state }}</td>
|
||||
<td>{{ substate.description }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
css
|
|
@ -1,5 +1,4 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% block head %}{% if lastcall %}
|
||||
<link rel="alternate" type="application/atom+xml" href="/feed/last-call/">
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "idtracker/base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% block idcontent %}
|
||||
<h2>Explanation of Discusses</h2>
|
||||
<hr>
|
||||
{% block content %}
|
||||
<h1 class="first">Explanation of Discusses</h1>
|
||||
<pre>
|
||||
The process that the IESG uses for recording and documenting issues
|
||||
with documents is called an Evaluation. Evaluations provide a
|
||||
|
@ -94,8 +92,8 @@ vote "no". Continued deadlock sends it back to the working group.
|
|||
|
||||
|
||||
</pre>
|
||||
<center><form>
|
||||
<input type="button" value="close" onClick="window.close();">
|
||||
</form></center>
|
||||
<form action=".">
|
||||
<input type="button" value="Back" onClick="history.go(-1);"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "idtracker/base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}{% extends "base.html" %}
|
||||
|
||||
{% block idcontent %}
|
||||
<h2>Key file</h2>
|
||||
<hr>
|
||||
{% block content %}
|
||||
<h1 class="first">Key file</h1>
|
||||
<pre>
|
||||
Key to how the Secretariat has historically recorded Evaluations:
|
||||
|
||||
|
@ -18,7 +16,7 @@ Key to how the Secretariat has historically recorded Evaluations:
|
|||
- a "D" in the Discuss column indicates "Defer"
|
||||
</pre>
|
||||
|
||||
<center><form>
|
||||
<input type="button" value="close" onClick="window.close();">
|
||||
</form></center>
|
||||
<form action=".">
|
||||
<input type="button" value="Back" onClick="history.go(-1);"/>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
1
ietf/templates/iesg/.gitignore
vendored
1
ietf/templates/iesg/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
1
ietf/templates/ipr/.gitignore
vendored
1
ietf/templates/ipr/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
73
ietf/templates/leftmenu.html
Normal file
73
ietf/templates/leftmenu.html
Normal file
|
@ -0,0 +1,73 @@
|
|||
<div class="menulogo">
|
||||
<img class="menulogo" src="/images/ietflogo2i.png" alt="IETF logo" />
|
||||
</div>
|
||||
<ul>
|
||||
<li><a title="About the Internet Engineering Task Force">About the IETF</a>
|
||||
<ul> <!--sublist for about-->
|
||||
<li><a href="http://www.ietf.org/overview.html" title="What is the IETF?">Overview</a></li>
|
||||
<li><a href="" title="History of the IETF, from the Education Team">IETF history</a></li>
|
||||
<!-- note: this link should be changed to reflect the new struct -->
|
||||
<li><a href="http://www.ietf.org/IETF-Standards-Process.html" title="How an IETF standard is adopted">IETF standards process</a></li>
|
||||
<!-- same as "process? -->
|
||||
<!-- <li><a href="#">IETF rules</a></li> -->
|
||||
|
||||
<!-- I don't know of a "who's who" -->
|
||||
<!-- <li><a href="#">People</a></li> -->
|
||||
|
||||
</ul></li><!--end about sublist-->
|
||||
<li><a title="What the IETF is doing">IETF activities</a>
|
||||
<ul> <!--sublist for activities-->
|
||||
<li><a href="http://www.ietf.org/iesg.html" title="Internet Engineering Steering Group">IESG</a></li>
|
||||
<li><a href="http://www.ietf.org/liaisonActivities.html" title="Liasons with other standards bodies">IETF Liaison Activities</a></li>
|
||||
<li><a href="http://www.ietf.org/secretariat.html" title="The Secretariat">IETF administration</a> </li>
|
||||
<li><a href="http://www.ietf.org/nomcom/" title="IESG and IAB Nominations Committee">The NomCom</a></li>
|
||||
<li><a href="http://www.ietf.org/html.charters/wg-dir.html" title="IETF Working Groups">Working Groups</a></li>
|
||||
<li><a href="http://www3.ietf.org/meetings/meetings.html" title="Meetings past, present, and future">Meetings</a></li>
|
||||
</ul> </li><!--end activities sublist-->
|
||||
|
||||
<li><a title="Documents of the IETF">Documents</a>
|
||||
<ul><!--sublist for documents-->
|
||||
<li><a href="http://www.ietf.org/rfc.html" title="Repository of RFC documents">RFCs</a></li>
|
||||
<li><a href="http://www.ietf.org/ID.html" title="Internet Draft pages">Internet-Drafts</a></li>
|
||||
<li><a href="http://www.ietf.org/proceedings_directory.html" title="Proceedings of past meetings">Proceedings</a></li>
|
||||
<li><a href="https://datatracker.ietf.org/idst/upload.cgi" title="Submit Internet Drafts">Submission</a></li>
|
||||
</ul> <!--end documents sublist-->
|
||||
|
||||
<li><a title="Other sites having to do with the IETF">Related sites</a>
|
||||
<ul> <!--begin othersites sublist-->
|
||||
<li><a href="http://www.iab.org">IAB</a></li>
|
||||
<li><a href="http://iaoc.ietf.org">IASA</a></li>
|
||||
<li><a href="http://www.rfc-editor.org/">RFC Editor</a></li>
|
||||
<li><a href="http://www.iana.org/">IANA</a></li>
|
||||
<li><a href="http://www.irtf.org/">IRTF</a></li>
|
||||
</ul> </li><!--end the othersites sublist-->
|
||||
|
||||
<li><a title="Tools, tools, tools">Various Tools</a>
|
||||
<ul> <!--begin othersites sublist-->
|
||||
|
||||
<li><a href="http://www.ietf.org/tools.html" >Tools on www.ietf.org</a></li>
|
||||
<li><a href="http://tools.ietf.org" >Tools on tools.ietf.org</a></li>
|
||||
<li><a href="http://datatracker.ietf.org" > datatracker.ietf.org</a>
|
||||
<ul>
|
||||
<li><a href="/drafts" >Drafts</a></li>
|
||||
<li><a href="/idtracker" >ID Tracker</a></li>
|
||||
<li><a href="/iesg/telechat" >IESG Minutes</a></li>
|
||||
<li><a href="/liaison" >Liaisons</a></li>
|
||||
<li><a href="/ipr" >IPR Declarations</a></li>
|
||||
<li><a href="/meeting/agenda" >Meeting Agenda</a></li>
|
||||
<li><a href="/meeting/materials" >Meeting Materials</a></li>
|
||||
<li><a href="/wgcharter/" >WG Charters</a></li>
|
||||
<li><a href="" ></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul> </li><!--end the othersites sublist-->
|
||||
|
||||
|
||||
<li>Site search:</li>
|
||||
<li><form method="get" action="http://www.google.com/u/ietf">
|
||||
<input name="q" size="10" maxlength="255" value="" type="text" />
|
||||
<input name="sa" value="Go" type="submit" />
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
1
ietf/templates/liaisons/.gitignore
vendored
1
ietf/templates/liaisons/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
1
ietf/templates/mailinglists/.gitignore
vendored
1
ietf/templates/mailinglists/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
1
ietf/templates/meeting/.gitignore
vendored
Normal file
1
ietf/templates/meeting/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
ietf/templates/my/.gitignore
vendored
1
ietf/templates/my/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
/*.pyc
|
||||
/settings_local.py
|
||||
|
|
6
ietf/templates/notify_expirations/body.txt
Normal file
6
ietf/templates/notify_expirations/body.txt
Normal file
|
@ -0,0 +1,6 @@
|
|||
The following draft will expire soon:
|
||||
|
||||
Filename: {{draft.filename}}
|
||||
Title: {{draft.title}}
|
||||
State: {{draft.idstate}}
|
||||
Expires: {{expiration}} (in {{expiration|timeuntil}})
|
1
ietf/templates/notify_expirations/subject.txt
Normal file
1
ietf/templates/notify_expirations/subject.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Expiration impending: {{draft.filename}}
|
1
ietf/templates/registration/.gitignore
vendored
Normal file
1
ietf/templates/registration/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
ietf/templates/utils/.gitignore
vendored
Normal file
1
ietf/templates/utils/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
11
ietf/urls.py
11
ietf/urls.py
|
@ -1,10 +1,11 @@
|
|||
# Copyright The IETF Trust 2007, All Rights Reserved
|
||||
# Copyright The IETF Trust 2007, All Rights Reserved
|
||||
|
||||
from django.conf.urls.defaults import patterns, include, handler404, handler500
|
||||
|
||||
from ietf.iesg.feeds import IESGMinutes, IESGAgenda
|
||||
from ietf.idtracker.feeds import DocumentComments, InLastCall
|
||||
from ietf.ipr.feeds import LatestIprDisclosures
|
||||
from ietf.proceedings.feeds import LatestWgProceedingsActivity
|
||||
from ietf.liaisons.feeds import Liaisons
|
||||
|
||||
from ietf.idtracker.sitemaps import IDTrackerMap, DraftMap
|
||||
|
@ -22,6 +23,7 @@ feeds = {
|
|||
'comments': DocumentComments,
|
||||
'ipr': LatestIprDisclosures,
|
||||
'liaison': Liaisons,
|
||||
'wg-proceedings' : LatestWgProceedingsActivity
|
||||
}
|
||||
|
||||
sitemaps = {
|
||||
|
@ -64,8 +66,13 @@ urlpatterns = patterns('',
|
|||
(r'^review/top/(?P<page>[0-9a-f]+)/$', 'ietf.utils.views.top'),
|
||||
|
||||
# Google webmaster tools verification url
|
||||
(r'googlea30ad1dacffb5e5b.html', 'django.views.generic.simple.direct_to_template', { 'template': 'googlea30ad1dacffb5e5b.html' })
|
||||
(r'googlea30ad1dacffb5e5b.html', 'django.views.generic.simple.direct_to_template', { 'template': 'googlea30ad1dacffb5e5b.html' }),
|
||||
|
||||
# ekr, fluffy, wgcharter tool
|
||||
(r'^wgcharter/', include('ietf.wgcharter.urls')),
|
||||
|
||||
# Uncomment this for pre-approval tool for initial Internet-Drafts
|
||||
#(r'^wg/', include('ietf.wg.urls')),
|
||||
)
|
||||
|
||||
if settings.SERVER_MODE in ('development', 'test'):
|
||||
|
|
1
static/.gitignore
vendored
Normal file
1
static/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/css/.gitignore
vendored
Normal file
1
static/css/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
|
@ -1,34 +1,188 @@
|
|||
/* Copyright The IETF Trust 2007, All Rights Reserved */
|
||||
|
||||
body {
|
||||
margin:0;
|
||||
padding:0;
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
color: #022D66;
|
||||
font-style: normal;
|
||||
}
|
||||
th {
|
||||
padding:6px 0px 10px 30px;
|
||||
line-height:1em;
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 1.0em;
|
||||
color: #333;
|
||||
|
||||
}
|
||||
td {text-decoration: none; color: #000000; font: 10pt arial;}
|
||||
td img { whitespace: nowrap; display:inline; }
|
||||
/* Links
|
||||
----------------------------------------------- */
|
||||
a:link, a:visited {
|
||||
border-bottom:1px dotted #69f;
|
||||
color:#36c;
|
||||
text-decoration:none;
|
||||
}
|
||||
a:visited {
|
||||
border-bottom-color:#969;
|
||||
color:#36c;
|
||||
}
|
||||
a:hover {
|
||||
border-bottom:1px solid #f00;
|
||||
color:#f00;
|
||||
}
|
||||
a.noline:link, a.noline:visited, a.noline:hover {border-style:none;}
|
||||
font-size: .85em;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: white;
|
||||
font-family: Verdana, Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin-left: 12em;
|
||||
}
|
||||
|
||||
#content h1 {
|
||||
margin-top: 2em;
|
||||
padding-bottom: .25em;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
#content h1.first {
|
||||
margin-top: 0em;
|
||||
}
|
||||
|
||||
#content h2 {
|
||||
font-size: 1.15em;
|
||||
}
|
||||
|
||||
#content table, #content td, #content th {
|
||||
padding: 0em;
|
||||
margin: 0em;
|
||||
vertical-align: top;
|
||||
border-style: none;
|
||||
border-width: 0em;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
#content p.replace {
|
||||
padding: 0em;
|
||||
margin: 0em;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
#content td.nonprimary {
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
#content th, #content td {
|
||||
text-align: left;
|
||||
padding-top: 0.25em;
|
||||
padding-bottom: 0.25em;
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
|
||||
#content th {
|
||||
font-weight: bold;
|
||||
background-color: lightgray;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#content td.buttons {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#content table.top {
|
||||
background-color: lightgray;
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
#content p.error {
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
}
|
||||
|
||||
#content th.state {
|
||||
padding-top: 2em;
|
||||
font-size: 1.15em;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#content tr.states {
|
||||
border-style: solid;
|
||||
border-width: 0.1em;
|
||||
}
|
||||
|
||||
#content td.state, #content th.state {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#content ul.states {
|
||||
margin-top: 0em;
|
||||
padding-left: 1.25em;
|
||||
list-style: square;
|
||||
}
|
||||
|
||||
#content table {
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
#content .discuss {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#content .comment {
|
||||
color: yellow;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#content .replaced {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
#content .active {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#content a.active {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#leftmenu {
|
||||
float: left;
|
||||
background-color: #313163;
|
||||
color: #c8c8c8;
|
||||
padding: 0.5em;
|
||||
margin-right: 0em;
|
||||
margin-right: 1em;
|
||||
width: 11em;
|
||||
min-width: 148px;
|
||||
}
|
||||
|
||||
#leftmenu ul li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
#leftmenu ul li a:link, #leftmenu ul li a:visited {
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
#leftmenu ul {
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
#leftmenu ul li ul {
|
||||
margin-left: 1.5em;
|
||||
font-size: .85em;
|
||||
}
|
||||
|
||||
.menulogo {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
#footer {
|
||||
clear: both;
|
||||
margin-right: 1em;
|
||||
font-size: 7pt;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#debug {
|
||||
font-size: 7pt;
|
||||
}
|
||||
|
||||
/*XXX announcement tool additions - may need to be new-css-i-fied? */
|
||||
input {
|
||||
display: block
|
||||
width: 95%
|
||||
}
|
||||
|
||||
span.form-required {
|
||||
color: #FFAE00;
|
||||
}
|
||||
|
||||
.form-item .description {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.description {
|
||||
color: #898989;
|
||||
line-height: 150%;
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
|
|
1
static/images/.gitignore
vendored
Normal file
1
static/images/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/images/header/.gitignore
vendored
Normal file
1
static/images/header/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/images/nwg/.gitignore
vendored
Normal file
1
static/images/nwg/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/media/.gitignore
vendored
Normal file
1
static/media/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/media/css/.gitignore
vendored
Normal file
1
static/media/css/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/media/img/.gitignore
vendored
Normal file
1
static/media/img/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/media/img/admin/.gitignore
vendored
Normal file
1
static/media/img/admin/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/media/js/.gitignore
vendored
Normal file
1
static/media/js/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
1
static/media/js/admin/.gitignore
vendored
Normal file
1
static/media/js/admin/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/*.pyc
|
Loading…
Reference in a new issue