Removed code that has been marked unreachable for more than 5 months.

- Legacy-Id: 14472
This commit is contained in:
Henrik Levkowetz 2017-12-29 19:48:18 +00:00
parent 97206c6eeb
commit 92db803bac
5 changed files with 164 additions and 166 deletions

View file

@ -5,7 +5,7 @@ import os
from django import forms
from ietf.doc.models import Document, DocAlias, State
from ietf.name.models import IntendedStdLevelName, DocRelationshipName
from ietf.name.models import IntendedStdLevelName
from ietf.group.models import Group
from ietf.person.models import Person, Email
from ietf.person.fields import SearchableEmailField
@ -276,55 +276,55 @@ class RevisionModelForm(forms.ModelForm):
self.fields['title'].widget=forms.Textarea()
self.fields['pages'].label='Number of Pages'
class RfcModelForm(forms.ModelForm):
rfc_number = forms.IntegerField()
rfc_published_date = forms.DateField(initial=datetime.datetime.now)
group = GroupModelChoiceField(required=True)
# class RfcModelForm(forms.ModelForm):
# rfc_number = forms.IntegerField()
# rfc_published_date = forms.DateField(initial=datetime.datetime.now)
# group = GroupModelChoiceField(required=True)
#
# class Meta:
# model = Document
# fields = ('title','group','pages','std_level','internal_comments')
#
# # use this method to set attrs which keeps other meta info from model.
# def __init__(self, *args, **kwargs):
# super(RfcModelForm, self).__init__(*args, **kwargs)
# self.fields['title'].widget = forms.Textarea()
# self.fields['std_level'].required = True
#
# def save(self, force_insert=False, force_update=False, commit=False):
# obj = super(RfcModelForm, self).save(commit=False)
#
# # create DocAlias
# DocAlias.objects.create(document=self.instance,name="rfc%d" % self.cleaned_data['rfc_number'])
#
# return obj
#
# def clean_rfc_number(self):
# rfc_number = self.cleaned_data['rfc_number']
# if DocAlias.objects.filter(name='rfc' + str(rfc_number)):
# raise forms.ValidationError("RFC %d already exists" % rfc_number)
# return rfc_number
class Meta:
model = Document
fields = ('title','group','pages','std_level','internal_comments')
# use this method to set attrs which keeps other meta info from model.
def __init__(self, *args, **kwargs):
super(RfcModelForm, self).__init__(*args, **kwargs)
self.fields['title'].widget = forms.Textarea()
self.fields['std_level'].required = True
def save(self, force_insert=False, force_update=False, commit=False):
obj = super(RfcModelForm, self).save(commit=False)
# create DocAlias
DocAlias.objects.create(document=self.instance,name="rfc%d" % self.cleaned_data['rfc_number'])
return obj
def clean_rfc_number(self):
rfc_number = self.cleaned_data['rfc_number']
if DocAlias.objects.filter(name='rfc' + str(rfc_number)):
raise forms.ValidationError("RFC %d already exists" % rfc_number)
return rfc_number
class RfcObsoletesForm(forms.Form):
relation = forms.ModelChoiceField(queryset=DocRelationshipName.objects.filter(slug__in=('updates','obs')),required=False)
rfc = forms.IntegerField(required=False)
# ensure that RFC exists
def clean_rfc(self):
rfc = self.cleaned_data.get('rfc','')
if rfc:
if not Document.objects.filter(docalias__name="rfc%s" % rfc):
raise forms.ValidationError("RFC does not exist")
return rfc
def clean(self):
super(RfcObsoletesForm, self).clean()
cleaned_data = self.cleaned_data
relation = cleaned_data.get('relation','')
rfc = cleaned_data.get('rfc','')
if (relation and not rfc) or (rfc and not relation):
raise forms.ValidationError('You must select a relation and enter RFC #')
return cleaned_data
# class RfcObsoletesForm(forms.Form):
# relation = forms.ModelChoiceField(queryset=DocRelationshipName.objects.filter(slug__in=('updates','obs')),required=False)
# rfc = forms.IntegerField(required=False)
#
# # ensure that RFC exists
# def clean_rfc(self):
# rfc = self.cleaned_data.get('rfc','')
# if rfc:
# if not Document.objects.filter(docalias__name="rfc%s" % rfc):
# raise forms.ValidationError("RFC does not exist")
# return rfc
#
# def clean(self):
# super(RfcObsoletesForm, self).clean()
# cleaned_data = self.cleaned_data
# relation = cleaned_data.get('relation','')
# rfc = cleaned_data.get('rfc','')
# if (relation and not rfc) or (rfc and not relation):
# raise forms.ValidationError('You must select a relation and enter RFC #')
# return cleaned_data
class SearchForm(forms.Form):
intended_std_level = forms.ModelChoiceField(queryset=IntendedStdLevelName.objects,label="Intended Status",required=False)

View file

@ -18,7 +18,7 @@ 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),
# url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/makerfc/$', views.makerfc), # Not used any more
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/replace/$', views.replace),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/revision/$', views.revision),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/update/$', views.update),

View file

@ -7,7 +7,6 @@ from dateutil.parser import parse
from django.conf import settings
from django.contrib import messages
from django.db.models import Max
from django.forms.formsets import formset_factory
from django.shortcuts import render, get_object_or_404, redirect
from django.urls import reverse
from django.utils.http import urlencode
@ -21,8 +20,8 @@ from ietf.name.models import StreamName
from ietf.person.models import Person
from ietf.secr.drafts.email import announcement_from_form, get_email_initial
from ietf.secr.drafts.forms import ( AddModelForm, AuthorForm, BaseRevisionModelForm, EditModelForm,
EmailForm, ExtendForm, ReplaceForm, RevisionModelForm, RfcModelForm,
RfcObsoletesForm, SearchForm, UploadForm, WithdrawForm )
EmailForm, ExtendForm, ReplaceForm, RevisionModelForm,
SearchForm, UploadForm, WithdrawForm )
from ietf.secr.utils.ams_utils import get_base
from ietf.secr.utils.document import get_rfc_num, get_start_date
from ietf.submit.models import Submission, Preapproval, DraftSubmissionStateName, SubmissionEvent
@ -804,84 +803,84 @@ 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 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

@ -5,7 +5,7 @@ from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.main),
url(r'^add/$', views.add),
url(r'^ajax/get-times/(?P<meeting_id>\d{1,6})/(?P<day>\d)/$', views.ajax_get_times),
# url(r'^ajax/get-times/(?P<meeting_id>\d{1,6})/(?P<day>\d)/$', views.ajax_get_times), # Not in use
url(r'^blue_sheet/$', views.blue_sheet_redirect),
url(r'^(?P<meeting_id>\d{1,6})/$', views.view),
url(r'^(?P<meeting_id>\d{1,6})/blue_sheet/$', views.blue_sheet),
@ -21,7 +21,7 @@ urlpatterns = [
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/$', views.times),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/delete/(?P<time>[0-9\:]+)/$', views.times_delete),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/edit/(?P<time>[0-9\:]+)/$', views.times_edit),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/unschedule/(?P<session_id>\d{1,6})/$', views.unschedule),
# url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/unschedule/(?P<session_id>\d{1,6})/$', views.unschedule), # Not in use
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/(?P<acronym>[-a-z0-9]+)/schedule/$', views.schedule),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/(?P<session_id>\d{1,6})/edit/$', views.session_edit),
url(r'^(?P<meeting_id>\d{1,6})/(?P<acronym>[-a-z0-9]+)/remove/$', views.remove_session),

View file

@ -1,5 +1,4 @@
import datetime
import json
import os
import time
@ -8,7 +7,6 @@ from django.contrib import messages
from django.db.models import Max
from django.forms.formsets import formset_factory
from django.forms.models import inlineformset_factory
from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404, redirect
from django.utils.functional import curry
@ -237,22 +235,23 @@ def send_notifications(meeting, groups, person):
# -------------------------------------------------
# AJAX Functions
# -------------------------------------------------
def ajax_get_times(request, meeting_id, day):
'''
Ajax function to get timeslot times for a given day.
returns JSON format response: [{id:start_time, value:start_time-end_time},...]
'''
# TODO strip duplicates if there are any
from ietf.utils import log
log.unreachable("2017-07-08")
results=[]
room = Room.objects.filter(meeting__number=meeting_id)[0]
slots = TimeSlot.objects.filter(meeting__number=meeting_id,time__week_day=day,location=room).order_by('time')
for slot in slots:
d = {'id': slot.time.strftime('%H%M'), 'value': '%s-%s' % (slot.time.strftime('%H%M'), slot.end_time().strftime('%H%M'))}
results.append(d)
# def ajax_get_times(request, meeting_id, day):
# '''
# Ajax function to get timeslot times for a given day.
# returns JSON format response: [{id:start_time, value:start_time-end_time},...]
# '''
# # TODO strip duplicates if there are any
# from ietf.utils import log
# log.unreachable("2017-07-08")
# results=[]
# room = Room.objects.filter(meeting__number=meeting_id)[0]
# slots = TimeSlot.objects.filter(meeting__number=meeting_id,time__week_day=day,location=room).order_by('time')
# for slot in slots:
# d = {'id': slot.time.strftime('%H%M'), 'value': '%s-%s' % (slot.time.strftime('%H%M'), slot.end_time().strftime('%H%M'))}
# results.append(d)
#
# return HttpResponse(json.dumps(results), content_type='application/javascript')
return HttpResponse(json.dumps(results), content_type='application/javascript')
# --------------------------------------------------
# STANDARD VIEW FUNCTIONS
# --------------------------------------------------
@ -1012,22 +1011,22 @@ def times_delete(request, meeting_id, schedule_name, time):
'extra': 'Any sessions assigned to this timeslot will be unscheduled'
})
@role_required('Secretariat')
def unschedule(request, meeting_id, schedule_name, session_id):
'''
Unschedule given session object
'''
from ietf.utils import log
log.unreachable("2017-07-08")
meeting = get_object_or_404(Meeting, number=meeting_id)
session = get_object_or_404(Session, id=session_id)
session.timeslotassignments.filter(schedule=meeting.agenda).delete()
# TODO: change session state?
messages.success(request, 'Session unscheduled')
return redirect('ietf.secr.meetings.views.select_group', meeting_id=meeting_id, schedule_name=schedule_name)
# @role_required('Secretariat')
# def unschedule(request, meeting_id, schedule_name, session_id):
# '''
# Unschedule given session object
# '''
# from ietf.utils import log
# log.unreachable("2017-07-08")
# meeting = get_object_or_404(Meeting, number=meeting_id)
# session = get_object_or_404(Session, id=session_id)
#
# session.timeslotassignments.filter(schedule=meeting.agenda).delete()
#
# # TODO: change session state?
#
# messages.success(request, 'Session unscheduled')
# return redirect('ietf.secr.meetings.views.select_group', meeting_id=meeting_id, schedule_name=schedule_name)
@role_required('Secretariat')
def view(request, meeting_id):