def createChemical(data): """Creates chemical based on input from user.""" try: modelData, extraData = sortPost( data, Chemicals) #Only get relevant data for the current Model if modelData['sdsLink'] == None: modelData[ 'sdsLink'] = 'https://msdsmanagement.msdsonline.com/af807f3c-b6be-4bd0-873b-f464c8378daa/ebinder/?SearchTerm=%s' % ( modelData['casNum']) elif modelData['sdsLink'][0:8] != 'https://' and modelData['sdsLink'][ 0:7] != 'http://': modelData['sdsLink'] = 'https://' + modelData['sdsLink'] modelData['name'] = modelData['name'].upper() try: newChem = (Chemicals.get(name=modelData['name']), True ) #True because it could get the chemical except: newChem = ( Chemicals.create(**modelData), False ) #Create instance of Chemical with mapped info in modelData False, because it couldn't get the chemical if newChem[1]: print modelData Chemicals.update(**modelData).where( Chemicals.name == newChem[0].name).execute() newChem[0].remove = False newChem[0].save() return (True, "Chemical Created Successfully!", "list-group-item list-group-item-success", newChem[0]) except Exception as e: print e return (False, "Chemical Could Not Be Created.", "list-group-item list-group-item-danger", None)
def createFloor(data): try: modelData, extraData = sortPost(data, Floors) floor = Floors.create(**modelData) return (True, floor.name + " was Successfully Created", "list-group-item list-group-item-success", floor) except Exception as e: return (False, "Floor Could Not Be Added to System", "list-group-item list-group-item-danger", None)
def createWasteItem(data): """Creates chemical based on input from user.""" try: modelData, extraData = sortPost(data, Wastecontents) #Only get relevant data for the current Model wItem = Wastecontents.create(**modelData) return(True, "Waste Item Created Successfully!", "list-group-item list-group-item-success", wItem) except Exception as e: print e return(False, "Waste Item Could Not Be Created.", "list-group-item list-group-item-danger", None)
def createRoom(data): try: modelData, extraData = sortPost(data, Rooms) room = Rooms.create(**modelData) lastRoomId = Rooms.select().order_by(-Rooms.rId).get().rId application.models.storagesModel.Storages.create( roomId= lastRoomId, # This isn't letting me import Storages or storagesModel. I think it is because that file in turn imports this one. name=modelData['name'], flammable=True, healthHazard=True, oxidizer=True, orgAcid=True, inorgAcid=True, base=True, peroxide=True, pressure=True) return (True, room.name + " was Successfully Added to System", "list-group-item list-group-item-success", room) except Exception as e: return (False, "Room could not be Added to System", "list-group-item list-group-item-danger", None)
def createUser(data, createdBy, approval, authLevel="systemUser"): """Used to check containers in and out Args: data (dict): A dictionary with keys for each field in users, and values for a specific user instance createdBy (str): Username of the user that has accessed the page that calls this function approval (bool): True for admin, False for superUser Returns: tuple: element[0]: Message to flash to user element[1]: Formatting for the flash message """ #should return something else for unit testing later modelData, extraData = sortPost(data, Users) modelData['approve'] = approval modelData['username'] = modelData['username'].lower() modelData['created_by'] = createdBy modelData['created_date'] = datetime.date.today() if 'auth_level' not in modelData: modelData['auth_level'] = authLevel # Peewee has a get_or_create function. Would that be more useful than putting this in a try/except? if modelData['end_date'] <= datetime.date.today(): return ( "Error: User could not be added. End Date must be later than today.", 'list-group-item list-group-item-danger') try: user = Users.create(**modelData) return (True, "Success: " + user.first_name + " " + user.last_name + " added successfully.", 'list-group-item list-group-item-success') except Exception as e: if e.message == "UNIQUE constraint failed: users.username": #If User Already In system return (False, "Error: " + modelData['username'] + " Already In System", "list-group-item list-group-item-danger") return (False, "Error: User could not be added.", 'list-group-item list-group-item-danger')