diff --git a/api/urls.py b/api/urls.py index 46d44c2..f64ce8a 100755 --- a/api/urls.py +++ b/api/urls.py @@ -6,6 +6,7 @@ from .views import ( RealtyViewSet, SpecializationViewSet, UserViewSet, + MessageViewSet, ) @@ -16,5 +17,6 @@ router.register(r'projects', ProjectViewSet) router.register(r'realties', RealtyViewSet) router.register(r'specializations', SpecializationViewSet) router.register(r'users', UserViewSet) +router.register(r'message', MessageViewSet) urlpatterns = router.urls diff --git a/api/views.py b/api/views.py index 7629e70..e629711 100755 --- a/api/views.py +++ b/api/views.py @@ -16,6 +16,9 @@ from common.models import Location from common.serializers import LocationSerializer from common.filters import LocationFilterSet +from chat.models import Message +from chat.serializers import MessageSerializer +from chat.filters import MessageFilterSet class ProjectViewSet(ModelViewSet): queryset = Project.objects.all() @@ -23,6 +26,12 @@ class ProjectViewSet(ModelViewSet): filter_class = ProjectFilterSet +class MessageViewSet(ModelViewSet): + queryset = Message.objects.all() + serializer_class = MessageSerializer + filter_class = MessageFilterSet + + class RealtyViewSet(ModelViewSet): queryset = Realty.objects.all() serializer_class = RealtySerializer diff --git a/chat/filters.py b/chat/filters.py new file mode 100644 index 0000000..63c24e0 --- /dev/null +++ b/chat/filters.py @@ -0,0 +1,14 @@ +from rest_framework_filters import FilterSet, RelatedFilter, AllLookupsFilter + +from .models import Message + + +class MessageFilterSet(FilterSet): + text = AllLookupsFilter() + created = AllLookupsFilter() + sender = RelatedFilter('users.filters.UserFilterSet') + recipent = RelatedFilter('users.filters.UserFilterSet') + private_type = AllLookupsFilter() + + class Meta: + model = Message diff --git a/chat/serializers.py b/chat/serializers.py new file mode 100644 index 0000000..9cdf3c0 --- /dev/null +++ b/chat/serializers.py @@ -0,0 +1,19 @@ +from rest_framework.serializers import ModelSerializer + +from .models import Message +from users.serializers import UserSerializer + +class MessageSerializer(ModelSerializer): + sender = UserSerializer() + recipent = UserSerializer() + + class Meta: + model = Message + + fields = ( + 'text', + 'created', + 'sender', + 'recipent', + 'private_type', + ) diff --git a/chat/templates/chat_contractor.html b/chat/templates/chat_contractor.html index 1308463..9a1d1d7 100644 --- a/chat/templates/chat_contractor.html +++ b/chat/templates/chat_contractor.html @@ -407,6 +407,7 @@ }; sock.onmessage = function(event){ console.log(event.data); + alert(event.data); var message = JSON.parse(event.data); var inbox = document.getElementById('message-chat-space'); inbox.innerHTML += '
' + diff --git a/chat/templates/chat_customer.html b/chat/templates/chat_customer.html index 8408b7e..72b2d93 100644 --- a/chat/templates/chat_customer.html +++ b/chat/templates/chat_customer.html @@ -16,7 +16,7 @@ Личные
  • - Заказчики + Исполнители
  • @@ -243,10 +243,11 @@ var intervalId; sock.onopen = function(){ console.log("Start connect"); - intervalId = setInterval(function(){sock.send('{"dummy": 1}');}, 150000); + intervalId = setInterval(function(){sock.send('{"dummy": 1}');}, 150); }; sock.onmessage = function(event){ console.log(event.data); + alert(event.data); var message = JSON.parse(event.data); var inbox; if (message.answer_type == 'contact'){