Skip to content

Commit 958ba5b

Browse files
committed
Make new branch from trunk and merge in review-tracker-r11921
- Legacy-Id: 12129
2 parents fa94b93 + 8f497af commit 958ba5b

99 files changed

Lines changed: 7486 additions & 172 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ietf/api/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ def to_simple_html(self, data, options):
9494
_root, _name = _app.split('.', 1)
9595
if _root == 'ietf':
9696
if not '.' in _name:
97-
9897
_api = Api(api_name=_name)
9998
_module_dict[_name] = _api
10099
_api_list.append((_name, _api))

ietf/bin/send-reviewer-reminders

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env python
2+
3+
import os, sys
4+
import syslog
5+
6+
# boilerplate
7+
basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../.."))
8+
sys.path = [ basedir ] + sys.path
9+
os.environ["DJANGO_SETTINGS_MODULE"] = "ietf.settings"
10+
11+
virtualenv_activation = os.path.join(basedir, "bin", "activate_this.py")
12+
if os.path.exists(virtualenv_activation):
13+
execfile(virtualenv_activation, dict(__file__=virtualenv_activation))
14+
15+
syslog.openlog(os.path.basename(__file__), syslog.LOG_PID, syslog.LOG_USER)
16+
17+
import django
18+
django.setup()
19+
20+
import datetime
21+
from ietf.review.utils import review_requests_needing_reviewer_reminder, email_reviewer_reminder
22+
23+
for review_req in review_requests_needing_reviewer_reminder(datetime.date.today()):
24+
email_reviewer_reminder(review_req)
25+
print("Emailed reminder to {} for review of {} in {} (req. id {})".format(review_req.reviewer.address, review_req.doc_id, review_req.team.acronym, review_req.pk))

ietf/community/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ def notify_events(sender, instance, **kwargs):
9898
if instance.doc.type_id != 'draft':
9999
return
100100

101+
if getattr(instance, "skip_community_list_notification", False):
102+
return
103+
101104
from ietf.community.utils import notify_event_to_subscribers
102105
notify_event_to_subscribers(instance)
103106

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.db import models, migrations
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('name', '0015_insert_review_name_data'),
11+
('review', '0001_initial'),
12+
('doc', '0014_auto_20160824_2218'),
13+
]
14+
15+
operations = [
16+
migrations.CreateModel(
17+
name='ReviewRequestDocEvent',
18+
fields=[
19+
('docevent_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='doc.DocEvent')),
20+
('review_request', models.ForeignKey(to='review.ReviewRequest')),
21+
('state', models.ForeignKey(blank=True, to='name.ReviewRequestStateName', null=True)),
22+
],
23+
options={
24+
},
25+
bases=('doc.docevent',),
26+
),
27+
migrations.AlterField(
28+
model_name='docevent',
29+
name='type',
30+
field=models.CharField(max_length=50, choices=[(b'new_revision', b'Added new revision'), (b'changed_document', b'Changed document metadata'), (b'added_comment', b'Added comment'), (b'deleted', b'Deleted document'), (b'changed_state', b'Changed state'), (b'changed_stream', b'Changed document stream'), (b'expired_document', b'Expired document'), (b'extended_expiry', b'Extended expiry of document'), (b'requested_resurrect', b'Requested resurrect'), (b'completed_resurrect', b'Completed resurrect'), (b'changed_consensus', b'Changed consensus'), (b'published_rfc', b'Published RFC'), (b'added_suggested_replaces', b'Added suggested replacement relationships'), (b'reviewed_suggested_replaces', b'Reviewed suggested replacement relationships'), (b'changed_group', b'Changed group'), (b'changed_protocol_writeup', b'Changed protocol writeup'), (b'changed_charter_milestone', b'Changed charter milestone'), (b'initial_review', b'Set initial review time'), (b'changed_review_announcement', b'Changed WG Review text'), (b'changed_action_announcement', b'Changed WG Action text'), (b'started_iesg_process', b'Started IESG process on document'), (b'created_ballot', b'Created ballot'), (b'closed_ballot', b'Closed ballot'), (b'sent_ballot_announcement', b'Sent ballot announcement'), (b'changed_ballot_position', b'Changed ballot position'), (b'changed_ballot_approval_text', b'Changed ballot approval text'), (b'changed_ballot_writeup_text', b'Changed ballot writeup text'), (b'changed_rfc_editor_note_text', b'Changed RFC Editor Note text'), (b'changed_last_call_text', b'Changed last call text'), (b'requested_last_call', b'Requested last call'), (b'sent_last_call', b'Sent last call'), (b'scheduled_for_telechat', b'Scheduled for telechat'), (b'iesg_approved', b'IESG approved document (no problem)'), (b'iesg_disapproved', b'IESG disapproved document (do not publish)'), (b'approved_in_minute', b'Approved in minute'), (b'iana_review', b'IANA review comment'), (b'rfc_in_iana_registry', b'RFC is in IANA registry'), (b'rfc_editor_received_announcement', b'Announcement was received by RFC Editor'), (b'requested_publication', b'Publication at RFC Editor requested'), (b'sync_from_rfc_editor', b'Received updated information from RFC Editor'), (b'requested_review', b'Requested review'), (b'assigned_review_request', b'Assigned review request'), (b'closed_review_request', b'Closed review request')]),
31+
preserve_default=True,
32+
),
33+
]

ietf/doc/models.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from ietf.group.models import Group
1616
from ietf.name.models import ( DocTypeName, DocTagName, StreamName, IntendedStdLevelName, StdLevelName,
17-
DocRelationshipName, DocReminderTypeName, BallotPositionName )
17+
DocRelationshipName, DocReminderTypeName, BallotPositionName, ReviewRequestStateName )
1818
from ietf.person.models import Email, Person
1919
from ietf.utils.admin import admin_link
2020

@@ -697,6 +697,11 @@ class DocReminder(models.Model):
697697
("rfc_editor_received_announcement", "Announcement was received by RFC Editor"),
698698
("requested_publication", "Publication at RFC Editor requested"),
699699
("sync_from_rfc_editor", "Received updated information from RFC Editor"),
700+
701+
# review
702+
("requested_review", "Requested review"),
703+
("assigned_review_request", "Assigned review request"),
704+
("closed_review_request", "Closed review request"),
700705
]
701706

702707
class DocEvent(models.Model):
@@ -827,11 +832,14 @@ class TelechatDocEvent(DocEvent):
827832
telechat_date = models.DateField(blank=True, null=True)
828833
returning_item = models.BooleanField(default=False)
829834

835+
class ReviewRequestDocEvent(DocEvent):
836+
review_request = models.ForeignKey('review.ReviewRequest')
837+
state = models.ForeignKey(ReviewRequestStateName, blank=True, null=True)
838+
830839
# charter events
831840
class InitialReviewDocEvent(DocEvent):
832841
expires = models.DateTimeField(blank=True, null=True)
833842

834-
835843
class AddedMessageEvent(DocEvent):
836844
import ietf.message.models
837845
message = models.ForeignKey(ietf.message.models.Message, null=True, blank=True,related_name='doc_manualevents')

ietf/doc/resources.py

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
DocumentAuthor, DocEvent, StateDocEvent, DocHistory, ConsensusDocEvent, DocAlias,
1212
TelechatDocEvent, DocReminder, LastCallDocEvent, NewRevisionDocEvent, WriteupDocEvent,
1313
InitialReviewDocEvent, DocHistoryAuthor, BallotDocEvent, RelatedDocument,
14-
RelatedDocHistory, BallotPositionDocEvent, AddedMessageEvent)
14+
RelatedDocHistory, BallotPositionDocEvent, AddedMessageEvent, ReviewRequestDocEvent)
1515

1616

1717
from ietf.name.resources import BallotPositionNameResource, DocTypeNameResource
@@ -513,8 +513,6 @@ class Meta:
513513
}
514514
api.doc.register(BallotPositionDocEventResource())
515515

516-
517-
518516
from ietf.person.resources import PersonResource
519517
from ietf.message.resources import MessageResource
520518
class AddedMessageEventResource(ModelResource):
@@ -542,3 +540,28 @@ class Meta:
542540
}
543541
api.doc.register(AddedMessageEventResource())
544542

543+
from ietf.person.resources import PersonResource
544+
from ietf.name.resources import ReviewRequestStateNameResource
545+
class ReviewRequestDocEventResource(ModelResource):
546+
by = ToOneField(PersonResource, 'by')
547+
doc = ToOneField(DocumentResource, 'doc')
548+
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
549+
review_request = ToOneField('review.ReviewRequestResource', 'review_request')
550+
state = ToOneField(ReviewRequestStateNameResource, 'state', null=True)
551+
class Meta:
552+
queryset = ReviewRequestDocEvent.objects.all()
553+
serializer = api.Serializer()
554+
cache = SimpleCache()
555+
#resource_name = 'reviewrequestdocevent'
556+
filtering = {
557+
"id": ALL,
558+
"time": ALL,
559+
"type": ALL,
560+
"desc": ALL,
561+
"by": ALL_WITH_RELATIONS,
562+
"doc": ALL_WITH_RELATIONS,
563+
"docevent_ptr": ALL_WITH_RELATIONS,
564+
"review_request": ALL_WITH_RELATIONS,
565+
"state": ALL_WITH_RELATIONS,
566+
}
567+
api.doc.register(ReviewRequestDocEventResource())

0 commit comments

Comments
 (0)