def save_state(self, db): #saves all data to sqlite db engine = create_engine('sqlite:///%s' % db) Session = sessionmaker() Session.configure(bind=engine) Base.metadata.create_all(engine) Base.metadata.bind = engine session = Session() for person in self.all_people: new_person = People() new_person.name = person.name if isinstance(person, Staff): new_person.role = 'staff' if person.office is None: new_person.office = None else: new_person.office = person.office.name elif isinstance(person, Fellow): new_person.role = 'fellow' if person.office is None: new_person.office = None else: new_person.office = person.office.name if person.living is None: new_person.living = None else: new_person.living = person.living.name for unallocated_person in self.unallocated_office: if unallocated_person == new_person.name: new_person.unallocated = 'office' for unallocated_person in self.unallocated_living: if unallocated_person == new_person.name: new_person.unallocated = 'living' session.merge(new_person) session.commit() for room in self.offices: new_room = Rooms() new_room.room_name = room.name new_room.category = "office" session.merge(new_room) session.commit() for room in self.living_spaces: new_room = Rooms() new_room.room_name = room.name new_room.category = "living" session.merge(new_room) session.commit() print("Data saved ")
def edit_room(room_id): form = RoomForm() if form.validate_on_submit(): # Encode an image to the appropriate size. room_image = room_logo(form.room_logo.data.read()) # Save to our assets directory. path = get_room_dir(room_id) + "/f1234.img" file = open(path, "wb") file.write(room_image) file.close() room = Rooms.query.filter_by(room_id=room_id).first() if room: room.bgm = form.bgm.data room.mascot = form.has_mascot.data room.contact = form.has_contact.data room.intro_msg = form.intro_msg.data room.mii_msg = form.mii_msg.data else: room = Rooms( room_id=room_id, bgm=form.bgm.data, mascot=form.has_mascot.data, contact=form.has_contact.data, intro_msg=form.intro_msg.data, mii_msg=form.mii_msg.data, logo2_id="f1234", ) db.session.add(room) db.session.commit() return redirect(url_for("list_room")) return render_template("room_edit.html", form=form)
def add_room(): """ Adds a room in the database. A room has a name, a comment and a status field (light on/off). This method is designed to be called by an HTML form. """ room = request.form['name'] desc = request.form['comment'] pin = request.form['gpio'] rooms = Rooms.query.all() if rooms == []: new_room = Rooms(name=room, comment=desc, gpio=pin) db.session.add(new_room) #leds[pin] = LED("BOARD"+str(pin)) else: for r in rooms: if r.toList()[0] == room: return "Room %s already exists." % (room) else: new_room = Rooms(name=room, comment=desc, gpio=pin) db.session.add(new_room) #leds[pin] = LED("BOARD"+str(pin)) db.session.commit() return "Room %s created !" % (room)
def create_room(user_args): # init game board board = [[''] * 9] * 9 # get player1 from player1 = Player(name=user_args['name'], color=user_args['color'], sid=request.sid) # add room to database room = Rooms(board=board, players=[player1]) # save in db room.save() # add player to room session join_room(str(room.id)) # signal room open socketio.emit("roomOpened", {'data': str(room.id), "status": 200}, room=request.sid)
async def rooms(req): rooms = [] async for room in Rooms(req.db).collection.find({}, {'_id': 1}): rooms.append(room.get('_id')) print(rooms) return {'rooms': rooms}
def on_message(self, message): logger = logging.getLogger() answer = None data = helper.is_json(message) logger.warning(data) if data == False: self.write_message('malformed JSON') log(fh, 1, 'Out: '+'malformed JSON') return obj = msg_type = sid = None if "MSG_TYPE" not in data: answer = helper.build_json_answer( data["ID"], "INVALID", json.dumps("PLEASE ENTER MESSAGE TYPE")) self.write_message(answer) return MSG_TYPE = data["MSG_TYPE"] if MSG_TYPE == "SAVE_ROOM_TO_DATABASE": room = Rooms() room.name = data["ROOM_NAME"] room.data = data["ROOM_DATA"] logger.warning(data["ROOM_DATA"]) try: session.add(room) session.commit() except: session.rollback() answer = helper.build_json_answer( data["ID"], "SUCCESS", json.dumps(room.name + " erfolgreich hinzugefügt")) elif MSG_TYPE == "GET_ROOM_FROM_DATABASE": room = session.query(Rooms).get(data["ROOM_NAME"]) logger.warning(room) answer = helper.build_json_answer( data["ID"], MSG_TYPE, json.dumps(room.data)) elif MSG_TYPE == "SHOW_ALL_ROOMS": result = session.query(Rooms).all() room_names = [] for room in result: logger.warning(room) room_names.append(room.name) answer = helper.build_json_answer( data["ID"], MSG_TYPE, json.dumps(room_names)) # elif MSG_TYPE == "GET_SENSORDATA_FROM_DATABASE": # sensor = session.query(Sensor_Data).get(data["DATA_TYPE"]) # logger.warning(sensor) # answer = helper.build_json_answer( # data["ID"], MSG_TYPE, json.dumps(sensor.data)) elif MSG_TYPE == "SHOW_ALL_SENSOR_DATA": result = session.query(Sensor_Data).all() csuids = [] panids = [] tmps = [] hums = [] co2s = [] vocs = [] bats = [] times = [] dates = [] sensor = [csuids, panids, tmps, hums, co2s, vocs, bats, times, dates] for sensDat in result: logger.warning(sensDat) csuids.append(sensDat.csUID) panids.append(sensDat.panID) tmps.append(sensDat.tmp) hums.append(sensDat.hum) co2s.append(sensDat.co2) vocs.append(sensDat.voc) bats.append(sensDat.bat) times.append(sensDat.time) dates.append(sensDat.date) answer = helper.build_json_answer( data["ID"], MSG_TYPE, json.dumps(sensor)) elif MSG_TYPE == "GET_ALL_SETTINGS": result = session.query(Settings).all() settings = [] for setting in result: settings.append({RULE: setting.rule, VALUE: setting.value}) answer = helper.build_json_answer( data["ID"], MSG_TYPE, json.dumps(settings)) logger.warning(result) elif MSG_TYPE == "LOGIN": result = {"STATUS": "FAIL"} user = session.query(User).get(data["EMAIL"]) if user: if (pbkdf2_sha256.verify(data["PASSWORD"], user.password) == True): result = { "STATUS": "SUCCESS", "EMAIL": user.email, "USERNAME": user.username, "LAST_LOGIN": user.last_login } answer = helper.build_json_answer( data["ID"], MSG_TYPE, json.dumps(result, default=str)) elif MSG_TYPE == "REGISTER": hashed_password = pbkdf2_sha256.encrypt( data["PASSWORD"], rounds=12000, salt_size=16) user = User() user.email = data["EMAIL"] user.password = hashed_password user.username = data["USERNAME"] user.last_login = time() try: session.add(user) session.commit() except Exception as e: logger.error('Error at %s', 'division', exc_info=e) session.rollback() self.write_message(helper.build_json_answer( data["ID"], MSG_TYPE, json.dumps({"STATUS": "DUPLICATE"}))) return result = session.query(User).get(data["EMAIL"]) result = { "EMAIL": result.email, "PASSWORD": result.password } answer = helper.build_json_answer( data["ID"], MSG_TYPE, json.dumps(result)) else: answer = helper.build_json_answer( data["ID"], "INVALID", json.dumps("INVALID MESSAGE TYPE")) if answer: logger.warning(answer) self.write_message(answer)
from diksha import db from models import Rooms # hostel 1: 20 Non AC, 10 AC for i in range(25): rooms = Rooms( availability="YES", cost_per_day=300, ac="NONAC", hostel_number=1 ) db.session.add(rooms) db.session.commit() for i in range(10): rooms = Rooms( availability="YES", cost_per_day=500, ac="AC", hostel_number=1 ) db.session.add(rooms) db.session.commit() # hostel 2: 5 Non AC, 3 AC for i in range(5): rooms = Rooms( availability="YES", cost_per_day=300, ac="NONAC",
def setUp(self): super().setUp() self.mongo_model = Rooms(self.db, 'rooms')