def change_profile_details(): """Respond to existing user's request to change their profile details.""" user_instance = current_user form = ChangeProfileForm(obj=user_instance) if request.method == 'POST': if form.validate_on_submit(): form.populate_obj(user_instance) db.session.add(user_instance) if request.files['photo']: image_filename = images.save(request.files['photo']) image_url = images.url(image_filename) picture_photo = Photo.query.filter_by(user_id=current_user.id).first() if not picture_photo: picture_photo = Photo( image_filename=image_filename, image_url=image_url, user_id=current_user.id, ) else: picture_photo.image_filename = image_filename picture_photo.image_url = image_url db.session.add(picture_photo) db.session.commit() flash('You have successfully updated your profile', 'success') return redirect(url_for('account.change_profile_details')) else: flash('Unsuccessful.', 'warning') return render_template('account/manage.html', form=form)
def change_profile_details(): website_settings = MSettings.query.first() """Respond to existing user's request to change their profile details.""" user_instance = current_user form = ChangeProfileForm(obj=user_instance) choices = [('0', "No Recruiter")] + [ ('{}'.format(user.id), user.full_name) for user in User.query.filter_by(profession='Recruiter').all() ] form.recruiter.choices = choices form.recruiter.process_data(form.recruiter.data) if request.method == 'GET' and ( user_instance.profession, user_instance.profession) not in form.profession.choices: form.profession.default = 'OTHER SPECIFY' form.profession.process_data(form.profession.default) form.custom_profession.process_data(user_instance.profession) if request.method == 'GET': form.recruiter.process_data(user_instance.recruiter_id) if request.method == 'POST': if form.validate_on_submit(): profession = form.profession.data if form.profession.data != 'OTHER SPECIFY' else form.custom_profession.data recruiter_id = None if form.profession.data == 'Recruiter' or form.recruiter.data == '0' else form.recruiter.data del form.recruiter form.populate_obj(user_instance) user_instance.profession = profession user_instance.recruiter_id = recruiter_id db.session.add(user_instance) if request.files['photo']: image_filename = images.save(request.files['photo']) image_url = images.url(image_filename) picture_photo = Photo.query.filter_by( user_id=current_user.id).first() if not picture_photo: picture_photo = Photo( image_filename=image_filename, image_url=image_url, user_id=current_user.id, ) else: picture_photo.image_filename = image_filename picture_photo.image_url = image_url db.session.add(picture_photo) db.session.commit() flash('You have successfully updated your profile', 'success') return redirect(url_for('account.change_profile_details')) else: flash('Unsuccessful.', 'warning') return render_template('account/manage.html', website_settings=website_settings, form=form)