示例#1
0
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')
示例#2
0
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')
示例#3
0
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')
示例#4
0
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')
示例#5
0
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')
示例#6
0
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')
示例#7
0
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')
示例#8
0
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))
示例#9
0
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))
示例#10
0
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))
示例#11
0
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')
示例#12
0
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')
示例#13
0
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')
示例#14
0
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')
示例#15
0
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')
示例#16
0
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')
示例#17
0
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')
示例#18
0
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')
示例#19
0
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))
示例#20
0
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')
示例#21
0
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')
示例#22
0
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('/')
示例#23
0
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')
示例#24
0
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')
示例#25
0
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')
示例#26
0
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')
示例#27
0
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')
示例#28
0
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')
示例#29
0
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')
示例#30
0
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')