예제 #1
0
def loadsectors():
    for i in range(1, 5):
        new_sector = Sector()
        db.session.add(new_sector)
    for i in range(1, 5):
        with open('Sector ' + str(i)) as sector:
            for line in sector.readlines():
                loclat, loclong = line.split(', ')
                new_parking = Parking()
                new_parking.sectorid = i
                new_parking.loclat = loclat
                new_parking.loclong = loclong
                new_parking.available = 2
                new_parking.disability = random.choice(range(0, 2))
                db.session.add(new_parking)
    db.session.commit()
    flash("successfully added parking spots")
    return redirect(url_for('login'))
예제 #2
0
def employeeParkingController(action=None,resourceId=None):

    #keep non-logged users outside

    if ('employee' not in session) or (session['employee']['superAdmin'] is not True):
        return redirect(url_for('backoffice_auth'))

    #check resourceId validity
    parkingData = None

    if resourceId is not None:
        if ObjectId.is_valid(str(resourceId)):
            parkingData = Parking.objects(id=ObjectId(str(resourceId))).first()
            if not parkingData:
                return render_template('404.html',errorString="This Parking does not exist")
            else:
                if (session['employee']['superAdmin'] is not True) and session['employee']['relatedParking'] != str(resourceId):
                    return render_template('404.html',errorString="You do not have access to this page")
        else:
            return render_template('404.html',errorString="This ParkingID is not valid")

    errorString = ''
    parkingList = []
    validationErrors = []
    pageTitle = ""


    #switch action cases (add,edit,delete,list)

    if action == 'add' or action == 'edit':

        pageTitle = "Add Parking" if action == "add" else "Edit Parking"
        templatePath = 'parkings/add.html'

        if request.method == 'POST' and ('submit' in request.form):
            #validate username




            if 'name' in request.form:
                if not request.form['name']:
                    validationErrors.append("Field name is empty")
                else:                    
                    if action == 'add':
                        if len(Parking.objects(name=request.form['name'])) > 0:
                            validationErrors.append("The name you've choose already exists")
                    else:
                        if len(Parking.objects(name=request.form['name'],name__ne=parkingData.name)) > 0:
                            validationErrors.append("The name you've choose already exists")
            else:
                validationErrors.append("Missing field name in request")

            #validate companyName
            if 'city' in request.form:
                if not request.form['city']:
                    validationErrors.append("Field city is empty")
            else:
                validationErrors.append("Missing field city in request")

            #validate phone
            if 'district' in request.form:
                if not request.form['district']:
                    validationErrors.append("Field district is empty")
            else:
                validationErrors.append("Missing field district in request")
            
            #validate phone
            if 'address' in request.form:
                if not request.form['address']:
                    validationErrors.append("Field address is empty")
            else:
                validationErrors.append("Missing field address in request")

            if 'phone' in request.form:
                if not request.form['phone']:
                    validationErrors.append("Field phone is empty")
            else:
                validationErrors.append("Missing field phone in request")


            if 'pricePerHour' in request.form:
                if not request.form['pricePerHour'] or float(request.form['pricePerHour']) <= 0:
                    validationErrors.append("Field pricePerHour is empty or invalid")
            else:
                validationErrors.append("Missing field pricePerHour in request")
    

            
            active = False
            maxPlaces = 1

            if 'maxPlaces' in request.form:
                maxPlaces = request.form['maxPlaces']
            if 'active' in request.form:
                active = (True if int(request.form['active']) == 1 else False)
            
           
            
                

            if len(validationErrors) == 0:
                 #save

                 


    
                if action == 'add':
                    result = Parking(name = str(request.form['name']),
                                  city = str(request.form['city']),
                                  district = str(request.form['district']),
                                  address = str(request.form['address']),
                                  phone = str(request.form['phone']),
                                  pricePerHour = float(request.form['pricePerHour']),
                                  maxPlaces = maxPlaces,
                                  active = active
                                  ).save()
                    if result:
                        lastParking = Parking.objects(name=str(request.form['name'])).first()
                        return redirect(url_for('parkings',action='edit',resourceId=lastParking.id))
                    else:
                        validationErrors.append("Unable to write this record")
                else:
                    result = Parking.objects(id=ObjectId(str(resourceId))).update(name = str(request.form['name']),
                                  city = str(request.form['city']),
                                  district = str(request.form['district']),
                                  address = str(request.form['address']),
                                  phone = str(request.form['phone']),
                                  pricePerHour = float(request.form['pricePerHour']),
                                  maxPlaces = maxPlaces,
                                  active = active)
                    return redirect(url_for('parkings',action='edit',resourceId=resourceId))
                 
                


            else:
                errorString ='|'.join(validationErrors)






    elif action == 'delete':
        pageTitle = "Parkings"
        templatePath = 'parkings/list.html'
        Parking.objects(id=ObjectId(str(resourceId))).delete()
        parkingList = Parking.objects().order_by('companyName')

    else:
        pageTitle = "Parkings"
        templatePath = 'parkings/list.html'     
        parkingList = Parking.objects().order_by('companyName')
        

    

    


    return render_template(
        templatePath,
        pageTitle=pageTitle,
        employee=session['employee'],
        userType='employee',
        errorString=errorString,
        parkingList=parkingList,
        parkingData=parkingData,
        action=action,
        resourceId=resourceId
        )