Beispiel #1
0
def convention_update():
    if g.user is None or not g.user.staff:
        return redirect('/')
    if 'id' in request.form:
        convention = Convention.query.filter_by(id=request.form['id'])
        old_convention = copy.copy(convention)
    else:
        convention = Convention()
        old_convention = Convention()
    if convention is None:
        return redirect('/')
    convention.name = request.form['name']
    convention.url = request.form['url']
    convention.description = request.form['description']
    start_date = request.form['start_date'].split('-')
    start_time = request.form['start_time'].split(':')
    end_date = request.form['end_date'].split('-')
    end_time = request.form['end_time'].split(':')
    convention.start_dt = datetime.datetime(year=int(start_date[0]),
                                            month=int(start_date[1]),
                                            day=int(start_date[2]),
                                            hour=int(start_time[0]),
                                            minute=int(start_time[1]))
    convention.end_dt = datetime.datetime(year=int(end_date[0]),
                                          month=int(end_date[1]),
                                          day=int(end_date[2]),
                                          hour=int(end_time[0]),
                                          minute=int(end_time[1]))
    db.session.add(convention)
    db.session.commit()
    audit.audit_change(Convention.__table__, g.user, old_convention,
                       convention)
    return redirect('/convention/%s/' % convention.url)
Beispiel #2
0
def update_user():
    if g.user is None:
        return redirect('/')
    view_user = User.query.filter_by(id=int(request.form['user_id'])).first()
    old_view_user = copy(view_user)
    if view_user is None:
        return redirect('/')
    if view_user == g.user or g.user.staff == True or g.user.superuser == True:
        view_user.public_rsvps = 'public_rsvps' in request.form
        view_user.email = request.form['email']
        view_user.phone = request.form['phone']
        if g.user.staff == True:
            view_user.special_tag = request.form['special_tag']
        if g.user.superuser == True:
            view_user.staff = 'staff' in request.form
        if not view_user.special_tag is None:
            if view_user.special_tag.strip() == '':
                view_user.special_tag = None
        db.session.add(view_user)
        db.session.commit()
        audit.audit_change(User.__table__, g.user, old_view_user, view_user)
        return redirect('/' + view_user.account_name)
    return redirect('/')
Beispiel #3
0
def update_user():
    if g.user is None:
        return redirect('/')
    view_user = User.query.filter_by(id=int(request.form['user_id'])).first()
    old_view_user = copy(view_user)
    if view_user is None:
        return redirect('/')
    if view_user == g.user or g.user.staff == True or g.user.superuser == True:
        view_user.public_rsvps = 'public_rsvps' in request.form
        view_user.email = request.form['email']
        view_user.phone = request.form['phone']
        if g.user.staff == True:
            view_user.special_tag = request.form['special_tag']
        if g.user.superuser == True:
            view_user.staff = 'staff' in request.form
        if not view_user.special_tag is None:
            if view_user.special_tag.strip() == '':
                view_user.special_tag = None
        db.session.add(view_user)
        db.session.commit()
        audit.audit_change(User.__table__, g.user, old_view_user, view_user)
        return redirect('/' + view_user.account_name)
    return redirect('/')
Beispiel #4
0
def convention_update():
    if g.user is None or not g.user.staff:
        return redirect('/')
    if 'id' in request.form:
        convention = Convention.query.filter_by(id=request.form['id'])
        old_convention = copy.copy(convention)
    else:
        convention = Convention()
        old_convention = Convention()
    if convention is None:
        return redirect('/')
    convention.name = request.form['name']
    convention.url = request.form['url']
    convention.description = request.form['description']
    start_date = request.form['start_date'].split('-')
    start_time = request.form['start_time'].split(':')
    end_date = request.form['end_date'].split('-')
    end_time = request.form['end_time'].split(':')
    convention.start_dt = datetime.datetime(year=int(start_date[0]), month=int(start_date[1]), day=int(start_date[2]), hour=int(start_time[0]), minute=int(start_time[1]))
    convention.end_dt = datetime.datetime(year=int(end_date[0]), month=int(end_date[1]), day=int(end_date[2]), hour=int(end_time[0]), minute=int(end_time[1]))
    db.session.add(convention)
    db.session.commit()
    audit.audit_change(Convention.__table__, g.user, old_convention, convention)
    return redirect('/convention/%s/' % convention.url)
Beispiel #5
0
def convention_update():
    if g.user is None or not g.user.staff:
        return redirect("/")
    if "id" in request.form:
        convention = Convention.query.filter_by(id=request.form["id"])
        old_convention = copy.copy(convention)
    else:
        convention = Convention()
        old_convention = Convention()
    if convention is None:
        return redirect("/")
    convention.name = request.form["name"]
    convention.url = request.form["url"]
    convention.description = request.form["description"]
    start_date = request.form["start_date"].split("-")
    start_time = request.form["start_time"].split(":")
    end_date = request.form["end_date"].split("-")
    end_time = request.form["end_time"].split(":")
    convention.start_dt = datetime.datetime(
        year=int(start_date[0]),
        month=int(start_date[1]),
        day=int(start_date[2]),
        hour=int(start_time[0]),
        minute=int(start_time[1]),
    )
    convention.end_dt = datetime.datetime(
        year=int(end_date[0]),
        month=int(end_date[1]),
        day=int(end_date[2]),
        hour=int(end_time[0]),
        minute=int(end_time[1]),
    )
    db.session.add(convention)
    db.session.commit()
    audit.audit_change(Convention.__table__, g.user, old_convention, convention)
    return redirect("/convention/%s/" % convention.url)
Beispiel #6
0
def submitevent():
    if g.user is None:
        return '{"messages : ["Unauthenticated"]}', 401
    validation = validateSubmitEvent(request)
    if 'success' != validation['status']:
        return Response(json.dumps(validation), mimetype='application/json'), validation['code']
    eventid = request.form.get('eventid')
    if eventid is not None:
        submission = Submission.query.get(eventid)
        old_submission = copy(submission)
        if not g.user.staff and g.user != submission.submitter:
            return '{"messages : ["Unauthorized"]}', 403
    else:
        submission = Submission()
        old_submission = Submission()

    fields = {'email': 'email', 'title': 'title', 'description': 'description',
              'firstname': 'firstname', 'lastname': 'lastname',
              'duration': 'duration', 'setuptime': 'setupTime', 'repetition': 'repetition',
              'timerequest': 'timeRequest',
              'eventtype': 'eventType', 'players': 'players', 'roundtables': 'roundTables', 'longtables': 'longTables',
              'facilityrequest': 'facilityRequest',
              'comments': 'comments'}
    for field, dbfield in fields.items():
        if field in request.form:
            setattr(submission, dbfield, request.form[field])
    if 'submitter_id' in request.form:
        submission.submitter = User.query.filter_by(id=request.form['submitter_id']).first()
    submission.private = 'private' in request.form
    submission.followUpState = request.form['followupstate'] if 'followupstate' in request.form and request.form[
        'followupstate'] is not None else 0

    # presenter handling
    presenters_id = request.form.getlist('presenter_id')
    presenters_name = request.form.getlist('presenter')
    presenters_phone = request.form.getlist('phone')
    presenters_email = request.form.getlist('email')
    presenters = zip(presenters_id, presenters_name, presenters_phone, presenters_email)
    del submission.presenters[:]
    for presenter in presenters:
        found_presenter = None
        (id, name, phone, email) = presenter
        if id:
            found_presenter = Presenter.query.get(id)
        if found_presenter:
            if found_presenter not in submission.presenters:
                submission.presenters.append(found_presenter)
            continue
        new_presenter = Presenter(name)
        new_presenter.phone = phone
        new_presenter.email = email
        db.session.add(new_presenter)
        submission.presenters.append(new_presenter)

    tags = request.form.getlist('tag')
    del submission.tags[:]
    for tag in tags:
        submission.tags.append(get_tag(tag))

    resources = request.form.getlist('resource')
    del submission.resources[:]
    for resource_id in resources:
        matched_resource = get_resource(resource_id)
        if matched_resource:
            submission.resources.append(matched_resource)

    submission.track = get_track(request.form.get('track'))
    db.session.add(submission)
    db.session.commit()
    audit.audit_change(Submission.__table__, g.user, old_submission,
                       submission)  # We'd like submission.id to actually be real so commit the creation first
    submission_dataset_changed()
    sendEmail(submission,old_submission)
    return "", 200, {
        "Location": "/"
    }