Remove abandoned charters from any future telechats. Fixes #3003. Commit ready for merge.
- Legacy-Id: 18037
This commit is contained in:
parent
da0c81d78f
commit
f7b1ce1fce
|
@ -12,7 +12,7 @@ from typing import Optional # pyflakes:ignore
|
|||
from django.conf import settings
|
||||
|
||||
from ietf.doc.models import ( Document, DocEvent, NewRevisionDocEvent, DocAlias, State, DocumentAuthor,
|
||||
StateDocEvent, BallotPositionDocEvent, BallotDocEvent, BallotType, IRSGBallotDocEvent, )
|
||||
StateDocEvent, BallotPositionDocEvent, BallotDocEvent, BallotType, IRSGBallotDocEvent, TelechatDocEvent)
|
||||
from ietf.group.models import Group
|
||||
|
||||
def draft_name_generator(type_id,group,n):
|
||||
|
@ -281,6 +281,13 @@ class DocEventFactory(factory.DjangoModelFactory):
|
|||
def rev(self):
|
||||
return self.doc.rev
|
||||
|
||||
class TelechatDocEventFactory(DocEventFactory):
|
||||
class Meta:
|
||||
model = TelechatDocEvent
|
||||
|
||||
telechat_date = datetime.datetime.today()+datetime.timedelta(days=14)
|
||||
type = 'scheduled_for_telechat'
|
||||
|
||||
class NewRevisionDocEventFactory(DocEventFactory):
|
||||
class Meta:
|
||||
model = NewRevisionDocEvent
|
||||
|
|
|
@ -14,7 +14,7 @@ from django.urls import reverse as urlreverse
|
|||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
from ietf.doc.factories import CharterFactory, NewRevisionDocEventFactory
|
||||
from ietf.doc.factories import CharterFactory, NewRevisionDocEventFactory, TelechatDocEventFactory
|
||||
from ietf.doc.models import ( Document, State, BallotDocEvent, BallotType, NewRevisionDocEvent,
|
||||
TelechatDocEvent, WriteupDocEvent )
|
||||
from ietf.doc.utils_charter import ( next_revision, default_review_text, default_action_text,
|
||||
|
@ -108,6 +108,9 @@ class EditCharterTests(TestCase):
|
|||
url = urlreverse('ietf.doc.views_charter.change_state', kwargs=dict(name=charter.name, option=option))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
|
||||
if option == 'recharter':
|
||||
TelechatDocEventFactory(doc=charter)
|
||||
|
||||
# normal get
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
@ -119,6 +122,8 @@ class EditCharterTests(TestCase):
|
|||
self.assertEqual(r.status_code, 302)
|
||||
if option == "abandon":
|
||||
self.assertTrue("abandoned" in charter.latest_event(type="changed_document").desc.lower())
|
||||
telechat_doc_event = charter.latest_event(TelechatDocEvent)
|
||||
self.assertIsNone(telechat_doc_event.telechat_date)
|
||||
else:
|
||||
self.assertTrue("state changed" in charter.latest_event(type="changed_state").desc.lower())
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ import debug # pyflakes:ignore
|
|||
|
||||
from ietf.doc.models import ( Document, DocAlias, DocHistory, State, DocEvent,
|
||||
BallotDocEvent, BallotPositionDocEvent, InitialReviewDocEvent, NewRevisionDocEvent,
|
||||
WriteupDocEvent )
|
||||
WriteupDocEvent, TelechatDocEvent )
|
||||
from ietf.doc.utils import ( add_state_change_event, close_open_ballots,
|
||||
create_ballot, get_chartering_type )
|
||||
from ietf.doc.utils_charter import ( historic_milestones_for_charter,
|
||||
|
@ -105,7 +105,6 @@ def change_state(request, name, option=None):
|
|||
oldstate = group.state
|
||||
if oldstate.slug in ("proposed", "bof", "unknown"):
|
||||
charter_state = State.objects.get(used=True, type="charter", slug="notrev")
|
||||
#TODO : set an abandoned state and leave some comments here
|
||||
group.state = GroupStateName.objects.get(slug='abandon')
|
||||
group.save()
|
||||
e = ChangeStateGroupEvent(group=group, type="changed_state")
|
||||
|
@ -138,6 +137,11 @@ def change_state(request, name, option=None):
|
|||
else:
|
||||
# kill hanging ballots
|
||||
close_open_ballots(charter, by)
|
||||
# take the doc off of a telechat if scheduled
|
||||
telechat_doc_event = charter.latest_event(TelechatDocEvent, type='scheduled_for_telechat')
|
||||
if telechat_doc_event and telechat_doc_event.telechat_date:
|
||||
e = TelechatDocEvent.objects.create(doc=charter, rev=charter.rev, by=by, type='scheduled_for_telechat', telechat_date=None, desc="Removed from agenda for telechat")
|
||||
events.append(e)
|
||||
|
||||
# Special log for abandoned efforts
|
||||
e = DocEvent(type="changed_document", doc=charter, rev=charter.rev, by=by)
|
||||
|
|
Loading…
Reference in a new issue