|
a/Allura/allura/lib/plugin.py |
|
b/Allura/allura/lib/plugin.py |
|
... |
|
... |
582 |
# have to add user to context, since this may occur inside auth code
|
582 |
# have to add user to context, since this may occur inside auth code
|
583 |
# for user-project reg, and c.user isn't set yet
|
583 |
# for user-project reg, and c.user isn't set yet
|
584 |
g.post_event('project_created')
|
584 |
g.post_event('project_created')
|
585 |
return p
|
585 |
return p
|
586 |
|
586 |
|
587 |
def register_subproject(self, project, name, user, install_apps):
|
587 |
def register_subproject(self, project, name, user, install_apps, project_name=None):
|
588 |
from allura import model as M
|
588 |
from allura import model as M
|
589 |
assert h.re_project_name.match(name), 'Invalid subproject shortname'
|
589 |
assert h.re_project_name.match(name), 'Invalid subproject shortname'
|
590 |
shortname = project.shortname + '/' + name
|
590 |
shortname = project.shortname + '/' + name
|
|
|
591 |
ordinal = int(project.ordered_mounts(include_hidden=True)[-1]['ordinal']) + 1
|
591 |
sp = M.Project(
|
592 |
sp = M.Project(
|
592 |
parent_id=project._id,
|
593 |
parent_id=project._id,
|
593 |
neighborhood_id=project.neighborhood_id,
|
594 |
neighborhood_id=project.neighborhood_id,
|
594 |
shortname=shortname,
|
595 |
shortname=shortname,
|
595 |
name=name,
|
596 |
name=project_name or name,
|
596 |
database_uri=project.database_uri,
|
597 |
database_uri=project.database_uri,
|
597 |
last_updated = datetime.utcnow(),
|
598 |
last_updated = datetime.utcnow(),
|
598 |
is_root=False)
|
599 |
is_root=False,
|
|
|
600 |
ordinal=ordinal,
|
|
|
601 |
)
|
599 |
with h.push_config(c, project=sp):
|
602 |
with h.push_config(c, project=sp):
|
600 |
M.AppConfig.query.remove(dict(project_id=c.project._id))
|
603 |
M.AppConfig.query.remove(dict(project_id=c.project._id))
|
601 |
if install_apps:
|
604 |
if install_apps:
|
602 |
sp.install_app('admin', 'admin', ordinal=1)
|
605 |
sp.install_app('admin', 'admin', ordinal=1)
|
603 |
sp.install_app('search', 'search', ordinal=2)
|
606 |
sp.install_app('search', 'search', ordinal=2)
|