def addUnits(): sessionChecker = loginRequired() if sessionChecker == True: if request.method == "POST": userID = request.form.get('userID') bhID = session['bhID'] numOfOccupants = request.form.get("num-occupants") priceRent = request.form.get("price-rent") genderAccommodation = request.form.get("gender-acco") street = request.form.get('street') barangay = request.form.get('barangay') cityOrMunicipality = request.form.get('cityOrMunicipality') province = request.form.get('province') #initialized unit unit = units.unit(bhID, priceRent, numOfOccupants, genderAccommodation) locationID = unit.addUnit() #initialized unit location unitLocation = locations.location(locationID, street, barangay, cityOrMunicipality, province) unitLocation.addLocation() description = "{} added a new unit to its boarding house".format( session['accountInfo'][1]) log = logs.log(description) log.addLogs() msg = flash("Well Done! You've successfully added a new unit.", "success") return redirect(url_for('manageUnits', msg=msg)) else: return redirect(url_for("signin"))
def login(): if request.method == "POST": #get username/email and password usernameOrEmail = request.form.get('usernameOrEmail') password = request.form.get('password') verification = accounts.account() verificationResult = verification.login(usernameOrEmail, password) if verificationResult == "Invalid login credentials": return render_template('signin.html', usernameOrEmail=usernameOrEmail, password=password) elif verificationResult == None: return redirect(url_for('signin')) else: contact = contacts.contact() check2FA = contact.check2FA(verificationResult[0]) if check2FA == "N": session['accountInfo'] = verificationResult description = "{} signed in".format(session['accountInfo'][1]) log = logs.log(description) log.addLogs() flash("Welcome! You've successfully login.", "success") return redirect(url_for('dashboard')) else: session['allowForceLogin'] = 1 session['forceLoginInfo'] = verificationResult return render_template('otpways.html', accountInfo=verificationResult) else: return redirect(url_for('signin'))
def updateProfileAndContact(): sessionChecker = loginRequired() if sessionChecker == True: if request.method == 'POST': firstName = request.form.get('firstName') lastName = request.form.get('lastName') gender = request.form.get('gender') birthDate = request.form.get('birthDate') phoneNo = request.form.get('phoneNo') email = request.form.get('email') profile = profiles.profile() profile.updateProfile(session['accountInfo'][0], firstName, lastName, gender, birthDate) contact = contacts.contact() contact.updateContact(session['accountInfo'][0], phoneNo, email) account = accounts.account() username = session['accountInfo'][1] password = session['accountInfo'][2] session.clear() accountInfo = account.login(username, password) session['accountInfo'] = accountInfo description = "{} update its account info".format( session['accountInfo'][1]) log = logs.log(description) log.addLogs() msg = flash( "Well Done! You've successfully updated your profile information.", "success") return redirect(url_for('accountInfo', msg=msg)) else: return redirect(url_for("signin"))
def updateUnits(unitID): sessionChecker = loginRequired() if sessionChecker == True: if request.method == "POST": userID = request.form.get('userID') numOfOccupants = request.form.get("num-occupants") rent = request.form.get("price-rent") genderAccommodation = request.form.get("gender-acco") street = request.form.get("street") barangay = request.form.get("barangay") cityOrMunicipality = request.form.get("cityOrMunicipality") province = request.form.get("province") #update unit info unit = units.unit() unit.updateUnit(unitID, rent, numOfOccupants, genderAccommodation) #update unit location unitLocation = locations.location() unitLocation.updateLocation(unitID, street, barangay, cityOrMunicipality, province) description = "{} updated one of its unit {} info".format( session['accountInfo'][1], unitID) log = logs.log(description) log.addLogs() msg = flash("Well Done! You've successfully updated a unit.", "success") return redirect(url_for('manageUnits', userID=userID, msg=msg)) else: return redirect(url_for("signin"))
def declineLeaveRequest(userID): sessionChecker = loginRequired() if sessionChecker == True: leaveRequest = renters.renter() leaveRequest.declineLeaveRequest(userID) description = "Leave request of {} was declined by the boarding house owner ".format( session['accountInfo'][1]) log = logs.log(description) log.addLogs() return redirect(url_for('manageTenants')) else: return redirect(url_for("signin"))
def deleteReservation(reservationNo): sessionChecker = loginRequired() if sessionChecker == True: reserve = reservations.reservation() reserve.deleteReservation(reservationNo) description = "{} deleted reservation no.{} ".format( session['accountInfo'][1], reservationNo) log = logs.log(description) log.addLogs() return redirect(url_for('renterPendingReservation')) else: return redirect(url_for("signin"))
def requestToLeave(userID, unitID): sessionChecker = loginRequired() if sessionChecker == True: renter = renters.renter() renter.requestRenterLeave(userID, unitID) description = "{} sents a leave request for the boarding house owner".format( session['accountInfo'][1]) log = logs.log(description) log.addLogs() return redirect(url_for('rentedUnit')) else: return redirect(url_for("signin"))
def cancelRequestToLeave(userID, unitID): sessionChecker = loginRequired() if sessionChecker == True: renter = renters.renter() renter.cancelOrDeclineRenterLeave(userID, unitID) description = "{} cancel its leave request".format( session['accountInfo'][1]) log = logs.log(description) log.addLogs() return redirect(url_for('rentedUnit')) else: return redirect(url_for("signin"))
def forceLogin(): if 'allowForceLogin' in session: session['accountInfo'] = session['forceLoginInfo'] session.pop('forceLoginInfo') session.pop('allowForceLogin') description = "{} signed in".format(session['accountInfo'][1]) log = logs.log(description) log.addLogs() flash("Welcome! You've successfully login.", "success") return redirect(url_for('dashboard')) else: return redirect(url_for('signin'))
def declineRentRequest(reservationNo): sessionChecker = loginRequired() if sessionChecker == True: reservation = reservations.reservation() reservation.declineReservation(reservationNo) description = "Rent request no.{} was declined by the boarding house owner".format( reservationNo) log = logs.log(description) log.addLogs() return redirect(url_for('manageTenants')) else: return redirect(url_for("signin"))
def changeBoardingHouseName(): sessionChecker = loginRequired() if sessionChecker == True: if request.method == "POST": newBoardingHouseName = request.form.get('bhName') userID = request.form.get('userID') bh = boardingHouses.boardingHouse() bh.changeBoardingHouseName(userID, newBoardingHouseName) description = "{} changes its boarding house name to {}".format( session['accountInfo'][1], newBoardingHouseName) log = logs.log(description) log.addLogs() return redirect(url_for('manageUnits', userID=userID)) else: return redirect(url_for("signin"))
def sendPhoneNumberVerification(): sessionChecker = loginRequired() if sessionChecker == True: code = ''.join(random.choice('0123456789') for _ in range(6)) emailVerification = contacts.contact() emailVerification.smsAlert(code, session['accountInfo'][9]) description = "Panimalay sents an sms verification code to {} r".format( session['accountInfo'][9]) log = logs.log(description) log.addLogs() return jsonify(result=code) return redirect(url_for("signin"))
def deleteUnit(unitID): sessionChecker = loginRequired() if sessionChecker == True: if request.method == "POST": userID = request.form.get('userID') unit = units.unit() unit.deleteUnit(unitID) description = "{} deleted unit {}".format( session['accountInfo'][1], unitID) log = logs.log(description) log.addLogs() msg = flash("Well Done! You've successfully deleted a unit.", "success") return redirect(url_for('manageUnits', userID=userID, msg=msg)) else: return redirect(url_for("signin"))
def changePasswordForce(contact): if request.method == "POST": password = request.form.get("newPassword") checkContact = contacts.contact() checkContact = checkContact.checkIfExist(contact, contact) account = accounts.account() data = account.forceChangePassword(checkContact[0][0], password) verificationResult = account.login(data[0][1], password) session['accountInfo'] = verificationResult description = "{} signed in".format(session['accountInfo'][1]) log = logs.log(description) log.addLogs() flash("Welcome! You've successfully login.", "success") return redirect(url_for('dashboard'))
def sendEmailVerification(): sessionChecker = loginRequired() if sessionChecker == True: code = secrets.token_hex(16) msg = "Code: {}".format(code) emailVerification = contacts.contact() emailVerification.emailAlert("Panimalay Email Verification", msg, session['accountInfo'][8]) description = "Panimalay sents an email verification code to {} r".format( session['accountInfo'][8]) log = logs.log(description) log.addLogs() return jsonify(result=code) return redirect(url_for("signin"))
def sendRentRequest(): sessionChecker = loginRequired() if sessionChecker == True: if request.method == "POST": unitID = request.form.get('unitID') userID = request.form.get('userID') today = datetime.today() date = today.strftime("%Y-%m-%d") reserve = reservations.reservation(userID, unitID, date) reserve.addReservation() description = "{} send reservation for unit: {}".format( session['accountInfo'][0], unitID) log = logs.log(description) log.addLogs() return redirect(url_for('renterPendingReservation')) else: return redirect(url_for("signin"))
def addPayment(): sessionChecker = loginRequired() if sessionChecker == True: if request.method == 'POST': renter = request.form.get('renterID') bhID = request.form.get('bhID') amount = request.form.get('amount') paymentDate = request.form.get('paidDate') payment = payments.payment(renter, bhID, amount, paymentDate) payment.addPayment() description = "{} pays P{} to {} ".format(renter, amount, bhID) log = logs.log(description) log.addLogs() msg = flash("Well Done! You've successfully added a payment.", "success") return redirect(url_for('managePayment', msg=msg)) else: return redirect(url_for("signin"))
def changePassword(): sessionChecker = loginRequired() if sessionChecker == True: if request.method == 'POST': oldPassword = request.form.get('oldPass') newPassword = request.form.get('newPass') account = accounts.account() account.changePassword(session['accountInfo'][0], oldPassword, newPassword) session['accountInfo'][2] = newPassword description = "{} update its password".format( session['accountInfo'][1]) log = logs.log(description) log.addLogs() msg = flash( "Well Done! You've successfully updated your profile information.", "success") return redirect(url_for('accountInfo', msg=msg)) return redirect(url_for("signin"))
def acceptRentRequest(reservationNo, userID, unitID): sessionChecker = loginRequired() if sessionChecker == True: today = datetime.today() date = today.strftime("%Y-%m-%d") renter = renters.renter(userID, unitID, date) reservation = reservations.reservation() reservation.acceptReservation(reservationNo) renter.addRenter() description = "Rent request of {} was approved by the boarding house owner".format( session['accountInfo'][0]) log = logs.log(description) log.addLogs() description = "{} started renting for unit: {}".format( session['accountInfo'][0], unitID) log = logs.log(description) log.addLogs() return redirect(url_for('manageTenants')) else: return redirect(url_for("signin"))
def logout(): description = "{} signed out".format(session['accountInfo'][1]) log = logs.log(description) log.addLogs() session.clear() return redirect(url_for("signin"))