def home(): user_edit_form = UserEditForm(request.form) if request.method == 'POST' and user_edit_form.validate(): user = User.query.filter_by(nickname=current_user.nickname).first() user.phone = user_edit_form.phone.data user.phone_verified = 1 user.about = user_edit_form.about_me.data user.last_appointment = user_edit_form.last_appointment.data user.weight = user_edit_form.weight.data user.height = user_edit_form.height.data user.medical_history = user_edit_form.medical_history.data db.session.commit() user = User.query.filter_by(nickname=current_user.nickname).first() alert_dentist = False alert_physical = False if user.last_appointment: l_a = datetime.datetime.strptime(user.last_appointment, '%Y-%m-%d') now = datetime.datetime.now() months = (now.year - l_a.year) * 12 + now.month - l_a.month if months > 12: alert_dentist = True alert_physical = True if months > 6: alert_physical = True if alert_physical and user.phone: send_sms(user.phone, 'You need a physical') sendEmail(user.email, 'It is time your scheduled physical exam.') if alert_dentist and user.phone: send_sms(user.phone, 'You need to visit a dentist') sendEmail(user.email, 'It is time your scheduled dental exam.') return render_template('home.html', form=user_edit_form, alert_physical=alert_physical, alert_dentist=alert_dentist)
def user_update(user_id): form = UserEditForm(request.form) user = UserRepository().find(user_id) if user is None: return abort(404) if form.validate(): UserRepository().update(model_id=user.id, name=form.name.data, email=form.email.data, password=form.password.data) return redirect(url_for('user_index')) return render_template('user_edit.html', user=user, form=form)
def update_account(): user = app.current_user update_form = UserEditForm(request.POST, user) if update_form.validate(): # user.update(**update_form.data).execute() update_form.populate_obj(user) print(update_form.data) user.save() print(user.picture) app.flash(u'Дані успішно оновлено') else: app.flash(u'Incorrect somtethisd') redirect('/account') # without return redirect because of raise inside
def post(self, id): if self.group != '1': self.render("404.html", username=self.username, group=self.group) arguments = { 'username': self.get_argument("username"), 'email': self.get_argument("email"), 'password': self.get_argument("password"), 'status': self.get_argument("status"), 'group': self.get_argument("group"), } form = UserEditForm(self.request.arguments) form.status.choices = [(k, v) for k, v in self.status_name.iteritems()] form.status.choices.sort() form.group.choices = [(k, v) for k, v in self.group_name.iteritems()] form.group.choices.sort() user_info = get_user_info_by_id(self.session, id) if user_info is None: self.render("404.html", username=self.username, group=self.group) update_error = user_update_validation(self.session, user_info, self.uid, arguments) if form.validate(): if update_error == "": update_user_info(self.session, user_info, arguments) self.redirect("/admin/user/show/" + id) else: self.render( "admin/user_edit.html", username=self.username, group=self.group, status_name=self.status_name, group_name=self.group_name, form=form, db_error=update_error, user_info=user_info ) else: self.render( "admin/user_edit.html", username=self.username, group=self.group, status_name=self.status_name, group_name=self.group_name, form=form, db_error=None, user_info=user_info )
def post(self, id): if self.group != '1': self.render("404.html", username=self.username, group=self.group) arguments = { 'username': self.get_argument("username"), 'email': self.get_argument("email"), 'password': self.get_argument("password"), 'status': self.get_argument("status"), 'group': self.get_argument("group"), } form = UserEditForm(self.request.arguments) form.status.choices = [(k, v) for k, v in self.status_name.iteritems()] form.status.choices.sort() form.group.choices = [(k, v) for k, v in self.group_name.iteritems()] form.group.choices.sort() user_info = get_user_info_by_id(self.session, id) if user_info is None: self.render("404.html", username=self.username, group=self.group) update_error = user_update_validation(self.session, user_info, self.uid, arguments) if form.validate(): if update_error == "": update_user_info(self.session, user_info, arguments) self.redirect("/admin/user/show/" + id) else: self.render("admin/user_edit.html", username=self.username, group=self.group, status_name=self.status_name, group_name=self.group_name, form=form, db_error=update_error, user_info=user_info) else: self.render("admin/user_edit.html", username=self.username, group=self.group, status_name=self.status_name, group_name=self.group_name, form=form, db_error=None, user_info=user_info)
def user_edit(username): """ Edit user profile. Takes in { user: { bio, first_name, last_name, email, password, image_url, location }} Returns => { user: { username, bio, first_name, last_name, email, image_url, location, is_admin } } TODO: Auth required: admin or username equals logged in user """ user = User.query.get_or_404(username) user_data = request.json.get("user") form = UserEditForm(data=user_data) if form.validate(): if User.authenticate(username, form.password.data): user.update(form) db.session.commit() return (jsonify(user=user.serialize()), 200) else: return (jsonify(errors=["Invalid credentials"]), 401) else: errors = [] for field in form: for error in field.errors: errors.append(error) return (jsonify(errors=errors), 400)
def users_update(user_id): found_user = User.query.get(user_id) form = UserEditForm(request.form) if form.validate(): if User.authenticate(found_user.username, form.password.data): found_user.username = form.username.data found_user.email = form.email.data found_user.image_url = form.image_url.data or "/static/images/default-pic.png" found_user.bio = form.bio.data found_user.header_image_url = form.header_image_url.data or "/static/images/warbler-hero.jpg" found_user.location = form.location.data db.session.add(found_user) db.session.commit() return redirect(url_for('users_show', user_id=user_id)) flash({ 'text': "Wrong password, please try again.", 'status': 'danger' }) return render_template('users/edit.html', form=form, user_id=found_user.id)
def user_edit(id): user = User.query.get(id) form = UserEditForm(obj=user) if request.method == 'POST': try: form = UserEditForm(request.form, obj=user) if form.validate(): form.populate_obj(user) db.session.commit() flash("Notanda var breytt", category='success') except Exception as error: app.logger.error('Error updating a user : {}\n{}'.format( error, traceback.format_exc())) return render_template('forms/model.jinja', user=user, form=form, type='edit', action=url_for('user_edit', id=id), section='user')
def profile_post(): """Update profile for current user.""" if not g.user: flash("Access unauthorized.", "danger") return redirect("/") user = g.user edit_form = UserEditForm(obj=user) authenticate_form = AuthenticateForm() if authenticate_form.is_submitted(): if authenticate_form.validate(): entered_password = authenticate_form.password.data username = user.username if User.authenticate(username, entered_password): return render_template('/users/edit.html', form=edit_form, authenticated=True) else: flash("Incorrect password", "danger") return render_template('/users/edit.html', form=authenticate_form, authenticated=False) if edit_form.is_submitted(): if edit_form.validate(): user.username = edit_form.username.data user.email = edit_form.email.data user.image_url = edit_form.image_url.data user.header_image_url = edit_form.header_image_url.data user.bio = edit_form.bio.data db.session.commit() return redirect(f'/users/{user.id}') else: return render_template('/users/edit.html', form=edit_form, authenticated=True)