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

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
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
import os
import hashlib
@@ -11,7 +11,7 @@ login_manager = LoginManager(app)
@login_manager.user_loader
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'])
@@ -20,13 +20,15 @@ def index():
@app.route('/registration', methods=['GET', 'POST'])
def register():
def registration():
if request.method == 'POST':
userName = request.form['RegUserLogin']
userPassw = request.form['RegUserPassw']
if string_check(userName) and string_check(userPassw):
print('попытка регистрации')
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 render_template('registration.html')
@@ -41,10 +43,10 @@ def login():
login_user(user)
return redirect(url_for('workshop'))
else:
return redirect(url_for('register'))
return redirect(url_for('registration'))
else:
return redirect(url_for('register'))
return redirect(url_for('registration'))
@app.route('/logout')
@@ -56,12 +58,16 @@ def logout():
@app.route('/workshop', methods=['GET'])
@login_required
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)
def universal_error(error):
return render_template('error.html'), 404
# @app.errorhandler(Exception)
# def universal_error(error):
# return render_template('error.html'), 404
def string_check(string):
@@ -84,8 +90,7 @@ def passw_hash(user_passw, salt=os.urandom(32)):
def verify_password(username, password):
User = db_routing.find_user(username=username)
print(User)
User = db_routing.get_user(username=username)
if User:
userSalt = User.password[:32]
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)
username = db.Column(db.String(80), unique=True, 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.password = password
self.telegram_username = telegram_username
def is_active(self):
return True
@@ -31,15 +33,15 @@ class User(db.Model):
class Trigger(db.Model):
__tablename__ = 'Triggers'
id = db.Column(db.Integer, primary_key=True)
triggername = db.Column(db.String(80), unique=True, nullable=False)
trigger_def = db.Column(db.String(200))
name = db.Column(db.String(80), unique=True, nullable=False)
def_name = db.Column(db.String(200))
class Action(db.Model):
__tablename__ = 'Actions'
id = db.Column(db.Integer, primary_key=True)
actionname = db.Column(db.String(80), unique=True, nullable=False)
action_def = db.Column(db.String(200))
name = db.Column(db.String(80), unique=True, nullable=False)
def_nme = db.Column(db.String(200))
class Scenario(db.Model):
@@ -53,7 +55,7 @@ class Scenario(db.Model):
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)
db.session.add(new_user)
db.session.commit()
@@ -63,11 +65,23 @@ def add_user(user_name, passw_hash):
return False
def find_user(id=None, username=None):
def get_user(id=None, username=None):
if id:
return User.query.filter_by(id=id).first()
if username:
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>
<select class="form__input-text" >
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
{% for trigger in triggers_list %}
<option>{{ trigger.name }}</option>
{% endfor %}
</select>
</label>
<label class="form__log">
@@ -68,11 +66,9 @@
Действие:
</div>
<select class="form__input-text" >
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
<option>Lorem ipsum dolor sit amet.</option>
{% for action in actions_list %}
<option>{{ action.name }}</option>
{% endfor %}
</select>
</label>
<div class="form__btns">
@@ -96,18 +92,12 @@
</div>
<form action="" method="POST">
<ul class="events_list">
<li class="events_item">
<p>Lorem ipsum dolor sit.</p>
<div class="cl-btn-7"></div>
</li>
<li class="events_item">
<p>Lorem, ipsum.</p>
<div class="cl-btn-7"></div>
</li>
<li class="events_item">
<p>Lorem ipsum dolor sit.</p>
<div class="cl-btn-7"></div>
</li>
{% for user_script in user_scripts_list%}
<li class="events_item">
<p>{{ user_scripts.name }}</p>
<div class="cl-btn-7"></div>
</li>
{% endfor %}
</ul>
</form>
</section>