|
a/Allura/allura/lib/plugin.py |
|
b/Allura/allura/lib/plugin.py |
|
... |
|
... |
317 |
try:
|
317 |
try:
|
318 |
p.configure_project(
|
318 |
p.configure_project(
|
319 |
users=users,
|
319 |
users=users,
|
320 |
is_user_project=False,
|
320 |
is_user_project=False,
|
321 |
apps=[
|
321 |
apps=[
|
322 |
('Wiki', 'home', 'Home'),
|
322 |
('Wiki', 'wiki', 'Wiki'),
|
323 |
('admin', 'admin', 'Admin')])
|
323 |
('admin', 'admin', 'Admin')])
|
324 |
except:
|
324 |
except:
|
325 |
ThreadLocalORMSession.close_all()
|
325 |
ThreadLocalORMSession.close_all()
|
326 |
log.exception('Error registering project %s' % p)
|
326 |
log.exception('Error registering project %s' % p)
|
327 |
raise
|
327 |
raise
|
|
... |
|
... |
378 |
if 'trove_cats' in project_template:
|
378 |
if 'trove_cats' in project_template:
|
379 |
for trove_type in project_template['trove_cats'].keys():
|
379 |
for trove_type in project_template['trove_cats'].keys():
|
380 |
troves = getattr(p, 'trove_%s' % trove_type)
|
380 |
troves = getattr(p, 'trove_%s' % trove_type)
|
381 |
for trove_id in project_template['trove_cats'][trove_type]:
|
381 |
for trove_id in project_template['trove_cats'][trove_type]:
|
382 |
troves.append(M.TroveCategory.query.get(trove_cat_id=trove_id)._id)
|
382 |
troves.append(M.TroveCategory.query.get(trove_cat_id=trove_id)._id)
|
383 |
if 'home_options' in project_template and p.app_config('home'):
|
383 |
if 'home_options' in project_template and p.app_config('Wiki'):
|
384 |
options = p.app_config('home').options
|
384 |
options = p.app_config('Wiki').options
|
385 |
for option in project_template['home_options'].keys():
|
385 |
for option in project_template['home_options'].keys():
|
386 |
options[option] = project_template['home_options'][option]
|
386 |
options[option] = project_template['home_options'][option]
|
387 |
if 'icon' in project_template:
|
387 |
if 'icon' in project_template:
|
388 |
icon_file = StringIO(urlopen(project_template['icon']['url']).read())
|
388 |
icon_file = StringIO(urlopen(project_template['icon']['url']).read())
|
389 |
M.ProjectFile.save_image(
|
389 |
M.ProjectFile.save_image(
|
390 |
project_template['icon']['filename'], icon_file,
|
390 |
project_template['icon']['filename'], icon_file,
|
391 |
square=True, thumbnail_size=(48, 48),
|
391 |
square=True, thumbnail_size=(48, 48),
|
392 |
thumbnail_meta=dict(project_id=p._id, category='icon'))
|
392 |
thumbnail_meta=dict(project_id=p._id, category='icon'))
|
393 |
home_app = p.app_instance('home')
|
393 |
wiki_app = p.app_instance('wiki')
|
394 |
if home_app:
|
394 |
if wiki_app:
|
395 |
from forgewiki import model as WM
|
395 |
from forgewiki import model as WM
|
396 |
text = project_template.get('home_text',
|
396 |
text = project_template.get('home_text',
|
397 |
'[[project_admins]]\n[[download_button]]')
|
397 |
'[[project_admins]]\n[[download_button]]')
|
398 |
WM.Page.query.get(app_config_id=home_app.config._id).text = text
|
398 |
WM.Page.query.get(app_config_id=wiki_app.config._id).text = text
|
399 |
except forge_exc.ProjectConflict:
|
399 |
except forge_exc.ProjectConflict:
|
400 |
raise
|
400 |
raise
|
401 |
except:
|
401 |
except:
|
402 |
ThreadLocalORMSession.close_all()
|
402 |
ThreadLocalORMSession.close_all()
|
403 |
log.exception('Error registering project %s' % p)
|
403 |
log.exception('Error registering project %s' % p)
|
|
... |
|
... |
422 |
last_updated = datetime.utcnow(),
|
422 |
last_updated = datetime.utcnow(),
|
423 |
is_root=False)
|
423 |
is_root=False)
|
424 |
with h.push_config(c, project=sp):
|
424 |
with h.push_config(c, project=sp):
|
425 |
M.AppConfig.query.remove(dict(project_id=c.project._id))
|
425 |
M.AppConfig.query.remove(dict(project_id=c.project._id))
|
426 |
if install_apps:
|
426 |
if install_apps:
|
427 |
home_app = sp.install_app('Wiki', 'home', 'Home', ordinal=0)
|
|
|
428 |
if home_app:
|
|
|
429 |
home_app.show_discussion = False
|
|
|
430 |
home_app.show_left_bar = False
|
|
|
431 |
sp.install_app('admin', 'admin', ordinal=1)
|
427 |
sp.install_app('admin', 'admin', ordinal=1)
|
432 |
sp.install_app('search', 'search', ordinal=2)
|
428 |
sp.install_app('search', 'search', ordinal=2)
|
433 |
g.post_event('project_created')
|
429 |
g.post_event('project_created')
|
434 |
return sp
|
430 |
return sp
|
435 |
|
431 |
|