1 import flask
2 from coprs import app, db, models, helpers
3 from coprs.forms import PinnedCoprsForm
4 from coprs.views.misc import login_required
5 from coprs.logic.users_logic import UsersLogic, UserDataDumper
6 from coprs.logic.builds_logic import BuildsLogic
7 from coprs.logic.complex_logic import ComplexLogic
8 from coprs.logic.coprs_logic import PinnedCoprsLogic
9 from coprs.logic.outdated_chroots_logic import OutdatedChrootsLogic
10 from coprs.views.coprs_ns.coprs_general import process_copr_repositories
11 from . import user_ns
20
21
22 @user_ns.route("/info")
23 @login_required
24 -def user_info():
26
31 user = flask.g.user
32 dumper = UserDataDumper(user)
33 response = flask.make_response(dumper.dumps(pretty=True))
34 response.mimetype = "application/json"
35 response.headers["Content-Disposition"] = "attachment; filename={0}.json".format(user.name)
36 return response
37
38
39 @user_ns.route("/delete")
40 @login_required
41 -def delete_data():
46
47
48 @user_ns.route("/customize-pinned/")
49 @user_ns.route("/customize-pinned/<group_name>")
50 @login_required
51 -def pinned_projects(group_name=None):
54
73
74
75 @user_ns.route("/customize-pinned/", methods=["POST"])
76 @user_ns.route("/customize-pinned/<group_name>", methods=["POST"])
77 @login_required
78 -def pinned_projects_post(group_name=None):
82
83
84 -def process_pinned_projects_post(owner, url_on_success):
85 if isinstance(owner, models.Group):
86 UsersLogic.raise_if_not_in_group(flask.g.user, owner)
87
88 form = PinnedCoprsForm(owner)
89 if not form.validate_on_submit():
90 return render_pinned_projects(owner, form=form)
91
92 PinnedCoprsLogic.delete_by_owner(owner)
93 for i, copr_id in enumerate(filter(None, form.copr_ids.data)):
94 PinnedCoprsLogic.add(owner, int(copr_id), i)
95 db.session.commit()
96
97 return flask.redirect(url_on_success)
98
99
100 @user_ns.route("/repositories/")
101 @login_required
102 -def repositories():
104
117
118
119 @user_ns.route("/repositories/", methods=["POST"])
120 @login_required
121 -def repositories_post():
123