Skip to content

Commit

Permalink
[#2646] Enable Organization in API v2
Browse files Browse the repository at this point in the history
  • Loading branch information
pbanaszkiewicz committed May 22, 2024
1 parent c094d7f commit e2cf382
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 0 deletions.
20 changes: 20 additions & 0 deletions amy/api/v2/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
Award,
Event,
Membership,
Organization,
Person,
TrainingProgress,
TrainingRequirement,
Expand All @@ -30,6 +31,25 @@ class Meta:
)


class OrganizationSerializer(serializers.ModelSerializer):
country = serializers.CharField()
affiliated_organizations = serializers.SlugRelatedField(
many=True, read_only=True, slug_field="domain"
)

class Meta:
model = Organization
fields = (
"pk",
"domain",
"fullname",
"country",
"latitude",
"longitude",
"affiliated_organizations",
)


class EventSerializer(serializers.ModelSerializer):
# start = serializers.DateField()
# end = serializers.DateField()
Expand Down
1 change: 1 addition & 0 deletions amy/api/v2/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

router = routers.DefaultRouter(trailing_slash=False)
router.register("award", views.AwardViewSet)
router.register("organization", views.OrganizationViewSet)
router.register("event", views.EventViewSet)
router.register("instructorrecruitmentsignup", views.InstructorRecruitmentSignupViewSet)
router.register("membership", views.MembershipViewSet)
Expand Down
20 changes: 20 additions & 0 deletions amy/api/v2/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
EventSerializer,
InstructorRecruitmentSignupSerializer,
MembershipSerializer,
OrganizationSerializer,
PersonSerializer,
ScheduledEmailLogDetailsSerializer,
ScheduledEmailSerializer,
Expand All @@ -26,6 +27,7 @@
Award,
Event,
Membership,
Organization,
Person,
TrainingProgress,
TrainingRequirement,
Expand Down Expand Up @@ -56,6 +58,24 @@ class AwardViewSet(viewsets.ReadOnlyModelViewSet):
pagination_class = StandardResultsSetPagination


class OrganizationViewSet(viewsets.ReadOnlyModelViewSet):
authentication_classes = (
TokenAuthentication,
SessionAuthentication,
)
permission_classes = (
IsAuthenticated,
ApiAccessPermission,
)
queryset = (
Organization.objects.prefetch_related("affiliated_organizations")
.order_by("pk")
.all()
)
serializer_class = OrganizationSerializer
pagination_class = StandardResultsSetPagination


class EventViewSet(viewsets.ReadOnlyModelViewSet):
authentication_classes = (
TokenAuthentication,
Expand Down

0 comments on commit e2cf382

Please sign in to comment.