from django.conf import settings from rest_framework.response import Response from rest_framework.views import APIView from backend_app.checks import check_viewsets from backend_app.settings.defaults import OBJ_MODERATION_PERMISSIONS from backend_app.models.campus import CampusViewSet, MainCampusViewSet from backend_app.models.campusTaggedItem import CampusTaggedItemViewSet from backend_app.models.city import CityViewSet from backend_app.models.cityTaggedItem import CityTaggedItemViewSet from backend_app.models.country import CountryViewSet from backend_app.models.countryDri import CountryDriViewSet from backend_app.models.countryScholarship import CountryScholarshipViewSet from backend_app.models.countryTaggedItem import CountryTaggedItemViewSet from backend_app.models.currency import CurrencyViewSet from backend_app.models.department import DepartmentViewSet from backend_app.models.for_testing.moderation import ForTestingModerationViewSet from backend_app.models.for_testing.versioning import ForTestingVersioningViewSet from backend_app.models.offer import OfferViewSet from backend_app.models.pendingModeration import ( PendingModerationViewSet, PendingModerationObjViewSet, ) from backend_app.models.previousDeparture import PreviousDepartureViewSet from backend_app.models.previousDepartureFeedback import ( PreviousDepartureFeedbackViewSet, ) from backend_app.models.recommendation import RecommendationViewSet from backend_app.models.recommendationList import RecommendationListViewSet from backend_app.models.specialty import SpecialtyViewSet from backend_app.models.tag import TagViewSet from backend_app.models.university import UniversityViewSet from backend_app.models.universityDri import UniversityDriViewSet from backend_app.models.universityInfo import UniversityInfoViewSet from backend_app.models.universityScholarship import UniversityScholarshipViewSet from backend_app.models.universitySemestersDates import UniversitySemestersDatesViewSet from backend_app.models.universityTaggedItem import UniversityTaggedItemViewSet from backend_app.models.userData import UserDataViewSet from backend_app.models.version import VersionViewSet from backend_app.permissions.app_permissions import ReadOnly ALL_API_VIEWSETS = [ CampusViewSet, MainCampusViewSet, CampusTaggedItemViewSet, CityViewSet, CityTaggedItemViewSet, CountryViewSet, CountryDriViewSet, CountryScholarshipViewSet, CountryTaggedItemViewSet, CurrencyViewSet, DepartmentViewSet, OfferViewSet, PendingModerationViewSet, PendingModerationObjViewSet, PreviousDepartureViewSet, PreviousDepartureFeedbackViewSet, RecommendationViewSet, RecommendationListViewSet, SpecialtyViewSet, TagViewSet, UniversityViewSet, UniversityDriViewSet, UniversityInfoViewSet, UniversityScholarshipViewSet, UniversitySemestersDatesViewSet, UniversityTaggedItemViewSet, UserDataViewSet, VersionViewSet, ] if settings.TESTING: # We only register viewsets in a testing environment ALL_API_VIEWSETS += [ForTestingModerationViewSet, ForTestingVersioningViewSet] class AppModerationStatusViewSet(APIView): """ Viewset to know what is the app moderation status """ # Since AppModerationStatusViewSet doesn't inherit from BaseModelViewSet # We need to link here the correct permissions permission_classes = (ReadOnly,) end_point_route = "serverModerationStatus" def get(self, request): return Response( { "activated": settings.MODERATION_ACTIVATED, "moderator_level": OBJ_MODERATION_PERMISSIONS["moderator"], } ) ALL_API_VIEW_VIEWSETS = [AppModerationStatusViewSet] ALL_VIEWSETS = ALL_API_VIEWSETS + ALL_API_VIEW_VIEWSETS check_viewsets(ALL_VIEWSETS)