Skip to content

Commit

Permalink
Add organization type api and enum for learning type
Browse files Browse the repository at this point in the history
  • Loading branch information
susilnem committed Nov 26, 2024
1 parent 8c668ca commit 4df0af8
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 1 deletion.
3 changes: 2 additions & 1 deletion per/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ class OpsLearningAdmin(GotoNextModelAdmin):
ls = ("organization", "organization_validated", "sector", "sector_validated", "per_component", "per_component_validated")
list_filter = ("is_validated", "appeal_code__atype") + ls
autocomplete_fields = ("appeal_code",) + ls
search_fields = ("learning", "learning_validated")
search_fields = ("learning", "learning_validated", "appeal_code__aid", "appeal_code__code")
list_display = ("learning", "appeal_code", "is_validated", "modified_at")
change_form_template = "admin/opslearning_change_form.html"
actions = ["export_selected_records"]
Expand Down Expand Up @@ -311,6 +311,7 @@ class OpsLearningCacheResponseAdmin(TranslationAdmin):
search_fields = (
"id",
"used_ops_learning__appeal_code__aid",
"used_ops_learning__appeal_code__code",
)
list_display = (
"__str__",
Expand Down
26 changes: 26 additions & 0 deletions per/drf_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from rest_framework.authentication import TokenAuthentication
from rest_framework.decorators import action
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.settings import api_settings

from api.models import Country
Expand Down Expand Up @@ -79,6 +80,7 @@
NiceDocumentSerializer,
OpsLearningCSVSerializer,
OpsLearningInSerializer,
OpsLearningOrganizationTypeSerializer,
OpsLearningSerializer,
OpsLearningSummarySerializer,
PerAssessmentSerializer,
Expand Down Expand Up @@ -866,6 +868,30 @@ def get_renderer_context(self):

return context

@extend_schema(
request=None,
filters=False,
responses=OpsLearningOrganizationTypeSerializer(many=True),
)
@action(
detail=False,
methods=["GET"],
permission_classes=[DenyGuestUserMutationPermission, OpsLearningPermission],
serializer_class=OpsLearningOrganizationTypeSerializer,
url_path="organization-type",
)
def organization(self, request):
"""
Get the Organization Types
"""
queryset = OrganizationTypes.objects.exclude(is_deprecated=True)
serializer = OpsLearningOrganizationTypeSerializer(queryset, many=True)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = OpsLearningOrganizationTypeSerializer(page, many=True)
return self.get_paginated_response(serializer.data)
return Response(serializer.data)

@extend_schema(
request=None,
filters=True,
Expand Down
1 change: 1 addition & 0 deletions per/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
"overviewassessmentmethods": models.Overview.AssessmentMethod,
"component_status": models.FormComponent.FormComponentStatus,
"supported_by_organization_type": models.PerWorkPlanComponent.SupportedByOrganizationType,
"learning_type": models.LearningType,
}
10 changes: 10 additions & 0 deletions per/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
OpsLearningCacheResponse,
OpsLearningComponentCacheResponse,
OpsLearningSectorCacheResponse,
OrganizationTypes,
Overview,
PerAssessment,
PerComponentRating,
Expand Down Expand Up @@ -1243,3 +1244,12 @@ def get_latest_appeal_date(self, obj):
return Appeal.objects.filter(id__in=obj.used_ops_learning.values("appeal_code__id")).aggregate(
max_start_date=models.Max("start_date"),
)["max_start_date"]


class OpsLearningOrganizationTypeSerializer(serializers.ModelSerializer):
class Meta:
model = OrganizationTypes
fields = [
"id",
"title",
]

0 comments on commit 4df0af8

Please sign in to comment.