#ARC-16 Add serializer and filterset for chat app

remotes/origin/setup
Mukhtar 10 years ago
parent 7142c2ec6e
commit c7ba533f5f
  1. 2
      api/urls.py
  2. 9
      api/views.py
  3. 14
      chat/filters.py
  4. 19
      chat/serializers.py
  5. 1
      chat/templates/chat_contractor.html
  6. 5
      chat/templates/chat_customer.html

@ -6,6 +6,7 @@ from .views import (
RealtyViewSet, RealtyViewSet,
SpecializationViewSet, SpecializationViewSet,
UserViewSet, UserViewSet,
MessageViewSet,
) )
@ -16,5 +17,6 @@ router.register(r'projects', ProjectViewSet)
router.register(r'realties', RealtyViewSet) router.register(r'realties', RealtyViewSet)
router.register(r'specializations', SpecializationViewSet) router.register(r'specializations', SpecializationViewSet)
router.register(r'users', UserViewSet) router.register(r'users', UserViewSet)
router.register(r'message', MessageViewSet)
urlpatterns = router.urls urlpatterns = router.urls

@ -16,6 +16,9 @@ from common.models import Location
from common.serializers import LocationSerializer from common.serializers import LocationSerializer
from common.filters import LocationFilterSet from common.filters import LocationFilterSet
from chat.models import Message
from chat.serializers import MessageSerializer
from chat.filters import MessageFilterSet
class ProjectViewSet(ModelViewSet): class ProjectViewSet(ModelViewSet):
queryset = Project.objects.all() queryset = Project.objects.all()
@ -23,6 +26,12 @@ class ProjectViewSet(ModelViewSet):
filter_class = ProjectFilterSet filter_class = ProjectFilterSet
class MessageViewSet(ModelViewSet):
queryset = Message.objects.all()
serializer_class = MessageSerializer
filter_class = MessageFilterSet
class RealtyViewSet(ModelViewSet): class RealtyViewSet(ModelViewSet):
queryset = Realty.objects.all() queryset = Realty.objects.all()
serializer_class = RealtySerializer serializer_class = RealtySerializer

@ -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

@ -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',
)

@ -407,6 +407,7 @@
}; };
sock.onmessage = function(event){ sock.onmessage = function(event){
console.log(event.data); console.log(event.data);
alert(event.data);
var message = JSON.parse(event.data); var message = JSON.parse(event.data);
var inbox = document.getElementById('message-chat-space'); var inbox = document.getElementById('message-chat-space');
inbox.innerHTML += '<div class="col-lg-12 insetCommChat"><div class="topCommChat">' + inbox.innerHTML += '<div class="col-lg-12 insetCommChat"><div class="topCommChat">' +

@ -16,7 +16,7 @@
<a href="#tab1" data-toggle="tab">Личные</a> <a href="#tab1" data-toggle="tab">Личные</a>
</li> </li>
<li role="presentation"> <li role="presentation">
<a href="#tab2" data-toggle="tab">Заказчики</a> <a href="#tab2" data-toggle="tab">Исполнители</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -243,10 +243,11 @@
var intervalId; var intervalId;
sock.onopen = function(){ sock.onopen = function(){
console.log("Start connect"); console.log("Start connect");
intervalId = setInterval(function(){sock.send('{"dummy": 1}');}, 150000); intervalId = setInterval(function(){sock.send('{"dummy": 1}');}, 150);
}; };
sock.onmessage = function(event){ sock.onmessage = function(event){
console.log(event.data); console.log(event.data);
alert(event.data);
var message = JSON.parse(event.data); var message = JSON.parse(event.data);
var inbox; var inbox;
if (message.answer_type == 'contact'){ if (message.answer_type == 'contact'){

Loading…
Cancel
Save