Добавлено заполнение списков триггеров и экшенов, переструктурирована бд

This commit is contained in:
2020-03-17 22:11:31 +03:00
parent 67d5467392
commit 48f4e8fac8
3 changed files with 51 additions and 42 deletions

View File

@@ -1,6 +1,6 @@
from flask import render_template, request, redirect, url_for from flask import render_template, request, redirect, url_for
import db_routing import db_routing
from flask_login import LoginManager, login_user, login_required, logout_user from flask_login import LoginManager, login_user, login_required, logout_user, current_user
from db_routing import app, db from db_routing import app, db
import os import os
import hashlib import hashlib
@@ -11,7 +11,7 @@ login_manager = LoginManager(app)
@login_manager.user_loader @login_manager.user_loader
def load_user(user_id): def load_user(user_id):
return db_routing.find_user(id=user_id) return db_routing.get_user(id=user_id)
@app.route('/', methods=['GET']) @app.route('/', methods=['GET'])
@@ -20,13 +20,15 @@ def index():
@app.route('/registration', methods=['GET', 'POST']) @app.route('/registration', methods=['GET', 'POST'])
def register(): def registration():
if request.method == 'POST': if request.method == 'POST':
userName = request.form['RegUserLogin'] userName = request.form['RegUserLogin']
userPassw = request.form['RegUserPassw'] userPassw = request.form['RegUserPassw']
if string_check(userName) and string_check(userPassw): if string_check(userName) and string_check(userPassw):
print('попытка регистрации')
if db_routing.add_user(userName, passw_hash(userPassw)): if db_routing.add_user(userName, passw_hash(userPassw)):
login_user(db_routing.find_user(username=userName)) print(db_routing.get_user(username=userName))
login_user(db_routing.get_user(username=userName))
return redirect(url_for('workshop')) return redirect(url_for('workshop'))
return render_template('registration.html') return render_template('registration.html')
@@ -41,10 +43,10 @@ def login():
login_user(user) login_user(user)
return redirect(url_for('workshop')) return redirect(url_for('workshop'))
else: else:
return redirect(url_for('register')) return redirect(url_for('registration'))
else: else:
return redirect(url_for('register')) return redirect(url_for('registration'))
@app.route('/logout') @app.route('/logout')
@@ -56,12 +58,16 @@ def logout():
@app.route('/workshop', methods=['GET']) @app.route('/workshop', methods=['GET'])
@login_required @login_required
def workshop(): def workshop():
return render_template('workshop.html') triggers_list = db_routing.get_trigers()
actions_list = db_routing.get_actions()
user_scripts_list = db_routing.get_user_scripts(current_user.get_id())
return render_template('workshop.html', triggers_list=triggers_list, actions_list=actions_list,
user_scripts_list=user_scripts_list)
@app.errorhandler(Exception) # @app.errorhandler(Exception)
def universal_error(error): # def universal_error(error):
return render_template('error.html'), 404 # return render_template('error.html'), 404
def string_check(string): def string_check(string):
@@ -84,8 +90,7 @@ def passw_hash(user_passw, salt=os.urandom(32)):
def verify_password(username, password): def verify_password(username, password):
User = db_routing.find_user(username=username) User = db_routing.get_user(username=username)
print(User)
if User: if User:
userSalt = User.password[:32] userSalt = User.password[:32]
if passw_hash(password, userSalt) == User.password: if passw_hash(password, userSalt) == User.password:

View File

@@ -13,10 +13,12 @@ class User(db.Model):
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False) username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False) password = db.Column(db.String(120), nullable=False)
telegram_username = db.Column(db.String(80), unique=True)
def __init__(self, username, password): def __init__(self, username, password, telegram_username=None):
self.username = username self.username = username
self.password = password self.password = password
self.telegram_username = telegram_username
def is_active(self): def is_active(self):
return True return True
@@ -31,15 +33,15 @@ class User(db.Model):
class Trigger(db.Model): class Trigger(db.Model):
__tablename__ = 'Triggers' __tablename__ = 'Triggers'
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
triggername = db.Column(db.String(80), unique=True, nullable=False) name = db.Column(db.String(80), unique=True, nullable=False)
trigger_def = db.Column(db.String(200)) def_name = db.Column(db.String(200))
class Action(db.Model): class Action(db.Model):
__tablename__ = 'Actions' __tablename__ = 'Actions'
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
actionname = db.Column(db.String(80), unique=True, nullable=False) name = db.Column(db.String(80), unique=True, nullable=False)
action_def = db.Column(db.String(200)) def_nme = db.Column(db.String(200))
class Scenario(db.Model): class Scenario(db.Model):
@@ -53,7 +55,7 @@ class Scenario(db.Model):
def add_user(user_name, passw_hash): def add_user(user_name, passw_hash):
if not find_user(user_name): if not get_user(user_name):
new_user = User(username=user_name, password=passw_hash) new_user = User(username=user_name, password=passw_hash)
db.session.add(new_user) db.session.add(new_user)
db.session.commit() db.session.commit()
@@ -63,11 +65,23 @@ def add_user(user_name, passw_hash):
return False return False
def find_user(id=None, username=None): def get_user(id=None, username=None):
if id: if id:
return User.query.filter_by(id=id).first() return User.query.filter_by(id=id).first()
if username: if username:
return User.query.filter_by(username=username).first() return User.query.filter_by(username=username).first()
# def get_trigers(): def get_trigers():
triggers_list = Trigger.query.all()
return triggers_list
def get_actions():
actions_list = Action.query.all()
return actions_list
def get_user_scripts(current_user_id):
user_scripts_list = Scenario.query.filter_by(owner_id=current_user_id).all()
return user_scripts_list

View File

@@ -56,11 +56,9 @@
Условие: Условие:
</div> </div>
<select class="form__input-text" > <select class="form__input-text" >
<option>Lorem ipsum dolor sit amet.</option> {% for trigger in triggers_list %}
<option>Lorem ipsum dolor sit amet.</option> <option>{{ trigger.name }}</option>
<option>Lorem ipsum dolor sit amet.</option> {% endfor %}
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
</select> </select>
</label> </label>
<label class="form__log"> <label class="form__log">
@@ -68,11 +66,9 @@
Действие: Действие:
</div> </div>
<select class="form__input-text" > <select class="form__input-text" >
<option>Lorem ipsum dolor sit amet.</option> {% for action in actions_list %}
<option>Lorem ipsum dolor sit amet.</option> <option>{{ action.name }}</option>
<option>Lorem ipsum dolor sit amet.</option> {% endfor %}
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
</select> </select>
</label> </label>
<div class="form__btns"> <div class="form__btns">
@@ -96,18 +92,12 @@
</div> </div>
<form action="" method="POST"> <form action="" method="POST">
<ul class="events_list"> <ul class="events_list">
<li class="events_item"> {% for user_script in user_scripts_list%}
<p>Lorem ipsum dolor sit.</p> <li class="events_item">
<div class="cl-btn-7"></div> <p>{{ user_scripts.name }}</p>
</li> <div class="cl-btn-7"></div>
<li class="events_item"> </li>
<p>Lorem, ipsum.</p> {% endfor %}
<div class="cl-btn-7"></div>
</li>
<li class="events_item">
<p>Lorem ipsum dolor sit.</p>
<div class="cl-btn-7"></div>
</li>
</ul> </ul>
</form> </form>
</section> </section>