Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions apps/properties/serializers/property_serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ class PropertiesReadSerializer(serializers.ModelSerializer):
rooms_extras = RoomsExtrasSerializer()
images = PropertiesPhotosSerializer(many=True, read_only=True, source="photos")
average_rating = serializers.SerializerMethodField()

owner_name = serializers.CharField(source="owner.name", read_only=True)

def get_average_rating(self, obj):
if hasattr(obj, "average_rating"):
return obj.average_rating
Expand Down Expand Up @@ -98,7 +99,6 @@ def update(self, instance, validated_data):
defaults=condo_data
)
instance.condo = condo_obj
instance.save()

for attr, value in rooms_extras_data.items():
setattr(instance.rooms_extras, attr, value)
Expand Down Expand Up @@ -139,4 +139,4 @@ def validate_city(self, value):
class Meta:
model = Properties
exclude = ["embedding"]
read_only_fields = ["id"]
read_only_fields = ["id", "owner"]
11 changes: 8 additions & 3 deletions apps/properties/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
# sender = escuta só eventos do model Properties
@receiver(post_delete, sender=Properties)
def delete_fatherless_room(sender, instance, **kwargs):
room = instance.rooms # instance = o propertie que foi deletado, intance.room = pega o room que o propetie usava
if not room.properties.exists(): # nenhum outro imóvel usa esse room
room.delete()
room = getattr(instance, 'rooms', None) # instance = o propertie que foi deletado, intance.room = pega o room que o propetie usava
if room and not room.properties.exists(): # nenhum outro imóvel usa esse room
room.delete()

extras = getattr(instance, 'rooms_extras', None) # pega os extras do imóvel deletado
if extras and not extras.properties.exists(): # nenhum outro imóvel usa esses extras
extras.delete()

2 changes: 1 addition & 1 deletion apps/properties/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
path("<int:pk>/photos/", photo_views.UploadPhotoPropertyView.as_view()),
path("photos/<int:pk>/", photo_views.RUDPhotoPropertyView.as_view()),
#path("search/filters/", property_views.FilterPropertyView.as_view()),
path("search/", property_views.SearchPropertyAIView.as_view()),
#path("search/", property_views.SearchPropertyAIView.as_view()),
path("<int:pk>/reviews/", property_views.CreateListReviewPropertyView.as_view()),
path("<int:pk>/reviews/<int:review_pk>/", property_views.RUDReviewPropertyView.as_view()),
]
8 changes: 4 additions & 4 deletions apps/properties/views/photo_views.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from rest_framework import generics
from rest_framework.permissions import IsAuthenticated, AllowAny
from apps.properties.views.property_views import IsPropertyOwner
from apps.properties.permissions import IsPropertyOwner
from apps.properties.models import Properties, PropertiesPhotos
from apps.properties.serializers.photo_serializers import PropertiesUploadPhotosSerializer, PropertiesPhotosSerializer


class UploadPhotoPropertyView(generics.CreateAPIView):
queryset = Properties.objects.all()
permission_classes = [IsAuthenticated(), IsPropertyOwner()]
permission_classes = [IsAuthenticated, IsPropertyOwner]
serializer_class = PropertiesUploadPhotosSerializer
lookup_field = "pk"

Expand All @@ -26,5 +26,5 @@ def get_serializer_class(self):

def get_permissions(self):
if self.request.method in ["PUT", "PATCH", "DELETE"]:
return [IsAuthenticated(), IsPropertyOwner()]
return [AllowAny()]
return [IsAuthenticated, IsPropertyOwner]
return [AllowAny]
2 changes: 1 addition & 1 deletion apps/users/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def update(self, instance, validated_data):

class RegisterSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True, min_length=8)
user_type = serializers.CharField(default="S")
user_type = serializers.ChoiceField(choices=User.UserType.choices, default=User.UserType.SEEKER)
class Meta:
model = User
fields = ['id', 'name', 'email', 'password', 'user_type']
Expand Down
Loading