Exemple #1
0
def index():
    if not configuration.verify_config_item_bool("modules", "module_core"):
        return "Core module not enabled. Enable it by adding under the [modules] section in {}, module_core = true.".format(
            configuration.config_file_location)
    cookie = request.cookies.get('jam_order_id')
    if cookie and len(cookie) == 9 and database.verify_attendee_id(
            cookie, database.get_current_jam_id()):
        return redirect("workshops")
    form = forms.GetOrderIDForm(request.form)
    if request.method == 'POST' and form.validate():
        if database.verify_attendee_id(
                form.order_id.data, database.get_current_jam_id(
                )) and form.day_password.data == day_password:
            resp = make_response(redirect("workshops"))
            resp.set_cookie('jam_order_id',
                            str(form.order_id.data),
                            expires=(datetime.now() + timedelta(hours=6)))
            resp.set_cookie('jam_id', str(database.get_current_jam_id()))
            return resp
        else:
            flash(
                "Error, no order with that ID found or Jam password is wrong. Please try again.",
                "danger")
            return render_template('index.html', form=form)
    return render_template('index.html', form=form)
def manage_attendees():
    # Getting names of users and also volunteers that are down as attending this Jam
    jam_attendees = database.get_all_attendees_for_jam(
        database.get_current_jam_id())
    volunteer_attendances = database.get_attending_volunteers(
        database.get_current_jam_id(), only_attending_volunteers=True)
    for volunteer_attendee in volunteer_attendances:

        for volunteer_attendee_record in volunteer_attendee.attending:
            if volunteer_attendee_record.jam_id == database.get_current_jam_id(
            ):
                volunteer_attendee.current_jam = volunteer_attendee_record
                break
        volunteer_attendee.current_location = volunteer_attendee.current_jam.current_location
        volunteer_attendee.attendee_id = volunteer_attendee.user_id
        volunteer_attendee.order_id = "Volunteer"
        jam_attendees.append(volunteer_attendee)
    for attendee in jam_attendees:
        if attendee.current_location == "Checked in":
            attendee.bg_colour = database.green
        elif attendee.current_location == "Checked out":
            attendee.bg_colour = database.yellow
        elif attendee.current_location == "Not arrived":
            attendee.bg_colour = database.light_grey

    #jam_attendees = sorted(jam_attendees, key=lambda x: x.order_id, reverse=False)
    jam_attendees = sorted(jam_attendees,
                           key=lambda x: x.current_location,
                           reverse=False)
    return render_template("admin/manage_attendees.html",
                           attendees=jam_attendees)
def display_workshops():
    if database.verify_attendee_id(request.cookies.get('jam_order_id'),
                                   database.get_current_jam_id()):
        workshop_attendees = database.get_attendees_in_order(
            request.cookies.get("jam_order_id"))
        attendees = []
        if workshop_attendees:
            for attendee in workshop_attendees:
                if attendee.ticket_type == "General Jam Attendee" or attendee.ticket_type == "First-timer":
                    #attendees.append({"name":"{} {} - {}".format(attendee.first_name, attendee.surname, attendee.ticket_type), "id":attendee.attendee_id})
                    attendees.append({
                        "name":
                        "{} {}".format(attendee.first_name, attendee.surname),
                        "id":
                        attendee.attendee_id
                    })
            return render_template(
                "workshops.html",
                workshop_slots=database.get_time_slots_to_select(
                    database.get_current_jam_id(),
                    request.cookies.get('jam_order_id')),
                jam_attendees=attendees)
        return render_template(
            "workshops.html",
            workshop_slots=database.get_time_slots_to_select(
                database.get_current_jam_id(),
                request.cookies.get('jam_order_id')))
    else:
        flash(
            "You must enter your Eventbrite Order ID and the day password to access the workshop booking system.",
            "danger")
        return redirect("/")
Exemple #4
0
def delete_jam():
    jam_id = request.form["jam_id"]
    if int(jam_id) == database.get_current_jam_id():
        print("Error, unable to remove Jam as is the current selected Jam {}".format(database.get_current_jam_id()))
        return
    print("Jam being deleted {}.".format(jam_id))
    database.remove_jam(jam_id)
    return " "
Exemple #5
0
def volunteer_attendance():
    volunteer_attendances = database.get_attending_volunteers(database.get_current_jam_id())
    form = forms.VolunteerAttendance(request.form)
    if request.method == 'POST' and form.validate():
        database.add_volunteer_attendance(database.get_current_jam_id(), request.logged_in_user.user_id, int(literal_eval(form.attending_jam.data)), int(literal_eval(form.attending_setup.data)), int(literal_eval(form.attending_packdown.data)), int(literal_eval(form.attending_food.data)), form.notes.data)

        return redirect(("/admin/volunteer_attendance"), code=302)
    return render_template("admin/volunteer_attendance.html", form=form, volunteer_attendances=volunteer_attendances, user_id=request.logged_in_user.user_id, eventbrite_event_name = database.get_jam_details(database.get_current_jam_id()).name)
def select_jam():
    jam_id = request.form["jam_id"]
    if int(jam_id) == database.get_current_jam_id():
        print(
            "Error, unable to select Jam as is the current selected Jam - {}".
            format(database.get_current_jam_id()))
        return
    print("Jam being selected {}.".format(jam_id))
    database.select_jam(int(jam_id))
    return " "
Exemple #7
0
def public_schedule():
    time_slots, workshop_rooms_in_use = database.get_workshop_timetable_data(
        database.get_current_jam_id())
    return render_template("public_schedule.html",
                           time_slots=time_slots,
                           workshop_rooms_in_use=workshop_rooms_in_use,
                           total_workshop_rooms=len(workshop_rooms_in_use),
                           container_name=" ",
                           jam_title=database.get_jam_details(
                               database.get_current_jam_id()).name)
Exemple #8
0
def attendee_qr_login(order_id, password):
    if database.verify_attendee_id(
            order_id,
            database.get_current_jam_id()) and password == day_password:
        resp = make_response(redirect("/workshops"))
        resp.set_cookie('jam_order_id',
                        str(order_id),
                        expires=(datetime.now() + timedelta(hours=6)))
        resp.set_cookie('jam_id', str(database.get_current_jam_id()))
        return resp
    else:
        return "Invalid data from QR code..."
def add_workshop_to_jam():
    form = forms.AddWorkshopToJam(request.form)
    if request.method == 'POST':  # and form.validate():
        database.add_workshop_to_jam_from_catalog(
            database.get_current_jam_id(), form.workshop.data,
            form.volunteer.data, form.slot.data, form.room.data,
            int(literal_eval(form.pilot.data)))
        return redirect("/admin/add_workshop_to_jam", code=302)
    return render_template('admin/add_workshop_to_jam_form.html',
                           form=form,
                           workshop_slots=database.get_time_slots_to_select(
                               database.get_current_jam_id(),
                               0,
                               admin_mode=True))
def get_jam_info(token):
    if token in api_keys:
        jam = eventbrite_interactions.get_eventbrite_event_by_id(database.get_current_jam_id())
        to_return = [jam["name"]["text"], (database.convert_to_python_datetime(jam["start"]["local"].replace("T", " ")) - datetime.now()).days]
        return json.dumps(to_return)
    else:
        return "[]"
Exemple #11
0
def fire_list():
    jam_attendees = database.get_all_attendees_for_jam(database.get_current_jam_id())
    volunteer_attendances = database.get_attending_volunteers(database.get_current_jam_id(),
                                                              only_attending_volunteers=True)
    for volunteer_attendee in volunteer_attendances:

        for volunteer_attendee_record in volunteer_attendee.attending:
            if volunteer_attendee_record.jam_id == database.get_current_jam_id():
                volunteer_attendee.current_jam = volunteer_attendee_record
                break
        if volunteer_attendee.current_jam.current_location != "Checked in":
            continue  # If volunteer is not marked as checked in, ignore them
        volunteer_attendee.current_location = volunteer_attendee.current_jam.current_location
        volunteer_attendee.attendee_id = volunteer_attendee.user_id
        volunteer_attendee.order_id = "Volunteer"
        jam_attendees.append(volunteer_attendee)
    return render_template("admin/fire_list.html", attendees=jam_attendees)
Exemple #12
0
def update_volunteer():
    new_sessions = request.json
    sessions = []
    for session in new_sessions:
        if len(session) > 0:
            sessions.append(int(session))
    if database.set_user_workshop_runs_from_ids(request.logged_in_user, database.get_current_jam_id(), sessions):
        return "True"
def get_users_not_responded_to_attendance(token):
    if token in api_keys:
        users_not_responded = database.get_users_not_responded_to_attendance(database.get_current_jam_id())
        email_addresses = []
        for user in users_not_responded:
            email_addresses.append(user.email)
        return json.dumps(email_addresses)
    else:
        return "[]"
def volunteer():
    time_slots, workshop_rooms_in_use = database.get_volunteer_data(
        database.get_current_jam_id(), request.logged_in_user)
    return render_template("admin/volunteer_signup.html",
                           time_slots=time_slots,
                           workshop_rooms_in_use=workshop_rooms_in_use,
                           current_selected=",".join(
                               str(x.workshop_run_id)
                               for x in request.logged_in_user.workshop_runs) +
                           ",")
Exemple #15
0
def public_schedule(jam_id=None):
    if not jam_id:
        jam_id = database.get_current_jam_id()
    jams = database.get_jams_in_db()
    time_slots, workshop_rooms_in_use = database.get_workshop_timetable_data(
        jam_id)
    return render_template("public_schedule.html",
                           time_slots=time_slots,
                           workshop_rooms_in_use=workshop_rooms_in_use,
                           total_workshop_rooms=len(workshop_rooms_in_use),
                           container_name=" ",
                           selected_jam=database.get_jam_details(jam_id),
                           jams=jams)
Exemple #16
0
def check_allowed(request, group_required):
    valid_cookie, cookie = validate_cookie(request.cookies.get('jam_login'))
    if not valid_cookie:
        if cookie:
            flash("Cookie expired, please log in again.", "danger")
        login_user = None
        selected_user_group_level = 1
        order_id = request.cookies.get('jam_order_id')
        if order_id and database.verify_attendee_id(
                order_id, database.get_current_jam_id()):
            selected_user_group_level = 2
    else:
        selected_user_group_level = cookie.user.group_id
        login_user = cookie.user
    print("Current user group level {} - Trying to access {} - {}".format(
        selected_user_group_level, group_required, request.path))
    if selected_user_group_level >= group_required:
        return True, login_user
    return False, login_user
def update_attendee_info():
    current_jam = database.get_current_jam_id()
    database.update_attendees_from_eventbrite(current_jam)
    return " "
def add_jam():
    return render_template(
        "admin/add_jam.html",
        jams=eventbrite_interactions.get_eventbrite_events_name_id(),
        jams_in_db=database.get_jams_dict(),
        current_jam_id=database.get_current_jam_id())
def modify_workshop_ajax():
    workshop_id = request.form['workshop_id']
    attendee_id = request.form['attendee_id']
    if database.add_attendee_to_workshop(database.get_current_jam_id(),
                                         attendee_id, workshop_id):
        return ("")
def admin_home():
    return render_template("admin/admin_home.html",
                           eventbrite_event_name=database.get_jam_details(
                               database.get_current_jam_id()).name)
def attendee_list():
    jam_attendees = database.get_all_attendees_for_jam(
        database.get_current_jam_id())
    return render_template("admin/attendee_list.html", attendees=jam_attendees)
Exemple #22
0
def wrangler_overview_equipment():
    return render_template("admin/wrangler_overview_equipment.html", jam_id=database.get_current_jam_id(), raspberry_jam=database.get_jam_details(database.get_current_jam_id()).name, slots=database.get_wrangler_overview(database.get_current_jam_id()))
def remove_workshop_bookings_ajax():
    workshop_id = request.form['workshop_id']
    attendee_id = request.form['attendee_id']
    if database.remove_attendee_to_workshop(database.get_current_jam_id(),
                                            attendee_id, workshop_id):
        return ("")