Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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
Beispiel #4
0
    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
            )
Beispiel #5
0
    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)
Beispiel #6
0
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)
Beispiel #7
0
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)
Beispiel #8
0
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')
Beispiel #9
0
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)