def test_post_when_user_is_lonely_admin(app_and_db, client, test_with_authenticated_user, inactive_user): db = app_and_db[1] investment = Investment(name="Test Invest") user1 = User.query.filter_by(username="******").first() user2 = User.query.filter_by(username="******").first() worker1 = Worker(position="pos1", admin=True, user_id=user1.id) worker2 = Worker(position="pos2", admin=False, user_id=user2.id) investment.workers.append(worker1) investment.workers.append(worker2) db.session.add(investment) db.session.commit() response = client.post( url_for("auth.delete_account", username="******"), data={"yes": True}, follow_redirects=True, ) assert response.status_code == 200 assert User.query.filter_by(username="******").first() assert Worker.query.filter_by(user_id=user1.id).first() assert Worker.query.filter_by(user_id=user2.id).first() assert ( b"This accounts is only admin in projects: ['Test Invest']." b" Give root permission to other user and try again" in response.data)
def test_get_workers(app_and_db): db = app_and_db[1] user1 = User(username="******", email="*****@*****.**", password="******") user2 = User(username="******", email="*****@*****.**", password="******") db.session.add(user1) db.session.add(user2) db.session.add(Investment(name="test invest 1")) db.session.add(Investment(name="test invest 2")) db.session.add(Investment(name="test invest 3")) db.session.commit() user1 = User.get_user(1) invest1 = Investment.query.filter_by(id=1).first() invest1.workers.append(Worker(position="pos1", user_id=user1.id)) invest2 = Investment.query.filter_by(id=2).first() invest2.workers.append(Worker(position="pos2", user_id=user1.id)) user2 = User.get_user(2) invest3 = Investment.query.filter_by(id=3).first() invest3.workers.append(Worker(position="pos3", user_id=user2.id)) db.session.commit() worker1 = Worker.query.filter_by(position="pos1").first() worker2 = Worker.query.filter_by(position="pos2").first() assert User.get_workers(user_id=1) == [worker1, worker2]
def test_post_when_delete(app_and_db, client, test_with_authenticated_user, inactive_user): db = app_and_db[1] investment1 = Investment(name="Test Invest 1") user1 = User.query.filter_by(username="******").first() user2 = User.query.filter_by(username="******").first() worker1 = Worker(position="pos1", admin=True, user_id=user1.id) worker2 = Worker(position="pos2", admin=True, user_id=user2.id) investment1.workers.append(worker1) investment1.workers.append(worker2) investment2 = Investment(name="Test Invest 2") worker = Worker(position="pos1", admin=True, user_id=user1.id) investment2.workers.append(worker) db.session.add(investment1) db.session.add(investment2) db.session.commit() response = client.post( url_for("auth.delete_account", username="******"), data={"yes": True}, follow_redirects=True, ) assert response.status_code == 200 assert not User.query.filter_by(username="******").first() assert not Worker.query.filter_by(user_id=user1.id).first() assert Worker.query.filter_by(user_id=user2.id).first() assert Investment.query.filter_by(name="Test Invest 1").first() assert not Investment.query.filter_by(name="Test Invest 2").first() assert b"The account has been deleted." in response.data
def test_get_num_of_admins(app_and_db): db = app_and_db[1] for i in range(1, 4): user = User( username="******".format(i), email="user_{}@mail.com".format(i), password="******", ) user.is_active = True db.session.add(user) investment = Investment(name="test invest") db.session.add(investment) db.session.commit() user1 = User.get_user(1) user2 = User.get_user(2) user3 = User.get_user(3) invest = Investment.query.filter_by(id=1).first() worker1 = Worker(position="pos1", admin=True, user_id=user1.id) worker2 = Worker(position="pos2", admin=False, user_id=user2.id) worker3 = Worker(position="pos3", admin=True, user_id=user3.id) invest.workers.append(worker1) invest.workers.append(worker2) invest.workers.append(worker3) db.session.commit() assert Investment.get_num_of_admins(investment_id=1) == 2
def test_is_admin(app_and_db, active_user): db = app_and_db[1] db.session.add(Investment(name="test invest 1")) db.session.add(Investment(name="test invest 2")) db.session.add( Worker(position="pos1", admin=True, user_id=1, investment_id=1)) db.session.add( Worker(position="pos2", admin=False, user_id=1, investment_id=2)) db.session.commit() assert Worker.is_admin(user_id=1, investment_id=1) assert not Worker.is_admin(user_id=1, investment_id=2)
def test_get_investment(app_and_db, active_user): db = app_and_db[1] user = User.get_user(1) db.session.add(Investment(name="test invest 1")) db.session.add(Investment(name="test invest 2")) db.session.commit() invest1 = Investment.query.filter_by(id=1).first() invest1.workers.append(Worker(user_id=user.id)) invest2 = Investment.query.filter_by(id=2).first() invest2.workers.append(Worker(user_id=user.id)) db.session.commit() assert User.get_investments(user_id=1) == [invest1, invest2]
def test_create_worker(self): w = Worker(id='30132180123', name='hss', email='*****@*****.**', address='tju', password='******') db.session.add(w) db.session.commit() # test the password assert w.verify_password('123') assert not w.verify_password('1234') # test the token token = w.generate_auth_token(expiration=1000) ver_w = w.verify_auth_token(token) assert ver_w != Worker.query.get('30132180xx') assert ver_w == Worker.query.get('30132180123') db.session.add(w) db.session.commit() d = WorkerDegree(worker_id=w.id, department_id=1) db.session.add(d) db.session.commit()
def add_investment(app_and_db, active_user, unlogged_user): db = app_and_db[1] user1 = User.query.filter_by(username="******").first() user2 = User.query.filter_by(username="******").first() investment = Investment(name="Test Invest", description="test text") worker1 = Worker(position="admin", admin=True, user_id=user1.id) worker2 = Worker(position="second worker", admin=False, user_id=user2.id) investment.workers.append(worker1) investment.workers.append(worker2) db.session.add(investment) db.session.commit() # setting current_invest investment = Investment.query.filter_by(name="Test Invest").first() user1.current_invest_id = investment.id db.session.commit()
def test_get_team(app_and_db, active_user): db = app_and_db[1] db.session.add(Investment(name="test invest 1")) db.session.add(Worker(position="pos1", admin=True, investment_id=1)) db.session.add(Worker(position="pos2", admin=False, investment_id=1)) db.session.add(Worker(position="pos2", admin=False, investment_id=1)) db.session.add(Investment(name="test invest 2")) db.session.add(Worker(position="pos2", admin=False, investment_id=2)) db.session.add(Worker(position="pos2", admin=False, investment_id=2)) db.session.commit() worker1 = Worker.query.get(1) worker2 = Worker.query.get(2) worker3 = Worker.query.get(3) assert Worker.get_team(investment_id=1) == [worker1, worker2, worker3]
def add_worker() -> str: if not Worker.is_admin(current_user.id, g.current_invest.id): return redirect(url_for("team.team")) form = CreateWorkerForm() if form.validate_on_submit(): if Worker.belongs_to_investment(form.email.data, g.current_invest.id): flash("This user is already added to workers.") return redirect(url_for("team.team")) user = User.query.filter_by(email=form.email.data).first() if not user: user = User( username=form.email.data, email=form.email.data, password=uuid.uuid4().hex, ) db.session.add(user) db.session.commit() user = User.query.filter_by(email=form.email.data).first() email.send_complete_registration_mail(user) worker = Worker( position=form.position.data, admin=form.admin.data, user_id=user.id, ) g.current_invest.workers.append(worker) db.session.commit() flash("You have added new worker successfully.") return redirect(url_for("team.team")) return render_template("team/form.html", title="Add Worker", form=form)
def test_get_by_user_id(app_and_db, active_user): db = app_and_db[1] investment = Investment(name="test") user = User.query.filter_by(username="******").first() worker = Worker(position="test worker", user_id=user.id) investment.workers.append(worker) db.session.add(investment) db.session.commit() assert Investment.get_by_user_id(user_id=1)
def test_check_admins(app_and_db): db = app_and_db[1] for i in range(1, 5): user = User( username="******".format(i), email="user_{}@mail.com".format(i), password="******", ) user.is_active = True db.session.add(user) investment = Investment(name="test invest {}".format(i)) db.session.add(investment) db.session.commit() user1 = Investment.query.filter_by(id=1).first() user2 = Investment.query.filter_by(id=2).first() user3 = Investment.query.filter_by(id=3).first() # one user -> not add to list invest1 = Investment.query.filter_by(id=1).first() worker1 = Worker(position="pos1", admin=True, user_id=user1.id) invest1.workers.append(worker1) # two users, one admin, user1 is admin -> add to list invest2 = Investment.query.filter_by(id=2).first() worker1 = Worker(position="pos1", admin=True, user_id=user1.id) worker2 = Worker(position="pos2", admin=False, user_id=user2.id) invest2.workers.append(worker1) invest2.workers.append(worker2) # two users, user1 is not admin -> not add to list invest3 = Investment.query.filter_by(id=3).first() worker1 = Worker(position="pos1", admin=False, user_id=user1.id) worker2 = Worker(position="pos2", admin=True, user_id=user2.id) invest3.workers.append(worker1) invest3.workers.append(worker2) # three user, two admin, user1 is admin -> not add to list invest4 = Investment.query.filter_by(id=4).first() worker1 = Worker(position="pos1", admin=True, user_id=user1.id) worker2 = Worker(position="pos2", admin=False, user_id=user2.id) worker3 = Worker(position="pos3", admin=True, user_id=user3.id) invest4.workers.append(worker1) invest4.workers.append(worker2) invest4.workers.append(worker3) db.session.commit() user = User.query.filter_by(username="******").first() assert User.check_admins(user_id=user.id)[0] == [invest2] assert User.check_admins(user_id=user.id)[1] == [invest1]
def test_belongs_to_investment(app_and_db, active_user): db = app_and_db[1] investment = Investment(name="test invest") worker = Worker(position="pos1", user_id=1) investment.workers.append(worker) db.session.add(investment) db.session.commit() assert Worker.belongs_to_investment(email="*****@*****.**", investment_id=1) assert not Worker.belongs_to_investment(email="*****@*****.**", investment_id=1)
def test_get_current_invest(app_and_db, active_user): db = app_and_db[1] investment = Investment(name="Test Investment") user = User.query.filter_by(username="******").first() user.current_invest_id = 1 worker = Worker(position="test position", user_id=user.id) investment.workers.append(worker) db.session.add(investment) db.session.commit() user = User.query.filter_by(username="******").first() current_invest = user.get_current_invest() print(type(current_invest)) assert current_invest.name == "Test Investment"
def register_worker(): data = request.get_json(force=True) if Worker.query.filter_by(hostname=data['hostname']).first(): return error_response(409, 'Worker already registered.') worker = Worker() worker.from_dict(data) db.session.add(worker) db.session.commit() response = jsonify(worker.to_dict()) response.status_code = 201 return response
def add_worker(): if request.method == 'POST': worker_name = request.form['worker_name'] worker_address = request.form['worker_address'] worker_contact = request.form['worker_contact'] worker = Worker(worker_name=worker_name, worker_address=worker_address, worker_contact=worker_contact, admin=current_user) db.session.add(worker) db.session.commit() flash('{} is successfully added'.format(worker_name)) return redirect(url_for('worker_detials')) return render_template('administrator/worker.html', title='Worker', worker=None)
def post(self): if request.is_json: email = request.json['email'] fname = request.json['fname'] lname = request.json['lname'] dob = request.json['dob'] identity = request.json['identity'] phone = request.json['phone'] worker = Worker(email=email, first_name=fname, last_name=lname, dob=dob, identification=identity, phone=phone, availibility=True) worker.save() return jsonify(worker) return {'status': 'invalid request'}
def test_investment(app_and_db, active_user): db = app_and_db[1] investment = Investment(name="Test Investment") user = User.query.filter_by(username="******").first() worker = Worker(position="test position", user_id=user.id) investment.workers.append(worker) db.session.add(investment) db.session.commit() user = User.query.filter_by(username="******").first() worker = Worker.query.filter_by(position="test position").first() investment = Investment.query.filter_by(name="Test Investment").first() assert user.workers.first() == worker assert investment.workers.first() == worker assert worker.user_id == user.id assert worker.investment_id == investment.id
def create() -> str: form = InvestmentForm() if form.validate_on_submit(): investment = Investment( name=form.name.data, description=form.description.data, ) worker = Worker( position="admin", admin=True, user_id=current_user.id, ) investment.workers.append(worker) db.session.add(investment) db.session.commit() flash("You have created new investment successfully.") return redirect(url_for("investments.invest_list")) return render_template("investments/form.html", title="Create Investment", form=form)
def workers(): form = AddWorkerForm() if form.validate_on_submit(): worker = Worker(first_name=form.first_name.data, middle_name=form.middle_name.data, second_name=form.second_name.data, email=form.email.data, company_id=current_user.id) db.session.add(worker) db.session.commit() if not os.path.exists('{}/workers/{}'.format(current_user.uploads_path, worker.id)): os.mkdir('{}/workers/{}'.format(current_user.uploads_path, worker.id)) worker.uploads_path = os.path.join( current_user.uploads_path, 'workers', str(worker.id)) db.session.commit() flash('Новый сотрудник добавлен') return redirect(url_for('main.workers')) if current_user.role == 'company': company = Company.query.get(current_user.id) workers = Worker.query.filter_by(company_id=current_user.id).all() elif current_user.role == 'doctor': doctor = Doctor.query.get(current_user.id) company = Company.query.get(doctor.company_id) workers = Worker.query.filter_by(company_id=doctor.company_id).all() return render_template('workers.html', title='Работники', form=form, company=company, workers=workers)
def addWorker(): workerF = WorkerF() if request.method == 'POST': if workerF.validate_on_submit(): fname = workerF.fname.data lname = workerF.lname.data address1 = workerF.address1.data city = workerF.city.data state = workerF.state.data country = workerF.country.data telephone = workerF.telephone.data role = workerF.role.data email = workerF.email.data worker = Worker(fname, lname, address1, city, state, country, telephone, role, email) db.session.add(worker) db.session.commit() flash('Worker successfully added!', 'success') return redirect(url_for('home')) flash_errors(worker) return render_template('addworker.html', form=workerF)
def get(self): log = logging.getLogger(__name__) time_now = datetime.datetime.now() try: grain_storehouses = list() grain_storehouses.append( GrainStorehouse(storehouse_no='1', storehouse_name='福州直属库')) db.session.add(grain_storehouses[0]) db.session.commit() except Exception as e: log.error("Creating grain_storehouse: %s", e) db.session.rollback() try: lora_gateways = list() lora_gateways.append( LoraGateway(gateway_addr='1', grain_storehouse=grain_storehouses[0])) db.session.add(lora_gateways[0]) db.session.commit() except Exception as e: log.error("Creating lora_gateway: %s", e) db.session.rollback() try: grain_barns = list() grain_barns.append( GrainBarn(barn_no='1', barn_name='37号仓', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], high_limit=30, low_limit=20)) grain_barns.append( GrainBarn(barn_no='2', barn_name='34号仓', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], high_limit=30, low_limit=20)) grain_barns.append( GrainBarn(barn_no='3', barn_name='41号仓', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], high_limit=30, low_limit=20)) grain_barns.append( GrainBarn(barn_no='4', barn_name='11号仓', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], high_limit=30, low_limit=20)) for i in range(len(grain_barns)): db.session.add(grain_barns[i]) db.session.commit() except Exception as e: log.error("Creating barns: %s", e) db.session.rollback() try: power_ios = list() power_ios.append( PowerIo(addr='1', name='34号仓配电箱1#', grain_barn=grain_barns[1])) power_ios.append( PowerIo(addr='2', name='34号仓配电箱2#', grain_barn=grain_barns[1])) power_ios.append( PowerIo(addr='3', name='37号仓配电箱1#', grain_barn=grain_barns[0])) power_ios.append( PowerIo(addr='4', name='11号仓配电箱1#', grain_barn=grain_barns[3])) power_ios.append( PowerIo(addr='5', name='41号仓配电箱1#', grain_barn=grain_barns[2])) power_ios.append( PowerIo(addr='6', name='37号仓配电箱2#', grain_barn=grain_barns[0])) power_ios.append( PowerIo(addr='7', name='41号仓配电箱2#', grain_barn=grain_barns[2])) power_ios.append( PowerIo(addr='8', name='11号仓配电箱2#', grain_barn=grain_barns[3])) db.session.add(power_ios[0]) db.session.add(power_ios[1]) db.session.add(power_ios[2]) db.session.add(power_ios[3]) db.session.add(power_ios[4]) db.session.add(power_ios[5]) db.session.add(power_ios[6]) db.session.add(power_ios[7]) db.session.commit() except Exception as e: log.error("Creating power_io: %s", e) db.session.rollback() try: tianshuo_485s = list() tianshuo_485s.append( TianshuoRs485(addr='1', name='11号仓1#空调', grain_barn=grain_barns[3])) tianshuo_485s.append( TianshuoRs485(addr='2', name='11号仓2#空调', grain_barn=grain_barns[3])) db.session.add(tianshuo_485s[0]) db.session.add(tianshuo_485s[1]) db.session.commit() except Exception as e: log.error("Creating tianshuo_485: %s", e) db.session.rollback() try: lora_nodes = list() lora_nodes.append( LoraNode(node_addr='29', node_name='37-1', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[0], power_io=power_ios[2], current=1.0, current_no=2, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='21', node_name='37-2', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[0], power_io=power_ios[2], current=1.0, current_no=1, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='17', node_name='37-3', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[0], power_io=power_ios[5], current=1.0, current_no=2, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='25', node_name='37-4', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[0], power_io=power_ios[5], current=1.0, current_no=1, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='18', node_name='34-1', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[1], power_io=power_ios[0], current=1.0, current_no=1, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='24', node_name='34-2', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[1], power_io=power_ios[0], current=1.0, current_no=2, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='10', node_name='34-3', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[1], power_io=power_ios[1], current=1.0, current_no=1, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='15', node_name='34-4', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[1], power_io=power_ios[1], current=1.0, current_no=2, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='16', node_name='41-1', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[2], power_io=power_ios[4], current=1.0, current_no=1, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='20', node_name='41-2', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[2], power_io=power_ios[4], current=1.0, current_no=2, current_limit=10, auto_manual='auto', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='19', node_name='41-3', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[2], power_io=power_ios[6], current=1.0, current_no=1, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='26', node_name='41-4', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[2], power_io=power_ios[6], current=1.0, current_no=2, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='27', node_name='11-1', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[3], power_io=power_ios[3], current=1.0, current_no=1, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='28', node_name='11-2', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[3], power_io=power_ios[3], current=1.0, current_no=2, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='22', node_name='11-3', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[3], power_io=power_ios[7], current=1.0, current_no=1, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) lora_nodes.append( LoraNode(node_addr='30', node_name='11-4', grain_storehouse=grain_storehouses[0], lora_gateway=lora_gateways[0], grain_barn=grain_barns[3], power_io=power_ios[7], current=1.0, current_no=2, current_limit=10, auto_manual='manual', manual_start_time=time_now, manual_end_time=time_now + datetime.timedelta(seconds=600), auto_start_time=time_now, auto_end_time=time_now)) db.session.add(lora_nodes[0]) db.session.add(lora_nodes[1]) db.session.add(lora_nodes[2]) db.session.add(lora_nodes[3]) db.session.add(lora_nodes[4]) db.session.add(lora_nodes[5]) db.session.add(lora_nodes[6]) db.session.add(lora_nodes[7]) db.session.add(lora_nodes[8]) db.session.add(lora_nodes[9]) db.session.add(lora_nodes[10]) db.session.add(lora_nodes[11]) db.session.add(lora_nodes[12]) db.session.add(lora_nodes[13]) db.session.add(lora_nodes[14]) db.session.add(lora_nodes[15]) db.session.commit() except Exception as e: log.error("Creating lora_node: %s", e) db.session.rollback() for i in range(1, 100): gt = GrainTemp() gt.grain_storehouse = grain_storehouses[0] gt.lora_gateway = lora_gateways[0] gt.grain_barn = grain_barns[0] gt.lora_node = lora_nodes[random.randint(0, 3)] gt.switch = False gt.temp1 = random.randrange(20, 30) gt.temp2 = random.randrange(20, 30) gt.temp3 = random.randrange(20, 30) gt.battery_vol = random.randint(1, 3) gt.datetime = datetime.datetime.now() db.session.add(gt) try: db.session.commit() print("inserted", gt) except Exception as e: log.error("Creating GrainTemp: %s", e) db.session.rollback() try: relay_current_rs485_funcs = list() relay_current_rs485_funcs.append( RelayCurrentRs485Func(function_name='suck_func_code', function_code='1000000001020100')) relay_current_rs485_funcs.append( RelayCurrentRs485Func(function_name='release_func_code', function_code='1000000001020000')) relay_current_rs485_funcs.append( RelayCurrentRs485Func(function_name='current_A1_A2_func_code', function_code='0300040004')) db.session.add(relay_current_rs485_funcs[0]) db.session.add(relay_current_rs485_funcs[1]) db.session.add(relay_current_rs485_funcs[2]) db.session.commit() except Exception as e: log.error("Creating relay_current_rs485_funcs: %s", e) db.session.rollback() try: power_io_rs485_funcs = list() power_io_rs485_funcs.append( PowerIoRs485Func(function_name='open_channel_1', function_code=5, start_at_reg_high=0, start_at_reg_low=16, num_of_reg_high=255, num_of_reg_low=0)) power_io_rs485_funcs.append( PowerIoRs485Func(function_name='close_channel_1', function_code=5, start_at_reg_high=0, start_at_reg_low=16, num_of_reg_high=0, num_of_reg_low=0)) # power_1_close = '010500100000CC0F' # power_1_open = '01050010FF008DFF' db.session.add(power_io_rs485_funcs[0]) db.session.add(power_io_rs485_funcs[1]) db.session.commit() except Exception as e: log.error("Creating power_io_rs485_funcs: %s", e) db.session.rollback() try: tianshuo_rs485_funcs = list() tianshuo_rs485_funcs.append( TianshuoRs485Func(function_name='off_and_cold', function_code=6, start_at_reg_high=0, start_at_reg_low=0, num_of_reg_high=0, num_of_reg_low=1)) tianshuo_rs485_funcs.append( TianshuoRs485Func(function_name='on_and_cold', function_code=6, start_at_reg_high=0, start_at_reg_low=0, num_of_reg_high=0, num_of_reg_low=9)) # off_cold = '010600000001' # on_cold = '010600000009' db.session.add(tianshuo_rs485_funcs[0]) db.session.add(tianshuo_rs485_funcs[1]) db.session.commit() except Exception as e: log.error("Creating tianshuo_rs485_funcs: %s", e) db.session.rollback() for i in range(1, 50): mq_func = NodeMqttTransFunc() mq_func.gateway_addr = '001' mq_func.node_addr = bitstring.pack('uint:13', i).bin mq_func.trans_direct = '1' mq_func.func_code = '0010001' mq_func.wind_direct = '00' mq_func.wind_speed = '11' mq_func.model = '0000011011' mq_func.on_off = '00' mq_func.work_mode = '001' mq_func.temp = '10000' db.session.add(mq_func) try: db.session.commit() print("inserted", mq_func) except Exception as e: log.error("Creating NodeMqttTransFunc: %s", e) db.session.rollback() try: alarm_level_setting = list() alarm_level_setting.append(AlarmLevelSetting(warning=57, error=68)) db.session.add(alarm_level_setting[0]) db.session.commit() except Exception as e: log.error("Creating alarm_level_setting: %s", e) db.session.rollback() try: alarm_statuses = list() alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[0], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[1], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[2], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[3], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[4], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[5], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[6], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[7], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[8], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[9], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[10], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[11], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[12], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[13], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[14], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) alarm_statuses.append( AlarmStatus(lora_node=lora_nodes[15], alarm_status=False, datetime=time_now, send_alarm_datetime=time_now)) db.session.add(alarm_statuses[0]) db.session.add(alarm_statuses[1]) db.session.add(alarm_statuses[2]) db.session.add(alarm_statuses[3]) db.session.add(alarm_statuses[4]) db.session.add(alarm_statuses[5]) db.session.add(alarm_statuses[6]) db.session.add(alarm_statuses[7]) db.session.add(alarm_statuses[8]) db.session.add(alarm_statuses[9]) db.session.add(alarm_statuses[10]) db.session.add(alarm_statuses[11]) db.session.add(alarm_statuses[12]) db.session.add(alarm_statuses[13]) db.session.add(alarm_statuses[14]) db.session.add(alarm_statuses[15]) db.session.commit() except Exception as e: log.error("Creating alarm_status: %s", e) db.session.rollback() try: alarm_types = list() alarm_types.append( AlarmTypes( alarm_type='Now temperature higher than the warning level!' )) alarm_types.append( AlarmTypes( alarm_type='Now temperature higher than the error level!')) alarm_types.append( AlarmTypes( alarm_type='Now current higher than the current limit!')) db.session.add(alarm_types[0]) db.session.add(alarm_types[1]) db.session.add(alarm_types[2]) db.session.commit() except Exception as e: log.error("Creating alarm_types: %s", e) db.session.rollback() try: alarm_records = list() alarm_records.append( AlarmRecords(lora_node=lora_nodes[0], alarm_type=alarm_types[0], datetime=time_now)) alarm_records.append( AlarmRecords(lora_node=lora_nodes[1], alarm_type=alarm_types[1], datetime=time_now)) alarm_records.append( AlarmRecords(lora_node=lora_nodes[2], alarm_type=alarm_types[2], datetime=time_now)) alarm_records.append( AlarmRecords(lora_node=lora_nodes[3], alarm_type=alarm_types[0], datetime=time_now)) alarm_records.append( AlarmRecords(lora_node=lora_nodes[4], alarm_type=alarm_types[1], datetime=time_now)) alarm_records.append( AlarmRecords(lora_node=lora_nodes[5], alarm_type=alarm_types[2], datetime=time_now)) db.session.add(alarm_records[0]) db.session.add(alarm_records[1]) db.session.add(alarm_records[2]) db.session.add(alarm_records[3]) db.session.add(alarm_records[4]) db.session.add(alarm_records[5]) db.session.commit() except Exception as e: log.error("Creating alarm_records: %s", e) db.session.rollback() try: daq_projects = list() daq_projects.append(Project(name='project1')) daq_projects.append(Project(name='project2')) daq_projects.append(Project(name='project3')) db.session.add(daq_projects[0]) db.session.add(daq_projects[1]) db.session.add(daq_projects[2]) db.session.commit() except Exception as e: log.error("Creating daq_projects: %s", e) db.session.rollback() try: daq_workers = list() daq_workers.append(Worker(name='worker1', project=daq_projects[0])) daq_workers.append(Worker(name='worker2', project=daq_projects[0])) daq_workers.append(Worker(name='worker1', project=daq_projects[1])) daq_workers.append(Worker(name='worker2', project=daq_projects[1])) daq_workers.append(Worker(name='worker1', project=daq_projects[2])) daq_workers.append(Worker(name='worker2', project=daq_projects[2])) db.session.add(daq_workers[0]) db.session.add(daq_workers[1]) db.session.add(daq_workers[2]) db.session.add(daq_workers[3]) db.session.add(daq_workers[4]) db.session.add(daq_workers[5]) db.session.commit() except Exception as e: log.error("Creating daq_workers: %s", e) db.session.rollback() for i in range(1, 100): gt = Temperature() gt.project = daq_projects[0] gt.worker = daq_workers[0] gt.datetime = datetime.datetime.now() gt.value = json.dumps([[x, round(random.uniform(250, 300), 2)] for x in range(20)]) db.session.add(gt) try: db.session.commit() print("inserted", gt) except Exception as e: log.error("Creating Temperature: %s", e) db.session.rollback() for i in range(1, 10): power = Power() power.project = daq_projects[0] power.worker = daq_workers[0] power.datetime = datetime.datetime.now() powerValue1 = [ round(random.uniform(0, 30), 2) for x in range(0, 8) ] powerValue2 = [ round(random.uniform(0, 30), 2) for x in range(0, 8) ] powerMoudle1 = [1, powerValue1] powerMoudle2 = [2, powerValue2] power.value = json.dumps([powerMoudle1, powerMoudle2]) db.session.add(power) try: db.session.commit() print("inserted", power) except Exception as e: log.error("Creating Power: %s", e) db.session.rollback() return jsonify({'success': 'auto insert init datas!'})
def get(self): log = logging.getLogger(__name__) time_now = datetime.datetime.now() try: daq_projects = list() daq_projects.append(Project(name='project1')) daq_projects.append(Project(name='project2')) daq_projects.append(Project(name='project3')) db.session.add(daq_projects[0]) db.session.add(daq_projects[1]) db.session.add(daq_projects[2]) db.session.commit() except Exception as e: log.error("Creating daq_projects: %s", e) db.session.rollback() try: daq_workers = list() daq_workers.append(Worker(name='worker1', project=daq_projects[0])) daq_workers.append(Worker(name='worker2', project=daq_projects[0])) daq_workers.append(Worker(name='worker1', project=daq_projects[1])) daq_workers.append(Worker(name='worker2', project=daq_projects[1])) daq_workers.append(Worker(name='worker1', project=daq_projects[2])) daq_workers.append(Worker(name='worker2', project=daq_projects[2])) db.session.add(daq_workers[0]) db.session.add(daq_workers[1]) db.session.add(daq_workers[2]) db.session.add(daq_workers[3]) db.session.add(daq_workers[4]) db.session.add(daq_workers[5]) db.session.commit() except Exception as e: log.error("Creating daq_workers: %s", e) db.session.rollback() for i in range(1, 100): gt = Temperature() gt.project = daq_projects[0] gt.worker = daq_workers[0] gt.datetime = datetime.datetime.now() gt.value = json.dumps([[x,round(random.uniform(250,300),2)] for x in range(20)]) db.session.add(gt) try: db.session.commit() print("inserted", gt) except Exception as e: log.error("Creating Temperature: %s", e) db.session.rollback() for i in range(1, 10): power = Power() power.project = daq_projects[0] power.worker = daq_workers[0] power.datetime = datetime.datetime.now() powerValue1 = [round(random.uniform(0, 30),2) for x in range(0,8)] powerValue2 = [round(random.uniform(0, 30),2) for x in range(0,8)] powerMoudle1 = [1, powerValue1] powerMoudle2 = [2, powerValue2] power.value = json.dumps([powerMoudle1,powerMoudle2]) db.session.add(power) try: db.session.commit() print("inserted", power) except Exception as e: log.error("Creating Power: %s", e) db.session.rollback() return jsonify({'success': 'auto insert init datas!'})
def populate_db() -> User: # Users while True: guest_name = get_fake_name_from_buffer(r) try: guest = get_or_create_user(guest_name, guest=True) except (IntegrityError, ValueError): db.session.rollback() else: break user2 = get_or_create_user("Fryderyk Pawlak") user3 = get_or_create_user("Karina Tomaszewska") user4 = get_or_create_user("Jacek Chmiel") user5 = get_or_create_user("Honorata Wieczorek") # Workers worker1 = Worker(position="Visitor", admin=True, user_id=guest.id) worker2 = Worker(position="Site Manager", admin=True, user_id=user2.id) worker3 = Worker(position="Project Manager", admin=True, user_id=user3.id) worker4 = Worker(position="Site Engineer", admin=False, user_id=user4.id) worker5 = Worker(position="Quantity Engineer", admin=False, user_id=user5.id) # Tasks description = "Get to know eCon" task1 = Task( description=description, deadline=date.today() + timedelta(days=2), priority=5, orderer=worker2, executor=worker1, ) task2 = Task( description="Very important task", deadline=date.today() + timedelta(days=2), priority=5, orderer=worker2, executor=worker3, ) task3 = Task( description="Less important task", deadline=date.today() + timedelta(days=1), priority=2, orderer=worker3, executor=worker2, ) # Investment invest = Investment( name="Warsaw Skyscraper", description="Office building with reinforced concrete structure.", ) invest.workers.append(worker1) invest.workers.append(worker2) invest.workers.append(worker3) invest.workers.append(worker4) invest.workers.append(worker5) invest.tasks.append(task1) invest.tasks.append(task2) invest.tasks.append(task3) db.session.add(invest) db.session.commit() # Task notification notification = create_notification( worker_id=guest.workers.first().id, n_type="task", description= f"You have a new task: '{description}' from {user2.username}", ) add_notification(r, notification) return guest