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
This commit is contained in:
Henrik Levkowetz 2012-10-21 15:04:58 +00:00
parent d0214d3b25
commit 6a5a5c2200
4 changed files with 46 additions and 24 deletions
ietf
templates/wginfo
wgcharter
wginfo

View file

@ -72,7 +72,7 @@ is occasionally incorrect.</span>
{% else %}
none
{% if user|has_role:"Area Director,Secretariat" %}
- <a href="{% url wgcharter.views.submit acronym=wg.acronym %}">Submit Charter</a>
- <a href="{% url wginfo.edit.submit_initial_charter acronym=wg.acronym %}">Submit Charter</a>
{% endif %}
{% endif %}
</td>

View file

@ -73,9 +73,19 @@ def change_state(request, name, option=None):
if "-" not in charter_rev:
charter_rev = charter_rev + "-00"
elif option == "abandon":
if wg.state_id in ("proposed","bof","unknown"):
oldstate = wg.state_id
if oldstate in ("proposed","bof","unknown"):
charter_state = State.objects.get(type="charter", slug="notrev")
#TODO : set an abandoned state and leave some comments here
wg.state=GroupStateName.objects.get(slug='abandon')
wg.save()
e = ChangeStateGroupEvent(group=wg, type="changed_state")
e.time = wg.time
e.by = login
e.state_id = clean["state"].slug
e.desc = "Group state changed to %s from %s" % clean["state"].name,oldstate
e.save()
else:
charter_state = State.objects.get(type="charter", slug="approved")
charter_rev = approved_revision(charter.rev)

View file

@ -104,6 +104,37 @@ def format_urls(urls, fs="\n"):
else:
res.append(u.url)
return fs.join(res)
def get_or_create_initial_charter(wg):
try:
charter = Document.objects.get(docalias__name="charter-ietf-%s" % wg.acronym)
except Document.DoesNotExist:
charter = Document(
name="charter-ietf-" + wg.acronym,
type_id="charter",
title=wg.name,
group=wg,
abstract=wg.name,
rev="00-00",
)
charter.save()
charter.set_state(State.objects.get(type="charter", slug="notrev"))
# Create an alias as well
DocAlias.objects.create(
name=charter.name,
document=charter
)
return charter
@role_required('Area Director', 'Secretariat')
def submit_initial_charter(request, acronym=None):
wg = get_object_or_404(Group, acronym=acronym)
if not wg.charter:
wg.charter = get_or_create_initial_charter(wg)
wg.save()
return redirect('charter_submit', name=wg.charter.name, option="initcharter")
@role_required('Area Director', 'Secretariat')
def edit(request, acronym=None, action="edit"):
@ -141,34 +172,14 @@ def edit(request, acronym=None, action="edit"):
e.time = wg.time
e.by = login
e.state_id = clean["state"].slug
e.desc = clean["state"].name
e.desc = "Group created in state %s" % clean["state"].name
e.save()
else:
save_group_in_history(wg)
if action=="charter" and not wg.charter: # make sure we have a charter
try:
charter = Document.objects.get(docalias__name="charter-ietf-%s" % wg.acronym)
except Document.DoesNotExist:
charter = Document(
name="charter-ietf-" + wg.acronym,
type_id="charter",
title=wg.name,
group=wg,
abstract=wg.name,
rev="00-00",
)
charter.save()
charter.set_state(State.objects.get(type="charter", slug="notrev"))
# Create an alias as well
DocAlias.objects.create(
name=charter.name,
document=charter
)
wg.charter = charter
wg.charter = get_or_create_initial_charter(wg)
changes = []

View file

@ -24,6 +24,7 @@ urlpatterns = patterns('',
(r'^(?P<acronym>[A-Za-z0-9-]+)/charter/', include('ietf.wgcharter.urls')),
(r'^(?P<acronym>[a-zA-Z0-9-]+)/history/', views.history),
(r'^(?P<acronym>[a-zA-Z0-9-]+)/edit/', edit.edit, {'action': "edit"}, "wg_edit"),
(r'^(?P<acronym>[a-zA-Z0-9-]+)/init-charter/', edit.submit_initial_charter, None, "wg_init_charter"),
(r'^(?P<acronym>[a-zA-Z0-9-]+)/conclude/', edit.conclude, None, "wg_conclude"),
(r'^(?P<acronym>[^/]+)/management/', include('ietf.wgchairs.urls')),