From e01ba98af163a452610e0bea2d87c0aefc894871 Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Mon, 14 Nov 2011 19:29:05 +0000 Subject: [PATCH] Introduce generic states, not fully incorporated yet, and rename tag name model - Legacy-Id: 3616 --- ietf/idrfc/expire.py | 4 +- ietf/idrfc/mirror_rfc_editor_queue.py | 12 +- ietf/idrfc/mirror_rfc_index.py | 6 +- ietf/idrfc/views_edit.py | 4 +- ietf/idrfc/views_search.py | 2 +- redesign/name/admin.py | 4 +- redesign/name/fixtures/names.xml | 979 +++++++++++++++++++++++--- redesign/name/generate_fixtures.py | 13 +- redesign/name/models.py | 11 +- redesign/name/proxy.py | 12 +- redesign/name/utils.py | 4 +- 11 files changed, 925 insertions(+), 126 deletions(-) diff --git a/ietf/idrfc/expire.py b/ietf/idrfc/expire.py index b82dbc9b9..884a91cc1 100644 --- a/ietf/idrfc/expire.py +++ b/ietf/idrfc/expire.py @@ -10,7 +10,7 @@ from ietf.idtracker.models import InternetDraft, IDDates, IDStatus, IDState, Doc from ietf.utils.mail import send_mail, send_mail_subj from ietf.idrfc.utils import log_state_changed, add_document_comment from doc.models import Document, DocEvent, save_document_in_history -from name.models import IesgDocStateName, DocStateName, DocInfoTagName +from name.models import IesgDocStateName, DocStateName, DocTagName from person.models import Person, Email INTERNET_DRAFT_DAYS_TO_EXPIRE = 185 @@ -349,7 +349,7 @@ def clean_up_id_filesREDESIGN(): # revert version after having deleted tombstone doc.rev = "%02d" % (int(revision) - 1) # FIXME: messed up doc.save() - doc.tags.add(DocInfoTagName.objects.get(slug='exp-tomb')) + doc.tags.add(DocTagName.objects.get(slug='exp-tomb')) else: move_file_to("expired_without_tombstone") diff --git a/ietf/idrfc/mirror_rfc_editor_queue.py b/ietf/idrfc/mirror_rfc_editor_queue.py index 6ec2239b2..d63834b65 100644 --- a/ietf/idrfc/mirror_rfc_editor_queue.py +++ b/ietf/idrfc/mirror_rfc_editor_queue.py @@ -196,14 +196,14 @@ def insert_into_database(drafts, refs): import django.db.transaction def get_rfc_tag_mapping(): - """Return dict with RFC Editor state name -> DocInfoTagName""" - from name.models import DocInfoTagName + """Return dict with RFC Editor state name -> DocTagName""" + from name.models import DocTagName from name.utils import name return { - 'IANA': name(DocInfoTagName, 'iana-crd', 'IANA coordination', "RFC-Editor/IANA Registration Coordination"), - 'REF': name(DocInfoTagName, 'ref', 'Holding for references', "Holding for normative reference"), - 'MISSREF': name(DocInfoTagName, 'missref', 'Missing references', "Awaiting missing normative reference"), + 'IANA': name(DocTagName, 'iana-crd', 'IANA coordination', "RFC-Editor/IANA Registration Coordination"), + 'REF': name(DocTagName, 'ref', 'Holding for references', "Holding for normative reference"), + 'MISSREF': name(DocTagName, 'missref', 'Missing references', "Awaiting missing normative reference"), } def get_rfc_state_mapping(): @@ -229,7 +229,7 @@ def get_rfc_state_mapping(): @django.db.transaction.commit_on_success def insert_into_databaseREDESIGN(drafts, refs): from doc.models import Document - from name.models import DocInfoTagName + from name.models import DocTagName tags = get_rfc_tag_mapping() states = get_rfc_state_mapping() diff --git a/ietf/idrfc/mirror_rfc_index.py b/ietf/idrfc/mirror_rfc_index.py index ab5311aa8..41a0be9d0 100644 --- a/ietf/idrfc/mirror_rfc_index.py +++ b/ietf/idrfc/mirror_rfc_index.py @@ -168,7 +168,7 @@ def get_stream_mapping(): return { "Legacy": name(DocStreamName, "legacy", "Legacy"), "IETF": name(DocStreamName, "ietf", "IETF"), - "INDEPENDENT": name(DocStreamName, "ise", "Independent Submission"), + "INDEPENDENT": name(DocStreamName, "ise", "ISE", desc="Independent submission editor stream"), "IAB": name(DocStreamName, "iab", "IAB"), "IRTF": name(DocStreamName, "irtf", "IRTF"), } @@ -181,13 +181,13 @@ def insert_to_databaseREDESIGN(data): from person.models import Person from doc.models import Document, DocAlias, DocEvent, RelatedDocument from group.models import Group - from name.models import DocInfoTagName, DocRelationshipName + from name.models import DocTagName, DocRelationshipName from name.utils import name system = Person.objects.get(name="(System)") std_level_mapping = get_std_level_mapping() stream_mapping = get_stream_mapping() - tag_has_errata = name(DocInfoTagName, 'errata', "Has errata") + tag_has_errata = name(DocTagName, 'errata', "Has errata") relationship_obsoletes = name(DocRelationshipName, "obs", "Obsoletes") relationship_updates = name(DocRelationshipName, "updates", "Updates") diff --git a/ietf/idrfc/views_edit.py b/ietf/idrfc/views_edit.py index 5f8330360..363dba609 100644 --- a/ietf/idrfc/views_edit.py +++ b/ietf/idrfc/views_edit.py @@ -24,7 +24,7 @@ from ietf.idrfc.utils import * from ietf.idrfc.lastcall import request_last_call from doc.models import Document, DocEvent, StatusDateDocEvent, TelechatDocEvent, save_document_in_history, DocHistory -from name.models import IesgDocStateName, IntendedStdLevelName, DocInfoTagName, get_next_iesg_states, DocStateName +from name.models import IesgDocStateName, IntendedStdLevelName, DocTagName, get_next_iesg_states, DocStateName from person.models import Person, Email class ChangeStateForm(forms.Form): @@ -548,7 +548,7 @@ def edit_infoREDESIGN(request, name): e.save() if has_role(request.user, 'Secretariat'): - via_rfc = DocInfoTagName.objects.get(slug="via-rfc") + via_rfc = DocTagName.objects.get(slug="via-rfc") if r['via_rfc_editor']: doc.tags.add(via_rfc) else: diff --git a/ietf/idrfc/views_search.py b/ietf/idrfc/views_search.py index 81a947c3c..05cdab68a 100644 --- a/ietf/idrfc/views_search.py +++ b/ietf/idrfc/views_search.py @@ -308,7 +308,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES: inactive_ads.sort(key=extract_last_name) self.fields['ad'].choices = c = [('', 'any AD')] + [(ad.pk, ad.name) for ad in active_ads] + [('', '------------------')] + [(ad.pk, ad.name) for ad in inactive_ads] - self.fields['subState'].choices = [('', 'any substate'), ('0', 'no substate')] + [(n.slug, n.name) for n in DocInfoTagName.objects.filter(slug__in=('point', 'ad-f-up', 'need-rev', 'extpty'))] + self.fields['subState'].choices = [('', 'any substate'), ('0', 'no substate')] + [(n.slug, n.name) for n in DocTagName.objects.filter(slug__in=('point', 'ad-f-up', 'need-rev', 'extpty'))] def clean_name(self): value = self.cleaned_data.get('name','') return normalize_draftname(value) diff --git a/redesign/name/admin.py b/redesign/name/admin.py index 347be27d7..fccd2be08 100644 --- a/redesign/name/admin.py +++ b/redesign/name/admin.py @@ -12,14 +12,14 @@ admin.site.register(RoleName, NameAdmin) admin.site.register(DocStreamName, NameAdmin) admin.site.register(DocStateName, NameAdmin) admin.site.register(DocRelationshipName, NameAdmin) -admin.site.register(WgDocStateName, NameAdmin) admin.site.register(IesgDocStateName, NameAdmin) admin.site.register(IanaDocStateName, NameAdmin) admin.site.register(RfcDocStateName, NameAdmin) admin.site.register(DocTypeName, NameAdmin) -admin.site.register(DocInfoTagName, NameAdmin) +admin.site.register(DocTagName, NameAdmin) admin.site.register(StdLevelName, NameAdmin) admin.site.register(IntendedStdLevelName, NameAdmin) +admin.site.register(DocReminderTypeName, NameAdmin) admin.site.register(BallotPositionName, NameAdmin) admin.site.register(SessionStatusName, NameAdmin) admin.site.register(TimeSlotTypeName, NameAdmin) diff --git a/redesign/name/fixtures/names.xml b/redesign/name/fixtures/names.xml index 0144b0e6b..84b2b07aa 100644 --- a/redesign/name/fixtures/names.xml +++ b/redesign/name/fixtures/names.xml @@ -31,7 +31,7 @@ 0 - No record + No Record 1 0 @@ -54,66 +54,6 @@ 1 0 - - Review by RFC Editor - - 1 - 0 - - - Via RFC Editor - - 1 - 0 - - - Expired tombstone - - 1 - 0 - - - Approved in minute - - 1 - 0 - - - Has errata - - 1 - 0 - - - Point Raised - writeup needed - IESG discussions on the document have raised some issues that need to be brought to the attention of the authors/WG, but those issues have not been written down yet. (It is common for discussions during a telechat to result in such situations. An AD may raise a possible issue during a telechat and only decide as a result of that discussion whether the issue is worth formally writing up and bringing to the attention of the authors/WG). A document stays in the "Point Raised - Writeup Needed" state until *ALL* IESG comments that have been raised have been documented. - 1 - 1 - - - AD Followup - A generic substate indicating that the shepherding AD has the action item to determine appropriate next steps. In particular, the appropriate steps (and the corresponding next state or substate) depend entirely on the nature of the issues that were raised and can only be decided with active involvement of the shepherding AD. Examples include: - -- if another AD raises an issue, the shepherding AD may first iterate with the other AD to get a better understanding of the exact issue. Or, the shepherding AD may attempt to argue that the issue is not serious enough to bring to the attention of the authors/WG. - -- if a documented issue is forwarded to a WG, some further iteration may be needed before it can be determined whether a new revision is needed or whether the WG response to an issue clarifies the issue sufficiently. - -- when a new revision appears, the shepherding AD will first look at the changes to determine whether they believe all outstanding issues have been raised satisfactorily, prior to asking the ADs who raised the original issues to verify the changes. - 1 - 2 - - - External Party - The document is awaiting review or input from an external party (i.e, someone other than the shepherding AD, the authors, or the WG). See the "note" field for more details on who has the action. - 1 - 3 - - - Revised ID Needed - An updated ID is needed to address the issues that have been raised. - 1 - 5 - Replaces @@ -132,6 +72,12 @@ 1 0 + + Stream state should change + + 1 + 0 + Active @@ -180,12 +126,6 @@ 1 0 - - Independent Submission - - 1 - 0 - IAB @@ -198,6 +138,180 @@ 1 0 + + ISE + Independent submission editor stream + 1 + 0 + + + Review by RFC Editor + + 1 + 0 + + + Via RFC Editor + + 1 + 0 + + + Expired tombstone + + 1 + 0 + + + Approved in minute + + 1 + 0 + + + Has errata + + 1 + 0 + + + Shepherd Needed + + 1 + 0 + + + Waiting for Dependency on Other Document + + 1 + 0 + + + IESG Review Completed + + 1 + 0 + + + Point Raised - writeup needed + IESG discussions on the document have raised some issues that need to be brought to the attention of the authors/WG, but those issues have not been written down yet. (It is common for discussions during a telechat to result in such situations. An AD may raise a possible issue during a telechat and only decide as a result of that discussion whether the issue is worth formally writing up and bringing to the attention of the authors/WG). A document stays in the "Point Raised - Writeup Needed" state until *ALL* IESG comments that have been raised have been documented. + 1 + 1 + + + Awaiting Expert Review/Resolution of Issues Raised + + 1 + 1 + + + Editor Needed + + 1 + 1 + + + AD Followup + A generic substate indicating that the shepherding AD has the action item to determine appropriate next steps. In particular, the appropriate steps (and the corresponding next state or substate) depend entirely on the nature of the issues that were raised and can only be decided with active involvement of the shepherding AD. Examples include: + +- if another AD raises an issue, the shepherding AD may first iterate with the other AD to get a better understanding of the exact issue. Or, the shepherding AD may attempt to argue that the issue is not serious enough to bring to the attention of the authors/WG. + +- if a documented issue is forwarded to a WG, some further iteration may be needed before it can be determined whether a new revision is needed or whether the WG response to an issue clarifies the issue sufficiently. + +- when a new revision appears, the shepherding AD will first look at the changes to determine whether they believe all outstanding issues have been raised satisfactorily, prior to asking the ADs who raised the original issues to verify the changes. + 1 + 2 + + + Awaiting External Review/Resolution of Issues Raised + + 1 + 2 + + + Waiting for Partner Feedback + + 1 + 2 + + + External Party + The document is awaiting review or input from an external party (i.e, someone other than the shepherding AD, the authors, or the WG). See the "note" field for more details on who has the action. + 1 + 3 + + + Awaiting Merge with Other Document + + 1 + 3 + + + Awaiting Reviews + + 1 + 3 + + + Author or Editor Needed + + 1 + 4 + + + Document Shepherd Followup + + 1 + 4 + + + Revised ID Needed + An updated ID is needed to address the issues that have been raised. + 1 + 5 + + + Waiting for Referenced Document + + 1 + 5 + + + Waiting for Referencing Document + + 1 + 6 + + + Revised I-D Needed - Issue raised by WGLC + + 1 + 7 + + + Revised I-D Needed - Issue raised by AD + + 1 + 8 + + + Revised I-D Needed - Issue raised by IESG + + 1 + 9 + + + Doc Shepherd Follow-up Underway + + 1 + 10 + + + Other - see Comment Log + + 1 + 11 + Agenda @@ -414,47 +528,47 @@ 1 99 - - Best Current Practice + + Proposed Standard 1 - 0 + 1 Draft Standard 1 - 0 - - - Experimental - - 1 - 0 - - - Historic - - 1 - 0 - - - Informational - - 1 - 0 - - - Proposed Standard - - 1 - 0 + 2 Standard 1 - 0 + 3 + + + Best Current Practice + + 1 + 4 + + + Informational + + 1 + 5 + + + Experimental + + 1 + 6 + + + Historic + + 1 + 7 For action @@ -499,8 +613,8 @@ 0 - Ex-Area Director - Inactive Area Director + Ex Area Director + 1 0 @@ -672,4 +786,673 @@ 1 0 + + RG state + + + IESG state + + + State + + + WG state + + + ISE state + + + IAB state + + + draft + active + Active + 1 + + 0 + + + + draft + expired + Expired + 1 + + 0 + + + + draft + rfc + RFC + 1 + + 0 + + + + draft + auth-rm + Withdrawn by Submitter + 1 + + 0 + + + + draft + repl + Replaced + 1 + + 0 + + + + draft + ietf-rm + Withdrawn by IETF + 1 + + 0 + + + + draft-iesg + pub-req + Publication Requested + 1 + A formal request has been made to advance/publish the document, following the procedures in Section 7.5 of RFC 2418. The request could be from a WG chair, from an individual through the RFC Editor, etc. (The Secretariat (iesg-secretary@ietf.org) is copied on these requests to ensure that the request makes it into the ID tracker.) A document in this state has not (yet) been reviewed by an AD nor has any official action been taken on it yet (other than to note that its publication has been requested. + 10 + + + + draft-iesg + ad-eval + AD Evaluation + 1 + A specific AD (e.g., the Area Advisor for the WG) has begun reviewing the document to verify that it is ready for advancement. The shepherding AD is responsible for doing any necessary review before starting an IETF Last Call or sending the document directly to the IESG as a whole. + 11 + + + + draft-iesg + review-e + Expert Review + 1 + An AD sometimes asks for an external review by an outside party as part of evaluating whether a document is ready for advancement. MIBs, for example, are reviewed by the "MIB doctors". Other types of reviews may also be requested (e.g., security, operations impact, etc.). Documents stay in this state until the review is complete and possibly until the issues raised in the review are addressed. See the "note" field for specific details on the nature of the review. + 12 + + + + draft-iesg + lc-req + Last Call Requested + 1 + The AD has requested that the Secretariat start an IETF Last Call, but the the actual Last Call message has not been sent yet. + 15 + + + + draft-iesg + lc + In Last Call + 1 + The document is currently waiting for IETF Last Call to complete. Last Calls for WG documents typically last 2 weeks, those for individual submissions last 4 weeks. + 16 + + + + draft-iesg + writeupw + Waiting for Writeup + 1 + Before a standards-track or BCP document is formally considered by the entire IESG, the AD must write up a protocol action. The protocol action is included in the approval message that the Secretariat sends out when the document is approved for publication as an RFC. + 18 + + + + draft-iesg + goaheadw + Waiting for AD Go-Ahead + 1 + As a result of the IETF Last Call, comments may need to be responded to and a revision of the ID may be needed as well. The AD is responsible for verifying that all Last Call comments have been adequately addressed and that the (possibly revised) document is in the ID directory and ready for consideration by the IESG as a whole. + 19 + + + + draft-iesg + iesg-eva + IESG Evaluation + 1 + The document is now (finally!) being formally reviewed by the entire IESG. Documents are discussed in email or during a bi-weekly IESG telechat. In this phase, each AD reviews the document and airs any issues they may have. Unresolvable issues are documented as "discuss" comments that can be forwarded to the authors/WG. See the description of substates for additional details about the current state of the IESG discussion. + 20 + + + + draft-iesg + defer + IESG Evaluation - Defer + 1 + During a telechat, one or more ADs requested an additional 2 weeks to review the document. A defer is designed to be an exception mechanism, and can only be invoked once, the first time the document comes up for discussion during a telechat. + 21 + + + + draft-iesg + approved + Approved-announcement to be sent + 1 + The IESG has approved the document for publication, but the Secretariat has not yet sent out on official approval message. + 27 + + + + draft-iesg + ann + Approved-announcement sent + 1 + The IESG has approved the document for publication, and the Secretariat has sent out the official approval message to the RFC editor. + 30 + + + + draft-iesg + rfcqueue + RFC Ed Queue + 1 + The document is in the RFC editor Queue (as confirmed by http://www.rfc-editor.org/queue.html). + 31 + + + + draft-iesg + pub + RFC Published + 1 + The ID has been published as an RFC. + 32 + + + + draft-iesg + nopubadw + DNP-waiting for AD note + 1 + Do Not Publish: The IESG recommends against publishing the document, but the writeup explaining its reasoning has not yet been produced. DNPs apply primarily to individual submissions received through the RFC editor. See the "note" field for more details on who has the action item. + 33 + + + + draft-iesg + nopubanw + DNP-announcement to be sent + 1 + The IESG recommends against publishing the document, the writeup explaining its reasoning has been produced, but the Secretariat has not yet sent out the official "do not publish" recommendation message. + 34 + + + + draft-iesg + watching + AD is watching + 1 + An AD is aware of the document and has chosen to place the document in a separate state in order to keep a closer eye on it (for whatever reason). Documents in this state are still not being actively tracked in the sense that no formal request has been made to publish or advance the document. The sole difference between this state and "I-D Exists" is that an AD has chosen to put it in a separate state, to make it easier to keep track of (for the AD's own reasons). + 42 + + + + draft-iesg + dead + Dead + 1 + Document is "dead" and is no longer being tracked. (E.g., it has been replaced by another document with a different name, it has been withdrawn, etc.) + 99 + + + + draft-stream-iab + candidat + Candidate IAB Document + 1 + A document being considered for the IAB stream. + 1 + + + + draft-stream-iab + active + Active IAB Document + 1 + This document has been adopted by the IAB and is being actively developed. + 2 + + + + draft-stream-iab + parked + Parked IAB Document + 1 + This document has lost its author or editor, is waiting for another document to be written, or cannot currently be worked on by the IAB for some other reason. Annotations probably explain why this document is parked. + 3 + + + + draft-stream-iab + review-i + IAB Review + 1 + This document is awaiting the IAB itself to come to internal consensus. + 4 + + + + draft-stream-iab + review-c + Community Review + 1 + This document has completed internal consensus within the IAB and is now under community review. + 5 + + + + draft-stream-iab + approved + Approved by IAB, To Be Sent to RFC Editor + 1 + The consideration of this document is complete, but it has not yet been sent to the RFC Editor for publication (although that is going to happen soon). + 6 + + + + draft-stream-iab + diff-org + Sent to a Different Organization for Publication + 1 + The IAB does not expect to publish the document itself, but has passed it on to a different organization that might continue work on the document. The expectation is that the other organization will eventually publish the document. + 7 + + + + draft-stream-iab + rfc-edit + Sent to the RFC Editor + 1 + The IAB processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the IAB. + 8 + + + + draft-stream-iab + pub + Published RFC + 1 + The document has been published as an RFC. + 9 + + + + draft-stream-iab + dead + Dead IAB Document + 1 + This document was an active IAB document, but for some reason it is no longer being pursued for the IAB stream. It is possible that the document might be revived later, possibly in another stream. + 10 + + + + draft-stream-ietf + c-adopt + Call For Adoption By WG Issued + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.1" target="_blank">4.2.1. Call for Adoption by WG Issued</a> + + The "Call for Adoption by WG Issued" state should be used to indicate when an I-D is being considered for adoption by an IETF WG. An I-D that is in this state is actively being considered for adoption and has not yet achieved consensus, preference, or selection in the WG. + + This state may be used to describe an I-D that someone has asked a WG to consider for adoption, if the WG Chair has agreed with the request. This state may also be used to identify an I-D that a WG Chair asked an author to write specifically for consideration as a candidate WG item [WGDTSPEC], and/or an I-D that is listed as a 'candidate draft' in the WG's charter. + + Under normal conditions, it should not be possible for an I-D to be in the "Call for Adoption by WG Issued" state in more than one working group at the same time. This said, it is not uncommon for authors to "shop" their I-Ds to more than one WG at a time, with the hope of getting their documents adopted somewhere. + + After this state is implemented in the Datatracker, an I-D that is in the "Call for Adoption by WG Issued" state will not be able to be "shopped" to any other WG without the consent of the WG Chairs and the responsible ADs impacted by the shopping. + + Note that Figure 1 includes an arc leading from this state to outside of the WG state machine. This illustrates that some I-Ds that are considered do not get adopted as WG drafts. An I-D that is not adopted as a WG draft will transition out of the WG state machine and revert back to having no stream-specific state; however, the status change history log of the I-D will record that the I-D was previously in the "Call for Adoption by WG Issued" state. + 1 + + + + draft-stream-ietf + adopt-wg + Adopted by a WG + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.2" target="_blank">4.2.2. Adopted by a WG</a> + + The "Adopted by a WG" state describes an individual submission I-D that an IETF WG has agreed to adopt as one of its WG drafts. + + WG Chairs who use this state will be able to clearly indicate when their WGs adopt individual submission I-Ds. This will facilitate the Datatracker's ability to correctly capture "Replaces" information for WG drafts and correct "Replaced by" information for individual submission I-Ds that have been replaced by WG drafts. + + This state is needed because the Datatracker uses the filename of an I-D as a key to search its database for status information about the I-D, and because the filename of a WG I-D is supposed to be different from the filename of an individual submission I-D. The filename of an individual submission I-D will typically be formatted as 'draft-author-wgname-topic-nn'. + + The filename of a WG document is supposed to be formatted as 'draft- ietf-wgname-topic-nn'. + + An individual I-D that is adopted by a WG may take weeks or months to be resubmitted by the author as a new (version-00) WG draft. If the "Adopted by a WG" state is not used, the Datatracker has no way to determine that an I-D has been adopted until a new version of the I-D is submitted to the WG by the author and until the I-D is approved for posting by a WG Chair. + 2 + + + + draft-stream-ietf + info + Adopted for WG Info Only + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.3" target="_blank">4.2.3. Adopted for WG Info Only</a> + + The "Adopted for WG Info Only" state describes a document that contains useful information for the WG that adopted it, but the document is not intended to be published as an RFC. The WG will not actively develop the contents of the I-D or progress it for publication as an RFC. The only purpose of the I-D is to provide information for internal use by the WG. + 3 + + + + draft-stream-ietf + wg-doc + WG Document + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.4" target="_blank">4.2.4. WG Document</a> + + The "WG Document" state describes an I-D that has been adopted by an IETF WG and is being actively developed. + + A WG Chair may transition an I-D into the "WG Document" state at any time as long as the I-D is not being considered or developed in any other WG. + + Alternatively, WG Chairs may rely upon new functionality to be added to the Datatracker to automatically move version-00 drafts into the "WG Document" state as described in Section 4.1. + + Under normal conditions, it should not be possible for an I-D to be in the "WG Document" state in more than one WG at a time. This said, I-Ds may be transferred from one WG to another with the consent of the WG Chairs and the responsible ADs. + 4 + + + + draft-stream-ietf + parked + Parked WG Document + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.5" target="_blank">4.2.5. Parked WG Document</a> + + A "Parked WG Document" is an I-D that has lost its author or editor, is waiting for another document to be written or for a review to be completed, or cannot be progressed by the working group for some other reason. + + Some of the annotation tags described in Section 4.3 may be used in conjunction with this state to indicate why an I-D has been parked, and/or what may need to happen for the I-D to be un-parked. + + Parking a WG draft will not prevent it from expiring; however, this state can be used to indicate why the I-D has stopped progressing in the WG. + + A "Parked WG Document" that is not expired may be transferred from one WG to another with the consent of the WG Chairs and the responsible ADs. + 5 + + + + draft-stream-ietf + dead + Dead WG Document + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.6" target="_blank">4.2.6. Dead WG Document</a> + + A "Dead WG Document" is an I-D that has been abandoned. Note that 'Dead' is not always a final state for a WG I-D. If consensus is subsequently achieved, a "Dead WG Document" may be resurrected. A "Dead WG Document" that is not resurrected will eventually expire. + + Note that an I-D that is declared to be "Dead" in one WG and that is not expired may be transferred to a non-dead state in another WG with the consent of the WG Chairs and the responsible ADs. + 6 + + + + draft-stream-ietf + wg-lc + In WG Last Call + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.7" target="_blank">4.2.7. In WG Last Call</a> + + A document "In WG Last Call" is an I-D for which a WG Last Call (WGLC) has been issued and is in progress. + + Note that conducting a WGLC is an optional part of the IETF WG process, per Section 7.4 of RFC 2418 [RFC2418]. + + If a WG Chair decides to conduct a WGLC on an I-D, the "In WG Last Call" state can be used to track the progress of the WGLC. The Chair may configure the Datatracker to send a WGLC message to one or more mailing lists when the Chair moves the I-D into this state. The WG Chair may also be able to select a different set of mailing lists for a different document undergoing a WGLC; some documents may deserve coordination with other WGs. + + A WG I-D in this state should remain "In WG Last Call" until the WG Chair moves it to another state. The WG Chair may configure the Datatracker to send an e-mail after a specified period of time to remind or 'nudge' the Chair to conclude the WGLC and to determine the next state for the document. + + It is possible for one WGLC to lead into another WGLC for the same document. For example, an I-D that completed a WGLC as an "Informational" document may need another WGLC if a decision is taken to convert the I-D into a Standards Track document. + 7 + + + + draft-stream-ietf + wait-wgc + Waiting for WG Chair Go-Ahead + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.8" target="_blank">4.2.8. Waiting for WG Chair Go-Ahead</a> + + A WG Chair may wish to place an I-D that receives a lot of comments during a WGLC into the "Waiting for WG Chair Go-Ahead" state. This state describes an I-D that has undergone a WGLC; however, the Chair is not yet ready to call consensus on the document. + + If comments from the WGLC need to be responded to, or a revision to the I-D is needed, the Chair may place an I-D into this state until all of the WGLC comments are adequately addressed and the (possibly revised) document is in the I-D repository. + 8 + + + + draft-stream-ietf + wait-wgw + WG Consensus: Waiting for Write-Up + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.9" target="_blank">4.2.9. WG Consensus: Waiting for Writeup</a> + + A document in the "WG Consensus: Waiting for Writeup" state has essentially completed its development within the working group, and is nearly ready to be sent to the IESG for publication. The last thing to be done is the preparation of a protocol writeup by a Document Shepherd. The IESG requires that a document shepherd writeup be completed before publication of the I-D is requested. The IETF document shepherding process and the role of a WG Document Shepherd is described in RFC 4858 [RFC4858] + + A WG Chair may call consensus on an I-D without a formal WGLC and transition an I-D that was in the "WG Document" state directly into this state. + + The name of this state includes the words "Waiting for Writeup" because a good document shepherd writeup takes time to prepare. + 9 + + + + draft-stream-ietf + sub-pub + Submitted to IESG for Publication + 1 + <a href="http://tools.ietf.org/html/rfc6174#section-4.2.10" target="_blank">4.2.10. Submitted to IESG for Publication</a> + + This state describes a WG document that has been submitted to the IESG for publication and that has not been sent back to the working group for revision. + + An I-D in this state may be under review by the IESG, it may have been approved and be in the RFC Editor's queue, or it may have been published as an RFC. Other possibilities exist too. The document may be "Dead" (in the IESG state machine) or in a "Do Not Publish" state. + 10 + + + + draft-stream-irtf + candidat + Candidate RG Document + 1 + This document is under consideration in an RG for becoming an IRTF document. A document in this state does not imply any RG consensus and does not imply any precedence or selection. It's simply a way to indicate that somebody has asked for a document to be considered for adoption by an RG. + 1 + + + + draft-stream-irtf + active + Active RG Document + 1 + This document has been adopted by the RG and is being actively developed. + 2 + + + + draft-stream-irtf + parked + Parked RG Document + 1 + This document has lost its author or editor, is waiting for another document to be written, or cannot currently be worked on by the RG for some other reason. + 3 + + + + draft-stream-irtf + rg-lc + In RG Last Call + 1 + The document is in its final review in the RG. + 4 + + + + draft-stream-irtf + sheph-w + Waiting for Document Shepherd + 1 + IRTF documents have document shepherds who help RG documents through the process after the RG has finished with the document. + 5 + + + + draft-stream-irtf + chair-w + Waiting for IRTF Chair + 1 + The IRTF Chair is meant to be performing some task such as sending a request for IESG Review. + 6 + + + + draft-stream-irtf + irsg-w + Awaiting IRSG Reviews + 1 + The document shepherd has taken the document to the IRSG and solicited reviews from one or more IRSG members. + 7 + + + + draft-stream-irtf + irsgpoll + In IRSG Poll + 1 + The IRSG is taking a poll on whether or not the document is ready to be published. + 8 + + + + draft-stream-irtf + iesg-rev + In IESG Review + 1 + The IRSG has asked the IESG to do a review of the document, as described in RFC5742. + 9 + + + + draft-stream-irtf + rfc-edit + Sent to the RFC Editor + 1 + The RG processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the RG. + 10 + + + + draft-stream-irtf + pub + Published RFC + 1 + The document has been published as an RFC. + 11 + + + + draft-stream-irtf + iesghold + Document on Hold Based On IESG Request + 1 + The IESG has requested that the document be held pending further review, as specified in RFC 5742, and the IRTF has agreed to such a hold. + 12 + + + + draft-stream-irtf + dead + Dead IRTF Document + 1 + This document was an active IRTF document, but for some reason it is no longer being pursued for the IRTF stream. It is possible that the document might be revived later, possibly in another stream. + 13 + + + + draft-stream-ise + receive + Submission Received + 1 + The draft has been sent to the ISE with a request for publication. + 1 + + + + draft-stream-ise + find-rev + Finding Reviewers + 1 + The ISE is finding initial reviewers for the document. + 2 + + + + draft-stream-ise + ise-rev + In ISE Review + 1 + The ISE is actively working on the document. + 3 + + + + draft-stream-ise + need-res + Response to Review Needed + 1 + One or more reviews have been sent to the author, and the ISE is awaiting response. + 4 + + + + draft-stream-ise + iesg-rev + In IESG Review + 1 + The ISE has asked the IESG to do a review of the document, as described in RFC5742. + 5 + + + + draft-stream-ise + rfc-edit + Sent to the RFC Editor + 1 + The ISE processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the ISE. + 6 + + + + draft-stream-ise + pub + Published RFC + 1 + The document has been published as an RFC. + 7 + + + + draft-stream-ise + dead + No Longer In Independent Submission Stream + 1 + This document was actively considered in the Independent Submission stream, but the ISE chose not to publish it. It is possible that the document might be revived later. A document in this state may have a comment explaining the reasoning of the ISE (such as if the document was going to move to a different stream). + 8 + + + + draft-stream-ise + iesghold + Document on Hold Based On IESG Request + 1 + The IESG has requested that the document be held pending further review, as specified in RFC 5742, and the ISE has agreed to such a hold. + 9 + + \ No newline at end of file diff --git a/redesign/name/generate_fixtures.py b/redesign/name/generate_fixtures.py index 6672c3f66..f9f599bf8 100755 --- a/redesign/name/generate_fixtures.py +++ b/redesign/name/generate_fixtures.py @@ -27,14 +27,19 @@ def output(name, qs): raise # pick all name models directly out of the module -names = [] +objects = [] import redesign.name.models for n in dir(redesign.name.models): if n[:1].upper() == n[:1] and n.endswith("Name"): model = getattr(redesign.name.models, n) if not model._meta.abstract: - names.extend(model.objects.all()) - -output("names", names) + objects.extend(model.objects.all()) + + +import redesign.doc.models # FIXME +objects += redesign.doc.models.StateType.objects.all() +objects += redesign.doc.models.State.objects.all() + +output("names", objects) diff --git a/redesign/name/models.py b/redesign/name/models.py index 1474a288c..f89a01372 100644 --- a/redesign/name/models.py +++ b/redesign/name/models.py @@ -28,16 +28,13 @@ class IesgGroupStateName(NameModel): class RoleName(NameModel): """AD, Chair""" class DocStreamName(NameModel): - """IETF, IAB, IRTF, Independent Submission, Legacy""" + """IETF, IAB, IRTF, ISE, Legacy""" class DocStateName(NameModel): """Active, Expired, RFC, Replaced, Withdrawn""" class DocRelationshipName(NameModel): """Updates, Replaces, Obsoletes, Reviews, ... The relationship is always recorded in one direction. """ -class WgDocStateName(NameModel): - """Not, Candidate, Active, Parked, LastCall, WriteUp, Submitted, - Dead""" class IesgDocStateName(NameModel): """Pub Request, Ad Eval, Expert Review, Last Call Requested, In Last Call, Waiting for Writeup, Waiting for AD Go-Ahead, IESG @@ -51,15 +48,17 @@ class RfcDocStateName(NameModel): class DocTypeName(NameModel): """Draft, Agenda, Minutes, Charter, Discuss, Guideline, Email, Review, Issue, Wiki""" -class DocInfoTagName(NameModel): +class DocTagName(NameModel): """Waiting for Reference, IANA Coordination, Revised ID Needed, - External Party, AD Followup, Point Raised - Writeup Needed""" + External Party, AD Followup, Point Raised - Writeup Needed, ...""" class StdLevelName(NameModel): """Proposed Standard, Draft Standard, Standard, Experimental, Informational, Best Current Practice, Historic, ...""" class IntendedStdLevelName(NameModel): """Standards Track, Experimental, Informational, Best Current Practice, Historic, ...""" +class DocReminderTypeName(NameModel): + "Stream state" class BallotPositionName(NameModel): """ Yes, NoObjection, Abstain, Discuss, Recuse """ class MeetingTypeName(NameModel): diff --git a/redesign/name/proxy.py b/redesign/name/proxy.py index 657e341f1..bca9861d5 100644 --- a/redesign/name/proxy.py +++ b/redesign/name/proxy.py @@ -87,7 +87,7 @@ class IDSubStateManager(TranslatingManager): def all(self): return self.filter(slug__in=['extpty', 'need-rev', 'ad-f-up', 'point']) -class IDSubState(DocInfoTagName): +class IDSubState(DocTagName): objects = IDSubStateManager(dict(pk="order")) def from_object(self, base): @@ -116,3 +116,13 @@ class IDSubState(DocInfoTagName): class Meta: proxy = True + +class AnnotationTagObjectRelationProxy(DocTagName): + objects = TranslatingManager(dict(annotation_tag__name="name")) + + @property + def annotation_tag(self): + return self + + class Meta: + proxy = True diff --git a/redesign/name/utils.py b/redesign/name/utils.py index c4c47db94..6480c8773 100644 --- a/redesign/name/utils.py +++ b/redesign/name/utils.py @@ -1,8 +1,10 @@ -def name(name_class, slug, name, desc="", order=0): +def name(name_class, slug, name, desc="", order=0, **kwargs): # create if it doesn't exist, set name and desc obj, _ = name_class.objects.get_or_create(slug=slug) obj.name = name obj.desc = desc obj.order = order + for k, v in kwargs.iteritems(): + setattr(obj, k, v) obj.save() return obj