Skip to content

Commit

Permalink
Created Badges for contributors who have a merged pull request
Browse files Browse the repository at this point in the history
  • Loading branch information
tsu-ki authored Jan 31, 2025
1 parent 80eca1a commit fb0a648
Showing 1 changed file with 25 additions and 1 deletion.
26 changes: 25 additions & 1 deletion website/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ def update_streak_and_award_points(self, check_in_date=None):
return False

return True

def award_streak_badges(self):
"""
Award badges for streak milestones
Expand All @@ -740,6 +740,30 @@ def award_streak_badges(self):
def __str__(self):
return self.user.username

def check_merged_pr_badges(self):
thresholds = [
(1, ("1 Merged Pull Request", "1-pr.png")),
(10, ("10 Merged Pull Requests", "10-pr.png")),
(25, ("25 Merged Pull Requests", "25-pr.png")),
(50, ("50 Merged Pull Requests", "50-pr.png")),
(100, ("100 Merged Pull Requests", "100-pr.png")),
]
for limit, (badge_name, icon_file) in thresholds:
if self.merged_pr_count >= limit:
badge, created = Badge.objects.get_or_create(
title=badge_name,
type="automatic",
defaults={
"description": f"Awarded for merging {limit} pull requests.",
"icon": f"badges/{icon_file}",
},
)
if not UserBadge.objects.filter(user=self.user, badge=badge).exists():
UserBadge.objects.create(user=self.user, badge=badge)
print(f"Awarded badge '{badge_name}' to {self.user.username}")




def create_profile(sender, **kwargs):
user = kwargs["instance"]
Expand Down

0 comments on commit fb0a648

Please sign in to comment.