Example #1
0
def settings(id):
    project = get_project(id, for_management=False)
    members = project.members.join(Membership).with_entities(
        User, Membership.allows_management).all()
    kwargs = {
        'fqdn':
        current_app.config['SERVER_NAME'],
        'protocol':
        ('https'
         if current_app.config['KOZMIC_USE_HTTPS_FOR_BADGES'] else 'http'),
        'project_id':
        project.id,
        'project_full_name':
        project.gh_full_name,
    }
    example_badge_href = ('http://{fqdn}/projects/{project_id}/'
                          'builds/latest/?ref=master'.format(**kwargs))
    example_badge_src = ('{protocol}://{fqdn}/badges/{project_full_name}/'
                         'master'.format(**kwargs))
    return render_template(
        'projects/settings.html',
        project=project,
        members=members,
        is_current_user_a_manager=perms.manage_project(id).can(),
        can_current_user_delete_a_project=perms.delete_project(id).can(),
        example_badge_href=example_badge_href,
        example_badge_src=example_badge_src)
Example #2
0
def delete_project(id):
    project = Project.query.get_or_404(id)
    perms.delete_project(id).test(http_exception=403)

    ok_to_commit = project.delete()
    if ok_to_commit:
        db.session.commit()
        flash('Project "{}" has been successfully '
              'deleted.'.format(project.gh_full_name),
              'success')
        return redirect(url_for('.index'))
    else:
        db.session.rollback()
        flash('Something went wrong (probably there was a problem '
              'communicating with the GitHub API). Please try again later.',
              'warning')
        return redirect(url_for('.settings', id=project.id))
Example #3
0
def delete_project(id):
    project = Project.query.get_or_404(id)
    perms.delete_project(id).test(http_exception=403)

    ok_to_commit = project.delete()
    if ok_to_commit:
        db.session.commit()
        flash(
            'Project "{}" has been successfully '
            'deleted.'.format(project.gh_full_name), 'success')
        return redirect(url_for('.index'))
    else:
        db.session.rollback()
        flash(
            'Something went wrong (probably there was a problem '
            'communicating with the GitHub API). Please try again later.',
            'warning')
        return redirect(url_for('.settings', id=project.id))
Example #4
0
def settings(id):
    project = get_project(id, for_management=False)
    members = project.members.join(Membership).with_entities(
        User, Membership.allows_management).all()
    kwargs = {
        'fqdn': current_app.config['SERVER_NAME'],
        'protocol': ('https' if current_app.config['KOZMIC_USE_HTTPS_FOR_BADGES']
                     else 'http'),
        'project_id': project.id,
        'project_full_name': project.gh_full_name,
    }
    example_badge_href = ('http://{fqdn}/projects/{project_id}/'
                          'builds/latest/?ref=master'.format(**kwargs))
    example_badge_src = ('{protocol}://{fqdn}/badges/{project_full_name}/'
                         'master'.format(**kwargs))
    return render_template(
        'projects/settings.html',
        project=project,
        members=members,
        is_current_user_a_manager=perms.manage_project(id).can(),
        can_current_user_delete_a_project=perms.delete_project(id).can(),
        example_badge_href=example_badge_href,
        example_badge_src=example_badge_src)