old_contents: # Copyright 2014 SolidBuilds.com. All rights reserved
  #
  # Authors: Ling Thio <ling.thio@gmail.com>
  
  from flask_user import UserMixin
  from flask_user.forms import RegisterForm
  from flask_wtf import Form
  from wtforms import StringField, SubmitField, validators
  from app import db
  
  
  # Define the User data model. Make sure to add the flask_user.UserMixin !!
  class User(db.Model, UserMixin):
      __tablename__ = 'users'
      id = db.Column(db.Integer, primary_key=True)
  
      # User authentication information (required for Flask-User)
      email = db.Column(db.Unicode(255), nullable=False, server_default=u'', unique=True)
      confirmed_at = db.Column(db.DateTime())
      password = db.Column(db.String(255), nullable=False, server_default='')
      reset_password_token = db.Column(db.String(100), nullable=False, server_default='')
      active = db.Column(db.Boolean(), nullable=False, server_default='0')
  
      # User information
      active = db.Column('is_active', db.Boolean(), nullable=False, server_default='0')
      first_name = db.Column(db.Unicode(50), nullable=False, server_default=u'')
      last_name = db.Column(db.Unicode(50), nullable=False, server_default=u'')
  
      # Relationships
      roles = db.relationship('Role', secondary='users_roles',
                              backref=db.backref('users', lazy='dynamic'))
  
  
  # Define the Role data model
  class Role(db.Model):
      __tablename__ = 'roles'
      id = db.Column(db.Integer(), primary_key=True)
      name = db.Column(db.String(50), nullable=False, server_default=u'', unique=True)  # for @roles_accepted()
      label = db.Column(db.Unicode(255), server_default=u'')  # for display purposes
  
  
  # Define the UserRoles association model
  class UsersRoles(db.Model):
      __tablename__ = 'users_roles'
      id = db.Column(db.Integer(), primary_key=True)
      user_id = db.Column(db.Integer(), db.ForeignKey('users.id', ondelete='CASCADE'))
      role_id = db.Column(db.Integer(), db.ForeignKey('roles.id', ondelete='CASCADE'))
  
  
  # Define the User registration form
  # It augments the Flask-User RegisterForm with additional fields
  class MyRegisterForm(RegisterForm):
      first_name = StringField('First name', validators=[
          validators.DataRequired('First name is required')])
      last_name = StringField('Last name', validators=[
          validators.DataRequired('Last name is required')])
  
  
  # Define the User profile form
  class UserProfileForm(Form):
      first_name = StringField('First name', validators=[
          validators.DataRequired('First name is required')])
      last_name = StringField('Last name', validators=[
          validators.DataRequired('Last name is required')])
      submit = SubmitField('Save')
  
new_contents: from flask_user import UserMixin
  from flask_user.forms import RegisterForm
  from flask_wtf import Form
  from wtforms import StringField, SubmitField, validators
  from app import db
  
  
  # Define the User data model. Make sure to add the flask_user.UserMixin !!
  class User(db.Model, UserMixin):
      __tablename__ = 'users'
      id = db.Column(db.Integer, primary_key=True)
  
      # User authentication information (required for Flask-User)
      email = db.Column(db.Unicode(255), nullable=False, server_default=u'', unique=True)
      confirmed_at = db.Column(db.DateTime())
      password = db.Column(db.String(255), nullable=False, server_default='')
      reset_password_token = db.Column(db.String(100), nullable=False, server_default='')
      active = db.Column(db.Boolean(), nullable=False, server_default='0')
  
      # User information
      active = db.Column('is_active', db.Boolean(), nullable=False, server_default='0')
      first_name = db.Column(db.Unicode(50), nullable=False, server_default=u'')
      last_name = db.Column(db.Unicode(50), nullable=False, server_default=u'')
      title = db.Column(db.Unicode(10), nullable=False, server_default=u'')
      affiliation = db.Column(db.Unicode(10), nullable=False, server_default=u'')
  
      # Relationships
      roles = db.relationship('Role', secondary='users_roles',
                              backref=db.backref('users', lazy='dynamic'))
  
  
  # Define the Role data model
  class Role(db.Model):
      __tablename__ = 'roles'
      id = db.Column(db.Integer(), primary_key=True)
      name = db.Column(db.String(50), nullable=False, server_default=u'', unique=True)  # for @roles_accepted()
      label = db.Column(db.Unicode(255), server_default=u'')  # for display purposes
  
  
  # Define the UserRoles association model
  class UsersRoles(db.Model):
      __tablename__ = 'users_roles'
      id = db.Column(db.Integer(), primary_key=True)
      user_id = db.Column(db.Integer(), db.ForeignKey('users.id', ondelete='CASCADE'))
      role_id = db.Column(db.Integer(), db.ForeignKey('roles.id', ondelete='CASCADE'))
  
  
  # Define the User registration form
  # It augments the Flask-User RegisterForm with additional fields
  class MyRegisterForm(RegisterForm):
      title = StringField('Title')
      first_name = StringField('First name', validators=[
          validators.DataRequired('First name is required')])
      last_name = StringField('Last name', validators=[
          validators.DataRequired('Last name is required')])
  
  
  # Define the User profile form
  class UserProfileForm(Form):
      title = StringField('Title')
      first_name = StringField('First name', validators=[
          validators.DataRequired('First name is required')])
      last_name = StringField('Last name', validators=[
          validators.DataRequired('Last name is required')])
      affiliation = StringField('Affiliation')
      submit = SubmitField('Save')
  
subject: Add title, affiliation fields to User model