Skip to content

Commit

Permalink
Late September Update Fix (#880)
Browse files Browse the repository at this point in the history
* 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

---------

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>
  • Loading branch information
11 people authored Sep 25, 2024
1 parent 2ad96e2 commit 8f5ab6a
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 4 deletions.
6 changes: 2 additions & 4 deletions app/group/filters/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ class Meta:
fields = ["type", "overview"]

def filter_type(self, queryset, _, value):
"""Django Rest does not know hot to convert incoming string values into EnumChoiceField values and we must do this manually."""
mapped = list(GroupType[v] for v in value)
return queryset.filter(type__in=mapped)
return queryset.filter(type__in=value)

def filter_overview(self, queryset, _):
def filter_overview(self, queryset, *_):
if is_admin_user(self.request):
return queryset
return queryset.filter(type__in=GroupType.public_groups())
35 changes: 35 additions & 0 deletions app/tests/groups/test_group_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from app.common.enums import AdminGroup
from app.common.enums import NativeGroupType as GroupType
from app.group.factories import GroupFactory
from app.util.test_utils import get_api_client

GROUP_URL = "/groups/"
Expand All @@ -13,6 +14,14 @@ def _get_group_url(group=None):
return f"{GROUP_URL}{group.slug}/" if (group) else f"{GROUP_URL}"


def _get_overview_group_url():
return f"{GROUP_URL}?overview=true"


def _get_group_type_filtered_list(slug: str):
return f"{GROUP_URL}?type={slug}"


def _get_group_post_data(group):
return {
"name": group.name,
Expand All @@ -38,6 +47,32 @@ def test_list_as_anonymous_user(default_client):
assert response.status_code == status.HTTP_200_OK


@pytest.mark.django_db
def test_list_overview_of_groups_as_member(member):
"""Tests if a member can list an overview of groups"""

client = get_api_client(user=member)
url = _get_overview_group_url()
response = client.get(url)

assert response.status_code == status.HTTP_200_OK


@pytest.mark.django_db
def test_list_type_of_groups_as_member(member):
"""Tests if a member can list a type of groups"""

GroupFactory(type=GroupType.BOARD)
GroupFactory(type=GroupType.COMMITTEE)

client = get_api_client(user=member)
url = _get_group_type_filtered_list(GroupType.BOARD.value)
response = client.get(url)

assert response.status_code == status.HTTP_200_OK
assert len(response.data) == 1


@pytest.mark.django_db
def test_retrieve_as_anonymous_user(default_client, group):
"""Tests if an anonymous user can retrieve a group"""
Expand Down

0 comments on commit 8f5ab6a

Please sign in to comment.