Esempio n. 1
0
    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 ")
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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}
Esempio n. 6
0
    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",
Esempio n. 8
0
 def setUp(self):
     super().setUp()
     self.mongo_model = Rooms(self.db, 'rooms')