Skip to content
19 changes: 4 additions & 15 deletions ietf/doc/mails.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,14 +104,9 @@ def email_stream_changed(request, doc, old_stream, new_stream, text=""):
url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url()),
cc=cc)

def email_wg_call_for_adoption_issued(request, doc, cfa_duration_weeks=None):
if cfa_duration_weeks is None:
cfa_duration_weeks=2
def email_wg_call_for_adoption_issued(request, doc, end_date):
(to, cc) = gather_address_lists("doc_wg_call_for_adoption_issued", doc=doc)
frm = request.user.person.formatted_email()

end_date = date_today(DEADLINE_TZINFO) + datetime.timedelta(days=7 * cfa_duration_weeks)

subject = f"Call for adoption: {doc.name}-{doc.rev} (Ends {end_date})"

send_mail(
Expand All @@ -125,22 +120,16 @@ def email_wg_call_for_adoption_issued(request, doc, cfa_duration_weeks=None):
subject=subject,
url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url(),
end_date=end_date,
cfa_duration_weeks=cfa_duration_weeks,
wg_list=doc.group.list_email,
),
cc=cc,
)


def email_wg_last_call_issued(request, doc, wglc_duration_weeks=None):
if wglc_duration_weeks is None:
wglc_duration_weeks = 2
def email_wg_last_call_issued(request, doc, end_date):
(to, cc) = gather_address_lists("doc_wg_last_call_issued", doc=doc)
frm = request.user.person.formatted_email()


end_date = date_today(DEADLINE_TZINFO) + datetime.timedelta(days=7 * wglc_duration_weeks)
subject = f"WG Last Call: {doc.name}-{doc.rev} (Ends {end_date})"
subject = f"WG Last Call: {doc.name}-{doc.rev} (Ends {end_date})"

send_mail(
request,
Expand All @@ -153,12 +142,12 @@ def email_wg_last_call_issued(request, doc, wglc_duration_weeks=None):
subject=subject,
url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url(),
end_date=end_date,
wglc_duration_weeks=wglc_duration_weeks,
wg_list=doc.group.list_email,
),
cc=cc,
)


def email_pulled_from_rfc_queue(request, doc, comment, prev_state, next_state):
extra=extra_automation_headers(doc)
addrs = gather_address_lists('doc_pulled_from_rfc_queue',doc=doc)
Expand Down
55 changes: 55 additions & 0 deletions ietf/doc/templatetags/ietf_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -1017,3 +1017,58 @@ def is_in_stream(doc):
elif stream == "editorial":
return True
return False


@register.filter
def is_doc_ietf_adoptable(doc):
return doc.stream_id is None or all(
[
doc.stream_id == "ietf",
doc.get_state_slug("draft-stream-ietf")
not in [
"wg-doc",
"parked",
"dead",
"wg-lc",
"waiting-for-implementation",
"chair-w",
"writeupw",
"sub-pub",
],
doc.get_state_slug("draft") != "rfc",
doc.became_rfc() is None,
]
)


@register.filter
def can_issue_ietf_wg_lc(doc):
return all(
[
doc.stream_id == "ietf",
doc.get_state_slug("draft-stream-ietf")
not in ["wg-cand", "c-adopt", "wg-lc"],
doc.get_state_slug("draft") != "rfc",
doc.became_rfc() is None,
]
)


@register.filter
def can_submit_to_iesg(doc):
return all(
[
doc.stream_id == "ietf",
doc.get_state_slug("draft-iesg") == "idexists",
doc.get_state_slug("draft-stream-ietf") not in ["wg-cand", "c-adopt"],
]
)


@register.filter
def has_had_ietf_wg_lc(doc):
return (
doc.stream_id == "ietf"
and doc.docevent_set.filter(statedocevent__state__slug="wg-lc").exists()
)

Loading
Loading