def coprs_by_user(username=None, page=1): user = users_logic.UsersLogic.get(username).first() if not user: return page_not_found("User {0} does not exist.".format(username)) pinned = [pin.copr for pin in PinnedCoprsLogic.get_by_user_id(user.id) ] if page == 1 else [] query = CoprsLogic.get_multiple_owned_by_username(username) query = CoprsLogic.filter_without_ids(query, [copr.id for copr in pinned]) query = CoprsLogic.filter_without_group_projects(query) query = CoprsLogic.set_query_order(query, desc=True) paginator = helpers.Paginator(query, query.count(), page) coprs = paginator.sliced_query # flask.g.user is none when no user is logged - showing builds from everyone users_builds = builds_logic.BuildsLogic.get_recent_tasks(flask.g.user, 4) data = builds_logic.BuildsLogic.get_small_graph_data('30min') return flask.render_template("coprs/show/user.html", user=user, coprs=coprs, pinned=pinned, paginator=paginator, tasks_info=ComplexLogic.get_queue_sizes(), users_builds=users_builds, graph=data)
def coprs_migration_report(username=None): if not username and not flask.g.user: return generic_error("You are not logged in") elif not username: username = flask.g.user.name user = UsersLogic.get(username).first() coprs = CoprsLogic.filter_without_group_projects(CoprsLogic.get_multiple_owned_by_username(username)).all() for group in UsersLogic.get_groups_by_fas_names_list(user.user_teams).all(): coprs.extend(CoprsLogic.get_multiple_by_group_id(group.id).all()) return render_migration_report(coprs, user=user)
def coprs_migration_report(username=None): if not username and not flask.g.user: return generic_error("You are not logged in") elif not username: username = flask.g.user.name user = UsersLogic.get(username).first() coprs = CoprsLogic.filter_without_group_projects( CoprsLogic.get_multiple_owned_by_username(username)).all() for group in UsersLogic.get_groups_by_fas_names_list( user.user_teams).all(): coprs.extend(CoprsLogic.get_multiple_by_group_id(group.id).all()) return render_migration_report(coprs, user=user)
def get_project_list(ownername=None, **kwargs): if not ownername: query = CoprsLogic.get_multiple() elif ownername.startswith("@"): group_name = ownername[1:] query = CoprsLogic.get_multiple() query = CoprsLogic.filter_by_group_name(query, group_name) else: query = CoprsLogic.get_multiple_owned_by_username(ownername) query = CoprsLogic.filter_without_group_projects(query) # @TODO ordering doesn't work correctly - try order by models.Copr.name DESC paginator = Paginator(query, models.Copr, **kwargs) projects = paginator.map(to_dict) return flask.jsonify(items=projects, meta=paginator.meta)
def copr_fork_post(copr): form = forms.CoprForkFormFactory.create_form_cls(copr=copr, user=flask.g.user, groups=flask.g.user.user_groups)() if form.validate_on_submit(): dstgroup = ([g for g in flask.g.user.user_groups if g.at_name == form.owner.data] or [None])[0] if flask.g.user.name != form.owner.data and not dstgroup: return generic_error("There is no such group: {}".format(form.owner.data)) fcopr = CoprsLogic.get_by_group_id(dstgroup.id, form.name.data).first() if dstgroup \ else CoprsLogic.filter_without_group_projects(CoprsLogic.get(flask.g.user.name, form.name.data)).first() if not fcopr: fcopr = ComplexLogic.fork_copr(copr, flask.g.user, dstname=form.name.data, dstgroup=dstgroup) db.session.commit() flask.flash("Forking project {} for you into {}. Please be aware that it may take a few minutes " "to duplicate a backend data.".format(copr.full_name, fcopr.full_name)) return flask.redirect(url_for_copr_details(fcopr)) return render_copr_fork(copr, form)
def coprs_by_user(username=None, page=1): user = users_logic.UsersLogic.get(username).first() if not user: return page_not_found("User {0} does not exist.".format(username)) query = CoprsLogic.get_multiple_owned_by_username(username) query = CoprsLogic.filter_without_group_projects(query) query = CoprsLogic.set_query_order(query, desc=True) paginator = helpers.Paginator(query, query.count(), page) coprs = paginator.sliced_query # flask.g.user is none when no user is logged - showing builds from everyone users_builds = builds_logic.BuildsLogic.get_recent_tasks(flask.g.user, 5) return flask.render_template("coprs/show/user.html", user=user, coprs=coprs, paginator=paginator, tasks_info=ComplexLogic.get_queues_size(), users_builds=users_builds)
def coprs_by_owner(username=None, page=1): user = users_logic.UsersLogic.get(username).first() if not user: return page_not_found( "User {0} does not exist.".format(username)) query = CoprsLogic.get_multiple_owned_by_username(username) query = CoprsLogic.filter_without_group_projects(query) query = CoprsLogic.set_query_order(query, desc=True) paginator = helpers.Paginator(query, query.count(), page) coprs = paginator.sliced_query # flask.g.user is none when no user is logged - showing builds from everyone users_builds = builds_logic.BuildsLogic.get_recent_tasks(flask.g.user, 5) return flask.render_template("coprs/show/user.html", user=user, coprs=coprs, paginator=paginator, tasks_info=ComplexLogic.get_queues_size(), users_builds=users_builds)