Skip to content

Conversation

mikaelGusse
Copy link
Contributor

Description

What?

Add support for CheaterSheet proxying to Radar as well as an API

Why?

Facilitate better reporting tools and support for other services to speak with Radar

How?

Added Django Rest api

Fixes #

Testing

Remember to add or update unit tests for new features and changes.

What type of test did you run?

  • Accessibility test using the WAVE extension.
  • Django unit tests.
  • Selenium tests.
  • Other test. (Add a description below)
  • Manual testing.

[ADD A DESCRIPTION ABOUT WHAT YOU TESTED MANUALLY]

Did you test the changes in

  • Chrome
  • Firefox
  • This pull request cannot be tested in the browser.

Think of what is affected by these changes and could become broken

Translation

Programming style

  • Did you follow our style guides?
  • Did you use Python type hinting in all functions that you added or edited? (type hints for function parameters and return values)

Have you updated the README or other relevant documentation?

  • documents inside the doc directory.
  • README.md.
  • Aplus Manual.
  • Other documentation (mention below which documentation).

Is it Done?

  • Reviewer has finished the code review
  • After the review, the developer has made changes accordingly
  • Customer/Teacher has accepted the implementation of the feature

Clean up your git commit history before submitting the pull request!

- Add an API to Radar to allow ImGPT to communicate with it
- Also add support for Cheatersheet proxying
@mikaelGusse mikaelGusse requested a review from Copilot July 29, 2025 11:14
Copilot

This comment was marked as outdated.

@mikaelGusse mikaelGusse force-pushed the master branch 3 times, most recently from ee7be82 to 34a39ba Compare July 30, 2025 12:16
@mikaelGusse mikaelGusse requested a review from Copilot July 30, 2025 12:22
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds CheaterSheet integration to Radar, enabling proxying to the CheaterSheet service and providing an API for better reporting tools and inter-service communication. The implementation includes a Django REST Framework API and web interface proxying capabilities.

Key changes:

  • Added CheaterSheet proxying functionality with web interface and API endpoints
  • Enhanced submission model to track A+ submission IDs for better integration
  • Implemented bulk comparison creation functionality in the UI

Reviewed Changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
review/templates/review/index.html Added navigation button to CheaterSheet
review/templates/review/exercise.html Added bulk comparison creation UI and JavaScript functionality
review/templates/review/course.html Added CheaterSheet navigation button
review/templates/review/comparison.html Added individual comparison creation with modal interface
review/templates/review/_comparisontable_unique.html Enhanced grid items with submission and student data attributes
radar/urls.py Added API and CheaterSheet URL routing
radar/settings.py Added REST framework configuration and CheaterSheet settings
provider/insert.py Enhanced submission creation to capture A+ submission ID
data/models.py Added aplus_key field to Submission model
data/migrations/ Database migration files for new aplus_key field
data/api_views.py CheaterSheet API proxy implementation
data/api_urls.py API URL routing configuration
cheatersheet/views.py CheaterSheet web proxy and API integration views
cheatersheet/urls.py CheaterSheet URL patterns
Comments suppressed due to low confidence (2)

cheatersheet/views.py:17

  • Class name 'cheatersheet_proxy_web_view' doesn't follow Python naming conventions. It should be 'CheaterSheetProxyWebView' using PascalCase.
class cheatersheet_proxy_web_view(View):

cheatersheet/views.py:129

  • Function name 'go_to_cheatersheet_view' doesn't follow Python naming conventions. It should be 'go_to_cheatersheet_view' using snake_case, but the parameter 'report_id' is not used in the function body, suggesting this function may be incomplete.
def go_to_cheatersheet_view(request, report_id):

@mikaelGusse mikaelGusse merged commit 7a9617e into apluslms:master Jul 30, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant