from flask import render_template, redirect, request, url_for, flash, session, abort, current_app
from flask_login import login_required, login_user, logout_user, current_user
from sqlalchemy import desc

from . import settings
from .forms import EditProfileForm, EditProfileAdminForm

from ..email import send_email
from .. import db
from ..models import User
import sys

#PROFILE
@settings.route('/profile', methods=['GET', 'POST'])
@login_required
def profile():
    page = { 'title': 'Edit Profile' }
    form = EditProfileForm()
    if form.validate_on_submit():
        current_user.name = form.name.data
        current_user.address = form.address.data
        current_user.city = form.city.data
        current_user.postcode = form.postcode.data
        current_user.country = form.country.data
        current_user.phone = form.phone.data
        current_user.org_account = form.org_account.data
        current_user.org_companyname = form.org_companyname.data
        current_user.org_regaddress = form.org_regaddress.data
        current_user.org_responsible = form.org_responsible.data
        current_user.org_vatnum = form.org_vatnum.data
        current_user.twofactor = form.twofactor.data
        db.session.add(current_user)
        db.session.commit()
        flash('Info Updated!')

    form.name.data = current_user.name
    form.address.data = current_user.address
    form.city.data = current_user.city
    form.postcode.data = current_user.postcode
    form.country.data = current_user.country
    form.phone.data = current_user.phone
    form.org_account.data = current_user.org_account
    form.org_companyname.data = current_user.org_companyname
    form.org_regaddress.data = current_user.org_regaddress
    form.org_responsible.data = current_user.org_responsible
    form.org_vatnum.data = current_user.org_vatnum
    form.twofactor.data = current_user.twofactor

    wallet = "%.2f" % round(current_user.wallet, 3)
    #current_app.logger.info('[{}] wallet: {}'.format(current_user.email, wallet))

    return render_template('settings/profile.html', page=page, form=form, wallet=wallet, cuser=current_user)

