From db3f3cb98f2ed833324b8df037c0c715b2df763f Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 11 2016 18:25:16 +0000 Subject: Allow setting a namespace when creating a project --- diff --git a/pagure/templates/new_project.html b/pagure/templates/new_project.html index cf9a920..ccf5280 100644 --- a/pagure/templates/new_project.html +++ b/pagure/templates/new_project.html @@ -17,6 +17,7 @@
{{ render_bootstrap_field(form.name, field_description="the name of your project") }} {{ render_bootstrap_field(form.description, field_description="short description of the project") }} + {{ render_bootstrap_field(form.namespace, field_description="namespace of the project") }} {{ render_bootstrap_field(form.url, field_description="url of the project's website") }} {{ render_bootstrap_field(form.avatar_email, field_description="libravatar email address avatar email") }} {{ render_bootstrap_field(form.create_readme, field_description="Create a README file automatically") }} diff --git a/pagure/ui/app.py b/pagure/ui/app.py index 545d5fb..e6037ac 100644 --- a/pagure/ui/app.py +++ b/pagure/ui/app.py @@ -374,19 +374,25 @@ def new_project(): flask.abort(404, 'Creation of new project is not allowed on this \ pagure instance') - form = pagure.forms.ProjectForm() + namespaces = APP.config['ALLOWED_PREFIX'][:] + namespaces.extend([grp for grp in user.groups]) + + form = pagure.forms.ProjectForm(namespaces=namespaces) + if form.validate_on_submit(): name = form.name.data description = form.description.data url = form.url.data avatar_email = form.avatar_email.data create_readme = form.create_readme.data + namespace = form.namespace.data.strip() or None try: pagure.lib.new_project( SESSION, name=name, description=description, + namespace=namespace, url=url, avatar_email=avatar_email, user=flask.g.fas_user.username, @@ -403,7 +409,8 @@ def new_project(): ) SESSION.commit() pagure.lib.git.generate_gitolite_acls() - return flask.redirect(flask.url_for('view_repo', repo=name)) + return flask.redirect(flask.url_for( + 'view_repo', repo=name, namespace=namespace)) except pagure.exceptions.PagureException as err: flask.flash(str(err), 'error') except SQLAlchemyError as err: # pragma: no cover