Switch to unified view

a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
...
...
135
    def add_project(self, **form_data):
135
    def add_project(self, **form_data):
136
        require(has_neighborhood_access('create', self.neighborhood), 'Create access required')
136
        require(has_neighborhood_access('create', self.neighborhood), 'Create access required')
137
        c.add_project = W.add_project
137
        c.add_project = W.add_project
138
        for checkbox in ['Wiki','Git','Tickets','Downloads','Discussion']:
138
        for checkbox in ['Wiki','Git','Tickets','Downloads','Discussion']:
139
            form_data.setdefault(checkbox, True)
139
            form_data.setdefault(checkbox, True)
140
        form_data['neighborhood'] = self.neighborhood.name
140
        return dict(neighborhood=self.neighborhood, form_data=form_data)
141
        return dict(neighborhood=self.neighborhood, form_data=form_data)
141
142
142
    @h.vardec
143
    @h.vardec
143
    @expose()
144
    @expose()
144
    @validate(W.add_project, error_handler=add_project)
145
    @validate(W.add_project, error_handler=add_project)
145
    def register(self, project_unixname=None, project_description=None, project_name=None, **kw):
146
    def register(self, project_unixname=None, project_description=None, project_name=None, neighborhood=None, **kw):
146
        require(has_neighborhood_access('create', self.neighborhood), 'Create access required')
147
        require(has_neighborhood_access('create', self.neighborhood), 'Create access required')
147
        project_unixname = h.really_unicode(project_unixname or '').encode('utf-8')
148
        project_description = h.really_unicode(project_description or '').encode('utf-8')
148
        project_description = h.really_unicode(project_description or '').encode('utf-8')
149
        project_name = h.really_unicode(project_name or '').encode('utf-8')
149
        project_name = h.really_unicode(project_name or '').encode('utf-8')
150
        try:
150
        c.project = M.Project.query.find({'shortname':project_unixname,'neighborhood_id':self.neighborhood._id}).first()
151
            p = self.neighborhood.register_project(project_unixname.lower())
152
        except forge_exc.ProjectConflict:
153
            flash(
154
                'A project already exists with that name, please choose another.', 'error')
155
            ming.orm.ormsession.ThreadLocalORMSession.close_all()
156
            redirect('add_project?project_unixname=%s&project_description=%s&project_name=%s' %
157
                     (quote_plus(project_unixname),
158
                      quote_plus(project_description),
159
                      quote_plus(project_name)))
160
        except Exception, ex:
161
            flash('%s: %s' % (ex.__class__, str(ex)), 'error')
162
            log.exception('Unexpected error creating project')
163
            c.project = None
164
            ming.orm.ormsession.ThreadLocalORMSession.close_all()
165
            redirect('add_project?project_unixname=%s&project_description=%s&project_name=%s' %
166
                     (quote_plus(project_unixname),
167
                      quote_plus(project_description),
168
                      quote_plus(project_name)))
169
        if project_name:
151
        if project_name:
170
            p.name = project_name
152
            c.project.name = project_name
171
        if project_description:
153
        if project_description:
172
            p.short_description = project_description
154
            c.project.short_description = project_description
173
        c.project = p
174
        ming.orm.ormsession.ThreadLocalORMSession.flush_all()
155
        ming.orm.ormsession.ThreadLocalORMSession.flush_all()
175
        # require(has_project_access('tool'))
156
        # require(has_project_access('tool'))
176
        for i, tool in enumerate(kw):
157
        for i, tool in enumerate(kw):
177
            if kw[tool]:
158
            if kw[tool]:
178
                p.install_app(tool, ordinal=i)
159
                c.project.install_app(tool, ordinal=i)
179
        flash('Welcome to the SourceForge Beta System! '
160
        flash('Welcome to the SourceForge Beta System! '
180
              'To get started, fill out some information about your project.')
161
              'To get started, fill out some information about your project.')
181
        redirect(p.script_name + 'admin/overview')
162
        redirect(c.project.script_name + 'admin/overview')
182
163
183
    @expose()
164
    @expose()
184
    def icon(self):
165
    def icon(self):
185
        icon = self.neighborhood.icon
166
        icon = self.neighborhood.icon
186
        if not icon:
167
        if not icon: