Skip to content
Closed
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
09ed6fa
Add github_username to CustomUser for stats tracking (#615)
Moueen-Togarvi Dec 9, 2025
fe7e86a
feat: Add Djangonaut GitHub stats collection to Admin (Issue #615)
Moueen-Togarvi Dec 10, 2025
d8b71b6
update
Moueen-Togarvi Dec 10, 2025
9998ca3
Merge branch 'develop' into djangonaut-stats
FarhanAliRaza Jan 17, 2026
c26dd6f
Refactor GitHub stats collection in admin and views
FarhanAliRaza Jan 17, 2026
d73e913
Merge branch 'djangonaut-stats' of github.com:Moueen-Togarvi/wagtail-…
Moueen-Togarvi Jan 17, 2026
d25de52
Simplify GitHub stats collection per PR feedback
Moueen-Togarvi Jan 18, 2026
5b0cad3
Add unit tests for GitHubStatsCollector and related classes
Moueen-Togarvi Jan 18, 2026
4bd5d33
track closed vs merged PRs separately
Moueen-Togarvi Jan 24, 2026
0e98d28
add the test
Moueen-Togarvi Jan 24, 2026
8f8c325
--no-input is not a parameter
FarhanAliRaza Feb 1, 2026
9a0a649
Merge upstream/develop into djangonaut-stats
FarhanAliRaza Feb 1, 2026
c9b0345
Fetch merged_at status for PRs in GitHubStatsCollector
FarhanAliRaza Feb 1, 2026
cff81b0
Refactor HTML and CSS for admin report display with dark mode support
FarhanAliRaza Feb 1, 2026
fb48a92
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 1, 2026
b2f07a7
Utilize more of Django's functionality.
tim-schilling Feb 5, 2026
68fa29c
Refactor GitHub stats, testimonials, and view organization
FarhanAliRaza Mar 14, 2026
cdf1395
Merge branch 'develop' into djangonaut-stats
FarhanAliRaza Mar 14, 2026
e86e71f
Derive monitored repos from session projects instead of settings
FarhanAliRaza Mar 14, 2026
9c6b185
Merge branch 'djangonaut-stats' of github.com:Moueen-Togarvi/wagtail-…
FarhanAliRaza Mar 14, 2026
06f1125
fixed migration
FarhanAliRaza Mar 14, 2026
bc237ed
Removed Stale test
FarhanAliRaza Mar 14, 2026
a7c8f72
Simplify github_stats service and fix Cancel button styling
FarhanAliRaza Mar 16, 2026
7cf10ee
Add tests to improve Codecov patch coverage
FarhanAliRaza Mar 16, 2026
ee23b70
Normalize future dates in stats form, always regenerate testimonial s…
FarhanAliRaza Apr 1, 2026
8356f29
refactor: group stats queries by team, capture merged-not-created PRs…
FarhanAliRaza Apr 20, 2026
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
4 changes: 4 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ RECAPTCHA_PRIVATE_KEY='dummy_value'
# The toolbar should not be used in a remote environment
ENABLE_TOOLBAR=""
DJANGO_RUNSERVER_HIDE_WARNING="True"
# GitHub API Configuration (for Djangonaut stats - Issue #615)
# Get token from: https://github.com/settings/tokens
# Required scopes: public_repo
GITHUB_TOKEN= <Github token>
4 changes: 4 additions & 0 deletions .env.template.local
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ ENABLE_TOOLBAR=""
PLAYWRIGHT_TEST_USERNAME="playwright_test"
PLAYWRIGHT_TEST_PASSWORD="hunter2"
DJANGO_RUNSERVER_HIDE_WARNING="True"
# GitHub API Configuration (for Djangonaut stats - Issue #615)
# Get token from: https://github.com/settings/tokens
# Required scopes: public_repo
GITHUB_TOKEN=<Github token>
25 changes: 24 additions & 1 deletion home/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -370,13 +370,25 @@ class SessionAdmin(DescriptiveSearchMixin, admin.ModelAdmin):
preview_email.waitlist_email_action,
preview_email.team_welcome_email_action,
]
list_display = ("title", "start_date", "end_date", "form_teams", "email_actions")
list_display = (
"title",
"start_date",
"end_date",
"form_teams",
"collect_stats",
"email_actions",
)

@admin.display(description="Form Teams")
def form_teams(self, obj):
href = reverse("admin:session_form_teams", kwargs={"session_id": obj.id})
return mark_safe(f'<a href="{href}">Form Teams</a>')

@admin.display(description="GitHub Stats")
def collect_stats(self, obj):
href = reverse("admin:session_collect_stats", args=[obj.id])
return mark_safe(f'<a href="{href}">Collect Stats</a>')

@admin.display(description="Email Actions")
def email_actions(self, obj):
actions = [
Expand Down Expand Up @@ -416,6 +428,11 @@ def get_urls(self):
self.admin_site.admin_view(calculate_overlap_ajax),
name="session_calculate_overlap",
),
path(
"<int:session_id>/collect-stats/",
self.admin_site.admin_view(self.collect_stats_view),
name="session_collect_stats",
),
path(
"<int:session_id>/send-session-results/",
self.admin_site.admin_view(send_session_results_view),
Expand All @@ -434,6 +451,12 @@ def get_urls(self):
]
return custom_urls + urls

def collect_stats_view(self, request, session_id):
"""Handle GitHub stats collection for a session."""
from .views.sessions import collect_stats_view

return collect_stats_view(request, session_id)
Comment thread
tim-schilling marked this conversation as resolved.
Outdated

@admin.action(description="Auto-allocate Djangonauts to teams")
def auto_allocate_teams_action(self, request, queryset):
"""
Expand Down
1 change: 1 addition & 0 deletions home/management/commands/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Management commands package."""
1 change: 1 addition & 0 deletions home/services/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Services package for home app."""
Loading
Loading