Skip to content

Commit 3ef4102

Browse files
Refactored Vacation Planner App (#92)
1 parent f05e7c3 commit 3ef4102

22 files changed

Lines changed: 2417 additions & 649 deletions

File tree

-299 KB
Loading
-1.63 MB
Binary file not shown.

samples/web-app-cosmosdb-mongodb-api/python/src/app.py

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
import datetime
44
import logging
55
from typing import List, Tuple
6-
from flask import Flask, render_template, request, redirect, url_for
6+
from flask import Flask, flash, render_template, request, redirect, url_for
77
from mongodb import MongoDbClient
88
import hashlib
99

1010
# Initialize Flask application
1111
app: Flask = Flask(__name__)
12+
app.secret_key = os.environ.get("SECRET_KEY", os.urandom(24))
1213

1314
# Configure logging
1415
logging.basicConfig(
@@ -68,10 +69,6 @@ def read_documents(username: str | None = None) -> List[dict]:
6869
@app.route('/', methods=['GET', 'POST'])
6970
def index():
7071
"""Handle the main page for viewing and adding activities."""
71-
# Get edit data from query parameters (if any)
72-
edit_id = request.args.get('edit_id')
73-
edit_activity = request.args.get('edit_activity')
74-
7572
if request.method == 'POST':
7673
activity = request.form.get('activity')
7774
if activity:
@@ -85,6 +82,7 @@ def index():
8582
updated_activity = mongodb_client.update_document_by_id(row_id, {"activity": activity})
8683
if updated_activity:
8784
logger.info(f"Activity updated: {row_id}")
85+
flash("Activity updated!")
8886
else:
8987
# Create a document with the activity provided
9088
document: dict = create_document(activity)
@@ -93,6 +91,7 @@ def index():
9391
# Append the activity to the activities list
9492
activities.append((document["_id"], activity))
9593
logger.info(f"Activity added: {activity}")
94+
flash("Activity added!")
9695

9796
except (ConnectionError, ValueError) as e:
9897
logger.error("Error creating document: %s", e)
@@ -102,7 +101,7 @@ def index():
102101
# Always reload activities from Cosmos DB on GET (refresh)
103102
read_documents(username)
104103

105-
return render_template('index.html', activities=activities, username=username, edit_id=edit_id, edit_activity=edit_activity)
104+
return render_template('index.html', activities=activities, username=username)
106105

107106
@app.route('/favicon.ico')
108107
def favicon():
@@ -115,20 +114,7 @@ def delete(activity_id: int):
115114
if 0 <= activity_id < len(activities):
116115
# Delete the document from MongoDB
117116
mongodb_client.delete_document_by_id(activities[activity_id][0])
118-
119-
return redirect(url_for('index'))
120-
121-
@app.route('/update/<int:activity_id>', methods=['GET'])
122-
def update(activity_id: int):
123-
"""Handle updating of an activity by its index in the list."""
124-
try:
125-
if 0 <= activity_id < len(activities):
126-
db_activity_id = activities[activity_id][0]
127-
activity_text = activities[activity_id][1]
128-
# Redirect to index with edit parameters
129-
return redirect(url_for('index', edit_id=db_activity_id, edit_activity=activity_text))
130-
except (ConnectionError, ValueError) as e:
131-
logger.error("Error preparing activity for update: %s", e)
117+
flash("Activity deleted.")
132118

133119
return redirect(url_for('index'))
134120

samples/web-app-cosmosdb-mongodb-api/python/src/static/favicon.ico:Zone.Identifier

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)