Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
commit ffe7b4273ebd323b06092f8ee1dd1d88dc0b908f Author: Valentin Gologuzov vgologuz@redhat.com Date: Tue Oct 21 19:09:24 2014 +0200
[fronted] adding option to disable auto invokation of createrepo
...b1b27f9_copr_added_attribute_auto_createrepo.py | 24 ++++++++++++++++++++ frontend/coprs_frontend/coprs/forms.py | 6 +++- frontend/coprs_frontend/coprs/models.py | 4 +++ .../coprs/templates/coprs/_coprs_forms.html | 10 ++++++++ .../coprs/views/api_ns/api_general.py | 15 +++++++----- .../coprs/views/coprs_ns/coprs_general.py | 1 + 6 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/frontend/coprs_frontend/alembic/versions/1d5b5b1b27f9_copr_added_attribute_auto_createrepo.py b/frontend/coprs_frontend/alembic/versions/1d5b5b1b27f9_copr_added_attribute_auto_createrepo.py new file mode 100644 index 0000000..5e7bdea --- /dev/null +++ b/frontend/coprs_frontend/alembic/versions/1d5b5b1b27f9_copr_added_attribute_auto_createrepo.py @@ -0,0 +1,24 @@ +"""Copr added attribute 'auto_createrepo' + +Revision ID: 1d5b5b1b27f9 +Revises: 2a4242380f24 +Create Date: 2014-10-21 14:32:45.062257 + +""" + +# revision identifiers, used by Alembic. +revision = '1d5b5b1b27f9' +down_revision = '2a4242380f24' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + op.add_column('copr', sa.Column('auto_createrepo', sa.Boolean(), + default=True, server_default="true", nullable=False)) + + +def downgrade(): + op.drop_column('copr', 'auto_createrepo') + diff --git a/frontend/coprs_frontend/coprs/forms.py b/frontend/coprs_frontend/coprs/forms.py index e6e962e..591b38c 100644 --- a/frontend/coprs_frontend/coprs/forms.py +++ b/frontend/coprs_frontend/coprs/forms.py @@ -99,10 +99,10 @@ class CoprFormFactory(object): # that name already exists id = wtforms.HiddenField()
- name = wtforms.TextField( + name = wtforms.StringField( "Name", validators=[ - wtforms.validators.Required(), + wtforms.validators.DataRequired(), wtforms.validators.Regexp( re.compile(r"^[\w.-]+$"), message="Name must contain only letters," @@ -125,6 +125,8 @@ class CoprFormFactory(object): validators=[UrlListValidator()], filters=[StringListFilter()])
+ auto_createrepo = wtforms.BooleanField() + @property def selected_chroots(self): selected = [] diff --git a/frontend/coprs_frontend/coprs/models.py b/frontend/coprs_frontend/coprs/models.py index f2d8838..08356a3 100644 --- a/frontend/coprs_frontend/coprs/models.py +++ b/frontend/coprs_frontend/coprs/models.py @@ -118,6 +118,7 @@ class User(db.Model, helpers.Serializer): except IOError: return ""
+ class Copr(db.Model, helpers.Serializer):
""" @@ -138,6 +139,9 @@ class Copr(db.Model, helpers.Serializer): deleted = db.Column(db.Boolean, default=False) playground = db.Column(db.Boolean, default=False)
+ # should copr run `createrepo` each time when build packages are changed + auto_createrepo = db.Column(db.Boolean, default=True) + # relations owner_id = db.Column(db.Integer, db.ForeignKey("user.id")) owner = db.relationship("User", backref=db.backref("coprs")) diff --git a/frontend/coprs_frontend/coprs/templates/coprs/_coprs_forms.html b/frontend/coprs_frontend/coprs/templates/coprs/_coprs_forms.html index 910968c..f7ece5e 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/_coprs_forms.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/_coprs_forms.html @@ -20,8 +20,14 @@ {% endif %} {{ render_field(form.description, rows=5, cols=50, placeholder='Optional - describe your project briefly.') }} {{ render_field(form.instructions, rows=5, cols=50, placeholder='Optional - describe how your project can be installed. Where users can report bugs and issues. Link to wiki is good as well.') }} + + + + <dd>You can use <a href="http://daringfireball.net/projects/markdown/syntax">markdown syntax</a>, inline HTML is forbidden..</dd> <dt class="field-label required">Chroots</dt> + + {% if form._mock_chroots_error %} <p class="form-error">{{ form._mock_chroots_error }}</p> {% endif %} @@ -48,6 +54,10 @@ {% if copr is none %}{# we're creating the copr, so display initial builds area #} {{ render_field(form.initial_pkgs, rows=5, cols=50, placeholder='Optional - list of src.rpm to build initially. Can be skipped and submitted later.') }} {% endif %} + + {{ render_field(form.auto_createrepo, label="Generate repo data after build ") }} + + <dt><input type="submit" value="{% if copr %}Update{% else %}Create{% endif %}"></dt> </dl> </form> diff --git a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py index b1d13d6..3875883 100644 --- a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py +++ b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py @@ -225,12 +225,15 @@ def api_coprs_by_owner_detail(username, coprname): yum_repos[release] = fix_protocol_for_backend( urlparse.urljoin(build.results, release + '/')) break - output["detail"] = {"name": copr.name, - "additional_repos": copr.repos, - "yum_repos": yum_repos, - "description": copr.description, - "instructions": copr.instructions, - "last_modified": builds_logic.BuildsLogic.last_modified(copr)} + output["detail"] = { + "name": copr.name, + "additional_repos": copr.repos, + "yum_repos": yum_repos, + "description": copr.description, + "instructions": copr.instructions, + "last_modified": builds_logic.BuildsLogic.last_modified(copr), + "auto_createrepo": copr.auto_createrepo, + } else: output = {"output": "notok", "error": "Copr with name {0} does not exist.".format(coprname)} httpcode = 500 diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py index dc14a90..dab0160 100644 --- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py +++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py @@ -259,6 +259,7 @@ def copr_update(username, coprname): copr.repos = form.repos.data.replace("\n", " ") copr.description = form.description.data copr.instructions = form.instructions.data + copr.auto_createrepo = form.auto_createrepo.data coprs_logic.CoprChrootsLogic.update_from_names( flask.g.user, copr, form.selected_chroots)
copr-commits@lists.fedorahosted.org