Add listing of recently approved drafts to approval page by request
from Barry Leiba. - Legacy-Id: 4420
This commit is contained in:
parent
3a7a45f771
commit
ed96cee2e4
|
@ -373,10 +373,12 @@ class ApprovalsTestCase(django.test.TestCase):
|
||||||
|
|
||||||
IdSubmissionDetail.objects.create(filename="draft-ietf-mars-foo",
|
IdSubmissionDetail.objects.create(filename="draft-ietf-mars-foo",
|
||||||
group_acronym_id=Group.objects.get(acronym="mars").pk,
|
group_acronym_id=Group.objects.get(acronym="mars").pk,
|
||||||
|
submission_date=datetime.date.today(),
|
||||||
revision="00",
|
revision="00",
|
||||||
status_id=POSTED)
|
status_id=POSTED)
|
||||||
IdSubmissionDetail.objects.create(filename="draft-ietf-mars-bar",
|
IdSubmissionDetail.objects.create(filename="draft-ietf-mars-bar",
|
||||||
group_acronym_id=Group.objects.get(acronym="mars").pk,
|
group_acronym_id=Group.objects.get(acronym="mars").pk,
|
||||||
|
submission_date=datetime.date.today(),
|
||||||
revision="00",
|
revision="00",
|
||||||
status_id=INITIAL_VERSION_APPROVAL_REQUESTED)
|
status_id=INITIAL_VERSION_APPROVAL_REQUESTED)
|
||||||
|
|
||||||
|
@ -389,6 +391,7 @@ class ApprovalsTestCase(django.test.TestCase):
|
||||||
self.assertEquals(len(q('.approvals a:contains("draft-ietf-mars-bar")')), 1)
|
self.assertEquals(len(q('.approvals a:contains("draft-ietf-mars-bar")')), 1)
|
||||||
self.assertEquals(len(q('.preapprovals td:contains("draft-ietf-mars-foo")')), 0)
|
self.assertEquals(len(q('.preapprovals td:contains("draft-ietf-mars-foo")')), 0)
|
||||||
self.assertEquals(len(q('.preapprovals td:contains("draft-ietf-mars-baz")')), 1)
|
self.assertEquals(len(q('.preapprovals td:contains("draft-ietf-mars-baz")')), 1)
|
||||||
|
self.assertEquals(len(q('.recently-approved a:contains("draft-ietf-mars-foo")')), 1)
|
||||||
|
|
||||||
def test_add_preapproval(self):
|
def test_add_preapproval(self):
|
||||||
make_test_data()
|
make_test_data()
|
||||||
|
|
|
@ -466,7 +466,7 @@ def get_approvable_submissions(user):
|
||||||
if has_role(user, "Secretariat"):
|
if has_role(user, "Secretariat"):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
# those we can reach as chairs
|
# those we can reach as chair
|
||||||
return res.filter(group_acronym__role__name="chair", group_acronym__role__person__user=user)
|
return res.filter(group_acronym__role__name="chair", group_acronym__role__person__user=user)
|
||||||
|
|
||||||
def get_preapprovals(user):
|
def get_preapprovals(user):
|
||||||
|
@ -484,7 +484,16 @@ def get_preapprovals(user):
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
def get_recently_approved(user, since):
|
||||||
|
if not user.is_authenticated():
|
||||||
|
return []
|
||||||
|
|
||||||
|
res = IdSubmissionDetail.objects.distinct().filter(status__in=[POSTED, POSTED_BY_SECRETARIAT], submission_date__gte=since, revision="00").order_by('-submission_date')
|
||||||
|
if has_role(user, "Secretariat"):
|
||||||
|
return res
|
||||||
|
|
||||||
|
# those we can reach as chair
|
||||||
|
return res.filter(group_acronym__role__name="chair", group_acronym__role__person__user=user)
|
||||||
|
|
||||||
class DraftValidation(object):
|
class DraftValidation(object):
|
||||||
|
|
||||||
|
|
|
@ -261,10 +261,15 @@ def approvals(request):
|
||||||
approvals = get_approvable_submissions(request.user)
|
approvals = get_approvable_submissions(request.user)
|
||||||
preapprovals = get_preapprovals(request.user)
|
preapprovals = get_preapprovals(request.user)
|
||||||
|
|
||||||
|
days = 30
|
||||||
|
recently_approved = get_recently_approved(request.user, datetime.date.today() - datetime.timedelta(days=days))
|
||||||
|
|
||||||
return render_to_response('submit/approvals.html',
|
return render_to_response('submit/approvals.html',
|
||||||
{'selected': 'approvals',
|
{'selected': 'approvals',
|
||||||
'approvals': approvals,
|
'approvals': approvals,
|
||||||
'preapprovals': preapprovals },
|
'preapprovals': preapprovals,
|
||||||
|
'recently_approved': recently_approved,
|
||||||
|
'days': days },
|
||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
{% block morecss %}
|
{% block morecss %}
|
||||||
{{ block.super }}
|
{{ block.super }}
|
||||||
table.approvals td, table.preapprovals td,
|
table.approvals td, table.preapprovals td, table.recently-approved td,
|
||||||
table.approvals th, table.preapprovals th { text-align: left; padding-right: 8px; padding-bottom: 4px; }
|
table.approvals th, table.preapprovals th, table.recently-approved th { text-align: left; padding-right: 8px; padding-bottom: 4px; }
|
||||||
|
|
||||||
table.preapprovals tr td a.cancel { visibility: hidden; }
|
table.preapprovals tr td a.cancel { visibility: hidden; }
|
||||||
table.preapprovals tr:hover { background-color: #eee; }
|
table.preapprovals tr:hover { background-color: #eee; }
|
||||||
|
@ -34,7 +34,7 @@ table.preapprovals tr:hover td a.cancel { visibility: visible; }
|
||||||
</table>
|
</table>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<h2 id="preapprovals">Pre-approved submissions not yet used</h2>
|
<h2 id="preapprovals">Pre-approved drafts not yet submitted</h2>
|
||||||
|
|
||||||
{% if user|has_role:"Secretariat,WG Chair" %}
|
{% if user|has_role:"Secretariat,WG Chair" %}
|
||||||
<p>You can <a href="{% url submit_add_preapproval %}">add a pre-approval</a>.</p>
|
<p>You can <a href="{% url submit_add_preapproval %}">add a pre-approval</a>.</p>
|
||||||
|
@ -61,4 +61,24 @@ table.preapprovals tr:hover td a.cancel { visibility: visible; }
|
||||||
</table>
|
</table>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
<h2 id="recently-approved">Approved drafts within the past {{ days }} days</h2>
|
||||||
|
|
||||||
|
{% if not recently_approved %}
|
||||||
|
<p>No drafts approved.</p>
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
<table cellspacing="0" class="recently-approved">
|
||||||
|
<tr>
|
||||||
|
<th>Draft</th>
|
||||||
|
<th>Submitted</th>
|
||||||
|
</tr>
|
||||||
|
{% for d in recently_approved %}
|
||||||
|
<tr>
|
||||||
|
<td><a href="{% url doc_view d.filename %}">{{ d.filename }}</a></td>
|
||||||
|
<td>{{ d.submission_date }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in a new issue