Implement status_of_items and last_call.
(Oddly, this status_of_items shows more than the cgi one; I can't explain why. Also, the cgi one showed the wrong intended status for RFCs, and the wrong area for several documents.) - Legacy-Id: 186
This commit is contained in:
parent
7d52fffdcd
commit
5f4d99a36a
|
@ -111,7 +111,7 @@ class IDIntendedStatus(models.Model):
|
|||
|
||||
class InternetDraft(models.Model):
|
||||
id_document_tag = models.AutoField(primary_key=True)
|
||||
id_document_name = models.CharField(maxlength=255)
|
||||
title = models.CharField(maxlength=255, db_column='id_document_name')
|
||||
id_document_key = models.CharField(maxlength=255, editable=False)
|
||||
group = models.ForeignKey(Acronym, db_column='group_acronym_id')
|
||||
filename = models.CharField(maxlength=255, unique=True)
|
||||
|
@ -143,7 +143,7 @@ class InternetDraft(models.Model):
|
|||
expired_tombstone = models.BooleanField()
|
||||
idinternal = FKAsOneToOne('idinternal', reverse=True, query=models.Q(rfc_flag = 0))
|
||||
def save(self):
|
||||
self.id_document_key = self.id_document_name.upper()
|
||||
self.id_document_key = self.title.upper()
|
||||
super(InternetDraft, self).save()
|
||||
def displayname(self):
|
||||
return "%s-%s.txt" % ( self.filename, self.revision )
|
||||
|
@ -304,7 +304,7 @@ class RfcStatus(models.Model):
|
|||
|
||||
class Rfc(models.Model):
|
||||
rfc_number = models.IntegerField(primary_key=True)
|
||||
rfc_name = models.CharField(maxlength=200)
|
||||
title = models.CharField(maxlength=200, db_column='rfc_name')
|
||||
rfc_name_key = models.CharField(maxlength=200, editable=False)
|
||||
group_acronym = models.CharField(blank=True, maxlength=8)
|
||||
area_acronym = models.CharField(blank=True, maxlength=8)
|
||||
|
@ -328,7 +328,7 @@ class Rfc(models.Model):
|
|||
def __str__(self):
|
||||
return "RFC%04d" % ( self.rfc_number )
|
||||
def save(self):
|
||||
self.rfc_name_key = self.rfc_name.upper()
|
||||
self.rfc_name_key = self.title.upper()
|
||||
super(Rfc, self).save()
|
||||
def displayname(self):
|
||||
return "rfc%d.txt" % ( self.rfc_number )
|
||||
|
@ -339,8 +339,8 @@ class Rfc(models.Model):
|
|||
verbose_name = 'RFC'
|
||||
verbose_name_plural = 'RFCs'
|
||||
class Admin:
|
||||
search_fields = ['rfc_name', 'group', 'area']
|
||||
list_display = ['rfc_number', 'rfc_name']
|
||||
search_fields = ['title', 'group', 'area']
|
||||
list_display = ['rfc_number', 'title']
|
||||
pass
|
||||
|
||||
class RfcAuthor(models.Model):
|
||||
|
@ -408,9 +408,8 @@ class IDInternal(models.Model):
|
|||
"""
|
||||
draft = models.ForeignKey(InternetDraft, primary_key=True, unique=True, db_column='id_document_tag')
|
||||
rfc_flag = models.IntegerField(null=True)
|
||||
#ballot_id = models.IntegerField()
|
||||
ballot = models.ForeignKey(BallotInfo, related_name='drafts', db_column="ballot_id")
|
||||
primary_flag = models.IntegerField()
|
||||
primary_flag = models.IntegerField(blank=True, null=True)
|
||||
group_flag = models.IntegerField(blank=True)
|
||||
token_name = models.CharField(blank=True, maxlength=25)
|
||||
token_email = models.CharField(blank=True, maxlength=255)
|
||||
|
@ -457,7 +456,9 @@ class IDInternal(models.Model):
|
|||
def comments(self):
|
||||
return self.documentcomment_set.all().filter(rfc_flag=self.rfc_flag).order_by('-comment_date','-comment_time')
|
||||
def ballot_set(self):
|
||||
return IDInternal.objects.filter(ballot=self.ballot)
|
||||
return IDInternal.objects.filter(ballot=self.ballot_id)
|
||||
def ballot_others(self):
|
||||
return IDInternal.objects.filter(models.Q(primary_flag=0)|models.Q(primary_flag__isnull=True), ballot=self.ballot_id)
|
||||
class Meta:
|
||||
db_table = 'id_internal'
|
||||
verbose_name = 'IDTracker Draft'
|
||||
|
|
|
@ -23,6 +23,8 @@ urlpatterns = patterns('django.views.generic.simple',
|
|||
)
|
||||
urlpatterns += patterns('',
|
||||
(r'^send_email/$', views.send_email),
|
||||
(r'^status/$', views.status),
|
||||
(r'^last_call/$', views.last_call),
|
||||
)
|
||||
urlpatterns += patterns('django.views.generic.list_detail',
|
||||
(r'^rfc(?P<object_id>\d+)/$', 'object_detail', rfc_dict),
|
||||
|
|
|
@ -4,7 +4,7 @@ from django import newforms as forms
|
|||
from django.template import RequestContext, Context, loader
|
||||
from django.shortcuts import get_object_or_404, render_to_response
|
||||
from django.db.models import Q
|
||||
from django.views.generic.list_detail import object_detail
|
||||
from django.views.generic.list_detail import object_detail, object_list
|
||||
from ietf.idtracker.models import InternetDraft, IDInternal, IDState, IDSubState
|
||||
from ietf.idtracker.forms import EmailFeedback
|
||||
from ietf.utils.mail import send_mail_text
|
||||
|
@ -135,3 +135,10 @@ def send_email(request):
|
|||
return render_to_response('idtracker/email_form.html', {'category': cat, 'form': form},
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
def status(request):
|
||||
queryset = IDInternal.objects.filter(primary_flag=1).exclude(cur_state__state__in=('AD is watching', 'Dead')).order_by('cur_state', 'status_date', 'ballot_id')
|
||||
return object_list(request, template_name="idtracker/status_of_items.html", queryset=queryset, extra_context={'title': 'IESG Status of Items'})
|
||||
|
||||
def last_call(request):
|
||||
queryset = IDInternal.objects.filter(primary_flag=1).filter(cur_state__state__in=('In Last Call', 'Waiting for Writeup', 'Waiting for AD Go-Ahead')).order_by('cur_state', 'status_date', 'ballot_id')
|
||||
return object_list(request, template_name="idtracker/status_of_items.html", queryset=queryset, extra_context={'title': 'Documents in Last Call'})
|
||||
|
|
24
ietf/templates/idtracker/document_entry.html
Normal file
24
ietf/templates/idtracker/document_entry.html
Normal file
|
@ -0,0 +1,24 @@
|
|||
{% load ietf_filters %}
|
||||
<tr>{% if doc.primary_flag %}
|
||||
<td>{{ doc.area_acronym.area_acronym.acronym.upper }}</td>
|
||||
<td nowrap>
|
||||
{% ifequal doc.cur_state.state "In Last Call" %}
|
||||
{% if doc.document.lc_expiration_date %}
|
||||
{{ doc.document.lc_expiration_date }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if doc.status_date %}
|
||||
{{ doc.status_date|date:"M j" }}
|
||||
{% endif %}
|
||||
{% endifequal %}</td>
|
||||
{% else %}
|
||||
<td></td><td></td>
|
||||
{% endif %}
|
||||
<td>{{ doc.document.title }} ({{ doc.document.intended_status }})</td></tr>
|
||||
<tr><td></td><td></td><td><a href="{{ doc.document.doclink }}">{{ doc.document.displayname }}</a></td></tr>
|
||||
{% if doc.primary_flag %}
|
||||
<tr><td></td><td>Token:</td><td><a href="mailto:{{ doc.token_email|urlencode }}">{{ doc.token_name }}</a></td></tr>
|
||||
{% if doc.note %}
|
||||
<tr><td></td><td>Note:</td><td>{{ doc.note|urlize }}</td></tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
39
ietf/templates/idtracker/status_of_items.html
Normal file
39
ietf/templates/idtracker/status_of_items.html
Normal file
|
@ -0,0 +1,39 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}{{ title }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<center><h1>{{ title }}</h1></center>
|
||||
<i>Generated {% now "M j, Y" %}<br>
|
||||
{# no hit counter #}
|
||||
</i>
|
||||
|
||||
{% regroup object_list by cur_state_id as grouped %}
|
||||
{% for state in grouped %}
|
||||
<a name="grp{{ state.list.0.cur_state }}"><h2>{{ state.list.0.cur_state }}</h2></a>
|
||||
<table>
|
||||
<tr><th>Area</th><th>{% ifequal state.list.0.cur_state.state "In Last Call" %}Expires at{% else %}Date{% endifequal %}</th></tr>
|
||||
{% for doc in state.list %}
|
||||
{% include "idtracker/document_entry.html" %}
|
||||
{% if doc.ballot_others %}
|
||||
{% for doc in doc.ballot_others %}
|
||||
{% include "idtracker/document_entry.html" %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endfor %}
|
||||
|
||||
<HR>
|
||||
<b><A href="http://www.rfc-editor.org/queue.html">RFC Editor Queue</a></b>
|
||||
<p>
|
||||
|
||||
|
||||
<!-- begin new footer -->
|
||||
<HR>
|
||||
|
||||
<i>This page produced by the <A HREF="mailto:iesg-secretary@ietf.org">IETF Secretariat</a>
|
||||
for the <A HREF="mailto:iesg@ietf.org">IESG</A></i>
|
||||
<p>
|
||||
|
||||
{% endblock %}
|
Loading…
Reference in a new issue