Skip to content

Commit d076a17

Browse files
committed
Added a 'recent drafts' page, showing drafs submitted the last 7 days.
- Legacy-Id: 15099
1 parent e223ba5 commit d076a17

5 files changed

Lines changed: 56 additions & 1 deletion

File tree

ietf/doc/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464

6565
url(r'^all/?$', views_search.index_all_drafts),
6666
url(r'^active/?$', views_search.index_active_drafts),
67+
url(r'^recent/?$', views_search.recent_drafts),
6768
url(r'^select2search/(?P<model_name>(document|docalias))/(?P<doc_type>draft)/$', views_search.ajax_select2_search_docs),
6869

6970
url(r'^%(name)s(?:/%(rev)s)?/$' % settings.URL_REGEXPS, views_doc.document_main),

ietf/doc/views_search.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
import debug # pyflakes:ignore
4747

4848
from ietf.doc.models import ( Document, DocHistory, DocAlias, State,
49-
LastCallDocEvent, IESG_SUBSTATE_TAGS )
49+
LastCallDocEvent, NewRevisionDocEvent, IESG_SUBSTATE_TAGS )
5050
from ietf.doc.fields import select2_id_doc_name_json
5151
from ietf.doc.utils import get_search_cache_key
5252
from ietf.group.models import Group
@@ -449,6 +449,22 @@ def drafts_in_iesg_process(request):
449449
"title": title,
450450
})
451451

452+
def recent_drafts(request, days=7):
453+
since = datetime.datetime.now()-datetime.timedelta(days=days)
454+
state = State.objects.get(type='draft', slug='active')
455+
events = NewRevisionDocEvent.objects.filter(time__gt=since)
456+
names = [ e.doc.name for e in events ]
457+
docs = Document.objects.filter(name__in=names, states=state)
458+
results, meta = prepare_document_table(request, docs, query={'sort':'-date', }, max_results=len(names))
459+
pages = 0
460+
for doc in results:
461+
pages += doc.pages
462+
463+
return render(request, 'doc/recent_drafts.html', {
464+
'docs':results, 'meta':meta, 'pages':pages, 'days': days,
465+
})
466+
467+
452468
def index_all_drafts(request):
453469
# try to be efficient since this view returns a lot of data
454470
categories = []

ietf/submit/tests.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,12 @@ def submit_existing(self, formats, change_authors=True, group_type='wg', stream_
470470
self.assertTrue("New Version Notification" in outbox[-1]["Subject"])
471471
self.assertTrue(name in unicode(outbox[-1]))
472472
self.assertTrue("mars" in unicode(outbox[-1]))
473+
#
474+
r = self.client.get(urlreverse('ietf.doc.views_search.recent_drafts'))
475+
self.assertEqual(r.status_code, 200)
476+
self.assertIn(draft.name, unicontent(r))
477+
self.assertIn(draft.title, unicontent(r))
478+
473479

474480
def test_submit_existing_txt(self):
475481
self.submit_existing(["txt"])
@@ -587,6 +593,11 @@ def test_submit_update_individual(self):
587593
draft = Document.objects.get(docalias__name=name)
588594
self.assertEqual(draft.rev, rev)
589595
self.assertEqual(draft.relateddocument_set.filter(relationship_id='replaces').count(), replaces_count)
596+
#
597+
r = self.client.get(urlreverse('ietf.doc.views_search.recent_drafts'))
598+
self.assertEqual(r.status_code, 200)
599+
self.assertIn(draft.name, unicontent(r))
600+
self.assertIn(draft.title, unicontent(r))
590601

591602
def test_submit_cancel_confirmation(self):
592603
draft = make_test_data()

ietf/templates/base/menu.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
<ul class="dropdown-menu" role="menu">
4545
{% endif %}
4646
<li><a href="{% url "ietf.doc.views_search.search" %}">Search</a></li>
47+
<li><a href="{% url "ietf.doc.views_search.recent_drafts" %}">Recent drafts</a></li>
4748
<li><a href="{% url "ietf.submit.views.upload_submission" %}">Draft submission</a></li>
4849

4950
{% if user and user.is_authenticated %}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{% extends "base.html" %}
2+
{# Copyright The IETF Trust 2015, All Rights Reserved #}
3+
{% load origin staticfiles %}
4+
5+
{% block pagehead %}
6+
<link rel="stylesheet" href="{% static "jquery.tablesorter/css/theme.bootstrap.min.css" %}">
7+
{% endblock %}
8+
9+
{% block title %}Internet-Drafts submitted during the last {{days|default:7}} days{% endblock %}
10+
11+
{% block content %}
12+
{% origin %}
13+
<h1>
14+
Internet-Drafts submitted during the last {{days|default:7}} days
15+
{% if pages %}
16+
<small class="padded-left">{{ pages }} pages</small>
17+
{% endif %}
18+
</h1>
19+
20+
{% include "doc/search/search_results.html" %}
21+
22+
{% endblock %}
23+
24+
{% block js %}
25+
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
26+
{% endblock %}

0 commit comments

Comments
 (0)