diff --git a/.gitignore b/.gitignore index adff376..536ff9a 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,5 @@ config.py logfile.log db_repository/* +upload/avatar/* tmp/* diff --git a/app/models.py b/app/models.py index b0c3012..8203a73 100644 --- a/app/models.py +++ b/app/models.py @@ -35,9 +35,10 @@ class User(db.Model): firstname = db.Column(db.String(64)) lastname = db.Column(db.String(64)) email = db.Column(db.String(128)) + avatar = db.Column(db.String(128)) role_id = db.Column(db.Integer, db.ForeignKey('role.id')) - def __init__(self, id=None, username=None, password=None, plain_text_password=None, firstname=None, lastname=None, role_id=None, email=None, reload_info=True): + def __init__(self, id=None, username=None, password=None, plain_text_password=None, firstname=None, lastname=None, role_id=None, email=None, avatar=None, reload_info=True): self.id = id self.username = username self.password = password @@ -46,6 +47,7 @@ class User(db.Model): self.lastname = lastname self.role_id = role_id self.email = email + self.avatar = avatar if reload_info: user_info = self.get_user_info_by_id() if id else self.get_user_info_by_username() @@ -238,6 +240,8 @@ class User(db.Model): user.email = self.email if self.plain_text_password: user.password = self.get_hashed_password(self.plain_text_password) + if self.avatar: + user.avatar = self.avatar try: db.session.commit() diff --git a/app/static/admin/pages/scripts/user_profile.js b/app/static/admin/pages/scripts/user_profile.js new file mode 100644 index 0000000..58307d3 --- /dev/null +++ b/app/static/admin/pages/scripts/user_profile.js @@ -0,0 +1,54 @@ +var UserProfile = function() { + var handleUpdatePassword = function() { + $('.password-form').validate({ + errorElement: 'span', //default input error message container + errorClass: 'help-block', // default input error message class + focusInvalid: false, // do not focus the last invalid input + ignore: "", + rules: { + password: { + required: true + }, + rpassword: { + equalTo: "#newpassword" + }, + }, + + invalidHandler: function(event, validator) { //display error alert on form submit + + }, + + highlight: function(element) { // hightlight error inputs + $(element) + .closest('.form-group').addClass('has-error'); // set error class to the control group + }, + + success: function(label) { + label.closest('.form-group').removeClass('has-error'); + label.remove(); + }, + + submitHandler: function(form) { + form.submit(); + } + }); + + $('.password-form input').keypress(function(e) { + if (e.which == 13) { + if ($('.password-form').validate().form()) { + $('.password-form').submit(); + } + return false; + } + }); + } + + return { + //main function to initiate the module + init: function() { + handleUpdatePassword(); + } + + }; + +}(); \ No newline at end of file diff --git a/app/templates/base.html b/app/templates/base.html index 9b5415a..a84b053 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -98,7 +98,11 @@