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 django.conf import settings
|
||||||
|
|
||||||
from ietf.doc.models import ( Document, DocEvent, NewRevisionDocEvent, DocAlias, State, DocumentAuthor,
|
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
|
from ietf.group.models import Group
|
||||||
|
|
||||||
def draft_name_generator(type_id,group,n):
|
def draft_name_generator(type_id,group,n):
|
||||||
|
@ -281,6 +281,13 @@ class DocEventFactory(factory.DjangoModelFactory):
|
||||||
def rev(self):
|
def rev(self):
|
||||||
return self.doc.rev
|
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 NewRevisionDocEventFactory(DocEventFactory):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = NewRevisionDocEvent
|
model = NewRevisionDocEvent
|
||||||
|
|
|
@ -14,7 +14,7 @@ from django.urls import reverse as urlreverse
|
||||||
|
|
||||||
import debug # pyflakes:ignore
|
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,
|
from ietf.doc.models import ( Document, State, BallotDocEvent, BallotType, NewRevisionDocEvent,
|
||||||
TelechatDocEvent, WriteupDocEvent )
|
TelechatDocEvent, WriteupDocEvent )
|
||||||
from ietf.doc.utils_charter import ( next_revision, default_review_text, default_action_text,
|
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))
|
url = urlreverse('ietf.doc.views_charter.change_state', kwargs=dict(name=charter.name, option=option))
|
||||||
login_testing_unauthorized(self, "secretary", url)
|
login_testing_unauthorized(self, "secretary", url)
|
||||||
|
|
||||||
|
if option == 'recharter':
|
||||||
|
TelechatDocEventFactory(doc=charter)
|
||||||
|
|
||||||
# normal get
|
# normal get
|
||||||
r = self.client.get(url)
|
r = self.client.get(url)
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
|
@ -119,6 +122,8 @@ class EditCharterTests(TestCase):
|
||||||
self.assertEqual(r.status_code, 302)
|
self.assertEqual(r.status_code, 302)
|
||||||
if option == "abandon":
|
if option == "abandon":
|
||||||
self.assertTrue("abandoned" in charter.latest_event(type="changed_document").desc.lower())
|
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:
|
else:
|
||||||
self.assertTrue("state changed" in charter.latest_event(type="changed_state").desc.lower())
|
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,
|
from ietf.doc.models import ( Document, DocAlias, DocHistory, State, DocEvent,
|
||||||
BallotDocEvent, BallotPositionDocEvent, InitialReviewDocEvent, NewRevisionDocEvent,
|
BallotDocEvent, BallotPositionDocEvent, InitialReviewDocEvent, NewRevisionDocEvent,
|
||||||
WriteupDocEvent )
|
WriteupDocEvent, TelechatDocEvent )
|
||||||
from ietf.doc.utils import ( add_state_change_event, close_open_ballots,
|
from ietf.doc.utils import ( add_state_change_event, close_open_ballots,
|
||||||
create_ballot, get_chartering_type )
|
create_ballot, get_chartering_type )
|
||||||
from ietf.doc.utils_charter import ( historic_milestones_for_charter,
|
from ietf.doc.utils_charter import ( historic_milestones_for_charter,
|
||||||
|
@ -105,7 +105,6 @@ def change_state(request, name, option=None):
|
||||||
oldstate = group.state
|
oldstate = group.state
|
||||||
if oldstate.slug in ("proposed", "bof", "unknown"):
|
if oldstate.slug in ("proposed", "bof", "unknown"):
|
||||||
charter_state = State.objects.get(used=True, type="charter", slug="notrev")
|
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.state = GroupStateName.objects.get(slug='abandon')
|
||||||
group.save()
|
group.save()
|
||||||
e = ChangeStateGroupEvent(group=group, type="changed_state")
|
e = ChangeStateGroupEvent(group=group, type="changed_state")
|
||||||
|
@ -138,6 +137,11 @@ def change_state(request, name, option=None):
|
||||||
else:
|
else:
|
||||||
# kill hanging ballots
|
# kill hanging ballots
|
||||||
close_open_ballots(charter, by)
|
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
|
# Special log for abandoned efforts
|
||||||
e = DocEvent(type="changed_document", doc=charter, rev=charter.rev, by=by)
|
e = DocEvent(type="changed_document", doc=charter, rev=charter.rev, by=by)
|
||||||
|
|
Loading…
Reference in a new issue