Switch to side-by-side view

--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -137,48 +137,29 @@
         c.add_project = W.add_project
         for checkbox in ['Wiki','Git','Tickets','Downloads','Discussion']:
             form_data.setdefault(checkbox, True)
+        form_data['neighborhood'] = self.neighborhood.name
         return dict(neighborhood=self.neighborhood, form_data=form_data)
 
     @h.vardec
     @expose()
     @validate(W.add_project, error_handler=add_project)
-    def register(self, project_unixname=None, project_description=None, project_name=None, **kw):
+    def register(self, project_unixname=None, project_description=None, project_name=None, neighborhood=None, **kw):
         require(has_neighborhood_access('create', self.neighborhood), 'Create access required')
-        project_unixname = h.really_unicode(project_unixname or '').encode('utf-8')
         project_description = h.really_unicode(project_description or '').encode('utf-8')
         project_name = h.really_unicode(project_name or '').encode('utf-8')
-        try:
-            p = self.neighborhood.register_project(project_unixname.lower())
-        except forge_exc.ProjectConflict:
-            flash(
-                'A project already exists with that name, please choose another.', 'error')
-            ming.orm.ormsession.ThreadLocalORMSession.close_all()
-            redirect('add_project?project_unixname=%s&project_description=%s&project_name=%s' %
-                     (quote_plus(project_unixname),
-                      quote_plus(project_description),
-                      quote_plus(project_name)))
-        except Exception, ex:
-            flash('%s: %s' % (ex.__class__, str(ex)), 'error')
-            log.exception('Unexpected error creating project')
-            c.project = None
-            ming.orm.ormsession.ThreadLocalORMSession.close_all()
-            redirect('add_project?project_unixname=%s&project_description=%s&project_name=%s' %
-                     (quote_plus(project_unixname),
-                      quote_plus(project_description),
-                      quote_plus(project_name)))
+        c.project = M.Project.query.find({'shortname':project_unixname,'neighborhood_id':self.neighborhood._id}).first()
         if project_name:
-            p.name = project_name
+            c.project.name = project_name
         if project_description:
-            p.short_description = project_description
-        c.project = p
+            c.project.short_description = project_description
         ming.orm.ormsession.ThreadLocalORMSession.flush_all()
         # require(has_project_access('tool'))
         for i, tool in enumerate(kw):
             if kw[tool]:
-                p.install_app(tool, ordinal=i)
+                c.project.install_app(tool, ordinal=i)
         flash('Welcome to the SourceForge Beta System! '
               'To get started, fill out some information about your project.')
-        redirect(p.script_name + 'admin/overview')
+        redirect(c.project.script_name + 'admin/overview')
 
     @expose()
     def icon(self):