Skip to content

Commit ecbd2f8

Browse files
committed
Merge changes from trunk into this branch.
- Legacy-Id: 2960
1 parent b1cc77d commit ecbd2f8

24 files changed

Lines changed: 233 additions & 38 deletions

shane/ietf/cookies/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def new_enough(request, days="14"):
3535
if days == 0:
3636
days = 14
3737
response = settings(request, days, -1)
38-
response.set_cookie("new_enough", days)
38+
response.set_cookie("new_enough", days, 315360000)
3939
return response
4040

4141
def expires_soon(request, days="14"):
@@ -46,12 +46,12 @@ def expires_soon(request, days="14"):
4646
if days == 0:
4747
days = 14
4848
response = settings(request, -1, days)
49-
response.set_cookie("expires_soon", days)
49+
response.set_cookie("expires_soon", days, 315360000)
5050
return response
5151

5252
def full_draft(request, enabled="off"):
5353
if enabled != "on" and enabled != "off":
5454
enabled = "off"
5555
response = settings(request, -1, -1, enabled)
56-
response.set_cookie("full_draft", enabled)
56+
response.set_cookie("full_draft", enabled, 315360000)
5757
return response

shane/ietf/idrfc/idrfc_wrapper.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
from datetime import date
3939
from django.utils import simplejson as json
4040
from django.db.models import Q
41+
from django.db import models
42+
from django.core.urlresolvers import reverse
4143
import types
4244

4345
BALLOT_ACTIVE_STATES = ['In Last Call',
@@ -198,11 +200,11 @@ def draft_name_and_revision(self):
198200

199201
def friendly_state(self):
200202
if self.draft_status == "RFC":
201-
return "<a href=\"/doc/rfc%d/\">RFC %d</a>" % (self.rfc_number, self.rfc_number)
203+
return "<a href=\"%s\">RFC %d</a>" % (reverse('doc_view', args=['rfc%d' % self.rfc_number]), self.rfc_number)
202204
elif self.draft_status == "Replaced":
203205
rs = self.replaced_by()
204206
if rs:
205-
return "Replaced by <a href=\"/doc/%s/\">%s</a>" % (rs[0],rs[0])
207+
return "Replaced by <a href=\"%s\">%s</a>" % (reverse('ipr_show', args=[rs[0]]),rs[0])
206208
else:
207209
return "Replaced"
208210
elif self.draft_status == "Active":
@@ -357,8 +359,9 @@ def ad_name(self):
357359
# TODO: get AD name of the draft
358360
return None
359361

362+
@models.permalink
360363
def get_absolute_url(self):
361-
return "/doc/rfc%d/" % (self.rfc_number,)
364+
return ('ietf.idrfc.views_doc.document_main', ['rfc%s' % (str(self.rfc_number))])
362365
def displayname_with_link(self):
363366
return '<a href="%s">RFC %d</a>' % (self.get_absolute_url(), self.rfc_number)
364367

@@ -755,6 +758,8 @@ def create_position_object(ballot, position, all_comments):
755758
position=p)
756759
if not position.ad.is_current_ad():
757760
r['is_old_ad'] = True
761+
else:
762+
r['is_old_ad'] = False
758763

759764
was = [v for k,v in positions.iteritems() if position.__dict__[k] < 0]
760765
if len(was) > 0:

shane/ietf/idrfc/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
(r'^search/$', views_search.search_results),
3939
(r'^all/$', views_search.all),
4040
(r'^active/$', views_search.active),
41+
(r'^in-last-call/$', views_search.in_last_call),
4142
url(r'^ad/(?P<name>[A-Za-z0-9.-]+)/$', views_search.by_ad, name="doc_search_by_ad"),
4243

4344
url(r'^(?P<name>[A-Za-z0-9.-]+)/((?P<tab>ballot|writeup|history)/)?$', views_doc.document_main, name="doc_view"),

shane/ietf/idrfc/views_ballot.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
from ietf.idrfc.mails import *
2222
from ietf.idrfc.utils import *
2323
from ietf.idrfc.lastcall import request_last_call
24+
from ietf.idrfc.idrfc_wrapper import BallotWrapper
25+
2426

2527
BALLOT_CHOICES = (("yes", "Yes"),
2628
("noobj", "No Objection"),
@@ -186,6 +188,7 @@ def edit_position(request, name):
186188
comment=comment,
187189
ad=ad,
188190
return_to_url=return_to_url,
191+
ballot=BallotWrapper(doc.idinternal)
189192
),
190193
context_instance=RequestContext(request))
191194

shane/ietf/idrfc/views_doc.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
from django.utils import simplejson as json
4242
from django.utils.decorators import decorator_from_middleware
4343
from django.middleware.gzip import GZipMiddleware
44+
from django.core.urlresolvers import reverse
4445

4546
from ietf import settings
4647
from ietf.idtracker.models import InternetDraft, IDInternal, BallotInfo, DocumentComment
@@ -189,7 +190,7 @@ def _get_history(doc, versions):
189190
results.append({'is_text':True, 'date':doc._draft.expiration_date, 'text':'Draft expired'})
190191
if doc.is_rfc_wrapper:
191192
if doc.draft_name:
192-
text = 'RFC Published (see <a href="/doc/%s/">%s</a> for earlier history)' % (doc.draft_name,doc.draft_name)
193+
text = 'RFC Published (see <a href="%s">%s</a> for earlier history)' % (reverse('doc_view', args=[doc.draft_name]),doc.draft_name)
193194
else:
194195
text = 'RFC Published'
195196
results.append({'is_text':True, 'date':doc.publication_date, 'text':text})

shane/ietf/idrfc/views_search.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,3 +324,7 @@ def active(request):
324324
groups = IETFWG.objects.exclude(group_acronym=1027)
325325
individual = IETFWG.objects.get(group_acronym=1027)
326326
return render_to_response("idrfc/active.html", {'groups':groups,'individual':individual}, context_instance=RequestContext(request))
327+
328+
def in_last_call(request):
329+
lcdocs = [IdWrapper(p) for p in InternetDraft.objects.all().filter(idinternal__primary_flag=1).filter(idinternal__cur_state__state='In Last Call')]
330+
return render_to_response("idrfc/in_last_call.html", {'lcdocs':lcdocs}, context_instance=RequestContext(request))

shane/ietf/iesg/views.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
from ietf.idrfc.utils import update_telechat
5050
from ietf.ietfauth.decorators import group_required
5151
from ietf.idtracker.templatetags.ietf_filters import in_group
52+
from ietf.ipr.models import IprRfc, IprDraft, IprDetail
5253
import datetime
5354
import tarfile
5455

@@ -287,11 +288,17 @@ def agenda_documents(request):
287288
section_key = "s" + get_doc_section(i)
288289
if section_key not in res:
289290
res[section_key] = []
291+
# PM - add code to fill in IPR details. (Would be better to use IdRfc_Wrapper - but this breaks other code
290292
if not i.rfc_flag:
291293
w = IdWrapper(draft=i)
294+
w.iprUrl = "/ipr/search?option=document_search&id_document_tag=" + str(w.id.tracker_id)
295+
iprs = IprDraft.objects.filter(document=w.id.tracker_id)
292296
else:
293297
ri = RfcIndex.objects.get(rfc_number=i.draft_id)
294298
w = RfcWrapper(ri)
299+
w.iprUrl = "/ipr/search?option=rfc_search&rfc_search=" + str(w.rfc.rfc_number)
300+
iprs = IprRfc.objects.filter(document=w.rfc.rfc_number)
301+
w.iprCount = len(iprs)
295302
w.reschedule_form = i.reschedule_form
296303
res[section_key].append(w)
297304
telechats.append({'date':date, 'docs':res})

shane/ietf/ipr/feeds.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
from django.contrib.syndication.feeds import Feed
44
from django.utils.feedgenerator import Atom1Feed
55
from ietf.ipr.models import IprDetail
6+
from ietf.utils.lazy import reverse_lazy
67
from datetime import datetime, time
78

89
class LatestIprDisclosures(Feed):
910
feed_type = Atom1Feed
1011
title = "IPR Disclosures to the IETF"
11-
link = "/ipr/"
12+
link = reverse_lazy('ipr_showlist')
1213
description = "Updates on new IPR Disclosures made to the IETF."
1314
language = "en"
1415
feed_url = "/feed/ipr/"

shane/ietf/ipr/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#from django import newforms as forms
55
from ietf.idtracker.views import InternetDraft
66
from ietf.idtracker.models import Rfc
7+
from ietf.utils.lazy import reverse_lazy
78

89
# ------------------------------------------------------------------------
910
# Models
@@ -115,8 +116,9 @@ def __str__(self):
115116
return self.title
116117
def docs(self):
117118
return list(self.drafts.all()) + list(self.rfcs.all())
119+
@models.permalink
118120
def get_absolute_url(self):
119-
return "/ipr/%d/" % self.ipr_id
121+
return ('ietf.ipr.views.show', [str(self.ipr_id)])
120122
def get_submitter(self):
121123
try:
122124
return self.contact.get(contact_type=3)

shane/ietf/ipr/urls.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
# Copyright The IETF Trust 2007, All Rights Reserved
22

3-
from django.conf.urls.defaults import patterns
3+
from django.conf.urls.defaults import patterns, url
44
from ietf.ipr import views, new, search
5+
from ietf.utils.lazy import reverse_lazy
56
from django.views.generic.simple import redirect_to
67

78
urlpatterns = patterns('',
8-
(r'^$', views.showlist),
9+
url(r'^$', views.showlist, name='ipr_showlist'),
910
(r'^about/$', views.default),
1011
(r'^by-draft/$', views.list_drafts),
11-
(r'^(?P<ipr_id>\d+)/$', views.show),
12-
(r'^update/$', redirect_to, { 'url': '/ipr/' }),
12+
url(r'^(?P<ipr_id>\d+)/$', views.show, name='ipr_show'),
13+
(r'^update/$', redirect_to, { 'url': reverse_lazy('ipr_showlist') }),
1314
(r'^update/(?P<ipr_id>\d+)/$', new.update),
1415
(r'^new-(?P<type>specific)/$', new.new),
1516
(r'^new-(?P<type>generic)/$', new.new),

0 commit comments

Comments
 (0)