def account(): if current_user.idTypeAccountOne == 1: form = ChangeAccountTypeForm() else: form = ChangeAccountPriceForm() if current_user.idFirm != 1 and current_user.idTypeAccountTwo == 2: cursor.execute('select * from firm where id = %s;', (current_user.idFirm, )) firm = cursor.fetchone() else: firm = None if form.validate_on_submit(): if current_user.idTypeAccountOne == 1: cursor.execute( 'update account set idTypeAccountOne = %s where id = %s;', (form.typeAccountOne.data, current_user.id)) conn.commit() login_user(load_user(current_user.id)) flash('Тип учетной записи записан.') return redirect(url_for('account')) else: cursor.execute( 'update account set servicePrice = %s where id = %s;', (form.servicePrice.data, current_user.id)) conn.commit() login_user(load_user(current_user.id)) flash('Цена за услуги изменена.') return redirect(url_for('account')) return render_template('account.html', title='Личный кабинет', form=form, firm=firm)
def appedit(id): global next_page form = AppForm() if request.method == "POST" and form.validate_on_submit(): data = App.query.filter_by(id=id).first_or_404() before = str(data.to_dict()) data.name = request.form['name'] data.desc = request.form['desc'] data.is_active = 'is_active' in request.form after = str(data.to_dict()) var = ParentAudit(parent_id=data.id, a_datetime=datetime.now(), a_user_id=current_user.id, a_username=load_user(current_user.id).username, action="change", before=before, after=after ) db.session.add(var) db.session.commit() return redirect(next_page) if request.method == 'GET': next_page = request.referrer appsingle = App.query.filter_by(id=id).first_or_404() form.load(appsingle) return render_template('appedit.html', form=form, next=request.referrer)
def index(): form = PostForm() if form.validate_on_submit(): res = mysql.Add("post", [ 'NULL', "'%s'" % form.post.data, "'%s'" % current_user.id, "'%s'" % now() ]) if res == 1: flash('Your post is now live!') return redirect(url_for('index')) page = request.args.get('page', 1, type=int) all_posts = current_user.followed_posts() post_per_page = app.config['POSTS_PER_PAGE'] posts = all_posts[(page - 1) * post_per_page:page * post_per_page if len(all_posts) >= page * post_per_page else len(all_posts)] next_url = url_for('explore', page=page + 1) \ if len(all_posts) > page * post_per_page else None prev_url = url_for('explore', page=page - 1) \ if (page > 1 and len(all_posts) > page * post_per_page) else None usernames = [] for i in posts: usernames.append(load_user(i[2])) return render_template('index.html', title='Home', form=form, posts=posts, next_url=next_url, prev_url=prev_url, usernames=usernames, izip=izip, avatars=avatar, dt=datetime.strptime)
def on_user_left(json): log('c_user_left', json) tower_id = json['tower_id'] tower = towers[tower_id] # We need to custom-load the user based on the jwt token passed up user = None if not json['anonymous_user']: try: user_id = jwt.decode(json['user_token'], app.config['SECRET_KEY'], algorithms=['HS256'])['id'] user = load_user(user_id) except: user_id = session['user_id'] pass # leave user set to None if not user: tower.remove_observer(user_id) emit('s_set_observers', {'observers': tower.observers}, broadcast=True, include_self=False, room=tower_id) return tower.remove_user(user_id) emit('s_user_left', {'user_name': user.username}, broadcast=True, include_self=True, room=tower_id) send_assignments(tower_id)
def createAccount(): if current_user.is_authenticated: flash('Для регистрации нового аккаунта выйдите из существующего') return redirect(url_for('account')) form = CreateAccountForm() if form.validate_on_submit(): cursor.execute('select * from account where login = %s;', (form.login.data, )) user = cursor.fetchone() if user: flash('Учетная запись с таким логином уже существует!') return redirect(url_for('createAccount')) if form.passwordOne.data == form.passwordTwo.data: cursor.execute( 'insert into account (login, passwordHash, idTypeAccountOne, idTypeAccountTwo, idFirm) values (%s, %s, 1, 1, 1);', ( form.login.data, generate_password_hash(form.passwordOne.data), )) conn.commit() cursor.execute('select id from account where login = %s;', (form.login.data, )) user = cursor.fetchone() login_user(load_user(user[0]), remember=0) flash('Учетная запись создана успешно. Заполните данные профиля.') return redirect(url_for('fillAccount')) else: flash('Пароли не совпадают.') return redirect(url_for('createAccount')) return render_template('createAccount.html', title='Создание аккаунта', form=form)
def table_data(): data = {} if request.method == 'GET': return jsonify(data) user = load_user(current_user.get_id()) filters = request.json['filter'] if request.json['filter'] else [ "任务名", "创建人", "任务状态", "Bladed版本" ] search_key = request.json['search_key'] if search_key: sql_ele = eval(search_by(filters, search_key)) if not isinstance(sql_ele, tuple): sql_ele = tuple([sql_ele]) if request.json['filter']: all_tasks = Task.query.filter(and_(*sql_ele)) user_tasks = Task.query.filter( and_(Task.user_id.is_(user.id), and_(*sql_ele))) else: all_tasks = Task.query.filter(or_(*sql_ele)) user_tasks = Task.query.filter( and_(Task.user_id.is_(user.id), or_(*sql_ele))) else: all_tasks = Task.query.all() user_tasks = Task.query.filter_by(user_id=user.id) data['all'] = [tsk.to_json(i + 1) for i, tsk in enumerate(all_tasks[::-1])] data['user'] = [ tsk.to_json(i + 1) for i, tsk in enumerate(user_tasks[::-1]) ] return jsonify(data)
def index(): user = load_user(current_user.get_id()) tasks_amount = len(Task.query.filter_by(user_id=user.id).all()) # delete 必须写在前面,避免select的影响 delete_task_form = DeleteTaskForm() if delete_task_form.delete_submit.data and delete_task_form.validate(): delete_task(user, delete_task_form) logging.log( logging.INFO, f"Deleted {delete_task_form.taskname.data} by {user.realname}") return redirect(url_for('main.index')) controller_tree = get_controller_tree() new_task_form = NewTaskForm() set_choices(new_task_form, request, controller_tree) if new_task_form.create_submit.data and new_task_form.validate(): create_new_task(user, new_task_form) logging.log( logging.INFO, f"Created {new_task_form.taskname.data} by {user.realname}") return redirect(url_for('main.index')) edit_task_form = EditTaskForm() set_choices(edit_task_form, request, controller_tree) if edit_task_form.modify_submit.data and edit_task_form.validate(): update_task(user, edit_task_form) logging.log( logging.INFO, f"Updated {edit_task_form.taskname.data} by {user.realname}") return redirect(url_for('main.index')) return render_template('index.html', title='主页', user=user, tasks_amount=tasks_amount, new_task_form=new_task_form, edit_task_form=edit_task_form, delete_task_form=delete_task_form, controller_tree=controller_tree )
def prise(): form = PriseForm() user_id = session.get('user_id', None) user = models.load_user(user_id) v = models.Vacances.query.filter(models.Vacances.user_id == user_id, models.Vacances.status == 1).all() w = models.Vacances.query.filter(models.Vacances.user_id == user_id, models.Vacances.status == 0).all() solde_vacances = 0 if len(v) > 0: for i in v: solde_vacances = solde_vacances + i.nb_jour solde_vacances_validation = solde_vacances if len(w) > 0: for j in w: solde_vacances_validation = solde_vacances_validation + j.nb_jour if form.validate_on_submit(): DbMethods.prise_vacances(user_id, form.priseDateDebut.data, form.priseDateFin.data, form.priseNbJours.data) Mail.vacation_notification( user, [form.priseDateDebut.data, form.priseDateFin.data], Mail.notification_type.remove_vacation) return redirect('/index') return render_template('prise.html', title='Vacances - Prise', solde_vacances=solde_vacances, solde_vacances_validation=solde_vacances_validation, form=form)
def keyvaledit(id): global next_page form = KeyvalForm() if request.method == "POST" and form.validate_on_submit(): data = Parent.query.filter_by(id=id).first_or_404() before = str(data.to_dict()) data.name = request.form['name'] data.email = request.form['email'] data.sex = int(request.form['sex']) data.dob = datetime.strptime(str(dateutil.parser.parse(request.form['dob'])).split(" ", 1)[0], '%Y-%m-%d') data.is_active = 'is_active' in request.form data.income_amount = request.form['income_amount'] after = str(data.to_dict()) var = ParentAudit(parent_id=data.id, a_datetime=datetime.now(), a_user_id=current_user.id, a_username=load_user(current_user.id).username, action="change", before=before, after=after ) db.session.add(var) db.session.commit() return redirect(next_page) if request.method == 'GET': next_page = request.referrer keyvalsingle = Parent.query.filter_by(id=id).first_or_404() form.load(keyvalsingle) return render_template('keyvaledit.html', form=form, next=request.referrer)
def user(username): if re.match("^[a-zA-Z0-9_]+$", username) == None: return render_template('500.html'), 500 user = load_user_by_username(username) if user == -1: flash('Something error!') return render_template('500.html'), 500 if user == 0: flash('User is not exists') return redirect(url_for('index')) page = request.args.get('page', 1, type=int) page = page if page > 0 else 1 all_posts = current_user.followed_posts() post_per_page = app.config['POSTS_PER_PAGE'] posts = all_posts[(page - 1) * post_per_page:page * post_per_page if len(all_posts) >= page * post_per_page else len(all_posts)] next_url = url_for('user', username=user.username, page=page + 1) \ if len(all_posts) > page * post_per_page else None prev_url = url_for('user', username=user.username, page=page - 1) \ if (page > 1 and len(all_posts) > (page - 1) * post_per_page) else None usernames = [] for i in posts: usernames.append(load_user(i[2])) return render_template('user.html', user=user, posts=posts, usernames=usernames, next_url=next_url, prev_url=prev_url, izip=izip, avatars=avatar, dt=datetime.strptime)
def edit_utente_profile(user_id, email): user = load_user(user_id) utente = load_utente(email) form = EscalaoPrecoForm(obj=utente) lista_escaloes_tuplos = list(map\ (lambda dict_escalao:\ tuple(dict_escalao.values()),\ lista_escaloes())) form.esc_de_preco.choices = lista_escaloes_tuplos with g.db.cursor() as cursor: if request.method == "POST": morada = request.form.get("morada") telemovel = request.form.get("telemovel") email = request.form.get("email") esc_de_preco = request.form.get("esc_de_preco") med_fam_apoio = request.form.get("med_fam_apoio") alergias = request.form.get("alergias") doencas = request.form.get("doencas") nome_a_contactar = request.form.get("nome_a_contactar") num_a_contactar = request.form.get("num_a_contactar") cursor.execute(sql_utente_telemovel, (telemovel)) cursor_telemovel = cursor.fetchone() cursor.execute(sql_utente_email, (email)) cursor_email = cursor.fetchone() if cursor_telemovel is not None and str(utente.telemovel) !=\ str(telemovel): flash("Nº já existe. Introduza outro.") return redirect(url_for('utente.edit_utente_profile',\ user_id=user_id,email=email)) if cursor_email is not None and utente.email != email: flash("Email já existe. Introduza outro.") return redirect(url_for('utente.edit_utente_profile',\ user_id=user_id,email=email)) else: if nome_a_contactar == "" or num_a_contactar == "": nome_a_contactar = None num_a_contactar = None cursor.execute(sql_utente_update, (telemovel, email, morada,\ nome_a_contactar,\ num_a_contactar,\ esc_de_preco,\ med_fam_apoio,\ alergias, doencas,\ utente.email)) g.db.commit() flash('Alterações guardadas!') return redirect(url_for('utente.utente', user_id=user_id,\ email=email)) return render_template('utente/edit_utente_profile.html',\ title='Editar perfil do utente',\ utente=utente,form=form, user=user)
def login(): data = request.get_json() username = data['username'] password = data['password'] #verify user if Database.login(username, password): user = load_user(username) login_user(user) return redirect("/user/"+username) else: return "Incorrect credentials. Please try again.",401
def firms(): cursor.execute('select * from firm where id != 1;') firms = cursor.fetchall() form = ChoiceFirmForm() if form.validate_on_submit(): cursor.execute('update account set idFirm = %s where id = %s;', ( form.idFirm.data, current_user.id, )) conn.commit() login_user(load_user(current_user.id)) flash('Вы успешно выбрали фирму.') return render_template('firms.html', title='Фирмы', firms=firms, form=form)
def reset(): form = ResetPassWordForm() next_state = "返回" if form.validate_on_submit(): user_id = current_user.get_id() user = load_user(user_id) if user.check_password(form.old_password.data): user.password = form.new_password.data logout_user() next_state = "重新登录" flash("密码修改成功!") else: flash("密码错误!") return render_template('resetpw.html', form=form, next=next_state, title='修改密码', cold=False)
def auditaddtest(): addcount = request.args.get('addcount', 20, type=int) parentid = request.args.get('parentid', 1, type=int) for addone in range(addcount): var = ParentAudit(parent_id=parentid, a_datetime=datetime.now(), a_user_id=current_user.id, a_username=load_user(current_user.id).username, action="change", before="snapshot of parent before", after="snapshot of parent after") db.session.add(var) db.session.commit() return redirect('/list')
def on_toggle_bookmark(json): # We need to custom-load the user based on the jwt token passed up user = None try: user_id = jwt.decode(json['user_token'], app.config['SECRET_KEY'], algorithms=['HS256'])['id'] user = load_user(user_id) except: pass # leave user set to None log('c_toggle_bookmark', current_user, json['tower_id']) tower = towers[json['tower_id']] user.toggle_bookmark(tower)
def utente(user_id, email): user = load_user(user_id) utente = load_utente(email) with g.db.cursor() as cursor: if request.method == "POST": comentarios = request.form.get("comentarios") cursor.execute(sql_utente_comentarios, (comentarios,\ utente.email)) g.db.commit() flash('Guardado!') return redirect(url_for('utente.utente', user_id=user_id,\ email=email)) return render_template('utente/utente.html', utente=utente,\ title='Perfil do utente', user_equipas =\ equipas_do_user(user.username), user=user)
def writeaudit(parent_id, before, after): if before: change = "change" else: change = "add" var = Audit(model='keyval', parent_id=parent_id, a_datetime=datetime.now(), a_user_id=current_user.id, a_username=load_user(current_user.id).username, action=change, before=before, after=after) db.session.add(var)
def on_user_left(json): log('c_user_left', json) tower_id = json['tower_id'] tower = towers[tower_id] # We need to custom-load the user based on the jwt token passed up user = None if not json['anonymous_user']: try: user_id = jwt.decode(json['user_token'], app.config['SECRET_KEY'], algorithms=['HS256'])['id'] user = load_user(user_id) except: user_id = session.get('user_id') pass # leave user set to None else: user_id = session.get('user_id') pass # leave user set to None if user_id is None: return if not user: tower.remove_observer(user_id) emit('s_set_observers', {'observers': tower.observers}, broadcast=True, include_self=False, room=tower_id) return tower.remove_user(user_id) emit('s_user_left', {'user_name': user.username}, broadcast=True, include_self=True, room=tower_id) # Now that the user is gone, check if there are any hosts left. If not, make sure # the tower is not in host mode. if not tower.host_present(): tower.host_mode = False emit('s_host_mode', { 'tower_id': tower_id, 'new_mode': False }, broadcast=True, include_self=True, room=tower_id)
def explore(): page = request.args.get('page', 1, type=int) page = page if page > 0 else 1 all_posts = mysql.All("post", order=["id desc"]) post_per_page = app.config['POSTS_PER_PAGE'] posts = all_posts[ (page - 1) * post_per_page:page * post_per_page if len(all_posts) >= page * post_per_page else len( all_posts)] next_url = url_for('explore', page=page + 1) \ if len(all_posts) > page * post_per_page else None prev_url = url_for('explore', page=page - 1) \ if (page > 1 and len(all_posts) > (page - 1) * post_per_page) else None usernames = [] for i in posts: usernames.append(load_user(i[2])) return render_template('index.html', title='Home', posts=posts, usernames=usernames, next_url=next_url, prev_url=prev_url, izip=izip, avatars=avatar, dt=datetime.strptime)
def login(): if current_user.is_authenticated: flash('Вы уже авторизированны!') return redirect(url_for('cart')) form = LoginForm() if form.validate_on_submit(): cursor.execute( 'select id, password_hash from account where login = %s;', (form.login.data, )) user = cursor.fetchone() if user is None or not check_password_hash(user[1], form.password.data): flash('Неверный логин или пароль!') return redirect(url_for('login')) login_user(load_user(user[0]), remember=form.remember_me.data) flash('Вы успешно авторизировались.') return redirect(url_for('cart')) return render_template('login.html', title='Вход', form=form)
def changeAccount(): form = ChangeAccountForm() if form.validate_on_submit(): cursor.execute( 'select id from account where (email = %s or phone = %s ) and id != %s;', ( form.email.data, form.phone.data, current_user.id, )) user = cursor.fetchone() if user: flash('Учетная запись с таким email или телефоном уже существует!') return redirect(url_for('changeAccount')) cursor.execute( 'update account set name = %s, email = %s, phone = %s, idTypeAccountTwo = %s where id = %s;', ( form.name.data, form.email.data, form.phone.data, form.typeAccountTwo.data, current_user.id, )) conn.commit() login_user(load_user(current_user.id)) flash('Данные изменены.') return redirect(url_for('account')) elif request.method == 'GET': cursor.execute( 'select name, email, phone, idTypeAccountTwo from account where id = %s;', (current_user.id, )) user = cursor.fetchone() if user[0]: form.name.data = user[0] if user[1]: form.email.data = user[1] if user[2]: form.phone.data = user[2] if user[3]: form.typeAccountTwo.data = user[3] return render_template('changeAccount.html', title='Изменение данных профиля', form=form)
def login(): if current_user.is_authenticated: # проверка пользователя на авторизированость return redirect(url_for('main.index')) form = LoginForm() if form.validate_on_submit( ): # проверка на нажатие пользователем кнопки Submit cursor = conn.cursor() cursor.execute( 'select password,login,iduser from Uzer where login = %s', [form.login.data]) user = cursor.fetchone() conn.commit() parol = form.password.data if user is None or not check_password_hash(user[0], parol): flash(_('Invalid username or password')) return redirect(url_for('auth.login')) user = load_user(user[2]) login_user(user, remember=form.remember_me.data, force=True) # создание пользователя как обьекта return redirect(url_for('main.user', id=current_user.id)) return render_template('auth/login.html', title=_('Sign In'), form=form)
def index(): user = load_user(current_user.id) if user.is_parent_user: children = User.query.filter_by(parent_id=current_user.id).all() account_info = [] for child in children: account_name = "No account" account_id = 0 if len(child.accounts.all()) > 0: account_name = child.accounts[0].name account_id = child.accounts[0].id account_balance = child.accounts[0].balance account_info.append({ "name": child.username, "account_balance": account_balance, "account_name": account_name, "account_id": account_id }) else: account_info = [] account_name = "No account" account_id = 0 if len(user.accounts.all()) > 0: account_name = user.accounts[0].name account_id = user.accounts[0].id account_balance = user.accounts[0].balance account_info.append({ "name": user.username, "account_balance": account_balance, "account_name": account_name, "account_id": account_id }) return render_template('index.html', title="Home", account_info=account_info)
def user(id): user = load_user(id) form = CategoriaForm(obj=user) lista_categorias_user_tuplos = list(map(lambda dict_categoria_user:\ tuple(dict_categoria_user.values()),\ lista_categorias_user())) form.categoria.choices = lista_categorias_user_tuplos with g.db.cursor() as cursor: if request.method == "POST": telemovel = request.form.get("telemovel") email = request.form.get("email") categoria = request.form.get("categoria") cursor.execute(sql_user_telemovel, (telemovel)) cursor_telemovel = cursor.fetchone() cursor.execute(sql_user_email, (email)) cursor_email = cursor.fetchone() if cursor_telemovel is not None and str(user.telemovel)\ != str(telemovel): flash("Nº de telemóvel já existe. Introduza outro.") return redirect(url_for('main.user', id=id)) if cursor_email is not None and user.email !=\ email: flash("Email já existe. Introduza outro.") return redirect(url_for('main.user', id=id)) else: cursor.execute(sql_user_update,\ (telemovel, email,\ categoria, user.email)) g.db.commit() flash('Alterações guardadas!') return redirect(url_for('main.user', id=id)) return render_template('user/user.html', user=user, user_equipas =\ equipas_do_user(user.username), form = form,\ title='Utilizador: ' + user.username)
def create_account(): if current_user.is_authenticated: flash('У вас уже есть аккаунт!') return redirect(url_for('cart')) form = NewAccountForm() if form.validate_on_submit(): cursor.execute('select * from account where login = %s or email = %s;', ( form.login.data, form.email.data, )) user = cursor.fetchone() if user: flash('Аккаунт с таким логином или email уже существует!') return redirect(url_for('create_account')) if form.password.data == form.password_replay.data: cursor.execute( 'insert into account (email, login, password_hash, fio) values (%s, %s, %s, %s);', ( form.email.data, form.login.data, generate_password_hash(form.password.data), form.fio.data, )) conn.commit() else: flash('Пароли не совпадают!') return redirect(url_for('create_account')) cursor.execute('select id from account where login = %s;', (form.login.data, )) user_id = cursor.fetchone() if user_id: login_user(load_user(user_id[0])) flash('Вы успешно зарегистрировали новый аккаунт!') return redirect(url_for('cart')) return render_template('create_account.html', title='Регистрация', form=form)
def fillAccount(): form = ChangeAccountForm() if form.validate_on_submit(): cursor.execute( 'select id from account where email = %s or phone = %s;', ( form.email.data, form.phone.data, )) user = cursor.fetchone() if user: flash('Учетная запись с таким email или телефоном уже существует!') return redirect(url_for('fillAccount')) cursor.execute( 'update account set name = %s, email = %s, phone = %s, idTypeAccountTwo = %s where id = %s;', (form.name.data, form.email.data, form.phone.data, form.typeAccountTwo.data, current_user.id)) conn.commit() login_user(load_user(current_user.id), remember=0) flash('Спасибо за заполнение данных.') return redirect(url_for('account')) return render_template('changeAccount.html', title='Заполнение данных профиля', form=form)
def test_user_loader(self): db.create_all() u = User(login='******', password='******') db.session.add(u) db.session.commit() self.assertTrue(load_user(u.id) == u)
def on_join(json): log('c_join', json) # First, get the tower_id & tower from the client and find the tower tower_id = json['tower_id'] tower = towers[tower_id] # Next, join the tower join_room(tower_id) log('SETUP Joined tower:', tower_id) # We need to custom-load the user based on the jwt token passed up user = None if not json['anonymous_user']: try: user_id = jwt.decode(json['user_token'], app.config['SECRET_KEY'], algorithms=['HS256'])['id'] user = load_user(user_id) except: pass # leave user set to None # Whether the user is anonymous or not, send them the list of current users emit('s_set_userlist', {'user_list': tower.user_names}) # If the user is anonymous, mark them as an observer and set some cookies if not user: # Check they're not already in the room if 'user_id' in session.keys(): tower.remove_observer(session['user_id']) session['user_id'] = assign_user_id() tower.add_observer(session['user_id']) log('SETUP Observer joined tower:', tower_id) emit('s_set_observers', {'observers': tower.observers}, broadcast=True, include_self=True, room=tower_id) log('SETUP observer s_set_observers', tower.observers) else: # The user is logged in. Add this as a recent tower user.add_recent_tower(tower) # If the user is logged in, but is already in the room: Remove them (in # preparation for adding them again) if user.username in tower.users.keys(): log('SETUP User already present') tower.remove_user(user.id) emit('s_user_left', {'user_name': user.username}, broadcast=True, include_self=True, room=tower_id) # For now: Keeping the "id/username" split in the tower model # Eventually, this will allow us to have display names different # from the username tower.add_user(user.id, user.username) # Hack to fix a bug with the multiserver setup emit('s_size_change', {'size': tower.n_bells}) emit('s_audio_change', {'new_audio': tower.audio}) emit('s_user_entered', {'user_name': user.username}, broadcast=True, include_self=True, room=json['tower_id']) # Store the tower in case of accidental disconnect # We need to do it under the SocketIO SID, otherwise a refresh might kick us out of the room if not 'tower_ids' in session.keys(): session['tower_ids'] = {} session['tower_ids'][request.sid] = json['tower_id'] session.modified = True
def submission(): user = load_user(current_user.id) query_seq = Post(author=user).query.order_by(Post.timestamp.desc()).first() query_seq = query_seq.body hasher = hashlib.md5(query_seq.encode('ASCII')) hasher = hasher.hexdigest()[:50] hasher = hasher + str(random.randint(1, 10000)) sequence = '/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/backend/Sequences_for_prediction.fa' with open(sequence, 'w') as outfile: outfile.write(str(query_seq)) with open(sequence, 'a') as outfile: with open(sequence, 'r') as fin: lines = fin.readlines() # flash(lines[-1]) if lines[-1] != '>': outfile.write('\n>\n') sequences = [] with open(sequence, 'r') as fin: in_sequence = '' for line in fin: if line.startswith('>'): sequences.append(in_sequence) in_sequence = '' else: in_sequence += line.strip() # flash(sequences) sequences = list(filter(None, sequences)) # flash(sequences) # flash(query_seq) prediction_sets = [] title_set = [] dummy_email_list = [ '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**' ] for seq, dummy_email in zip(sequences, itertools.cycle(dummy_email_list)): DNA, RNA, protein, protein_length, Hermes_final_solution = Launcher( dummy_email, seq) prediction_sets.append( [DNA, RNA, protein, protein_length, Hermes_final_solution]) title_set.append([ 'DNA sequence: ', 'RNA sequence: ', 'Amino acid sequence: ', 'Length of the protein: ', 'Final Hermes_Prediction Solution: ' ]) if Hermes_final_solution == "": flash( "Unfortunately there is an issue with a protein layer server and an optimal result is unattainable at this momment, please try again later" ) count = 1 message = "" with open( "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/solved_prediction_set.txt", 'w') as prediction_file: for pred_set, t_set in zip(prediction_sets, title_set): prediction_file.write("Submission " + str(count) + '\n') message += "Submission " + str(count) + '\n' message += '\n' for element1, element2 in zip(pred_set, t_set): prediction_file.write(str(element2)) prediction_file.write(str(element1) + '\n') message += '\n' message += str(element2) message += str(element1) + '\n' count += 1 with open( "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/templates/base_prediction.html", 'r') as base_file: with open( "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/templates/prediction.html", "w") as final_file: lines = base_file.readlines() for line in lines: final_file.write(line) with open( "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/solved_prediction_set.txt", "r") as contents: with open( "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/templates/prediction.html", "a") as e: for lines in contents.readlines(): if lines != '\n' or lines != None: e.write('<pre style="font-size:18px">' + lines + "</pre> <br>\n") e.write("{% endblock %}") send_email(user.email, message) return redirect(url_for('main.specific_submission', hasher=hasher))
def test_user_loader(self): db.create_all() u = User(login='******', password='******') db.session.add(u) db.session.commit() self.assertTrue(load_user(u.id) == u)
def test_user_loader(self): db.create_all() u = User(email='*****@*****.**', username='******', password='******') db.session.add(u) db.session.commit() self.assertTrue(load_user(u.id) == u)
def test_user_loader(self): db.create_all() u = User(email='*****@*****.**', username='******', password='******') db.session.add(u) db.session.commit() self.assertTrue(load_user(u.id) == u)