def register(): form = RegisterForm() # form.city.choices = [(city.uuid, city.name) for city in City.find_by_state('Kerala')] if current_user.is_authenticated: return redirect(url_for('index')) print(form.validate_on_submit()) print(form.errors) print(form.city.data) if form.is_submitted(): uname = form.uname.data mail = form.mail.data passw = form.passw.data conf_passw = form.conf_passw.data name = form.name.data sex = form.sex.data dob = form.dob.data bld_grp = form.bld_grp.data addr = form.addr.data state = form.state.data city = City.get_by_id(form.city.data) print(city, form.city.data) po_num = form.pincode.data mobile = form.mobile.data aadhar = form.aadhar.data donor = form.donor.data organ_donation = False bld_donation = False if donor != 'none': if donor == 'blood': bld_donation = True elif donor == 'organ': organ_donation = True elif donor == 'both': organ_donation = True bld_donation = True # organ_donation = bool(strtobool(form.organ_donation.data)) # bld_donation = bool(strtobool(form.bld_donation.data)) user_role = 'ef7bbd83-6bac-4700-9e26-4d33491aa8ea' print('selected role id is ', user_role) r = Role.find_by_id(user_role) print('selected role name is ', r.name) existing_user = User.query.filter_by(mobile=mobile, email=mail, username=uname, aadhar=aadhar).first() if existing_user is None: if conf_passw == passw: new_user = User(username=uname, email=mail, password=generate_password_hash(passw, method='sha256'), city=city.name, age=get_age(dob), name=name, sex=sex, dob=dob, pan='null', bld_grp=bld_grp, addr=addr, state=state, po_num=po_num, mobile=mobile, aadhar=aadhar, organ_donation=bool(organ_donation), bld_donaton=bool(bld_donation), role=user_role) new_user.save_to_db() return redirect(url_for("login")) print("Password don't match") flash(message="Passwords don't match!!") return render_template("register.html", form=form) print('user existing') flash(message='A user with same details already exists') return render_template("register.html", form=form) return render_template("register.html", form=form)
def update_profile(): user = User.find_by_username(username=current_user.username) city = City.get_id_by_name(_name=current_user.city) form = ProfileUpdateForm(city=city.uuid, bld_grp=user.bld_grp, sex=user.sex, pan=user.pan, organ_donation=bool(user.organ_donation), bld_donation=bool(user.bld_donation)) form.city.choices = [(city.uuid, city.name) for city in City.find_by_state('Kerala')] role = Role.find_by_id(current_user.role) print('user role is ', role.name) print(form.validate_on_submit()) print(form.errors) if 'pan' in form.errors: flash("PAN is a mandatory field \n PAN will always be a of 10 characters length") return render_template("update_profile.html", form=form, role=role.name) print('log') if form.validate_on_submit(): user.uname = form.uname.data user.mail = form.mail.data user.dob = form.dob.data user.age = get_age(form.dob.data) user.pan = form.pan.data user.name = form.name.data user.sex = form.sex.data user.bld_grp = form.bld_grp.data user.addr = form.addr.data user.state = form.state.data curr_city = City.get_by_id(form.city.data) user.city = curr_city.name user.po_num = form.pincode.data user.mobile = form.mobile.data user.aadhar = form.aadhar.data # user_role = form.role.data user.organ_donation = bool(strtobool(form.organ_donation.data)) user.bld_donation = bool(strtobool(form.bld_donation.data)) # role = Role.find_by_id(user_role) user.role = role.uuid user.save_to_db() print('user_id=', user.uuid, 'selected_role_id=', role.uuid, 'selected_role_name=', role.name) print('user_id=', user.uuid, 'role_id_db=', user.role, ) return redirect(url_for("view_profile")) return render_template("update_profile.html", form=form, role=role.name, auth=is_auth())
def login(): form = LoginForm() login_page_name = "login_2.html" print(form.validate_on_submit()) print(form.errors) if form.validate_on_submit(): uname = form.uname.data passw = form.passw.data print(uname, passw) user = User.find_by_username(username=uname) if uname != '' or passw != '': if user is not None: print('found ', user.username) if check_password_hash(user.password, passw): login_user(user) user_role = Role.find_by_id(user.role) print('role_name=', user_role.name, 'role_id=', user_role.uuid) if user_role.name == "admin": print("Enabling admin view") admin.add_view(ModelView(Hospital, db.session)) admin.add_view(ModelView(City, db.session)) admin.add_view(ModelView(User, db.session)) admin.add_view(ModelView(Role, db.session)) admin.add_view(ModelView(Scheme, db.session)) admin.add_view(ModelView(Doctor, db.session)) next_page = request.args.get('next') print(next_page) return redirect(next_page or url_for('index')) flash('Invalid password for user ' + user.username) return render_template(login_page_name, form=form) flash('Invalid username ') return render_template(login_page_name, form=form) flash('Invalid username or/and password') return render_template(login_page_name, form=form) elif 'passw' in form.errors.keys(): flash('Invalid password') return render_template(login_page_name, form=form) elif current_user.is_authenticated: return redirect(url_for('index')) return render_template(login_page_name, form=form)
def view_profile(): user_role = Role.find_by_id(current_user.role) return render_template('profile_page.html', title='My Details', user=current_user, role=user_role.name, auth=is_auth())