From 698460d2c168dcc268e1905c28c9b41fd15320c1 Mon Sep 17 00:00:00 2001 From: diegomed11 Date: Wed, 18 Mar 2026 20:23:25 -0400 Subject: [PATCH 1/4] REFACTOR: Replace remaining print statements with proper logging --- web/models.py | 11 +++++------ web/quiz_views.py | 5 ++++- web/views.py | 12 ++++++------ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/web/models.py b/web/models.py index 6b8ea8ef4..40d63ea5c 100644 --- a/web/models.py +++ b/web/models.py @@ -3,10 +3,10 @@ import string import time import uuid +import logging from datetime import datetime, timedelta from io import BytesIO from urllib.parse import parse_qs, urlparse - from allauth.account.signals import user_signed_up from django.conf import settings from django.contrib.auth.models import User @@ -27,6 +27,8 @@ from web.utils import calculate_and_update_user_streak +logger = logging.getLogger(__name__) + class Notification(models.Model): NOTIFICATION_TYPES = [ @@ -487,16 +489,13 @@ def fetch_coordinates(self): coordinates = geocode_address(self.location) if coordinates: self.latitude, self.longitude = coordinates - print("location store:", self.latitude, self.longitude) + logger.debug("location store: %s %s", self.latitude, self.longitude) else: - print( + logger.debug( f"Skipping session {self.id} due to invalid coordinates:", f"lat={self.latitude}, \n lng={self.longitude}", ) except Exception as e: - import logging - - logger = logging.getLogger(__name__) logger.error("Error geocoding session %s location '%s': %s", self.id, self.location, str(e)) def is_live(self): diff --git a/web/quiz_views.py b/web/quiz_views.py index e86890a69..cc5734c4d 100644 --- a/web/quiz_views.py +++ b/web/quiz_views.py @@ -1,3 +1,5 @@ +import logging + import json import random @@ -18,6 +20,7 @@ TakeQuizForm, ) from .models import Quiz, QuizQuestion, UserQuiz +logger = logging.getLogger(__name__) @login_required @@ -182,7 +185,7 @@ def add_question(request, quiz_id): else: return redirect("quiz_detail", quiz_id=quiz.id) except Exception as e: - print(e) + logger.error("An error occurred: %s", e) # Re-raise the exception raise else: diff --git a/web/views.py b/web/views.py index b4d485749..e7aaa0ea8 100644 --- a/web/views.py +++ b/web/views.py @@ -1,8 +1,8 @@ +import logging import calendar import html import ipaddress import json -import logging import os import random import re @@ -1134,7 +1134,7 @@ def run_cmd(cmd): def send_slack_message(message): webhook_url = os.getenv("SLACK_WEBHOOK_URL") if not webhook_url: - print("Warning: SLACK_WEBHOOK_URL not configured") + logger.warning("SLACK_WEBHOOK_URL not configured") return payload = {"text": f"```{message}```"} @@ -3254,7 +3254,7 @@ def create_forum_category(request): messages.success(request, f"Forum category '{category.name}' created successfully!") return redirect("forum_category", slug=category.slug) else: - print(form.errors) + logger.warning("Form errors: %s", form.errors) else: form = ForumCategoryForm() @@ -3480,7 +3480,7 @@ def system_status(request): if sendgrid_api_key: status["sendgrid"]["api_key_configured"] = True try: - print("Checking SendGrid API...") + logger.debug("Checking SendGrid API...") response = requests.get( "https://api.sendgrid.com/v3/user/account", headers={"Authorization": f"Bearer {sendgrid_api_key}"}, @@ -8113,7 +8113,7 @@ def post_to_twitter(request, post_id): post.posted_at = timezone.now() post.save() except Exception as e: - print(f"Error posting tweet: {e}") + logger.error("Error posting tweet: %s", e) return redirect("social_media_dashboard") return redirect("social_media_dashboard") @@ -8485,7 +8485,7 @@ def add_contributor(username, avatar_url, profile_url): except Exception as e: # Log the error - print(f"Error fetching contributors: {e}") + logger.error("Error fetching contributors: %s", e) # Return an empty list in case of error return render(request, "web/contributors_list.html", {"contributors": []}) From c3b8645b024e40bfaca34a6f5b3c4b2e0d8d46cf Mon Sep 17 00:00:00 2001 From: diegomed11 Date: Sat, 21 Mar 2026 11:35:01 -0400 Subject: [PATCH 2/4] Use logger.exception() in except blocks per review feedback --- web/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/models.py b/web/models.py index 40d63ea5c..4548c62fd 100644 --- a/web/models.py +++ b/web/models.py @@ -496,7 +496,7 @@ def fetch_coordinates(self): f"lat={self.latitude}, \n lng={self.longitude}", ) except Exception as e: - logger.error("Error geocoding session %s location '%s': %s", self.id, self.location, str(e)) + logger.exception("Error geocoding session %s location '%s'", self.id, self.location) def is_live(self): """Returns True if the session is live right now.""" From 4912a733272e80781cc1fc7355ebefb4bebfad86 Mon Sep 17 00:00:00 2001 From: diegomed11 Date: Sat, 21 Mar 2026 11:45:11 -0400 Subject: [PATCH 3/4] Use logger.exception() for tweet and contributor errors --- web/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/views.py b/web/views.py index e7aaa0ea8..f1420acb6 100644 --- a/web/views.py +++ b/web/views.py @@ -8113,7 +8113,7 @@ def post_to_twitter(request, post_id): post.posted_at = timezone.now() post.save() except Exception as e: - logger.error("Error posting tweet: %s", e) + logger.exception("Error posting tweet") return redirect("social_media_dashboard") return redirect("social_media_dashboard") @@ -8485,7 +8485,7 @@ def add_contributor(username, avatar_url, profile_url): except Exception as e: # Log the error - logger.error("Error fetching contributors: %s", e) + logger.exception("Error fetching contributors") # Return an empty list in case of error return render(request, "web/contributors_list.html", {"contributors": []}) From 28fcc003f50887a8ad8a70d37173c2dceda00103 Mon Sep 17 00:00:00 2001 From: diegomed11 Date: Sat, 21 Mar 2026 11:55:55 -0400 Subject: [PATCH 4/4] Fix isort order and lower form errors to debug level --- web/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/views.py b/web/views.py index f1420acb6..e4e87195d 100644 --- a/web/views.py +++ b/web/views.py @@ -1,8 +1,8 @@ -import logging import calendar import html import ipaddress import json +import logging import os import random import re @@ -3254,7 +3254,7 @@ def create_forum_category(request): messages.success(request, f"Forum category '{category.name}' created successfully!") return redirect("forum_category", slug=category.slug) else: - logger.warning("Form errors: %s", form.errors) + logger.debug("Form errors: %s", form.errors) else: form = ForumCategoryForm()