| Trees | Indices | Help |
|---|
|
|
1 import time
2 import re
3
4 import flask
5
6 from coprs import db
7 from coprs import helpers
8 from coprs import models
9 from coprs import forms
10
11 from coprs.logic import coprs_logic
12
13 from coprs.views.admin_ns import admin_ns
14 from coprs.views.misc import login_required
15
16 from coprs.exceptions import InsufficientRightsException
17
18
19 @admin_ns.route("/")
20 @login_required(role=helpers.RoleEnum("admin"))
23
24
25 @admin_ns.route("/legal-flag/")
26 @login_required(role=helpers.RoleEnum("admin"))
28 legal_flags = (
29 models.LegalFlag.query
30 .outerjoin(models.LegalFlag.copr)
31 .options(db.contains_eager(models.LegalFlag.copr))
32 .filter(models.LegalFlag.resolved_on == None)
33 .order_by(models.LegalFlag.raised_on.desc())
34 .all())
35
36 return flask.render_template("admin/legal-flag.html",
37 legal_flags=legal_flags)
38
39
40 @admin_ns.route("/legal-flag/<int:flag_id>/resolve/", methods=["POST"])
41 @login_required(role=helpers.RoleEnum("admin"))
43
44 (models.LegalFlag.query
45 .filter(models.LegalFlag.id == flag_id)
46 .update({"resolved_on": int(time.time()),
47 "resolver_id": flask.g.user.id}))
48
49 db.session.commit()
50 flask.flash("Legal flag resolved")
51 return flask.redirect(flask.url_for("admin_ns.legal_flag"))
52
53
54 @admin_ns.route("/playground/", methods=["POST", "GET"])
55 @login_required(role=helpers.RoleEnum("admin"))
57 form = forms.AdminPlaygroundSearchForm()
58
59 if form.validate_on_submit() and form.project.data:
60 m = re.match(r"(.+)/(.+)", form.project.data)
61 if not m:
62 flask.flash("Please search as username/projectname")
63 else:
64 username = m.group(1)
65 coprname = m.group(2)
66
67 copr = coprs_logic.CoprsLogic.get(username, coprname).first()
68
69 if copr:
70 return flask.redirect(flask.url_for(
71 "admin_ns.playground_project",
72 username=username,
73 coprname=coprname))
74 else:
75 flask.flash("This project does not exist")
76
77 return flask.render_template("admin/playground.html", form_search=form)
78
79
80 @admin_ns.route("/playground/<username>/<coprname>/")
81 @login_required(role=helpers.RoleEnum("admin"))
83 copr = coprs_logic.CoprsLogic.get(username, coprname).first()
84 if not copr:
85 flask.flash("Project {0} does not exist".format(copr))
86 return flask.render_template("admin/playground.html")
87
88 form = forms.AdminPlaygroundForm()
89 form.playground.data = copr.playground
90 return flask.render_template("admin/playground.html", form_set=form, copr=copr)
91
92
93 @admin_ns.route("/playground/<username>/<coprname>/set/", methods=["POST"])
94 @login_required(role=helpers.RoleEnum("admin"))
96 copr = coprs_logic.CoprsLogic.get(username, coprname).first()
97 if copr:
98 form = forms.AdminPlaygroundForm()
99
100 if form.validate_on_submit():
101 try:
102 copr.playground = form.playground.data
103 coprs_logic.CoprsLogic.set_playground(flask.g.user, copr)
104 except InsufficientRightsException as e:
105 flask.flash(str(e))
106 db.session.rollback()
107 else:
108 flask.flash("Playground flag has been updated")
109 db.session.commit()
110
111 return flask.redirect(flask.url_for("admin_ns.playground_project",
112 username=username,
113 coprname=coprname))
114
| Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 | http://epydoc.sourceforge.net |