-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Endpoint for sending email #883
Conversation
…tion Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…l)/send-email-endpoint
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bra førsteutkast! Har noe småpirk, så bare sjekk gjennom det
app/content/views/send_email.py
Outdated
# Temporary fake api key, will be changed to a proper api key in prod | ||
API_KEY = "your_api_key" | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Denne må settes inn i .env filen, og så må du hente inn via dotenv.
url = _get_email_url() | ||
headers = {"EMAIL_API_KEY": "your_api_key"} | ||
response = client.post(url, data, format="json", **headers) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I headers: api-nøkkelen må hentes fra .env fil
app/content/views/send_email.py
Outdated
return Response( | ||
{"detail": "Invalid API key"}, | ||
status=status.HTTP_403_FORBIDDEN, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vi skriver meldingen til "detail" på norsk
app/content/views/send_email.py
Outdated
return Response( | ||
{ | ||
"detail": "user_id, event_id, paragraphs and title are required fields." | ||
}, | ||
status=status.HTTP_400_BAD_REQUEST, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Skriv melding på norsk
app/content/views/send_email.py
Outdated
return Response( | ||
{"detail": "User not found."}, | ||
status=status.HTTP_404_NOT_FOUND, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Skriv melding på norsk
app/content/views/send_email.py
Outdated
return Response( | ||
{"detail": "Email sent successfully."}, | ||
status=status.HTTP_200_OK, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Skriv melding på norsk.
Bruk også 201 status kode siden det er en POST request
app/content/views/send_email.py
Outdated
return Response( | ||
{"detail": "An internal error has occurred."}, | ||
status=status.HTTP_500_INTERNAL_SERVER_ERROR, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Skriv melding på norsk
app/content/views/send_email.py
Outdated
if not user_id or not notification_type or not paragraphs or not title: | ||
return Response( | ||
{ | ||
"detail": "user_id, event_id, paragraphs and title are required fields." | ||
}, | ||
status=status.HTTP_400_BAD_REQUEST, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bra at du sjekker. Du burde også sjekke at paragraphs faktisk er en liste, og deretter om det er noen lengde på den.
Det samme gjelder med users hvis du skal gjøre det om til en liste
Skriv også melding på norsk
app/content/views/send_email.py
Outdated
Body should contain: | ||
- 'user_id': The ID of the user to notify. | ||
- 'notification_type': KONTRES or BLITZED. | ||
- 'title': The title of the notification. | ||
- 'paragraphs': A list of paragraphs to include in the notification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hva med endre til "users" som er en liste med user_id? Notify klassen tar med imot en liste med brukere, så er nice hvis de kan sende en liste hvis man vil sende til flere.
app/content/views/send_email.py
Outdated
email = Notify( | ||
[user], | ||
f"{title}", | ||
UserNotificationSettingType(notification_type), | ||
).add_paragraph(f"Hei, {user.first_name}!") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hvis du endrer til å sende en liste, kan du bare droppe å skrive navnet til brukeren i tittelen, og bare skrive "Hei!".
Evt er det bedre å droppe det første avsnittet, og anta at de som sender mail faktisk inkluderer dette selv. Er mest naturlig. Dermed styrer vi ingenting av det som blir sendt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ja tenkte på det, brukte Registration som insp. og der sende dem bare til 1 om gangen, men har endra det til å være en liste med bruker id'a no
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ser bra ut nå!
Litt pirk igjen. For å få bedre test coverage, så burde du lage en test som sjekker med å sende en epost til flere brukere, og du burde lage tester som sjekker hva som skjer hvis du sender inn tomme lister med user_id og paragraphs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gucci!
* Feat(kontres)/add image to bookable item (#785) * added optional image to bookable item model * added update method in serializer to handle new images * linting * remove update method for images * Feat(kontres)/add approved by (#786) * added approved by field * endpoint will now set approved by * serializer will return full user object in approved_by_detail * created test for approved by * migration * remove unnecessary code * removed write-only field in approved-by context * Create minutes for Codex (#787) * init * format * Feat(minute)/viewset (#788) * added richer reponse on post and put * added to admin panel * added filter for minute * Feat(kontres)/add notification (#790) * created methods for sending notification to admin and user * endpoint will now send notification if needed * add migrations for new notification types * Memberships with fines activated (#791) init * Feat(user)/user bio (#758) * Created model, serializer and view for user-bio * Created user bio model and made migrations * Created user bio serializer + viewsets + added new endpoint * Tested create method + added bio serializer to user serializer * Format * Created update method and started testing * Debugging test failures in user retrieve * fixed model error * Created user_bio_factory + started testing put method * Created fixture for UserBio * Created custom excpetion for duplicate user bio * Added permissions and inherited from BaseModel * Modularized serializer for bio * Use correct serializers in viewset + added destroy method * Finished testing bio viewset integration + format * Changed environent file to .env to avoid pushing up keys * Fix: Flipped assertion statement in test, since user bio should not be deleted * skiped buggy test from kontres * added mark to pytest.skip * Moved keys to .env file and reverted docker variables * Skip buggy kontres test * format * Added str method to user_bio * Removed unused imports * format * Changed user relation to a OneToOne-field (same affect as ForeignKey(unique=True) + removed check for duplicate bio in serializer * Migrations + changed assertion status code in duplicate bio test (could try catch in serializer to produce 400 status code) * format * format * Changed limit for description 50 -> 500 + migrations * Migrate * added id to serializer * merged leaf nodes in migrations * format --------- Co-authored-by: Ester2109 <[email protected]> Co-authored-by: Mads Nylund <[email protected]> Co-authored-by: Mads Nylund <[email protected]> Co-authored-by: Tam Le <[email protected]> * Update CHANGELOG.md * added filter for allowed photos for user (#794) added filter for allowed photos * Upped payment time when coming from waiting list (#796) * fixed paymenttime saved to db (#798) * fixed bug (#800) * Disallow users to unregister when payment is done (#802) added 400 status code for deleting paid registration * update changelog * Added serializer for category in event (#804) added serializer for category in event * Permission middelware (#806) * added a check for existing user and id on request * format * Permission refactor of QR Codes (#807) * added permissions to qr code and refactored viewset * format * removed unused imports * Permissions for payment orders (#808) * added read permissions * added permissions for payment order and tests * format * chore(iac): updated docs and force https (#810) chore: updated docs and force https * feat(iac): add terraform guardrails so index don't nuke our infra (#811) feat: add guardrails so index don't fup * Automatic registration for new users with Feide (#809) * started on feide registration endpoint * made endpoint for creating user with Feide * added test for parse group * finished * format * removes three years if in digtrans * changelog update * Feide env variables Terraform (#814) added feid env variables * added delete endpoint for file (#815) * added delete endpoint for file * Trigger Build * changed workflow to checkout v4 * changed from docker-compose to docker compose * Update CHANGELOG.md * format * format * fixed permission for committee leaders for group forms * updated csv for forms (#818) * Permission for group forms and news (#820) added permission for committees to create news, and all leaders of groups to create group forms * Update reservation_seralizer.py (#822) * Update reservation_seralizer.py * Fixed linting * Put a band aid on it *smack* * Removed blank line.. * ???? * Group ownership of Minutes (#847) * Refactor MinuteFactory to include group field, and added validation for checkin group access * added validation for POST request * Changed endpoint response (#846) * Changed endpoint response * Fixed test * Update test_reservation_integration.py --------- Co-authored-by: Mads Nylund <[email protected]> * updated changelog.md * finished events now appear in the correct order (newest first) (#849) * finished events now appear in the correct order (newest first) * added description of change in changelog * fixed formatting * updated method to use Django ORM instead of using python methods * Implement Swagger (#858) * started on removing choiceenums * refactored cheatsheet and membership * refacotered strike enum * refactored Groups enum * removed AppModel choiceenum * added swagger * Swagger GitHub Action (#860) * added github action for checking if Swagger is up * new action * try another * tried implementing check for container * added curl to docker image * added check if swagger is up * test if swagger does not get status code 200 * added ?format=openai to trigger error * checking that the request is working * updated CHANGELOG.md * Add new app (#862) * added script for adding new app to Lepton * added command to Makefile * Upgrade all dependencies to latest (#857) * Add endpoint to create new group as admin Signed-off-by: Tmpecho <[email protected]> * Upgrade all dependencies to latest Signed-off-by: Tmpecho <[email protected]> * remove bad exception handling in serializers/group.py * fix inheritance ordering in views/group.py * refactored group integration test, added non_public_groups to enums * fix linting * reformat files * remove unused import in groups/views/group.py * Upgrade dependency "black" Signed-off-by: Tmpecho <[email protected]> * Upgrade dependency "sentry-sdk" Signed-off-by: Tmpecho <[email protected]> * Upgrade dependency "azure-storage-blob" and remove outdated comment in requirements.txt Signed-off-by: Tmpecho <[email protected]> * Upgrade all non-django dependencies Signed-off-by: Tmpecho <[email protected]> * Upgrade dependency "Django" Signed-off-by: Tmpecho <[email protected]> * Upgrade dependencies and remove ignored version from docker-compose.yml Signed-off-by: Tmpecho <[email protected]> --------- Signed-off-by: Tmpecho <[email protected]> Co-authored-by: 1Cezzo <[email protected]> * Allow HS members to create a new group (#864) * Add endpoint to create new group as admin Signed-off-by: Tmpecho <[email protected]> * remove bad exception handling in serializers/group.py * fix inheritance ordering in views/group.py * refactored group integration test, added non_public_groups to enums * fix linting * reformat files * remove unused import in groups/views/group.py --------- Signed-off-by: Tmpecho <[email protected]> Co-authored-by: 1Cezzo <[email protected]> * App Script Fix (#875) added serializers dir to script * Event registration payment orders (#876) * added list of payment orders for registrations * update CHANGELOG.md * chore(deps): update python-dotenv requirement from ~=0.21.1 to ~=1.0.1 (#871) Updates the requirements on [python-dotenv](https://github.com/theskumar/python-dotenv) to permit the latest version. - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](theskumar/python-dotenv@v0.21.1...v1.0.1) --- updated-dependencies: - dependency-name: python-dotenv dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Chore(deps): Bump sentry-sdk from 1.14.0 to 2.8.0 (#866) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.14.0 to 2.8.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](getsentry/sentry-python@1.14.0...2.8.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Codex Course (#852) * added models for course and registration, and viewset for course and tests * added validation for date checking for courses * added viewset for registration for codex courses * removed unused fields from course model * removed unused imports * added API error mixins as mother clas * fixed error mixin * refactored to event model * fixed wrong import * fixed tests * format * skipped broken tests, must be refactored * updated CHANGELOG.md * format * fixed filtering of groups and made tests * fixed list endpoint for cheatsheets * trigger * format * Endpoint for sending email (#883) * fix formatting * created tests for send_email endpoint * Fix code scanning alert no. 45: Information exposure through an exception Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * fixed errors in send_email and in tests * lint * added tests for empty lists and for sending mail to multiple users --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * chore(deps): bump black from 24.3.0 to 24.8.0 (#869) Bumps [black](https://github.com/psf/black) from 24.3.0 to 24.8.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](psf/black@24.3.0...24.8.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * chore(deps): Bump azure-storage-blob from 12.13.1 to 12.23.1 (#885) Bumps [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) from 12.13.1 to 12.23.1. - [Release notes](https://github.com/Azure/azure-sdk-for-python/releases) - [Changelog](https://github.com/Azure/azure-sdk-for-python/blob/main/doc/esrp_release.md) - [Commits](Azure/azure-sdk-for-python@azure-storage-blob_12.13.1...azure-storage-blob_12.23.1) --- updated-dependencies: - dependency-name: azure-storage-blob dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Added admin.py to root in new app, and added app dir to tests (#892) added admin.py to root in new app, and added app dir to tests * Description to forms (#894) added description to form * Bug report system (#865) * Created New App named Index * created model * Refactor: Change admin file * admin * added serializer and viewsets for list * fixed typing error for permission_classes * Started on the create serializer for feedback * Made tests for create feedback * Implemented update serializer for feedback * made destroy method and testing create method as member * Made destroy method and tests * Fixed linting * Fixed linting --------- Co-authored-by: Tam Le <[email protected]> Co-authored-by: Josefine Arntsen <[email protected]> Co-authored-by: Mads Nylund <[email protected]> Co-authored-by: Mads Nylund <[email protected]> * Renaming of index app to feedback (#901) renamed index app to feedback * chore(deps): bump django from 4.2.16 to 5.1.1 (#889) Bumps [django](https://github.com/django/django) from 4.2.16 to 5.1.1. - [Commits](django/django@4.2.16...5.1.1) --- updated-dependencies: - dependency-name: django dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Event registration race condition (#902) * started on fixing race condition * fixed race condition * upadted CHANGELOG.md --------- Signed-off-by: Tmpecho <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Erik Skjellevik <[email protected]> Co-authored-by: haruixu <[email protected]> Co-authored-by: Ester2109 <[email protected]> Co-authored-by: Tam Le <[email protected]> Co-authored-by: martcl <[email protected]> Co-authored-by: Frikk Balder <[email protected]> Co-authored-by: Emil Johnsen <[email protected]> Co-authored-by: Johannes Aamot-Skeidsvoll <[email protected]> Co-authored-by: 1Cezzo <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Josefine Arntsen <[email protected]> Co-authored-by: Josefine Arntsen <[email protected]>
* Feat(kontres)/add image to bookable item (#785) * added optional image to bookable item model * added update method in serializer to handle new images * linting * remove update method for images * Feat(kontres)/add approved by (#786) * added approved by field * endpoint will now set approved by * serializer will return full user object in approved_by_detail * created test for approved by * migration * remove unnecessary code * removed write-only field in approved-by context * Create minutes for Codex (#787) * init * format * Feat(minute)/viewset (#788) * added richer reponse on post and put * added to admin panel * added filter for minute * Feat(kontres)/add notification (#790) * created methods for sending notification to admin and user * endpoint will now send notification if needed * add migrations for new notification types * Memberships with fines activated (#791) init * Feat(user)/user bio (#758) * Created model, serializer and view for user-bio * Created user bio model and made migrations * Created user bio serializer + viewsets + added new endpoint * Tested create method + added bio serializer to user serializer * Format * Created update method and started testing * Debugging test failures in user retrieve * fixed model error * Created user_bio_factory + started testing put method * Created fixture for UserBio * Created custom excpetion for duplicate user bio * Added permissions and inherited from BaseModel * Modularized serializer for bio * Use correct serializers in viewset + added destroy method * Finished testing bio viewset integration + format * Changed environent file to .env to avoid pushing up keys * Fix: Flipped assertion statement in test, since user bio should not be deleted * skiped buggy test from kontres * added mark to pytest.skip * Moved keys to .env file and reverted docker variables * Skip buggy kontres test * format * Added str method to user_bio * Removed unused imports * format * Changed user relation to a OneToOne-field (same affect as ForeignKey(unique=True) + removed check for duplicate bio in serializer * Migrations + changed assertion status code in duplicate bio test (could try catch in serializer to produce 400 status code) * format * format * Changed limit for description 50 -> 500 + migrations * Migrate * added id to serializer * merged leaf nodes in migrations * format --------- Co-authored-by: Ester2109 <[email protected]> Co-authored-by: Mads Nylund <[email protected]> Co-authored-by: Mads Nylund <[email protected]> Co-authored-by: Tam Le <[email protected]> * Update CHANGELOG.md * added filter for allowed photos for user (#794) added filter for allowed photos * Upped payment time when coming from waiting list (#796) * fixed paymenttime saved to db (#798) * fixed bug (#800) * Disallow users to unregister when payment is done (#802) added 400 status code for deleting paid registration * update changelog * Added serializer for category in event (#804) added serializer for category in event * Permission middelware (#806) * added a check for existing user and id on request * format * Permission refactor of QR Codes (#807) * added permissions to qr code and refactored viewset * format * removed unused imports * Permissions for payment orders (#808) * added read permissions * added permissions for payment order and tests * format * chore(iac): updated docs and force https (#810) chore: updated docs and force https * feat(iac): add terraform guardrails so index don't nuke our infra (#811) feat: add guardrails so index don't fup * Automatic registration for new users with Feide (#809) * started on feide registration endpoint * made endpoint for creating user with Feide * added test for parse group * finished * format * removes three years if in digtrans * changelog update * Feide env variables Terraform (#814) added feid env variables * added delete endpoint for file (#815) * added delete endpoint for file * Trigger Build * changed workflow to checkout v4 * changed from docker-compose to docker compose * Update CHANGELOG.md * format * format * fixed permission for committee leaders for group forms * updated csv for forms (#818) * Permission for group forms and news (#820) added permission for committees to create news, and all leaders of groups to create group forms * Update reservation_seralizer.py (#822) * Update reservation_seralizer.py * Fixed linting * Put a band aid on it *smack* * Removed blank line.. * ???? * Group ownership of Minutes (#847) * Refactor MinuteFactory to include group field, and added validation for checkin group access * added validation for POST request * Changed endpoint response (#846) * Changed endpoint response * Fixed test * Update test_reservation_integration.py --------- Co-authored-by: Mads Nylund <[email protected]> * updated changelog.md * finished events now appear in the correct order (newest first) (#849) * finished events now appear in the correct order (newest first) * added description of change in changelog * fixed formatting * updated method to use Django ORM instead of using python methods * Implement Swagger (#858) * started on removing choiceenums * refactored cheatsheet and membership * refacotered strike enum * refactored Groups enum * removed AppModel choiceenum * added swagger * Swagger GitHub Action (#860) * added github action for checking if Swagger is up * new action * try another * tried implementing check for container * added curl to docker image * added check if swagger is up * test if swagger does not get status code 200 * added ?format=openai to trigger error * checking that the request is working * updated CHANGELOG.md * Add new app (#862) * added script for adding new app to Lepton * added command to Makefile * Upgrade all dependencies to latest (#857) * Add endpoint to create new group as admin Signed-off-by: Tmpecho <[email protected]> * Upgrade all dependencies to latest Signed-off-by: Tmpecho <[email protected]> * remove bad exception handling in serializers/group.py * fix inheritance ordering in views/group.py * refactored group integration test, added non_public_groups to enums * fix linting * reformat files * remove unused import in groups/views/group.py * Upgrade dependency "black" Signed-off-by: Tmpecho <[email protected]> * Upgrade dependency "sentry-sdk" Signed-off-by: Tmpecho <[email protected]> * Upgrade dependency "azure-storage-blob" and remove outdated comment in requirements.txt Signed-off-by: Tmpecho <[email protected]> * Upgrade all non-django dependencies Signed-off-by: Tmpecho <[email protected]> * Upgrade dependency "Django" Signed-off-by: Tmpecho <[email protected]> * Upgrade dependencies and remove ignored version from docker-compose.yml Signed-off-by: Tmpecho <[email protected]> --------- Signed-off-by: Tmpecho <[email protected]> Co-authored-by: 1Cezzo <[email protected]> * Allow HS members to create a new group (#864) * Add endpoint to create new group as admin Signed-off-by: Tmpecho <[email protected]> * remove bad exception handling in serializers/group.py * fix inheritance ordering in views/group.py * refactored group integration test, added non_public_groups to enums * fix linting * reformat files * remove unused import in groups/views/group.py --------- Signed-off-by: Tmpecho <[email protected]> Co-authored-by: 1Cezzo <[email protected]> * App Script Fix (#875) added serializers dir to script * Event registration payment orders (#876) * added list of payment orders for registrations * update CHANGELOG.md * chore(deps): update python-dotenv requirement from ~=0.21.1 to ~=1.0.1 (#871) Updates the requirements on [python-dotenv](https://github.com/theskumar/python-dotenv) to permit the latest version. - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](theskumar/python-dotenv@v0.21.1...v1.0.1) --- updated-dependencies: - dependency-name: python-dotenv dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Chore(deps): Bump sentry-sdk from 1.14.0 to 2.8.0 (#866) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.14.0 to 2.8.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](getsentry/sentry-python@1.14.0...2.8.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Codex Course (#852) * added models for course and registration, and viewset for course and tests * added validation for date checking for courses * added viewset for registration for codex courses * removed unused fields from course model * removed unused imports * added API error mixins as mother clas * fixed error mixin * refactored to event model * fixed wrong import * fixed tests * format * skipped broken tests, must be refactored * updated CHANGELOG.md * format * fixed filtering of groups and made tests * fixed list endpoint for cheatsheets * trigger * format * Endpoint for sending email (#883) * fix formatting * created tests for send_email endpoint * Fix code scanning alert no. 45: Information exposure through an exception Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * fixed errors in send_email and in tests * lint * added tests for empty lists and for sending mail to multiple users --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * chore(deps): bump black from 24.3.0 to 24.8.0 (#869) Bumps [black](https://github.com/psf/black) from 24.3.0 to 24.8.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](psf/black@24.3.0...24.8.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * chore(deps): Bump azure-storage-blob from 12.13.1 to 12.23.1 (#885) Bumps [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) from 12.13.1 to 12.23.1. - [Release notes](https://github.com/Azure/azure-sdk-for-python/releases) - [Changelog](https://github.com/Azure/azure-sdk-for-python/blob/main/doc/esrp_release.md) - [Commits](Azure/azure-sdk-for-python@azure-storage-blob_12.13.1...azure-storage-blob_12.23.1) --- updated-dependencies: - dependency-name: azure-storage-blob dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Added admin.py to root in new app, and added app dir to tests (#892) added admin.py to root in new app, and added app dir to tests * Description to forms (#894) added description to form * Bug report system (#865) * Created New App named Index * created model * Refactor: Change admin file * admin * added serializer and viewsets for list * fixed typing error for permission_classes * Started on the create serializer for feedback * Made tests for create feedback * Implemented update serializer for feedback * made destroy method and testing create method as member * Made destroy method and tests * Fixed linting * Fixed linting --------- Co-authored-by: Tam Le <[email protected]> Co-authored-by: Josefine Arntsen <[email protected]> Co-authored-by: Mads Nylund <[email protected]> Co-authored-by: Mads Nylund <[email protected]> * Renaming of index app to feedback (#901) renamed index app to feedback * chore(deps): bump django from 4.2.16 to 5.1.1 (#889) Bumps [django](https://github.com/django/django) from 4.2.16 to 5.1.1. - [Commits](django/django@4.2.16...5.1.1) --- updated-dependencies: - dependency-name: django dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Event registration race condition (#902) * started on fixing race condition * fixed race condition * upadted CHANGELOG.md * Feat(registration)/filter participants (#895) * filtering by year and study * linting fix * added allergy filter * added filter by allergies and participants with allergy count to event. * Lint fix * Add new fixture for admin user * Start testing filtering + finished allergy filter test * Added integration test for participants filtering * lint fix * removed unused import * Update changelog * merge with dev and more filters * Fixed has_paid filter and added filter combination test * ran linting script --------- Co-authored-by: Harry Linrui XU <[email protected]> Co-authored-by: Mads Nylund <[email protected]> * Feat(registration)/filter participants (#915) * filtering by year and study * linting fix * added allergy filter * added filter by allergies and participants with allergy count to event. * Lint fix * Add new fixture for admin user * Start testing filtering + finished allergy filter test * Added integration test for participants filtering * lint fix * removed unused import * Update changelog * merge with dev and more filters * Fixed has_paid filter and added filter combination test * ran linting script * fixed has allergy count bug, and has_paid bug * post linting --------- Co-authored-by: Harry Linrui XU <[email protected]> Co-authored-by: Mads Nylund <[email protected]> * Fix issue where full error is exposed to external users (#914) Signed-off-by: Tmpecho <[email protected]> * chore(deps): Bump sentry-sdk from 2.8.0 to 2.14.0 (#893) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.8.0 to 2.14.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](getsentry/sentry-python@2.8.0...2.14.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Refactor/minor code cleanup (#884) * Prefix unused variable names with underscore, remove redundant parenthesis, split long lines into several, rename functions to snake_case, Signed-off-by: Tmpecho <[email protected]> * Update CHANGELOG.md Signed-off-by: Tmpecho <[email protected]> * Make constant uppercase Signed-off-by: Tmpecho <[email protected]> * Empty-Commit --------- Signed-off-by: Tmpecho <[email protected]> Co-authored-by: Mads Nylund <[email protected]> * Add default detail to custom exceptions (#916) Signed-off-by: Tmpecho <[email protected]> Co-authored-by: Mads Nylund <[email protected]> * chore(deps): bump uvicorn from 0.30.6 to 0.32.0 (#908) Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.30.6 to 0.32.0. - [Release notes](https://github.com/encode/uvicorn/releases) - [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md) - [Commits](encode/uvicorn@0.30.6...0.32.0) --- updated-dependencies: - dependency-name: uvicorn dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * chore(deps): Bump pre-commit from 3.8.0 to 4.0.1 (#899) Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.8.0 to 4.0.1. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](pre-commit/pre-commit@v3.8.0...v4.0.1) --- updated-dependencies: - dependency-name: pre-commit dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mads Nylund <[email protected]> * Feat(registration)/filter participants (#917) Fixed bugs introduced in an earlier pr --------- Co-authored-by: Harry Linrui XU <[email protected]> Co-authored-by: Mads Nylund <[email protected]> Co-authored-by: haruixu <[email protected]> --------- Signed-off-by: Tmpecho <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Erik Skjellevik <[email protected]> Co-authored-by: haruixu <[email protected]> Co-authored-by: Ester2109 <[email protected]> Co-authored-by: Tam Le <[email protected]> Co-authored-by: martcl <[email protected]> Co-authored-by: Frikk Balder <[email protected]> Co-authored-by: Emil Johnsen <[email protected]> Co-authored-by: Johannes Aamot-Skeidsvoll <[email protected]> Co-authored-by: 1Cezzo <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Josefine Arntsen <[email protected]> Co-authored-by: Josefine Arntsen <[email protected]> Co-authored-by: Yazan Zarka <[email protected]> Co-authored-by: Harry Linrui XU <[email protected]>
Created endpoint for sending mail, created tests for the endpoint to verify that it works