Skip to content

Commit 6a5a5c2

Browse files
committed
Merged [4811] from rjsparks@nostrum.com:
Cleaned up setting wg state, leaving events, and facilitated creating an initial charter for an existing unchartered group - Legacy-Id: 4940
1 parent d0214d3 commit 6a5a5c2

4 files changed

Lines changed: 46 additions & 24 deletions

File tree

ietf/templates/wginfo/wg_charterREDESIGN.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
{% else %}
7373
none
7474
{% if user|has_role:"Area Director,Secretariat" %}
75-
- <a href="{% url wgcharter.views.submit acronym=wg.acronym %}">Submit Charter</a>
75+
- <a href="{% url wginfo.edit.submit_initial_charter acronym=wg.acronym %}">Submit Charter</a>
7676
{% endif %}
7777
{% endif %}
7878
</td>

ietf/wgcharter/views.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,19 @@ def change_state(request, name, option=None):
7373
if "-" not in charter_rev:
7474
charter_rev = charter_rev + "-00"
7575
elif option == "abandon":
76-
if wg.state_id in ("proposed","bof","unknown"):
76+
oldstate = wg.state_id
77+
if oldstate in ("proposed","bof","unknown"):
7778
charter_state = State.objects.get(type="charter", slug="notrev")
7879
#TODO : set an abandoned state and leave some comments here
80+
wg.state=GroupStateName.objects.get(slug='abandon')
81+
wg.save()
82+
e = ChangeStateGroupEvent(group=wg, type="changed_state")
83+
e.time = wg.time
84+
e.by = login
85+
e.state_id = clean["state"].slug
86+
e.desc = "Group state changed to %s from %s" % clean["state"].name,oldstate
87+
e.save()
88+
7989
else:
8090
charter_state = State.objects.get(type="charter", slug="approved")
8191
charter_rev = approved_revision(charter.rev)

ietf/wginfo/edit.py

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,37 @@ def format_urls(urls, fs="\n"):
104104
else:
105105
res.append(u.url)
106106
return fs.join(res)
107+
108+
def get_or_create_initial_charter(wg):
109+
try:
110+
charter = Document.objects.get(docalias__name="charter-ietf-%s" % wg.acronym)
111+
except Document.DoesNotExist:
112+
charter = Document(
113+
name="charter-ietf-" + wg.acronym,
114+
type_id="charter",
115+
title=wg.name,
116+
group=wg,
117+
abstract=wg.name,
118+
rev="00-00",
119+
)
120+
charter.save()
121+
charter.set_state(State.objects.get(type="charter", slug="notrev"))
122+
123+
# Create an alias as well
124+
DocAlias.objects.create(
125+
name=charter.name,
126+
document=charter
127+
)
128+
129+
return charter
130+
131+
@role_required('Area Director', 'Secretariat')
132+
def submit_initial_charter(request, acronym=None):
133+
wg = get_object_or_404(Group, acronym=acronym)
134+
if not wg.charter:
135+
wg.charter = get_or_create_initial_charter(wg)
136+
wg.save()
137+
return redirect('charter_submit', name=wg.charter.name, option="initcharter")
107138

108139
@role_required('Area Director', 'Secretariat')
109140
def edit(request, acronym=None, action="edit"):
@@ -141,34 +172,14 @@ def edit(request, acronym=None, action="edit"):
141172
e.time = wg.time
142173
e.by = login
143174
e.state_id = clean["state"].slug
144-
e.desc = clean["state"].name
175+
e.desc = "Group created in state %s" % clean["state"].name
145176
e.save()
146177
else:
147178
save_group_in_history(wg)
148179

149180

150181
if action=="charter" and not wg.charter: # make sure we have a charter
151-
try:
152-
charter = Document.objects.get(docalias__name="charter-ietf-%s" % wg.acronym)
153-
except Document.DoesNotExist:
154-
charter = Document(
155-
name="charter-ietf-" + wg.acronym,
156-
type_id="charter",
157-
title=wg.name,
158-
group=wg,
159-
abstract=wg.name,
160-
rev="00-00",
161-
)
162-
charter.save()
163-
charter.set_state(State.objects.get(type="charter", slug="notrev"))
164-
165-
# Create an alias as well
166-
DocAlias.objects.create(
167-
name=charter.name,
168-
document=charter
169-
)
170-
171-
wg.charter = charter
182+
wg.charter = get_or_create_initial_charter(wg)
172183

173184
changes = []
174185

ietf/wginfo/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
(r'^(?P<acronym>[A-Za-z0-9-]+)/charter/', include('ietf.wgcharter.urls')),
2525
(r'^(?P<acronym>[a-zA-Z0-9-]+)/history/', views.history),
2626
(r'^(?P<acronym>[a-zA-Z0-9-]+)/edit/', edit.edit, {'action': "edit"}, "wg_edit"),
27+
(r'^(?P<acronym>[a-zA-Z0-9-]+)/init-charter/', edit.submit_initial_charter, None, "wg_init_charter"),
2728
(r'^(?P<acronym>[a-zA-Z0-9-]+)/conclude/', edit.conclude, None, "wg_conclude"),
2829
(r'^(?P<acronym>[^/]+)/management/', include('ietf.wgchairs.urls')),
2930

0 commit comments

Comments
 (0)