Exemple #1
0
def complete():
    if "user_id" in session:
        todo_id = request.form["todo_id"]
        completed = request.form["completed"]
        get_db(app).todos.update_one({"_id": ObjectId(todo_id)},
                                     {"$set": {
                                         "completed": completed
                                     }})
        return jsonify({"Success": True, "data": {"completed": completed}})
    else:
        return jsonify({"Success": False, "data": "Invalid user"})
Exemple #2
0
def sign_up():
    if request.method == "GET":
        return render_template('signup.html')

    if request.method == "POST":
        name = request.form["name"]
        email = request.form["email"]
        password = request.form["password"]
        db = get_db(app)
        error = None

        if not name:
            error = "Name is required."
        elif not email:
            error = "Email is required."
        elif not password:
            error = "Password is required."
        elif db.users.find_one({"email": email}) is not None:
            error = "This email is used by another user"

        if error is None:
            db.users.insert_one({
                "name": name,
                "email": email,
                "password": generate_password_hash(password)
            })
            return redirect('/login')
        flash(error)
        return render_template("signup.html")
Exemple #3
0
def edit():
    if "user_id" in session:
        todo_type = request.form["todo_type"].lower()
        if todo_type not in ("meeting", "todo", "event",
                             "item from your list"):
            return jsonify({"Success": False, "data": "Invalid input"})

        todo_text = request.form["todo_text"]
        if todo_type not in "meeting":
            todo_date_time_first = parse(request.form["todo_date_time"])
            todo_date_time = todo_date_time_first.replace(hour=00, minute=00)
        else:
            todo_date_time = parse(request.form["todo_date_time"])

        db = get_db(app)
        db.todos.update_one({"_id": ObjectId(request.form["todo_id"])}, {
            "$set": {
                "type": todo_type,
                "text": todo_text,
                "date_time": todo_date_time
            }
        })
        return jsonify({
            "Success": True,
            "data": {
                "type": todo_type,
                "text": todo_text,
                "date_time": todo_date_time.strftime('%b-%d-%Y'),
                "time": todo_date_time.strftime('%H-%M'),
            },
        })
    else:
        return jsonify({"Success": False, "data": "Invalid user"})
Exemple #4
0
def login():
    if request.method == "GET":
        return render_template('login.html')

    if request.method == "POST":
        email = request.form["email"]
        password = request.form["password"]
        db = get_db(app)
        error = None
        user = db.users.find_one({"email": email})

        if user is None:
            error = "Incorrect email."
        elif not check_password_hash(user["password"], password):
            error = "Incorrect password."
        if error is None:
            session.clear()
            session["name"] = user["name"]
            session["user_id"] = str(user["_id"])
            return redirect('/')
        flash(error)
        return render_template('/login.html')
Exemple #5
0
def create_todo():
    if "user_id" in session:
        date_created = datetime.today()
        user = session["user_id"]
        todo_type = request.form["todo_type"].lower()
        if todo_type not in ("meeting", "todo", "event",
                             "item from your list"):
            return jsonify({"Success": False, "data": "Invalid input"})

        todo_text = request.form["todo_text"]
        if todo_type not in "meeting":
            todo_date_time_first = parse(request.form["todo_date_time"])
            todo_date_time = todo_date_time_first.replace(hour=00, minute=00)
        else:
            todo_date_time = parse(request.form["todo_date_time"])
        completed = False
        db = get_db(app)
        new_todo = db.todos.insert_one({
            "created": date_created,
            "user": user,
            "type": todo_type,
            "text": todo_text,
            "date_time": todo_date_time,
            "completed": completed,
        })
        return jsonify({
            "Success": True,
            "data": {
                "_id": str(new_todo.inserted_id),
                "type": todo_type,
                "text": todo_text,
                "date_time": todo_date_time.strftime('%b-%d-%Y'),
                "time": todo_date_time.strftime('%H-%M'),
            },
        })
    else:
        return jsonify({"Success": False, "data": "Invalid user"})
Exemple #6
0
def get_current_week():
    if "user_id" in session:
        today = datetime.today()
        today_tup = date(today.year, today.month, today.day).isocalendar()
        week_number = today_tup[1]
        weekday = today.weekday()
        start = today - timedelta(days=weekday)
        dates = [start + timedelta(days=d) for d in range(7)]
        days = []
        db = get_db(app)
        all_todos = {}
        for item in dates:
            day = item.strftime("%A, %b %d %Y")
            days.append(day)
            day_todos = []
            todos = db.todos.find({
                "user": session["user_id"],
                "date_time": {
                    "$gte": datetime(item.year, item.month, item.day, 0, 0, 0),
                    "$lte": datetime(item.year, item.month, item.day, 23, 59,
                                     59),
                }
            })
            for record in todos:
                day_todos.append(record)
            all_todos[item] = day_todos
        monday = dates[0].strftime("%b %d")
        sunday = dates[6].strftime("%b %d")
        return render_template('index.html',
                               name=session["name"],
                               week_number=week_number,
                               days=days,
                               monday=monday,
                               sunday=sunday,
                               dates=dates,
                               all_todos=all_todos)
    return render_template('/login.html')