save data profile
This commit is contained in:
parent
874ca77286
commit
1820b15255
|
@ -1,3 +1,4 @@
|
||||||
|
from flask import g
|
||||||
from flask_wtf import FlaskForm
|
from flask_wtf import FlaskForm
|
||||||
from werkzeug.security import generate_password_hash
|
from werkzeug.security import generate_password_hash
|
||||||
from wtforms import (
|
from wtforms import (
|
||||||
|
@ -9,6 +10,7 @@ from wtforms import (
|
||||||
validators,
|
validators,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from ereuse_devicehub.db import db
|
||||||
from ereuse_devicehub.enums import Country
|
from ereuse_devicehub.enums import Country
|
||||||
from ereuse_devicehub.resources.user.models import User
|
from ereuse_devicehub.resources.user.models import User
|
||||||
|
|
||||||
|
@ -93,3 +95,25 @@ class ProfileForm(FlaskForm):
|
||||||
country = SelectField(
|
country = SelectField(
|
||||||
'Country', choices=COUNTRY, default="es", render_kw={'class': "form-select"}
|
'Country', choices=COUNTRY, default="es", render_kw={'class': "form-select"}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
user = kwargs.pop('user', None)
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
if user:
|
||||||
|
self.name.data = user.name
|
||||||
|
self.last_name.data = user.last_name
|
||||||
|
self.email.data = user.email
|
||||||
|
self.telephone.data = user.telephone
|
||||||
|
self.country.data = user.country
|
||||||
|
|
||||||
|
def save(self, commit=True):
|
||||||
|
agent = g.user.individual
|
||||||
|
agent.name = self.name.data
|
||||||
|
agent.last_name = self.last_name.data
|
||||||
|
agent.email = self.email.data
|
||||||
|
agent.telephone = self.telephone.data
|
||||||
|
agent.country = self.country.data
|
||||||
|
|
||||||
|
db.session.add(agent)
|
||||||
|
if commit:
|
||||||
|
db.session.commit()
|
||||||
|
|
|
@ -135,6 +135,13 @@
|
||||||
<label for="company" class="col-md-4 col-lg-3 col-form-label">{{ f.label }}</label>
|
<label for="company" class="col-md-4 col-lg-3 col-form-label">{{ f.label }}</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
{{ f }}
|
{{ f }}
|
||||||
|
{% if f.errors %}
|
||||||
|
<p class="text-danger">
|
||||||
|
{% for error in f.errors %}
|
||||||
|
{{ error }}<br/>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -149,7 +156,7 @@
|
||||||
<div class="tab-pane fade pt-3" id="profile-settings">
|
<div class="tab-pane fade pt-3" id="profile-settings">
|
||||||
|
|
||||||
<!-- Settings Form -->
|
<!-- Settings Form -->
|
||||||
<form>
|
<form class="d-none">
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">Email Notifications</label>
|
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">Email Notifications</label>
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import flask
|
import flask
|
||||||
from flask import Blueprint
|
from flask import Blueprint, request
|
||||||
from flask.views import View
|
from flask.views import View
|
||||||
from flask_login import current_user, login_required, login_user, logout_user
|
from flask_login import current_user, login_required, login_user, logout_user
|
||||||
|
|
||||||
from ereuse_devicehub import __version__
|
from ereuse_devicehub import __version__, messages
|
||||||
|
from ereuse_devicehub.db import db
|
||||||
from ereuse_devicehub.forms import LoginForm, ProfileForm
|
from ereuse_devicehub.forms import LoginForm, ProfileForm
|
||||||
from ereuse_devicehub.resources.user.models import User
|
from ereuse_devicehub.resources.user.models import User
|
||||||
from ereuse_devicehub.utils import is_safe_url
|
from ereuse_devicehub.utils import is_safe_url
|
||||||
|
@ -46,11 +47,15 @@ class LogoutView(View):
|
||||||
|
|
||||||
|
|
||||||
class UserProfileView(View):
|
class UserProfileView(View):
|
||||||
|
methods = ['GET', 'POST']
|
||||||
decorators = [login_required]
|
decorators = [login_required]
|
||||||
template_name = 'ereuse_devicehub/user_profile.html'
|
template_name = 'ereuse_devicehub/user_profile.html'
|
||||||
|
|
||||||
def dispatch_request(self):
|
def dispatch_request(self):
|
||||||
form = ProfileForm()
|
form = ProfileForm()
|
||||||
|
if request.method == 'GET':
|
||||||
|
form = ProfileForm(user=current_user.individual)
|
||||||
|
|
||||||
sessions = {s.created.strftime('%H:%M %d-%m-%Y') for s in current_user.sessions}
|
sessions = {s.created.strftime('%H:%M %d-%m-%Y') for s in current_user.sessions}
|
||||||
context = {
|
context = {
|
||||||
'current_user': current_user,
|
'current_user': current_user,
|
||||||
|
@ -58,6 +63,14 @@ class UserProfileView(View):
|
||||||
'version': __version__,
|
'version': __version__,
|
||||||
'profile_form': form,
|
'profile_form': form,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if form.validate_on_submit():
|
||||||
|
form.save(commit=False)
|
||||||
|
messages.success('Modify user Profile datas successfully!')
|
||||||
|
elif form.errors:
|
||||||
|
messages.error('Error modify user Profile data!')
|
||||||
|
|
||||||
|
db.session.commit()
|
||||||
return flask.render_template(self.template_name, **context)
|
return flask.render_template(self.template_name, **context)
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in a new issue