Adds a client‑side Date Filter to the User Profile Overview mode.
What does this MR do and why?
Adds a client-side Date Filter to the User Profile Overview mode.
- Introduces a
🔍 Date Filter button to select start and end dates. - Filters already-fetched contributions (commits, merge requests, issues) within the selected range.
- No additional API calls are made after the initial fetch.
- Data is cached in st.session_state and filtered locally (in-memory slicing).
- Metrics and tables update instantly based on the selected range.
- Displays an active date range banner.
- Handles edge cases:
- Start date greater than end date
- No results found in selected range
- Exported reports respect the selected date range.
This improves usability for analyzing activity within a specific period and avoids unnecessary network traffic.
References
- No external dependencies added.
- Related discussion: (Add issue/Slack link if applicable)
Screenshots or screen recordings
| Before | After |
|---|---|
How to set up and validate locally
- Pull the branch and restart the Streamlit app.
- Navigate to User Profile Overview.
- Enter a valid username.
- Scroll to the Filters section and click Date Filter.
- Select start and end dates and click Apply Filter.
- Verify that:
- No additional API calls are triggered.
- Metrics and tables update instantly.
- Test edge cases:
- Start date > End date → error message appears.
- Select a range with no data → "No data found" message appears.
- Export the report and confirm the filename reflects the selected date range.
MR acceptance checklist
- Code quality – Changes are structured and lint-clean.
- Tests/manual validation – Filtering logic verified manually.
- Performance – No extra API calls after initial load.
- Security – No sensitive data exposed.
- Documentation – MR description updated.
- UX – Clear feedback for filtering, errors, and empty states.
- Regression risk – Original profile behavior unchanged when filter is not applied.
Edited by Aravind swamy Majjuri