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
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
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()
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()