From ca8937d9f68c8d4bedbff09434153649da96649f Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 27 Jul 2022 00:50:49 +0300 Subject: [PATCH] Rename BaseFeed fields --- webapp/serializers.py | 56 ++++++++++++++++++++++++------------------- webapp/translation.py | 6 ++++- webapp/views.py | 28 ++++++++++++---------- 3 files changed, 52 insertions(+), 38 deletions(-) diff --git a/webapp/serializers.py b/webapp/serializers.py index 6a4dd14..dd56aea 100644 --- a/webapp/serializers.py +++ b/webapp/serializers.py @@ -83,28 +83,31 @@ class TagSerializer(serializers.ModelSerializer): class FeedSerializer(serializers.ModelSerializer): - tag_id = serializers.PrimaryKeyRelatedField( - many=True, source="tags", queryset=Tag.objects.all() + tagId = serializers.PrimaryKeyRelatedField( + queryset=Tag.objects.all(), + many=True, + write_only=True, ) class Meta: model = Feed fields = ( "id", - "tags", - "tag_id", - "visible", - "image", "title_fi", "title_en", "description_fi", "description_en", "content_fi", "content_en", - "publish_time", - "autohide", - "autohide_enabled", + "image", + "tags", + "tagId", + "isPublished", + "publishAt", + "autoUnpublish", + "unpublishAt", ) + read_only_fields = ["tags"] depth = 1 def create(self, validated_data): @@ -117,10 +120,10 @@ class FeedSerializer(serializers.ModelSerializer): class EventSerializer(serializers.ModelSerializer): - signupForm = SignupFormSerializer( - source="filtered_signup_forms", + tagId = serializers.PrimaryKeyRelatedField( + queryset=Tag.objects.all(), many=True, - read_only=True, + write_only=True, ) signup_id = serializers.PrimaryKeyRelatedField( @@ -128,26 +131,30 @@ class EventSerializer(serializers.ModelSerializer): many=True, write_only=True, ) - tag_id = serializers.PrimaryKeyRelatedField( - queryset=Tag.objects.all(), + + signupForm = SignupFormSerializer( + source="filtered_signup_forms", many=True, - write_only=True, + read_only=True, ) class Meta: model = Event fields = ( "id", - "tag_id", - "tags", - "visible", - "image", "title_fi", "title_en", "description_fi", "description_en", "content_fi", "content_en", + "image", + "tags", + "tagId", + "isPublished", + "publishAt", + "autoUnpublish", + "unpublishAt", "start_time", "end_time", "location_fi", @@ -160,7 +167,7 @@ class EventSerializer(serializers.ModelSerializer): def create(self, validated_data): signupForms = validated_data.pop("signup_id", []) - tags = validated_data.pop("tag_id") + tags = validated_data.pop("tagId") event = Event.objects.create(**validated_data) for form in signupForms: event.signupForm.add(form) @@ -171,7 +178,7 @@ class EventSerializer(serializers.ModelSerializer): def update(self, instance, validated_data): signupForms = validated_data.pop("signup_id", []) - tags = validated_data.pop("tag_id") + tags = validated_data.pop("tagId") instance.signupForm.clear() instance.tags.clear() for form in signupForms: @@ -193,7 +200,8 @@ class JobAdSerializer(serializers.ModelSerializer): "description_en", "content_fi", "content_en", - "visible", - "autohide", - "autohide_enabled", + "isPublished", + "publishAt", + "autoUnpublish", + "unpublishAt", ) diff --git a/webapp/translation.py b/webapp/translation.py index a8ca677..4378886 100644 --- a/webapp/translation.py +++ b/webapp/translation.py @@ -11,7 +11,11 @@ class TagTranslationOptions(TranslationOptions): @register(BaseFeed) class BaseFeedTranslationOptions(TranslationOptions): - fields = ("title", "description", "content") + fields = ( + "title", + "description", + "content", + ) @register(Feed) diff --git a/webapp/views.py b/webapp/views.py index 7e6c36e..1fbe2dd 100644 --- a/webapp/views.py +++ b/webapp/views.py @@ -57,27 +57,27 @@ class FeedViewSet(ModelViewSet): serializer_class = FeedSerializer permission_classes = [IsAuthenticatedOrReadOnly] filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter) - filter_fields = ("id", "tags", "visible") - search_fields = ("id", "tags", "visible") + filter_fields = ("id", "tags", "isPublished") + search_fields = ("id", "tags", "isPublished") def get_queryset(self): if self.request.user.is_authenticated: - return Feed.objects.filter(deleted=False).order_by("-publish_time") + return Feed.objects.filter(deleted=False).order_by("-publishAt") else: - objs = Feed.objects.filter(deleted=False, visible=True).order_by( - "-publish_time" + objs = Feed.objects.filter(deleted=False, isPublished=True).order_by( + "-publishAt" ) # TODO: Bad filtering. Rewrite! result_ids = [] for obj in objs: - if obj.autohide_enabled: - if obj.autohide > timezone.now(): + if obj.autoUnpublish: + if obj.unpublishAt > timezone.now(): result_ids.append(obj.id) else: result_ids.append(obj.id) - return Feed.objects.filter(id__in=result_ids).order_by("-publish_time") + return Feed.objects.filter(id__in=result_ids).order_by("-publishAt") def destroy(self, request, pk=None, *args, **kwargs): try: @@ -95,8 +95,8 @@ class EventViewSet(ModelViewSet): serializer_class = EventSerializer permission_classes = [IsAuthenticatedOrReadOnly] filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter) - filter_fields = ("id", "tags", "visible", "signupForm") - search_fields = ("id", "tags", "visible", "signupForm") + filter_fields = ("id", "tags", "isPublished", "signupForm") + search_fields = ("id", "tags", "isPublished", "signupForm") def get_queryset(self): @@ -117,7 +117,9 @@ class EventViewSet(ModelViewSet): since = self.request.query_params.get("since", None) if since: return ( - Event.objects.filter(deleted=False, visible=True, end_time__gt=since) + Event.objects.filter( + deleted=False, isPublished=True, end_time__gt=since + ) .order_by("start_time") .prefetch_related( Prefetch( @@ -129,7 +131,7 @@ class EventViewSet(ModelViewSet): ) return ( Event.objects.filter( - deleted=False, visible=True, end_time__gt=timezone.now() + deleted=False, isPublished=True, end_time__gt=timezone.now() ) .order_by("start_time") .prefetch_related( @@ -174,7 +176,7 @@ class JobAdViewSet(ModelViewSet): if self.request.user.is_authenticated: return JobAd.objects.filter(deleted=False) return JobAd.objects.filter( - deleted=False, visible=True, autohide__gt=timezone.now() + deleted=False, isPublished=True, unpublishAt__gt=timezone.now() ) def destroy(self, request, pk=None, *args, **kwargs):