Пример #1
0
def preferences():
    if request.method == 'GET':
        all_categories = Category.objects
        category_ids = [
            str(category.id) for category in current_user.categories
        ]

        return render_template(
            'preferences.html',
            name=current_user.email,
            categories=[category.to_json() for category in all_categories],
            user_category_ids=category_ids)

    form_string = request.form['categories']
    if form_string != '':
        raw_category_ids = form_string.split(',')
        category_ids = [
            ObjectId(category_id) for category_id in raw_category_ids
        ]
        current_user.update(categories=category_ids)

    else:
        current_user.update(categories=None)

    user = User.objects(id=current_user.id).first()

    recommender.set_recommended_events(user.id)
    return redirect(url_for('web.dashboard'))
Пример #2
0
def record_interest(event_id):
    event = Event.objects.get(id=event_id)
    if event in current_user.events:
        current_user.update(pull_all__events=[event])
    else:
        current_user.update(add_to_set__events=[event])
    recommender.set_recommended_events(current_user.id)
    return redirect(request.referrer)
Пример #3
0
def login():
    form = RegForm()

    if request.method == 'GET':
        return render_template('login.html', form=form)

    if form.validate():
        print(User.objects)
        user = User.objects(email=form.email.data).first()
        if user and user.login(form.password.data):
            login_user(user)
            print("start getting events")
            recommender.set_recommended_events(user.id)
            print('finished getting events')
            return redirect(url_for('web.dashboard'))

        return render_template('login.html',
                               form=form,
                               server_errors=['Wrong email or password!'])

    return render_template('login.html',
                           form=form,
                           server_errors=['Wrong email or password!'])
Пример #4
0
def dashboard():
    user = User.objects(id=current_user.id).first()
    recommender.set_recommended_events(user.id)
    return render_template('dashboard.html', name=current_user.email)