Skip to content

Commit 22748ac

Browse files
committed
add warning to group edit, use datatracker to manage groups
- Legacy-Id: 5960
1 parent 1dd5902 commit 22748ac

1 file changed

Lines changed: 51 additions & 49 deletions

File tree

ietf/secr/groups/views.py

Lines changed: 51 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def add_legacy_fields(group):
3737
query = GroupEvent.objects.filter(group=group, type="changed_state").order_by('time')
3838
proposed = query.filter(changestategroupevent__state="proposed")
3939
meeting = get_current_meeting()
40-
40+
4141
if proposed:
4242
group.proposed_date = proposed[0].time
4343
active = query.filter(changestategroupevent__state="active")
@@ -46,27 +46,27 @@ def add_legacy_fields(group):
4646
concluded = query.filter(changestategroupevent__state="conclude")
4747
if concluded:
4848
group.concluded_date = concluded[0].time
49-
49+
5050
if group.session_set.filter(meeting__number=meeting.number):
5151
group.meeting_scheduled = 'YES'
5252
else:
5353
group.meeting_scheduled = 'NO'
54-
54+
5555
group.chairs = group.role_set.filter(name="chair")
5656
group.techadvisors = group.role_set.filter(name="techadv")
5757
group.editors = group.role_set.filter(name="editor")
5858
group.secretaries = group.role_set.filter(name="secretaries")
59-
59+
6060
#fill_in_charter_info(group)
61-
61+
6262
#--------------------------------------------------
6363
# AJAX Functions
6464
# -------------------------------------------------
6565
'''
6666
def get_ads(request):
6767
""" AJAX function which takes a URL parameter, "area" and returns the area directors
68-
in the form of a list of dictionaries with "id" and "value" keys(in json format).
69-
Used to populate select options.
68+
in the form of a list of dictionaries with "id" and "value" keys(in json format).
69+
Used to populate select options.
7070
"""
7171
7272
results=[]
@@ -83,7 +83,7 @@ def get_ads(request):
8383
# -------------------------------------------------
8484

8585
def add(request):
86-
'''
86+
'''
8787
Add a new IETF or IRTF Group
8888
8989
**Templates:**
@@ -119,11 +119,11 @@ def add(request):
119119
by=request.user.get_profile(),
120120
state=group.state,
121121
desc='Started group')
122-
122+
123123
messages.success(request, 'The Group was created successfully!')
124124
url = reverse('groups_view', kwargs={'acronym':group.acronym})
125125
return HttpResponseRedirect(url)
126-
126+
127127
else:
128128
form = GroupModelForm(initial={'state':'active','type':'wg'})
129129
awp_formset = AWPFormSet(prefix='awp')
@@ -150,17 +150,17 @@ def blue_dot(request):
150150
entry = {'name':'%s, %s' % (parts[3], parts[1]),
151151
'groups': ', '.join(groups)}
152152
chairs.append(entry)
153-
153+
154154
# sort the list
155155
sorted_chairs = sorted(chairs, key = lambda a: a['name'])
156-
156+
157157
return render_to_response('groups/blue_dot_report.txt', {
158158
'chairs':sorted_chairs},
159159
RequestContext(request, {}), mimetype="text/plain",
160160
)
161-
161+
162162
def charter(request, acronym):
163-
"""
163+
"""
164164
View Group Charter
165165
166166
**Templates:**
@@ -179,15 +179,15 @@ def charter(request, acronym):
179179
charter_text = get_charter_text(group)
180180
else:
181181
charter_text = ''
182-
182+
183183
return render_to_response('groups/charter.html', {
184184
'group': group,
185185
'charter_text': charter_text},
186186
RequestContext(request, {}),
187187
)
188188

189189
def delete_role(request, acronym, id):
190-
"""
190+
"""
191191
Handle deleting roles for groups (chair, editor, advisor, secretary)
192192
193193
**Templates:**
@@ -199,18 +199,18 @@ def delete_role(request, acronym, id):
199199
"""
200200
group = get_object_or_404(Group, acronym=acronym)
201201
role = get_object_or_404(Role, id=id)
202-
202+
203203
# save group
204204
save_group_in_history(group)
205-
205+
206206
role.delete()
207-
207+
208208
messages.success(request, 'The entry was deleted successfully')
209209
url = reverse('groups_people', kwargs={'acronym':acronym})
210210
return HttpResponseRedirect(url)
211211

212212
def edit(request, acronym):
213-
"""
213+
"""
214214
Edit Group details
215215
216216
**Templates:**
@@ -235,16 +235,16 @@ def edit(request, acronym):
235235
form = GroupModelForm(request.POST, instance=group)
236236
awp_formset = AWPFormSet(request.POST, instance=group)
237237
if form.is_valid() and awp_formset.is_valid():
238-
238+
239239
awp_formset.save()
240240
if form.changed_data:
241241
state = form.cleaned_data['state']
242-
242+
243243
# save group
244244
save_group_in_history(group)
245-
245+
246246
form.save()
247-
247+
248248
# create appropriate GroupEvent
249249
if 'state' in form.changed_data:
250250
if state.name == 'Active':
@@ -257,27 +257,29 @@ def edit(request, acronym):
257257
state=state,
258258
desc=desc)
259259
form.changed_data.remove('state')
260-
260+
261261
# if anything else was changed
262262
if form.changed_data:
263263
GroupEvent.objects.create(group=group,
264264
type='info_changed',
265265
by=request.user.get_profile(),
266266
desc='Info Changed')
267-
267+
268268
# if the acronym was changed we'll want to redirect using the new acronym below
269269
if 'acronym' in form.changed_data:
270270
acronym = form.cleaned_data['acronym']
271-
271+
272272
messages.success(request, 'The Group was changed successfully')
273-
273+
274274
url = reverse('groups_view', kwargs={'acronym':acronym})
275275
return HttpResponseRedirect(url)
276-
276+
277277
else:
278278
form = GroupModelForm(instance=group)
279279
awp_formset = AWPFormSet(instance=group)
280280

281+
messages.warning(request, "WARNING: don't use this tool to change group names. Use Datatracker when possible.")
282+
281283
return render_to_response('groups/edit.html', {
282284
'group': group,
283285
'awp_formset': awp_formset,
@@ -286,7 +288,7 @@ def edit(request, acronym):
286288
)
287289

288290
def edit_gm(request, acronym):
289-
"""
291+
"""
290292
Edit IETF Group Goal and Milestone details
291293
292294
**Templates:**
@@ -295,7 +297,7 @@ def edit_gm(request, acronym):
295297
296298
**Template Variables:**
297299
298-
* group, formset
300+
* group, formset
299301
300302
"""
301303

@@ -316,15 +318,15 @@ def edit_gm(request, acronym):
316318
return HttpResponseRedirect(url)
317319
else:
318320
formset = GMFormset(instance=group, prefix='goalmilestone')
319-
321+
320322
return render_to_response('groups/edit_gm.html', {
321323
'group': group,
322324
'formset': formset},
323325
RequestContext(request, {}),
324326
)
325327

326328
def people(request, acronym):
327-
"""
329+
"""
328330
Edit Group Roles (Chairs, Secretary, etc)
329331
330332
**Templates:**
@@ -338,18 +340,18 @@ def people(request, acronym):
338340
"""
339341

340342
group = get_object_or_404(Group, acronym=acronym)
341-
343+
342344
if request.method == 'POST':
343345
# we need to pass group for form validation
344346
form = RoleForm(request.POST,group=group)
345347
if form.is_valid():
346348
name = form.cleaned_data['name']
347349
person = form.cleaned_data['person']
348350
email = form.cleaned_data['email']
349-
351+
350352
# save group
351353
save_group_in_history(group)
352-
354+
353355
Role.objects.create(name=name,
354356
person=person,
355357
email=email,
@@ -368,7 +370,7 @@ def people(request, acronym):
368370
)
369371

370372
def search(request):
371-
"""
373+
"""
372374
Search IETF Groups
373375
374376
**Templates:**
@@ -386,17 +388,17 @@ def search(request):
386388
if request.POST['submit'] == 'Add':
387389
url = reverse('groups_add')
388390
return HttpResponseRedirect(url)
389-
391+
390392
if form.is_valid():
391-
kwargs = {}
393+
kwargs = {}
392394
group_acronym = form.cleaned_data['group_acronym']
393395
group_name = form.cleaned_data['group_name']
394396
primary_area = form.cleaned_data['primary_area']
395397
meeting_scheduled = form.cleaned_data['meeting_scheduled']
396398
state = form.cleaned_data['state']
397399
type = form.cleaned_data['type']
398400
meeting = get_current_meeting()
399-
401+
400402
# construct seach query
401403
if group_acronym:
402404
kwargs['acronym__istartswith'] = group_acronym
@@ -410,7 +412,7 @@ def search(request):
410412
kwargs['type'] = type
411413
#else:
412414
# kwargs['type__in'] = ('wg','rg','ietf','ag','sdo','team')
413-
415+
414416
if meeting_scheduled == 'YES':
415417
kwargs['session__meeting__number'] = meeting.number
416418
# perform query
@@ -422,13 +424,13 @@ def search(request):
422424
else:
423425
qs = Group.objects.all()
424426
results = qs.order_by('acronym')
425-
427+
426428
# if there's just one result go straight to view
427429
if len(results) == 1:
428430
url = reverse('groups_view', kwargs={'acronym':results[0].acronym})
429431
return HttpResponseRedirect(url)
430-
431-
# process GET argument to support link from area app
432+
433+
# process GET argument to support link from area app
432434
elif 'primary_area' in request.GET:
433435
area = request.GET.get('primary_area','')
434436
results = Group.objects.filter(parent__id=area,type='wg',state__in=('bof','active','proposed')).order_by('name')
@@ -440,15 +442,15 @@ def search(request):
440442
# attribute of the meeting model
441443
for result in results:
442444
add_legacy_fields(result)
443-
445+
444446
return render_to_response('groups/search.html', {
445447
'results': results,
446448
'form': form},
447449
RequestContext(request, {}),
448450
)
449451

450452
def view(request, acronym):
451-
"""
453+
"""
452454
View IETF Group details
453455
454456
**Templates:**
@@ -462,16 +464,16 @@ def view(request, acronym):
462464
"""
463465

464466
group = get_object_or_404(Group, acronym=acronym)
465-
467+
466468
add_legacy_fields(group)
467-
469+
468470
return render_to_response('groups/view.html', {
469471
'group': group},
470472
RequestContext(request, {}),
471473
)
472474

473475
def view_gm(request, acronym):
474-
"""
476+
"""
475477
View IETF Group Goals and Milestones details
476478
477479
**Templates:**

0 commit comments

Comments
 (0)