Skip to content

Commit 63d919e

Browse files
author
Timothy B. Terriberry
committed
Allow changing the title of a charter document
Fixes ietf-tools#1334 Commit ready for merge - Legacy-Id: 8609
1 parent b74d4e7 commit 63d919e

4 files changed

Lines changed: 110 additions & 0 deletions

File tree

ietf/doc/urls_charter.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
urlpatterns = patterns('',
66
url(r'^state/$', "ietf.doc.views_charter.change_state", name='charter_change_state'),
7+
url(r'^title/$', "ietf.doc.views_charter.change_title", name='charter_change_title'),
78
url(r'^(?P<option>initcharter|recharter|abandon)/$', "ietf.doc.views_charter.change_state", name='charter_startstop_process'),
89
url(r'^telechat/$', "ietf.doc.views_doc.telechat_date", name='charter_telechat_date'),
910
url(r'^notify/$', "ietf.doc.views_doc.edit_notify", name='charter_edit_notify'),

ietf/doc/views_charter.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,60 @@ def state_pk(slug):
224224
),
225225
context_instance=RequestContext(request))
226226

227+
class ChangeTitleForm(forms.Form):
228+
charter_title = forms.CharField(widget=forms.TextInput, label="Charter title", help_text="Enter new charter title", required=True)
229+
message = forms.CharField(widget=forms.Textarea, help_text="Leave blank to change the title without notifying the Secretariat", required=False, label=mark_safe("Message to<br> Secretariat"))
230+
comment = forms.CharField(widget=forms.Textarea, help_text="Optional comment for the charter history", required=False)
231+
def __init__(self, *args, **kwargs):
232+
charter = kwargs.pop('charter')
233+
super(ChangeTitleForm, self).__init__(*args, **kwargs)
234+
charter_title_field = self.fields["charter_title"]
235+
charter_title_field.initial = charter.title;
236+
237+
@login_required
238+
def change_title(request, name, option=None):
239+
"""Change title of charter, notifying parties as necessary and
240+
logging the title as a comment."""
241+
charter = get_object_or_404(Document, type="charter", name=name)
242+
group = charter.group
243+
if not can_manage_group_type(request.user, group.type_id):
244+
return HttpResponseForbidden("You don't have permission to access this view")
245+
login = request.user.person
246+
if request.method == 'POST':
247+
form = ChangeTitleForm(request.POST, charter=charter)
248+
if form.is_valid():
249+
clean = form.cleaned_data
250+
charter_rev = charter.rev
251+
new_title = clean['charter_title']
252+
comment = clean['comment'].rstrip()
253+
message = clean['message']
254+
prev_title = charter.title
255+
if new_title != prev_title:
256+
# Charter title changed
257+
save_document_in_history(charter)
258+
charter.title=new_title
259+
charter.rev = charter_rev
260+
if comment:
261+
c = DocEvent(type="added_comment", doc=charter, by=login)
262+
c.desc = comment
263+
c.save()
264+
charter.time = datetime.datetime.now()
265+
charter.save()
266+
if message:
267+
email_iesg_secretary_re_charter(request, group, "Charter title changed to %s" % new_title, message)
268+
email_state_changed(request, charter, "Title changed to %s." % new_title)
269+
return redirect('doc_view', name=charter.name)
270+
else:
271+
form = ChangeTitleForm(charter=charter)
272+
title = "Change charter title of %s %s" % (group.acronym, group.type.name)
273+
return render_to_response('doc/charter/change_title.html',
274+
dict(form=form,
275+
doc=group.charter,
276+
login=login,
277+
title=title,
278+
),
279+
context_instance=RequestContext(request))
280+
227281
class AdForm(forms.Form):
228282
ad = forms.ModelChoiceField(Person.objects.filter(role__name="ad", role__group__state="active").order_by('name'),
229283
label="Responsible AD", empty_label="(None)", required=True)
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{% extends "base.html" %}
2+
3+
{% block title %}{{ title }}{% endblock %}
4+
5+
{% block morecss %}
6+
form.change-title select {
7+
width: 22em;
8+
}
9+
10+
#id_charter_title, #id_message, #id_comment {
11+
width: 40em;
12+
}
13+
14+
form.change-title .actions {
15+
text-align: right;
16+
padding-top: 10px;
17+
}
18+
{% endblock %}
19+
20+
{% block content %}
21+
<h1>{{ title }}</h1>
22+
23+
<form class="change-title" action="" method="post">{% csrf_token %}
24+
<table>
25+
{% for field in form.visible_fields %}
26+
<tr>
27+
<th>{{ field.label_tag }}</th>
28+
<td>{{ field }}
29+
{% if field.help_text %}<div class="help">{{ field.help_text }}</div>{% endif %}
30+
31+
{{ field.errors }}
32+
</td>
33+
</tr>
34+
{% endfor %}
35+
<tr>
36+
<td colspan="2" class="actions">
37+
<a href="{% url "doc_view" name=doc.name %}">Back</a>
38+
<input type="submit" value="Save and (possibly) notify Secretariat"/>
39+
</td>
40+
</tr>
41+
</table>
42+
</form>
43+
44+
{% endblock %}

ietf/templates/doc/document_charter.html

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,17 @@
2222
</div>
2323

2424
<table id="metatable" width="100%">
25+
<tr>
26+
<td>Title:</td>
27+
<td>
28+
<a
29+
{% if not snapshot and can_manage %}
30+
class="editlink" href="{% url "charter_change_title" name=doc.name %}"
31+
{% endif %}>
32+
{{ doc.title }}
33+
</a>
34+
</td>
35+
</tr>
2536
<tr>
2637
<td>WG State:</td>
2738
<td>{{ group.state.name }}</td>

0 commit comments

Comments
 (0)