@@ -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' )
109140def 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
0 commit comments