Skip to content

Commit f7b1ce1

Browse files
committed
Remove abandoned charters from any future telechats. Fixes ietf-tools#3003. Commit ready for merge.
- Legacy-Id: 18037
1 parent da0c81d commit f7b1ce1

3 files changed

Lines changed: 20 additions & 4 deletions

File tree

ietf/doc/factories.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from django.conf import settings
1313

1414
from ietf.doc.models import ( Document, DocEvent, NewRevisionDocEvent, DocAlias, State, DocumentAuthor,
15-
StateDocEvent, BallotPositionDocEvent, BallotDocEvent, BallotType, IRSGBallotDocEvent, )
15+
StateDocEvent, BallotPositionDocEvent, BallotDocEvent, BallotType, IRSGBallotDocEvent, TelechatDocEvent)
1616
from ietf.group.models import Group
1717

1818
def draft_name_generator(type_id,group,n):
@@ -281,6 +281,13 @@ class Meta:
281281
def rev(self):
282282
return self.doc.rev
283283

284+
class TelechatDocEventFactory(DocEventFactory):
285+
class Meta:
286+
model = TelechatDocEvent
287+
288+
telechat_date = datetime.datetime.today()+datetime.timedelta(days=14)
289+
type = 'scheduled_for_telechat'
290+
284291
class NewRevisionDocEventFactory(DocEventFactory):
285292
class Meta:
286293
model = NewRevisionDocEvent

ietf/doc/tests_charter.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import debug # pyflakes:ignore
1616

17-
from ietf.doc.factories import CharterFactory, NewRevisionDocEventFactory
17+
from ietf.doc.factories import CharterFactory, NewRevisionDocEventFactory, TelechatDocEventFactory
1818
from ietf.doc.models import ( Document, State, BallotDocEvent, BallotType, NewRevisionDocEvent,
1919
TelechatDocEvent, WriteupDocEvent )
2020
from ietf.doc.utils_charter import ( next_revision, default_review_text, default_action_text,
@@ -108,6 +108,9 @@ def test_startstop_process(self):
108108
url = urlreverse('ietf.doc.views_charter.change_state', kwargs=dict(name=charter.name, option=option))
109109
login_testing_unauthorized(self, "secretary", url)
110110

111+
if option == 'recharter':
112+
TelechatDocEventFactory(doc=charter)
113+
111114
# normal get
112115
r = self.client.get(url)
113116
self.assertEqual(r.status_code, 200)
@@ -119,6 +122,8 @@ def test_startstop_process(self):
119122
self.assertEqual(r.status_code, 302)
120123
if option == "abandon":
121124
self.assertTrue("abandoned" in charter.latest_event(type="changed_document").desc.lower())
125+
telechat_doc_event = charter.latest_event(TelechatDocEvent)
126+
self.assertIsNone(telechat_doc_event.telechat_date)
122127
else:
123128
self.assertTrue("state changed" in charter.latest_event(type="changed_state").desc.lower())
124129

ietf/doc/views_charter.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
from ietf.doc.models import ( Document, DocAlias, DocHistory, State, DocEvent,
2424
BallotDocEvent, BallotPositionDocEvent, InitialReviewDocEvent, NewRevisionDocEvent,
25-
WriteupDocEvent )
25+
WriteupDocEvent, TelechatDocEvent )
2626
from ietf.doc.utils import ( add_state_change_event, close_open_ballots,
2727
create_ballot, get_chartering_type )
2828
from ietf.doc.utils_charter import ( historic_milestones_for_charter,
@@ -105,7 +105,6 @@ def change_state(request, name, option=None):
105105
oldstate = group.state
106106
if oldstate.slug in ("proposed", "bof", "unknown"):
107107
charter_state = State.objects.get(used=True, type="charter", slug="notrev")
108-
#TODO : set an abandoned state and leave some comments here
109108
group.state = GroupStateName.objects.get(slug='abandon')
110109
group.save()
111110
e = ChangeStateGroupEvent(group=group, type="changed_state")
@@ -138,6 +137,11 @@ def change_state(request, name, option=None):
138137
else:
139138
# kill hanging ballots
140139
close_open_ballots(charter, by)
140+
# take the doc off of a telechat if scheduled
141+
telechat_doc_event = charter.latest_event(TelechatDocEvent, type='scheduled_for_telechat')
142+
if telechat_doc_event and telechat_doc_event.telechat_date:
143+
e = TelechatDocEvent.objects.create(doc=charter, rev=charter.rev, by=by, type='scheduled_for_telechat', telechat_date=None, desc="Removed from agenda for telechat")
144+
events.append(e)
141145

142146
# Special log for abandoned efforts
143147
e = DocEvent(type="changed_document", doc=charter, rev=charter.rev, by=by)

0 commit comments

Comments
 (0)