def register(): """ New user's registration :return: """ form = RegistrationForm(request.form) if form.validate(): nickname = form.nickname.data pyname = ''.join(lazy_pinyin(nickname, errors='replace')) pyname = User.make_unique_pyname(pyname) user = User(email=form.email.data, nickname=nickname, pyname=pyname, password=form.password.data) user.save() login_user(user) registration_notify(user) return json.dumps({'msg': 'OK'}) error_list = [] [error_list.append(error) for field_name, field_errors in form.errors.items() for error in field_errors] return json.dumps({'msg': error_list})
def _edit_profile(): """ Edit the personal information :return: """ pyname = current_user.pyname user = User.query.filter_by(pyname=pyname).first() new_nickname = request.form['new_nickname'] new_gender = request.form['new_gender'] new_about_me = request.form['new_about_me'] zoom = request.form['zoom'] x_offset = request.form['x_offset'] y_offset = request.form['y_offset'] width = request.form['width'] height = request.form['height'] if 'new_avatar' in request.files: new_avatar = request.files['new_avatar'] filename = unique_filename(new_avatar.filename) filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename) new_avatar.save(filepath) im = Image.open(filepath) def get_raw_pixel(pixel, z=zoom): return int(fabs(round(float(pixel)/(float(z))))) raw_x = get_raw_pixel(x_offset) raw_y = get_raw_pixel(y_offset) raw_width = get_raw_pixel(width) raw_height = get_raw_pixel(height) box = (raw_x, raw_y, raw_x+raw_width, raw_y+raw_height) region = im.crop(box) max_width = app.config['MAX_AVATAR_IMG_WIDTH'] if raw_width > max_width: region = region.resize((max_width, max_width), Image.ANTIALIAS) region.save(filepath) user.avatar = url_for('uploaded_file', filename=filename) else: pass if user.nickname != new_nickname: user.nickname = new_nickname new_pyname = ''.join(lazy_pinyin(new_nickname, errors='replace')) new_pyname = User.make_unique_pyname(new_pyname) user.pyname = new_pyname if new_gender == 'female': gender = 0 elif new_gender == 'male': gender = 1 else: gender = 10 user.gender = gender user.about_me = new_about_me user.save() new_profile_data = {'nickname': new_nickname, 'gender': new_gender, 'about-me': new_about_me, 'avatar': current_user.avatar} return json.dumps(new_profile_data)