Example #1
0
def cancel_event():
    current_event_id = request.args.get('id')
    c = Client(mock=False)
    event = c.get_event(current_event_id)

    # The current user should only be able to cancel an event if they
    # are the host of that event.
    if str(current_user.id) == str(event['id_host']):
      c.delete_event(current_user, current_event_id)
    return redirect(url_for('user_home.render_user_home'))
Example #2
0
def leave():
    c = Client(mock=False)
    id_network = request.args.get('id')
    user_id = current_user.id
    network = c.get_network(id_network)
    network_info = gather_network_info(id_network, user_id, c)

    if request.method == 'GET':
      if not network_info['user_is_member']:
        return redirect(
          url_for('networks.network') + "?id=%s" % str(id_network)
        )
      return render_template(
        'network_leave.html',
        id_network=id_network,
        network_title=network_info['network_title'],
        form=NetworkLeaveForm()
      )
    elif request.method == 'POST':
      if network_info['user_is_member']:

        # NOTE: the two event deletion steps must happen in this order.
        #
        # Future TODO is to make this not a strict dependency.
        #

        # Delete all events this user is hosting in this network.
        events_hosting = c.get_user_events_hosting(
          user_id, 1000
        )
        for event in events_hosting:
          if str(event['id_network']) == str(network['id']):
            c.delete_event(current_user, str(event['id']))

        # Unregister from all events this user is attending in this network.
        events_attending = c.get_events_attending_in_network(
          current_user, network['id'], 1000
        )
        for event in events_attending:
          c.leave_event(current_user, event['id'])

        # Leave the network.
        c.leave_network(current_user, network['id'])

      return redirect(
          url_for('user_home.render_user_home_networks')
      )