def change_password(): form = ChangePasswordForm() if form.validate_on_submit(): db = db_session.create_session() user_now = db.query(User).filter(User.id == current_user.id).first() if user_now: if not user_now.check_password(form.old_password.data): return render_template('change_password.html', form=form, message='Old password is incorrect', title='Change password') if form.new_password.data != form.new_password_again.data: return render_template('change_password.html', form=form, message='Passwords do not match', title='Change password') if len(form.new_password.data) < 6: return render_template('change_password.html', title='Change password', form=form, message="Password is too short") if form.new_password.data.isdigit( ) or form.new_password.data.isalpha(): return render_template( 'change_password.html', title='Change password', form=form, message="Password must contain letters and digits") user_now.set_password(form.new_password.data) db.commit() return redirect('/account_info') return render_template('change_password.html', form=form, title='Change password')
def change_info(): all_data = { 'name': current_user.name, 'surname': current_user.surname, 'country': current_user.country, 'city': current_user.city, 'email': current_user.email } form = ChangeInfoForm(data=all_data) if form.validate_on_submit(): db = db_session.create_session() user_now = db.query(User).filter(User.id == current_user.id).first() if form.name.data: user_now.name = form.name.data if form.surname.data: user_now.surname = form.surname.data if form.country.data: user_now.country = form.country.data if form.city.data: user_now.city = form.city.data if form.email.data: email = db.query(User).filter( User.email == form.email.data).first() if not email or user_now == email: user_now.email = form.email.data else: return render_template('change_info.html', form=form, message='This email already exists', title='Change info') db.commit() return redirect('/account_info') return render_template('change_info.html', form=form, title='Change info')
def delete_all_news(): db = db_session.create_session() all_news = db.query(News).filter(News.user == current_user).all() for news in all_news: db.delete(news) db.commit() return redirect('/my_news')
def delete_all_tasks(): db = db_session.create_session() all_tasks = db.query(Task).filter(Task.user == current_user).all() for task in all_tasks: if task and task.user == current_user: db.delete(task) db.commit() return redirect('/tasks')
def refresh_manually(): db = db_session.create_session() user_now = db.query(User).filter(User.id == current_user.id).first() user_now.xp = int(user_now.xp) + refresh_challenge_xp if int(user_now.xp) < 0: user_now.xp = 0 db.commit() return redirect('/refresh_challenges')
def notes(): db = db_session.create_session() notes = db.query(Note).filter(Note.user == current_user).all().copy()[::-1] return render_template('notes.html', notes=notes, useracc=(current_user.name + ' ' + current_user.surname), title='Notes')
def delete_all_notes(): db = db_session.create_session() all_notes = db.query(Note).filter(Note.user == current_user).all() for note in all_notes: if note and note.user == current_user: db.delete(note) db.commit() return redirect('/mynotes')
def my_news(): db = db_session.create_session() news = db.query(News).filter(News.user == current_user).all().copy()[::-1] return render_template('news.html', title='My news', news=news, t_page_id=3, useracc=(current_user.name + ' ' + current_user.surname))
def informal_news(): db = db_session.create_session() news = db.query(News).filter(News.user_id != admin_id).all().copy()[::-1] return render_template('news.html', title='Informal news', news=news, t_page_id=1, useracc=(current_user.name + ' ' + current_user.surname))
def a_news_main(): db = db_session.create_session() news = db.query(News).all().copy()[::-1] return render_template('news.html', title='All news', news=news, t_page_id=2, useracc=(current_user.name + ' ' + current_user.surname))
def categories(): db = db_session.create_session() categories = db.query(Category).filter( Category.user_id == admin_id).all().copy() return render_template('categories.html', categories=categories, useracc=(current_user.name + ' ' + current_user.surname), title='Categories')
def hide_email(hide_or_show): db = db_session.create_session() user_now = db.query(User).filter(User.id == current_user.id).first() if hide_or_show == 'hide': user_now.hide_email = True else: user_now.hide_email = False db.commit() return redirect('/account_info')
def undone_task(id): id = int(id) db = db_session.create_session() task = db.query(Task).filter(Task.user == current_user, Task.id == id).first() if task: task.is_performed = False db.commit() return redirect('/tasks')
def all_tasks(): db = db_session.create_session() done = db.query(Task).filter(Task.user == current_user).order_by( Task.is_performed.asc(), (Task.priority + 0).desc()).all().copy() return render_template('tasks.html', tasks=done, t_page_id=2, useracc=(current_user.name + ' ' + current_user.surname), title='Tasks')
def change_task_category_save(category_id, task_id): category_id = int(category_id) task_id = int(task_id) db = db_session.create_session() task = db.query(Task).filter(Task.id == task_id).first() if task: task.category_id = category_id db.merge(task) db.commit() return redirect('/tasks')
def delete_news(id): db = db_session.create_session() news = db.query(News).filter(News.user == current_user, News.id == id).first() if news and news.user == current_user: db.delete(news) db.commit() return redirect('/my_news') else: return redirect('/news')
def tasks_info(id): db = db_session.create_session() task = db.query(Task).filter(Task.user == current_user, Task.id == id).first() if task and task.user == current_user: return render_template('task_info.html', task=task, useracc=(current_user.name + ' ' + current_user.surname), title='Task info') return redirect('/tasks')
def tasks(): db = db_session.create_session() new_tasks = db.query(Task).filter( Task.user == current_user, Task.is_performed == False).order_by( (Task.priority + 0).desc()).all().copy() return render_template('tasks.html', tasks=new_tasks, t_page_id=0, useracc=(current_user.name + ' ' + current_user.surname), title='Tasks')
def index(): db = db_session.create_session() tasks = db.query(Task).filter(Task.user == current_user, Task.is_performed == False).order_by( (Task.priority + 0).desc())[:5] return render_template('planger.html', tasks=tasks, title='Your PLANger', text="Your most significant and urgent tasks!", useracc=(current_user.name + ' ' + current_user.surname))
def change_task_category(id): id = int(id) db = db_session.create_session() categories = db.query(Category).all() task = db.query(Task).filter(Task.id == id).first() if task: return render_template('change_task_category.html', title='Change category', task_id=id, categories=categories) return redirect('/tasks')
def notes_info(id): db = db_session.create_session() note = db.query(Note).filter(Note.user == current_user, Note.id == id).first() if note: return render_template('notes_info.html', note=note, useracc=(current_user.name + ' ' + current_user.surname), title='Notes info') return redirect('/mynotes')
def add_category(): if current_user.id != admin_id: return redirect('/') db = db_session.create_session() categories = db.query(Category).all() if categories: return redirect('/') titles = [ 'Sport', 'Programming', 'Studying', 'Work', 'Creativity', 'Household chores', 'Outdoor activities', 'Friends and family', 'Physical labor', 'Reading', 'Music', 'Other' ] for title in titles: db = db_session.create_session() category = Category() category.title = title current_user.categories.append(category) db.merge(current_user) db.commit() titles = [] return redirect('/')
def delete_task(id): db = db_session.create_session() task = db.query(Task).filter(Task.user == current_user, Task.id == id).first() if task and task.user == current_user: db.delete(task) challenges = db.query(Challenge).filter( Challenge.user == current_user, Challenge.delete_task == True).all() performing_challenge(challenges, 1) db.commit() return redirect('/tasks')
def delete_note(id): db = db_session.create_session() note = db.query(Note).filter(Note.user == current_user, Note.id == id).first() if note and note.user == current_user: db.delete(note) challenges = db.query(Challenge).filter( Challenge.user == current_user, Challenge.delete_note == True).all() performing_challenge(challenges, 1) db.commit() return redirect('/mynotes')
def done_task(id): id = int(id) db = db_session.create_session() task = db.query(Task).filter(Task.user == current_user, Task.id == id).first() if task and task.user == current_user: task.is_performed = True challenges = db.query(Challenge).filter( Challenge.user == current_user, Challenge.do_task == True).all() performing_challenge(challenges, 1) accrue_xp(current_user, done_task_xp, db) db.commit() return redirect('/tasks')
def refresh(): db = db_session.create_session() challenges_to_del = db.query(Challenge).filter( Challenge.user == current_user, Challenge.is_won == False).all() for el in challenges_to_del: db.delete(el) for i in range(5): challenge_dict = generate_challenge() chall = Challenge() challenge_to_db(current_user, chall, challenge_dict) db.merge(chall) db.commit() return redirect('/challenges')
def news_info(id): id = int(id) db = db_session.create_session() news = db.query(News).filter(News.id == id).first() if news: return render_template('news_info.html', current_user=current_user, news=news, useracc=(current_user.name + ' ' + current_user.surname), title='News info') else: return redirect('/news')
def change_note(id): id = int(id) db = db_session.create_session() note = db.query(Note).filter(Note.id == id).first() if note and note.user == current_user: all_data = {'title': note.title, 'text': note.text} form = ChangeNoteForm(data=all_data) if form.validate_on_submit(): note.title = form.title.data note.text = form.text.data db.commit() return redirect('/mynotes') return render_template('change_note.html', form=form, title='Change note') return redirect('/mynotes')
def add_news(): form = NewsForm() if form.validate_on_submit(): db = db_session.create_session() news = News() news.title = form.title.data news.text = form.text.data current_user.news.append(news) db.merge(current_user) db.commit() return redirect('/news') return render_template('add_news.html', form=form, useracc=(current_user.name + ' ' + current_user.surname), title='Add news')
def change_news(id): id = int(id) db = db_session.create_session() news = db.query(News).filter(News.id == id).first() if news and news.user == current_user: all_data = {'title': news.title, 'text': news.text} form = ChangeNewsForm(data=all_data) if form.validate_on_submit(): news.title = form.title.data news.text = form.text.data db.commit() return redirect('/news') return render_template('change_news.html', form=form, title='Change news') else: return redirect('/my_news')