Merged in [15114] from rjsparks@nostrum.com:

Restored a test that was unintentionally removed. Removed unused templates. Related to #2513.

Merged in [15113] from rjsparks@nostrum.com:
Removed the already disabled \'Make RFC\' functionality from /secr/drafts. Fixes #2513.
    
Merged in [15112] from rjsparks@nostrum.com:
Removed the \'announce\' functionality from /secr/drafts. Addresses part of #2513.
 - Legacy-Id: 15121
Note: SVN reference [15112] has been migrated to Git commit 82681b28dd

Note: SVN reference [15113] has been migrated to Git commit 7d2ac8306e

Note: SVN reference [15114] has been migrated to Git commit f64bf957f3
This commit is contained in:
Henrik Levkowetz 2018-05-04 10:24:09 +00:00
commit b768c59069
8 changed files with 12 additions and 197 deletions

View file

@ -1,7 +1,6 @@
import datetime
import glob
import os
import time
from django.conf import settings
from django.template.loader import render_to_string
@ -173,13 +172,11 @@ def get_fullcc_list(draft):
def get_email_initial(draft, action=None, input=None):
"""
Takes a draft object, a string representing the email type:
(extend,new,replace,resurrect,revision,update,withdraw) and
a dictonary of the action form input data (for use with replace, update, extend).
(extend,resurrect,revision,update,withdraw) and
a dictonary of the action form input data (for use with update, extend).
Returns a dictionary containing initial field values for a email notification.
The dictionary consists of to, cc, subject, body.
NOTE: for type=new we are listing all authors in the message body to match legacy app.
It appears datatracker abbreviates the list with "et al".
"""
expiration_date = (datetime.date.today() + datetime.timedelta(185)).strftime('%B %d, %Y')
new_revision = str(int(draft.rev)+1).zfill(2)
@ -196,33 +193,6 @@ def get_email_initial(draft, action=None, input=None):
data['body'] = render_to_string('drafts/message_extend.txt', context)
data['expiration_date'] = input['expiration_date']
elif action == 'new':
# if the ID belongs to a group other than "none" add line to message body
if draft.group.type.slug == 'wg':
wg_message = 'This draft is a work item of the %s Working Group of the IETF.' % draft.group.name
else:
wg_message = ''
context = {'wg_message':wg_message,
'draft':draft,
'authors':get_abbr_authors(draft),
'revision_date':draft.latest_event(type='new_revision').time.date(),
'timestamp':time.strftime("%Y-%m-%d%H%M%S", time.localtime())}
data['to'] = 'i-d-announce@ietf.org'
data['cc'] = draft.group.list_email
data['subject'] = 'I-D Action: %s' % (curr_filename)
data['body'] = render_to_string('drafts/message_new.txt', context)
elif action == 'replace':
'''
input['replaced'] is a DocAlias
input['replaced_by'] is a Document
'''
context = {'doc':input['replaced'],'replaced_by':input['replaced_by']}
data['subject'] = 'Replacement of %s with %s' % (input['replaced'],input['replaced_by'])
data['body'] = render_to_string('drafts/message_replace.txt', context)
data['replaced'] = input['replaced']
data['replaced_by'] = input['replaced_by']
elif action == 'resurrect':
last_revision = get_last_revision(draft.name)
last_filename = draft.name + '-' + last_revision + '.txt'

View file

@ -74,13 +74,6 @@ class SecrDraftsTestCase(TestCase):
response = self.client.post(url,post)
self.assertEqual(response.status_code, 302)
def test_announce(self):
draft = make_test_data()
url = urlreverse('ietf.secr.drafts.views.announce', kwargs={'id':draft.name})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 302)
def test_approvals(self):
make_test_data()
Preapproval.objects.create(name='draft-dummy',

View file

@ -10,7 +10,6 @@ urlpatterns = [
url(r'^nudge-report/$', views.nudge_report),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/$', views.view),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/abstract/$', views.abstract),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/announce/$', views.announce),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/authors/$', views.authors),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/author_delete/(?P<oid>\d{1,6})$', views.author_delete),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/confirm/$', views.confirm),
@ -18,7 +17,6 @@ urlpatterns = [
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/edit/$', views.edit),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/extend/$', views.extend),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/email/$', views.email),
# url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/makerfc/$', views.makerfc), # Not used any more
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/revision/$', views.revision),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/update/$', views.update),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/withdraw/$', views.withdraw),

View file

@ -480,31 +480,6 @@ def add(request):
'upload_form': upload_form},
)
@role_required('Secretariat')
def announce(request, id):
'''
Schedule announcement of new Internet-Draft to I-D Announce list
**Templates:**
* none
**Template Variables:**
* none
'''
draft = get_object_or_404(Document, name=id)
email_form = EmailForm(get_email_initial(draft,action='new'))
announcement_from_form(email_form.data,
by=request.user.person,
from_val='Internet-Drafts@ietf.org',
content_type='Multipart/Mixed; Boundary="NextPart"')
messages.success(request, 'Announcement scheduled successfully!')
return redirect('ietf.secr.drafts.views.view', id=id)
@role_required('Secretariat')
def approvals(request):
'''
@ -771,85 +746,6 @@ def extend(request, id):
'draft': draft},
)
# @role_required('Secretariat')
# def makerfc(request, id):
# '''
# Make RFC out of Internet Draft
#
# **Templates:**
#
# * ``drafts/makerfc.html``
#
# **Template Variables:**
#
# * draft
# '''
# from ietf.utils import log
# log.unreachable("2017-07-08")
#
# draft = get_object_or_404(Document, name=id)
#
# # raise error if draft intended standard is empty
# if not draft.intended_std_level:
# messages.error(request, 'ERROR: intended RFC status is not set')
# return redirect('ietf.secr.drafts.views.view', id=id)
#
# ObsFormset = formset_factory(RfcObsoletesForm, extra=15, max_num=15)
# if request.method == 'POST':
# button_text = request.POST.get('submit', '')
# if button_text == 'Cancel':
# return redirect('ietf.secr.drafts.views.view', id=id)
#
# form = RfcModelForm(request.POST, instance=draft)
# obs_formset = ObsFormset(request.POST, prefix='obs')
# if form.is_valid() and obs_formset.is_valid():
#
# # TODO
# archive_draft_files(draft.name + '-' + draft.rev)
#
# rfc = form.save(commit=False)
#
# # create DocEvent
# e = DocEvent.objects.create(type='published_rfc',
# by=request.user.person,
# doc=rfc,
# rev=draft.rev,
# desc="Published RFC")
#
# # change state
# draft.set_state(State.objects.get(type="draft", slug="rfc"))
#
# # handle rfc_obsoletes formset
# # NOTE: because we are just adding RFCs in this form we don't need to worry
# # about the previous state of the obs forms
# for obs_form in obs_formset.forms:
# if obs_form.has_changed():
# rfc_acted_on = obs_form.cleaned_data.get('rfc','')
# target = DocAlias.objects.get(name="rfc%s" % rfc_acted_on)
# relation = obs_form.cleaned_data.get('relation','')
# if rfc and relation:
# # form validation ensures the rfc_acted_on exists, can safely use get
# RelatedDocument.objects.create(source=draft,
# target=target,
# relationship=DocRelationshipName.objects.get(slug=relation))
#
# rfc.save_with_history([e])
#
# messages.success(request, 'RFC created successfully!')
# return redirect('ietf.secr.drafts.views.view', id=id)
# else:
# # assert False, (form.errors, obs_formset.errors)
# pass
# else:
# form = RfcModelForm(instance=draft)
# obs_formset = ObsFormset(prefix='obs')
#
# return render(request, 'drafts/makerfc.html', {
# 'form': form,
# 'obs_formset': obs_formset,
# 'draft': draft},
# )
@role_required('Secretariat')
def nudge_report(request):
'''

View file

@ -1,36 +0,0 @@
--NextPart
A new Internet-Draft is available from the on-line Internet-Drafts directories.
{{ wg_message }}
Title : {{ draft.title }}
Author(s) : {{ authors }}
Filename : {{ draft.name }}
Pages : {{ draft.pages }}
Date : {{ revision_date }}
{% autoescape off %}
{{ draft.abstract }}
{% endautoescape %}
A URL for this Internet-Draft is:
https://www.ietf.org/internet-drafts/{{ draft.filename_with_rev }}
Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/
Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.
--NextPart
Content-Type: Message/External-body;
name="{{ draft.name }}";
site="ftp.ietf.org";
access-type="anon-ftp";
directory="internet-drafts"
Content-Type: text/plain
Content-ID: <{{ timestamp }}.I-D@ietf.org>
--NextPart--

View file

@ -1,4 +0,0 @@
As you requested, {{ doc }} has been marked as replaced by
{{ replaced_by }} in the IETF Internet-Drafts database.
IETF Secretariat.

View file

@ -85,8 +85,6 @@
<li><button {% if is_expired or is_withdrawn %}{% else %}disabled="disabled"{% endif %}onclick="window.location='{% url "ietf.secr.drafts.views.email" id=draft.name %}?action=resurrect'">Resurrect</button></li>
<li><button {% if is_active %}{% else %}disabled="disabled"{% endif %}onclick="window.location='extend/'">Extend Expiry</button></li>
<li><button {% if is_active %}{% else %}disabled="disabled"{% endif %}onclick="window.location='withdraw/'">Withdraw</button></li>
<li><button {% if is_active %}{% else %}disabled="disabled"{% endif %}onclick="window.location='announce/'">Announcement</button></li>
<li><button {% if is_active %}{% else %}disabled="disabled"{% endif %}onclick="window.location='makerfc/'">Make RFC</button></li>
</ul>
</div> <!-- inline-related -->
</div> <!-- draft-view-col2 -->

Binary file not shown.