From f0c532c2ff9a26674cd8c3257833c46645dd8076 Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Wed, 13 Jul 2016 19:02:12 +0300 Subject: [PATCH] #ARC-17 Add middleware --- api/views.py | 3 + archilance/settings/base.py | 1 + chat/templates/chat_contractor.html | 142 +++++++++++- chat/templates/chat_customer.html | 4 +- common/admin.py | 3 +- common/middleware.py | 11 + common/migrations/0004_settings.py | 25 ++ common/models.py | 11 + templates/partials/base.html | 2 + users/templates/contractor_profile.html | 242 +++++++++++--------- users/templates/worksell_create_form.html | 18 ++ work_sell/templates/picture_basic_form.html | 35 +-- work_sell/templates/upload.html | 13 +- 13 files changed, 373 insertions(+), 137 deletions(-) create mode 100644 common/middleware.py create mode 100644 common/migrations/0004_settings.py diff --git a/api/views.py b/api/views.py index 170964a..ffe3cf5 100755 --- a/api/views.py +++ b/api/views.py @@ -37,9 +37,12 @@ class MessageViewSet(ModelViewSet): def get_queryset(self): queryset = Message.objects.all() search_param = self.request.query_params.get('operand', None) + recipent_id = self.request.query_params.get('recipent_id', None) + sender_id = self.request.query_params.get('sender_id', None) # queryset = queryset.filter(Q(sender=self.request.user.pk) | Q(recipent=self.request.user.pk)) # import code; code.interact(local=dict(globals(), **locals())) if search_param: + # import code; code.interact(local=dict(globals(), **locals())) queryset = queryset.filter(Q(sender=self.request.user.pk) | Q(recipent=self.request.user.pk)) return queryset diff --git a/archilance/settings/base.py b/archilance/settings/base.py index c560f57..ee718a5 100644 --- a/archilance/settings/base.py +++ b/archilance/settings/base.py @@ -64,6 +64,7 @@ MIDDLEWARE_CLASSES = [ 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + # 'common.middleware.SetLastVisitMiddleware', ] ROOT_URLCONF = 'archilance.urls' diff --git a/chat/templates/chat_contractor.html b/chat/templates/chat_contractor.html index a2e35e1..1ac5f6f 100644 --- a/chat/templates/chat_contractor.html +++ b/chat/templates/chat_contractor.html @@ -34,7 +34,7 @@

Контакты

{% for contact in contractor_contacts %} -
+
mess-image
@@ -42,7 +42,11 @@ {{ contact.recipent_id__first_name }} {{ contact.recipent_id__last_name }}

Контакты + 0 + Recipent_id {{ contact.recipent_id }} + Sender_id {{ contact.sender_id }} + Current {{ request.user.pk }} Удалить контакт @@ -340,5 +344,139 @@ {% endblock %} {% block js_block %} - +{# #} + {% endblock %} diff --git a/chat/templates/chat_customer.html b/chat/templates/chat_customer.html index c09b24f..aab3ae6 100644 --- a/chat/templates/chat_customer.html +++ b/chat/templates/chat_customer.html @@ -256,8 +256,10 @@ }); }); + var userId = '{{ request.user.pk }}'; + var SocketHandler = function(){ - var url = 'ws://127.0.0.1:8888/chat'; + var url = 'ws://127.0.0.1:8888/chat/' + userId + '/'; var sock = new WebSocket(url); var intervalId; sock.onopen = function(){ diff --git a/common/admin.py b/common/admin.py index c15f0e3..12d32ef 100644 --- a/common/admin.py +++ b/common/admin.py @@ -1,10 +1,11 @@ from django.contrib import admin from mptt.admin import MPTTModelAdmin -from .models import Location, MainPage +from .models import Location, MainPage, Settings class LocationAdmin(MPTTModelAdmin): readonly_fields = ('pk', 'lft', 'rght', 'tree_id', 'level') admin.site.register(Location, LocationAdmin) admin.site.register(MainPage) +admin.site.register(Settings) diff --git a/common/middleware.py b/common/middleware.py new file mode 100644 index 0000000..888679f --- /dev/null +++ b/common/middleware.py @@ -0,0 +1,11 @@ +from django.utils.timezone import now +from users.models import User + + +class SetLastVisitMiddleware(object): + + def process_response(self, request, response): + if request.user.is_authenticated(): + User.objects.filter(pk=request.user.pk).update(last_time_visit=now()) + return response + diff --git a/common/migrations/0004_settings.py b/common/migrations/0004_settings.py new file mode 100644 index 0000000..eb89b59 --- /dev/null +++ b/common/migrations/0004_settings.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-13 09:17 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0003_mainpage'), + ] + + operations = [ + migrations.CreateModel( + name='Settings', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('time_notification', models.IntegerField(default=180)), + ], + options={ + 'verbose_name': 'Настройки сайта', + }, + ), + ] diff --git a/common/models.py b/common/models.py index c374ce1..57666a3 100644 --- a/common/models.py +++ b/common/models.py @@ -32,3 +32,14 @@ class MainPage(models.Model): class Meta: verbose_name = 'Главная страница' + + +class Settings(models.Model): + time_notification = models.IntegerField(default=180) + + def __str__(self): + return 'Настройки сайта' + + class Meta: + verbose_name = 'Настройки сайта' + verbose_name_plural = 'Настройки сайта' diff --git a/templates/partials/base.html b/templates/partials/base.html index 1ad99e2..0d72d28 100644 --- a/templates/partials/base.html +++ b/templates/partials/base.html @@ -47,8 +47,10 @@ + + diff --git a/users/templates/contractor_profile.html b/users/templates/contractor_profile.html index 779a67a..fbc1a65 100644 --- a/users/templates/contractor_profile.html +++ b/users/templates/contractor_profile.html @@ -123,12 +123,12 @@