Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit 561e86a8f403ac7fc0414c8dd773c7850dd088d4
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Fri Oct 24 16:09:06 2014 +0200
[frontend] sending createrepo action
---------------------------------------------------------------
frontend/coprs_frontend/coprs/helpers.py | 7 ++++++-
.../coprs_frontend/coprs/logic/actions_logic.py | 19 +++++++++++++++++++
.../coprs/templates/coprs/detail/overview.html | 10 +++++++++-
.../coprs/views/coprs_ns/coprs_general.py | 19 +++++++++++++++++--
4 files changed, 51 insertions(+), 4 deletions(-)
diff --git a/frontend/coprs_frontend/coprs/helpers.py
b/frontend/coprs_frontend/coprs/helpers.py
index d6da5c6..503e5cf 100644
--- a/frontend/coprs_frontend/coprs/helpers.py
+++ b/frontend/coprs_frontend/coprs/helpers.py
@@ -44,7 +44,12 @@ class PermissionEnum(object):
class ActionTypeEnum(object):
__metaclass__ = EnumType
- vals = {"delete": 0, "rename": 1, "legal-flag": 2}
+ vals = {
+ "delete": 0,
+ "rename": 1,
+ "legal-flag": 2,
+ "createrepo": 3,
+ }
class BackendResultEnum(object):
diff --git a/frontend/coprs_frontend/coprs/logic/actions_logic.py
b/frontend/coprs_frontend/coprs/logic/actions_logic.py
index b77079e..a410612 100644
--- a/frontend/coprs_frontend/coprs/logic/actions_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/actions_logic.py
@@ -1,3 +1,5 @@
+import json
+import time
from coprs import db
from coprs import models
from coprs import helpers
@@ -51,3 +53,20 @@ class ActionsLogic(object):
setattr(action, attr, value)
db.session.add(action)
+
+ @classmethod
+ def send_createrepo(cls, username, coprname, chroots):
+ data_dict = {
+ "username": username,
+ "projectname": coprname,
+ "chroots": chroots
+ }
+ action = models.Action(
+ action_type=helpers.ActionTypeEnum("createrepo"),
+ object_type="None",
+ object_id=0,
+ old_value="",
+ data=json.dumps(data_dict),
+ created_on=int(time.time()),
+ )
+ db.session.add(action)
diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail/overview.html
b/frontend/coprs_frontend/coprs/templates/coprs/detail/overview.html
index ce0a193..f011242 100644
--- a/frontend/coprs_frontend/coprs/templates/coprs/detail/overview.html
+++ b/frontend/coprs_frontend/coprs/templates/coprs/detail/overview.html
@@ -89,7 +89,15 @@
<div>
<h2>Release options</h2>
- <button>Run createrepo</button>
+ <form action="{{
+ url_for(
+ 'coprs_ns.copr_createrepo',
+ username=copr.owner.name,
+ coprname=copr.name
+ ) }}" method="post" >
+
+ <button type="submit">Run createrepo</button>
+ </form>
</div>
{% endif %}
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 9153562..ab3c05c 100644
--- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
+++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
@@ -20,8 +20,7 @@ from coprs.views.misc import login_required, page_not_found
from coprs.views.coprs_ns import coprs_ns
-from coprs.logic import builds_logic
-from coprs.logic import coprs_logic
+from coprs.logic import builds_logic, coprs_logic, actions_logic
from coprs.helpers import parse_package_name, generate_repo_url
@@ -403,6 +402,22 @@ def copr_update_permissions(username, coprname):
username=copr.owner.name,
coprname=copr.name))
+(a)coprs_ns.route("/<username>/<coprname>/createrepo/",
methods=["POST"])
+@login_required
+def copr_createrepo(username, coprname):
+
+ copr = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname).first()
+
+ #import ipdb; ipdb.set_trace()
+ chroots = [c.name for c in copr.active_chroots]
+ actions_logic.ActionsLogic.send_createrepo(
+ username=copr.owner.name, coprname=copr.name,
+ chroots=chroots)
+
+ db.session.commit()
+ return flask.redirect(flask.url_for("coprs_ns.copr_detail",
+ username=copr.owner.name,
+ coprname=copr.name))
@coprs_ns.route("/<username>/<coprname>/delete/",
methods=["GET", "POST"])
@login_required