automatically adding recorders, models and rooms and association of those
This commit is contained in:
Binary file not shown.
@@ -60,11 +60,11 @@ class RecorderModel(db.Model):
|
||||
return RecorderModel.query.filter(RecorderModel.checksum == md5_sum).first()
|
||||
|
||||
@hybrid_property
|
||||
def requires_user(self):
|
||||
def requires_username(self):
|
||||
return self._requires_user > 0
|
||||
|
||||
@requires_user.setter
|
||||
def requires_user(self, val: bool):
|
||||
@requires_username.setter
|
||||
def requires_username(self, val: bool):
|
||||
self._requires_user = 1 if val else 0
|
||||
|
||||
@hybrid_property
|
||||
@@ -87,10 +87,9 @@ class Recorder(db.Model):
|
||||
name = db.Column(db.Unicode(63), unique=True, nullable=False)
|
||||
model_name = db.Column(db.Unicode(63), unique=False, nullable=False)
|
||||
serial_number = db.Column(db.Unicode(63), unique=True, nullable=True)
|
||||
locked = db.Column(db.Boolean, default=False)
|
||||
locked = db.Column(db.Boolean, default=False) # no modifications allowed
|
||||
lock_message = db.Column(db.String, nullable=True, default=None)
|
||||
in_maintenance = db.Column(db.Boolean, default=False)
|
||||
offline = db.Column(db.Boolean, default=False)
|
||||
offline = db.Column(db.Boolean, default=False) # maintenance, etc.
|
||||
description = db.Column(db.Unicode(255), unique=False, nullable=True, default="")
|
||||
_mac = db.Column(db.String(17), unique=True, nullable=True)
|
||||
_ip = db.Column(db.String(15), unique=True, nullable=True, default=None)
|
||||
@@ -122,6 +121,13 @@ class Recorder(db.Model):
|
||||
def get_by_identifier(identifier):
|
||||
return Recorder.query.filter(Recorder.id == identifier).first()
|
||||
|
||||
@staticmethod
|
||||
def get_by_mac(mac: str):
|
||||
if mac is None or mac == '':
|
||||
return None
|
||||
mac = mac.replace('-', ':').lower()
|
||||
return Recorder.query.filter(Recorder._mac == mac).first()
|
||||
|
||||
@staticmethod
|
||||
def get_all():
|
||||
return Recorder.query.all()
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user