Removed code that has been marked unreachable for more than 5 months.
- Legacy-Id: 14472
This commit is contained in:
parent
97206c6eeb
commit
92db803bac
|
@ -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)
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in a new issue