diff --git a/ietf/secr/drafts/email.py b/ietf/secr/drafts/email.py index 26c787032..64e3e113b 100644 --- a/ietf/secr/drafts/email.py +++ b/ietf/secr/drafts/email.py @@ -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' diff --git a/ietf/secr/drafts/tests_views.py b/ietf/secr/drafts/tests_views.py index ef34ae45d..9f9961818 100644 --- a/ietf/secr/drafts/tests_views.py +++ b/ietf/secr/drafts/tests_views.py @@ -74,23 +74,16 @@ 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', - by=Person.objects.get(name="(System)")) - url = urlreverse('ietf.secr.drafts.views.approvals') - self.client.login(username="secretary", password="secretary+password") - response = self.client.get(url) - self.assertEqual(response.status_code, 200) - self.assertTrue('draft-dummy' in response.content) - + def test_approvals(self): + make_test_data() + Preapproval.objects.create(name='draft-dummy', + by=Person.objects.get(name="(System)")) + url = urlreverse('ietf.secr.drafts.views.approvals') + self.client.login(username="secretary", password="secretary+password") + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + self.assertTrue('draft-dummy' in response.content) + def test_edit(self): draft = make_test_data() url = urlreverse('ietf.secr.drafts.views.edit', kwargs={'id':draft.name}) diff --git a/ietf/secr/drafts/urls.py b/ietf/secr/drafts/urls.py index 196cbb73a..4364667ba 100644 --- a/ietf/secr/drafts/urls.py +++ b/ietf/secr/drafts/urls.py @@ -10,7 +10,6 @@ urlpatterns = [ url(r'^nudge-report/$', views.nudge_report), url(r'^(?P[A-Za-z0-9._\-\+]+)/$', views.view), url(r'^(?P[A-Za-z0-9._\-\+]+)/abstract/$', views.abstract), - url(r'^(?P[A-Za-z0-9._\-\+]+)/announce/$', views.announce), url(r'^(?P[A-Za-z0-9._\-\+]+)/authors/$', views.authors), url(r'^(?P[A-Za-z0-9._\-\+]+)/author_delete/(?P\d{1,6})$', views.author_delete), url(r'^(?P[A-Za-z0-9._\-\+]+)/confirm/$', views.confirm), @@ -18,7 +17,6 @@ urlpatterns = [ url(r'^(?P[A-Za-z0-9._\-\+]+)/edit/$', views.edit), url(r'^(?P[A-Za-z0-9._\-\+]+)/extend/$', views.extend), url(r'^(?P[A-Za-z0-9._\-\+]+)/email/$', views.email), - # url(r'^(?P[A-Za-z0-9._\-\+]+)/makerfc/$', views.makerfc), # Not used any more url(r'^(?P[A-Za-z0-9._\-\+]+)/revision/$', views.revision), url(r'^(?P[A-Za-z0-9._\-\+]+)/update/$', views.update), url(r'^(?P[A-Za-z0-9._\-\+]+)/withdraw/$', views.withdraw), diff --git a/ietf/secr/drafts/views.py b/ietf/secr/drafts/views.py index 86fe7b5a8..84184874e 100644 --- a/ietf/secr/drafts/views.py +++ b/ietf/secr/drafts/views.py @@ -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): ''' diff --git a/ietf/secr/templates/drafts/message_new.txt b/ietf/secr/templates/drafts/message_new.txt deleted file mode 100644 index b21e2d6ea..000000000 --- a/ietf/secr/templates/drafts/message_new.txt +++ /dev/null @@ -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-- diff --git a/ietf/secr/templates/drafts/message_replace.txt b/ietf/secr/templates/drafts/message_replace.txt deleted file mode 100644 index c4a785161..000000000 --- a/ietf/secr/templates/drafts/message_replace.txt +++ /dev/null @@ -1,4 +0,0 @@ -As you requested, {{ doc }} has been marked as replaced by -{{ replaced_by }} in the IETF Internet-Drafts database. - -IETF Secretariat. diff --git a/ietf/secr/templates/drafts/view.html b/ietf/secr/templates/drafts/view.html index bd8bcd5a1..4a3782b51 100644 --- a/ietf/secr/templates/drafts/view.html +++ b/ietf/secr/templates/drafts/view.html @@ -85,8 +85,6 @@
  • -
  • -
  • diff --git a/release-coverage.json.gz b/release-coverage.json.gz index 4edbeff9c..b65a3ab5d 100644 Binary files a/release-coverage.json.gz and b/release-coverage.json.gz differ