Exemple #1
0
def quit_group_form(group_id):
    """
    Kick the current_user from a group.
    Chose an other manager if they were the manager.
    Delete the group is now empty.
    """
    group = Group.from_id(group_id)
    res = True
    if group is None:
        abort(404)
        return False

    participation = Participate.from_both_ids(current_user.id, group_id)
    if participation is None:
        flash(
            "Vous ne pouvez pas quitter un groupe dont vous n'êtes pas membre.",
            'warning')
        return False
    else:
        db.session.delete(participation)

    participations = group.participations

    if participations.count() == 0:  # if the group in now empty
        db.session.delete(group)
        res = False
        flash("Le groupe a été supprimé", "warning")
    elif current_user.id == group.manager_id:  # if the group doesnt have a manager anymore
        group.manager_id = participations[
            0].member_id  # nominate a new manager

    db.session.commit()
    return res
Exemple #2
0
def join_public_group_form(group_id):
    """
    create a new Participate relationship
    """
    group = Group.from_id(group_id)
    if group is None:
        abort(404)
        return False
    elif group.is_private:
        flash('Vous ne pouvez pas rejoindre un groupe privé sans un code.',
              'danger')
        return False
    db.session.add(Participate(group_id=group_id, member_id=current_user.id))
    db.session.commit()
    return True
Exemple #3
0
def kick_group_form(group_id, member_id):
    """
    Kick a user from a group
    """
    group = Group.from_id(group_id)
    if group is None:
        abort(404)

    if current_user.id == group.manager_id:
        participation = Participate.from_both_ids(member_id, group_id)
        if participation is None:
            flash(
                "Vous ne pouvez pas kick quelqu'un qui n'est pas dans ce groupe",
                "warning")
        else:
            db.session.delete(participation)
    else:
        flash(
            "Vous ne pouvez pas kick quelqu'un d'un groupe dont vous n'êtes pas le chef",
            "warning")

    db.session.commit()
Exemple #4
0
def lead_group_form(group_id, member_id):
    """
    Make a member, new manager of a group
    """
    group = Group.from_id(group_id)
    if group is None:
        abort(404)

    if current_user.id == group.manager_id:
        participation = Participate.from_both_ids(member_id, group_id)
        if participation is None:
            flash(
                "Vous ne pouvez pas nommer responsable un utilisateur n'étant pas dans le groupe",
                "warning")
        elif member_id == group.manager_id:
            flash("Vous êtes déjà responsable de ce groupe", "warning")
        else:
            group.manager_id = member_id
    else:
        flash(
            "Vous ne pouvez pas changer le responsable du groupe si vous n'êtes pas le chef.",
            "warning")

    db.session.commit()