Beispiel #1
0
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)
Beispiel #2
0
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())
Beispiel #3
0
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)
Beispiel #4
0
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())