Beispiel #1
0
def create_user_page():
    user_id = request.args.get('user_id')
    # Initialize form
    user = User()
    if user_id is not None:
        user = User.query.filter_by(id=user_id).first()
    form = UserProfileForm(request.form, obj=user)

    if request.method == 'POST':
        form.populate_obj(user)
        role = Role.query.filter(Role.name == "admin").first()
        if user.id is None:
            user = User(email=request.form['email'],
                        first_name=request.form['first_name'],
                        last_name=request.form['last_name'],
                        password=current_app.user_manager.hash_password(
                            request.form['password']),
                        active=True,
                        email_confirmed_at=datetime.datetime.utcnow())
            if str(request.form['role']) == "admin":
                user.roles.append(role)
            else:
                user.roles = []
            db.session.add(user)
            db.session.commit()
        else:
            user.email = request.form['email']
            user.first_name = request.form['first_name']
            user.last_name = request.form['last_name']
            if request.form['password'] is not None and request.form[
                    'password'] is not "":
                user.password = current_app.user_manager.hash_password(
                    request.form['password'])
            if str(request.form['role']) == "admin":
                user.roles.append(role)
            else:
                user.roles = []
            db.session.commit()
        flash('You successfully updated your user!', 'success')
        return redirect(url_for('main.user_admin_page'))
    return render_template('pages/admin/create_user.html',
                           user=user,
                           form=form)
Beispiel #2
0
def admin_create_tutor():

    form = TutorCustomForm()
    # this next line needed for a validation in the user model class
    form.id = -1

    # adding the full set of select options to the select list
    addTutorFormChoices(form)
    if form.add_time.data:
        form.dates.append_entry()
        return render_template('admin/admin_create_edit_tutor.html',
                               form=form,
                               time_state='manage_time',
                               state='Create')

    if form.remove_time.data:
        removeTime(form)
        return render_template('admin/admin_create_edit_tutor.html',
                               form=form,
                               time_state='manage_time',
                               state='Create')

    if form.validate_on_submit():
        user = User()
        user.first_name = form.first_name.data
        user.last_name = form.last_name.data
        user.email = form.email.data
        user.roles = []
        for role_id in form.roles.data:
            roleObj = Role.query.filter(Role.id == role_id).first()
            user.roles.append(roleObj)

        user.password = current_app.user_manager.password_manager.hash_password(
            form.password.data)

        tutor = Tutor()
        tutor.tutor_phone = form.phone.data
        tutor.display_in_sched = form.display_in_sched.data

        tutor.languages = []
        for lang in form.languages:
            if lang.checked is True:
                langObj = Language.query.filter(
                    Language.id == lang.data).first()
                tutor.languages.append(langObj)

        tutor.courses = []
        for course in form.courses:
            if course.checked is True:
                courseObj = Course.query.filter(
                    Course.id == course.data).first()
                tutor.courses.append(courseObj)

        for date_group in form.dates:
            time = Time()
            time.time_day = date_group['time_day'].data
            time.time_start = date_group['time_start'].data
            time.time_end = date_group['time_end'].data
            tutor.dates.append(time)

        user.tutor = tutor
        db.session.add(user)
        db.session.commit()

        flash('User Created!!', 'success')
        return redirect(url_for('admin.admin_list_users'))
    return render_template('admin/admin_create_edit_tutor.html',
                           form=form,
                           state='Create')