automatically adding recorders, models and rooms and association of those

This commit is contained in:
2019-11-22 14:26:16 +01:00
parent 7700b4381f
commit c4b54357f7
9 changed files with 114 additions and 46 deletions

View File

@@ -3,6 +3,7 @@
Models for lecture recorder
"""
import json
import logging
from sqlalchemy import MetaData, CheckConstraint
from sqlalchemy.exc import IntegrityError
@@ -12,6 +13,8 @@ from datetime import datetime, timedelta
from backend import db, app, login_manager
from backend.tools.scrape_rooms import scrape_rooms
logger = logging.getLogger("lrc."+__name__)
metadata = MetaData()
@@ -74,12 +77,16 @@ class Room(db.Model):
def pre_fill_table():
rooms = scrape_rooms()
i_tunes_u_mappings = [Room(name=room['name'], number=room['room_number'],
logger.debug("tada")
logger.debug("got {} rooms".format(len(rooms)))
db_rooms = [Room(name=room['name'], number=room['room_number'],
building_name=room['building_name'], building_number=room['building_number']) for room in
rooms]
try:
db.session.bulk_save_objects(i_tunes_u_mappings)
db.session.bulk_save_objects(db_rooms)
db.session.commit()
logger.debug("rooms commited to DB!")
except IntegrityError as e:
logger.error("Could not add rooms! ({})".format(e))
db.session.rollback()