コード例 #1
0
ファイル: user_general.py プロジェクト: praiskup/copr
def render_pinned_projects(owner, form=None):
    pinned = [pin.copr for pin in PinnedCoprsLogic.get_by_owner(owner)]
    if isinstance(owner, models.Group):
        UsersLogic.raise_if_not_in_group(flask.g.user, owner)
        coprs = CoprsLogic.get_multiple_by_group_id(owner.id).filter(
            models.Copr.unlisted_on_hp.is_(False)).all()
    else:
        coprs = ComplexLogic.get_coprs_permissible_by_user(owner)
    coprs = sorted(coprs, key=lambda copr: copr.full_name)
    selected = [copr.id for copr in pinned]
    selected += (app.config["PINNED_PROJECTS_LIMIT"] - len(pinned)) * [None]
    for i, copr_id in enumerate(form.copr_ids.data if form else []):
        selected[i] = int(copr_id) if copr_id else None

    graph = BuildsLogic.get_small_graph_data('30min')
    return flask.render_template("pinned.html",
                                 owner=owner,
                                 pinned=pinned,
                                 selected=selected,
                                 coprs=coprs,
                                 form=form,
                                 tasks_info=ComplexLogic.get_queue_sizes(),
                                 graph=graph)