Rename BaseFeed fields

This commit is contained in:
Aarni Halinen
2022-07-27 00:50:49 +03:00
parent 92f744f39c
commit ca8937d9f6
3 changed files with 52 additions and 38 deletions
+32 -24
View File
@@ -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",
)
+5 -1
View File
@@ -11,7 +11,11 @@ class TagTranslationOptions(TranslationOptions):
@register(BaseFeed)
class BaseFeedTranslationOptions(TranslationOptions):
fields = ("title", "description", "content")
fields = (
"title",
"description",
"content",
)
@register(Feed)
+15 -13
View File
@@ -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):