[copr] master: Enable copr description and instructions (b5c7889)

bkabrda at fedoraproject.org bkabrda at fedoraproject.org
Tue Jan 22 09:09:57 UTC 2013


Repository : http://git.fedorahosted.org/cgit/copr.git

On branch  : master

>---------------------------------------------------------------

commit b5c7889abe4516d37f145fba04843e26516ae48d
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Tue Jan 22 10:04:56 2013 +0100

    Enable copr description and instructions


>---------------------------------------------------------------

 .../3c3cce7a5fe0_add_copr_desc_and_instruct.py     |   28 ++++++++++++++++++++
 coprs_frontend/coprs/forms.py                      |    2 +
 coprs_frontend/coprs/models.py                     |   10 +++++++
 .../coprs/templates/coprs/_coprs_forms.html        |    6 +++-
 .../coprs/templates/coprs/detail/.builds.html.swp  |  Bin 12288 -> 0 bytes
 .../coprs/templates/coprs/detail/overview.html     |    4 +-
 coprs_frontend/coprs/templates/coprs/show.html     |    2 +-
 .../coprs/views/coprs_ns/coprs_general.py          |    4 +++
 8 files changed, 51 insertions(+), 5 deletions(-)

diff --git a/coprs_frontend/alembic/versions/3c3cce7a5fe0_add_copr_desc_and_instruct.py b/coprs_frontend/alembic/versions/3c3cce7a5fe0_add_copr_desc_and_instruct.py
new file mode 100644
index 0000000..a2ec329
--- /dev/null
+++ b/coprs_frontend/alembic/versions/3c3cce7a5fe0_add_copr_desc_and_instruct.py
@@ -0,0 +1,28 @@
+"""empty message
+
+Revision ID: 3c3cce7a5fe0
+Revises: 2fa80e062525
+Create Date: 2013-01-22 09:42:39.037642
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '3c3cce7a5fe0'
+down_revision = '2fa80e062525'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+    ### commands auto generated by Alembic - please adjust! ###
+    op.add_column('copr', sa.Column('description', sa.Text(), nullable=True))
+    op.add_column('copr', sa.Column('instructions', sa.Text(), nullable=True))
+    ### end Alembic commands ###
+
+
+def downgrade():
+    ### commands auto generated by Alembic - please adjust! ###
+    op.drop_column('copr', 'instructions')
+    op.drop_column('copr', 'description')
+    ### end Alembic commands ###
diff --git a/coprs_frontend/coprs/forms.py b/coprs_frontend/coprs/forms.py
index cfca500..e5038f2 100644
--- a/coprs_frontend/coprs/forms.py
+++ b/coprs_frontend/coprs/forms.py
@@ -75,6 +75,8 @@ class CoprFormFactory(object):
                                  validators = [wtf.Required(),
                                  wtf.Regexp(re.compile(r'^[\w.-]+$'), message='Name must contain only letters, digits, underscores, dashes and dots.'),
                                  CoprUniqueNameValidator()])
+            description = wtf.TextAreaField('Description')
+            instructions = wtf.TextAreaField('Instructions')
             repos = wtf.TextAreaField('Repos',
                                       validators = [UrlListValidator()],
                                       filters = [StringListFilter()])
diff --git a/coprs_frontend/coprs/models.py b/coprs_frontend/coprs/models.py
index 573c472..49e8aee 100644
--- a/coprs_frontend/coprs/models.py
+++ b/coprs_frontend/coprs/models.py
@@ -108,6 +108,8 @@ class Copr(db.Model, Serializer):
     name = db.Column(db.String(100), nullable = False)
     repos = db.Column(db.Text)
     created_on = db.Column(db.Integer)
+    description = db.Column(db.Text)
+    instructions = db.Column(db.Text)
     # duplicate information, but speeds up a lot and makes queries simpler
     build_count = db.Column(db.Integer, default = 0)
 
@@ -120,6 +122,14 @@ class Copr(db.Model, Serializer):
         return self.repos.split()
 
     @property
+    def description_or_not_filled(self):
+        return self.description or 'Description not filled in by author.'
+
+    @property
+    def instructions_or_not_filled(self):
+        return self.instructions or 'Instructions not filled in by author.'
+
+    @property
     def mock_chroots(self):
         if not hasattr(self, '_mock_chroots'):
             self._mock_chroots = MockChroot.query.join(CoprChroot).\
diff --git a/coprs_frontend/coprs/templates/coprs/_coprs_forms.html b/coprs_frontend/coprs/templates/coprs/_coprs_forms.html
index 8c7daa7..b3f6742 100644
--- a/coprs_frontend/coprs/templates/coprs/_coprs_forms.html
+++ b/coprs_frontend/coprs/templates/coprs/_coprs_forms.html
@@ -7,6 +7,8 @@
       {{ form.csrf_token }}
       {{ render_field(form.id, hidden = True) }}
       {{ render_field(form.name, label='Copr Name') }}
+      {{ render_field(form.description, rows=5, cols=50) }}
+      {{ render_field(form.instructions, rows=5, cols=50) }}
       <dt class="field-label">Chroots</dt>
       {% if form._mock_chroots_error %}
         <p class="form-error">{{ form._mock_chroots_error }}</p>
@@ -20,9 +22,9 @@
           {% endfor %}
         </table>
       {% endfor %}
-      {{ render_field(form.repos, rows = 10, cols = 50) }}
+      {{ render_field(form.repos, rows=5, cols=50) }}
       {% if copr is none %}{# we're creating the copr, so display initial builds area #}
-        {{ render_field(form.initial_pkgs, rows = 10, cols = 50) }}
+        {{ render_field(form.initial_pkgs, rows=5, cols=50) }}
       {% endif %}
       <dt><input type="submit" value="{% if copr %}Update{% else %}Create{% endif %}"></dt>
     </dl>
diff --git a/coprs_frontend/coprs/templates/coprs/detail/.builds.html.swp b/coprs_frontend/coprs/templates/coprs/detail/.builds.html.swp
deleted file mode 100644
index bfa2ee8..0000000
Binary files a/coprs_frontend/coprs/templates/coprs/detail/.builds.html.swp and /dev/null differ
diff --git a/coprs_frontend/coprs/templates/coprs/detail/overview.html b/coprs_frontend/coprs/templates/coprs/detail/overview.html
index a07d1ff..0d74561 100644
--- a/coprs_frontend/coprs/templates/coprs/detail/overview.html
+++ b/coprs_frontend/coprs/templates/coprs/detail/overview.html
@@ -3,9 +3,9 @@
 
 {% block detail_body %}
   <h2>Description</h2>
-  <div class="shift-right">This is a description...</div>
+  <div class="shift-right">{{ copr.description_or_not_filled }}</div>
   <h2>Installation Instructions</h2>
-  <div class="shift-right">These are installation instructions...</div>
+  <div class="shift-right">{{ copr.instructions_or_not_filled}}</div>
   <h2>Active Releases</h2>
   <table class="releases">
     <tr>
diff --git a/coprs_frontend/coprs/templates/coprs/show.html b/coprs_frontend/coprs/templates/coprs/show.html
index 08490af..7b4d3c9 100644
--- a/coprs_frontend/coprs/templates/coprs/show.html
+++ b/coprs_frontend/coprs/templates/coprs/show.html
@@ -20,7 +20,7 @@
       {% for copr in coprs %}
         <div class="copr">
           <a href="{{ url_for('coprs_ns.copr_detail', username = copr.owner.name, coprname = copr.name) }}">{{ copr.owner.name }}/{{ copr.name }}</a>
-	  <p>description blah blah blah</p>
+	  <p>{{ copr.description_or_not_filled }}</p>
           <p class="repos">F18 blah blah</p>
         </div>
       {% else %}
diff --git a/coprs_frontend/coprs/views/coprs_ns/coprs_general.py b/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
index a88a7b9..c2369d3 100644
--- a/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
+++ b/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
@@ -59,6 +59,8 @@ def copr_new():
     form = forms.CoprFormFactory.create_form_cls()()
     if form.validate_on_submit():
         copr = models.Copr(name = form.name.data,
+                           description = form.description.data,
+                           instructions = form.instructions.data,
                            repos = form.repos.data.replace('\n', ' '),
                            owner = flask.g.user,
                            created_on = int(time.time()))
@@ -154,6 +156,8 @@ def copr_update(username, coprname):
         # we don't change owner (yet)
         copr.name = form.name.data
         copr.repos = form.repos.data.replace('\n', ' ')
+        copr.description = form.description.data
+        copr.instructions = form.instructions.data
         coprs_logic.CoprsChrootLogic.update_from_names(flask.g.user, copr, form.selected_chroots)
 
         coprs_logic.CoprsLogic.update(flask.g.user, copr, check_for_duplicates = False) # form validation checks for duplicates



More information about the copr-devel mailing list