Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions wger/trophies/services/statistics.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ def get_or_create_statistics(cls, user: User) -> UserStatistics:
Returns:
The UserStatistics instance
"""
if not User.objects.filter(pk=user.pk).exists():
raise User.DoesNotExist('User not found')
stats, created = UserStatistics.objects.get_or_create(user=user)
return stats

Expand Down
9 changes: 9 additions & 0 deletions wger/trophies/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

# Django
from django.conf import settings
from django.contrib.auth.models import User
from django.db.models.signals import (
post_delete,
post_save,
Expand Down Expand Up @@ -112,6 +113,8 @@ def workout_log_saved(sender, instance: WorkoutLog, created: bool, **kwargs):

# Trigger trophy evaluation
_trigger_trophy_evaluation(instance.user_id)
except User.DoesNotExist:
pass
except Exception as e:
logger.error(f'Error updating statistics for user {instance.user_id}: {e}', exc_info=True)

Expand All @@ -128,6 +131,8 @@ def workout_log_deleted(sender, instance: WorkoutLog, **kwargs):

try:
UserStatisticsService.handle_workout_deletion(instance.user)
except User.DoesNotExist:
pass
except Exception as e:
logger.error(
f'Error updating statistics after deletion for user {instance.user_id}: {e}',
Expand Down Expand Up @@ -163,6 +168,8 @@ def workout_session_saved(sender, instance: WorkoutSession, created: bool, **kwa

# Trigger trophy evaluation
_trigger_trophy_evaluation(instance.user_id)
except User.DoesNotExist:
pass
except Exception as e:
logger.error(f'Error updating statistics for session {instance.id}: {e}', exc_info=True)

Expand All @@ -179,6 +186,8 @@ def workout_session_deleted(sender, instance: WorkoutSession, **kwargs):

try:
UserStatisticsService.handle_workout_deletion(instance.user)
except User.DoesNotExist:
pass
except Exception as e:
logger.error(
f'Error updating statistics after session deletion for user {instance.user_id}: {e}',
Expand Down
Loading