Switch to unified view

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)