From f8aa7c60e7069e4c16e7dba7e4b4a8cb967bfcea Mon Sep 17 00:00:00 2001
From: Mukhtar
Date: Mon, 27 Jun 2016 20:01:52 +0300
Subject: [PATCH] #ARC-16 add chat app files
---
archilance/urls.py | 3 +-
archilance/views.py | 3 +
chat/app.py | 50 ++++++++++
chat/app2.py | 19 ++++
templates/chat_test.html | 31 ++++++
users/templates/customer_chat.html | 145 +----------------------------
users/views.py | 1 -
7 files changed, 110 insertions(+), 142 deletions(-)
create mode 100644 chat/app.py
create mode 100644 chat/app2.py
create mode 100644 templates/chat_test.html
diff --git a/archilance/urls.py b/archilance/urls.py
index d6f7aa8..b890a8a 100644
--- a/archilance/urls.py
+++ b/archilance/urls.py
@@ -5,10 +5,11 @@ from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views.generic import TemplateView
-from .views import HomeTemplateView
+from .views import HomeTemplateView, TestChatTemplateView
urlpatterns = [
url(r'^$', HomeTemplateView.as_view()),
+ url(r'^chattest$', TestChatTemplateView.as_view()),
url(r'^test/$', TemplateView.as_view(template_name='test.html'), name='test'),
url(r'^projects/', include('projects.urls')),
url(r'^specializations/', include('specializations.urls')),
diff --git a/archilance/views.py b/archilance/views.py
index 28aedad..a4fa976 100644
--- a/archilance/views.py
+++ b/archilance/views.py
@@ -2,3 +2,6 @@ from django.views.generic import TemplateView
class HomeTemplateView(TemplateView):
template_name = 'home.html'
+
+class TestChatTemplateView(TemplateView):
+ template_name = 'chat_test.html'
diff --git a/chat/app.py b/chat/app.py
new file mode 100644
index 0000000..0296ea2
--- /dev/null
+++ b/chat/app.py
@@ -0,0 +1,50 @@
+from tornado import web, ioloop, options, websocket
+import os.path
+
+clients = []
+messages = []
+
+class Application(web.Application):
+ def __init__(self):
+ handlers = [
+ (r"/", MainHandler),
+ (r"/chat", ChatHandler),
+ ]
+ settings = dict(
+ cookie_secret="tes12323hhdfdfre9312313",
+ template_path=os.path.join(os.path.dirname(__file__), "templates"),
+ static_path=os.path.join(os.path.dirname(__file__), "static"),
+ xsrf_cookies=True,
+ )
+ super().__init__(handlers, **settings)
+
+
+class MainHandler(web.RequestHandler):
+ def get(self):
+ self.render("index.html")
+
+
+class ChatHandler(websocket.WebSocketHandler):
+
+ def open(self):
+ print("Web socket opened")
+ clients.append(self)
+
+ def on_message(self, message):
+ messages.append({'msg':message})
+ for msg in messages:
+ self.write_message(msg)
+
+ def check_origin(self, origin):
+ return True
+
+
+def main():
+ options.parse_command_line()
+ app = Application()
+ app.listen(8888)
+ ioloop.IOLoop.current().start()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/chat/app2.py b/chat/app2.py
new file mode 100644
index 0000000..2859b39
--- /dev/null
+++ b/chat/app2.py
@@ -0,0 +1,19 @@
+import logging
+import datetime
+from redis import StrictRedis
+from tornado import web, websocket, escape
+
+r = StrictRedis(db=1)
+
+logger = logging.getLogger('handlers')
+
+
+class ChatHandler(websocket.WebSocketHandler):
+
+ waiters = set()
+
+ def open(self, *args, **kwargs):
+ self.chnl = kwargs.get('channel', 'main')
+ self.waiters.add((self.chn1, self))
+ self.chnl_key = 'channels:{}'
+
diff --git a/templates/chat_test.html b/templates/chat_test.html
new file mode 100644
index 0000000..41fe191
--- /dev/null
+++ b/templates/chat_test.html
@@ -0,0 +1,31 @@
+
+
+
+
+ Title
+
+
+Всем привет , дети мои!!
+
+
+
+
+
diff --git a/users/templates/customer_chat.html b/users/templates/customer_chat.html
index daca8b0..252d488 100644
--- a/users/templates/customer_chat.html
+++ b/users/templates/customer_chat.html
@@ -77,30 +77,6 @@
-
-
-
- Дизай-проект квартиры на набережной 200 m2
-
-
-
- Испонитель: Группа Икс
-
-
- - Иванов Петр Иванович
- - Сергей Пенкин
- - Александ Смирнов
- - Иванов Петр
-
-
- Чаты: Иванов, Петров, Пенкин
-
-
-
- Полное описание заказа
-
-
-
@@ -130,45 +106,6 @@
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.
-
-
-
- Иванов Петр Иванович
-
-
- 13.0.2016 / 21:05
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.
-
-
-
-
-
- Вы
-
-
- 13.0.2016 / 21:05
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.
-
-
-
-
-
- Вы
-
-
- 13.0.2016 / 21:05
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-
-
@@ -185,7 +122,7 @@
Контакты
-
-
-
- Дизай-проект квартиры на набережной 200 m2
-
-
-
@@ -317,8 +225,7 @@
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.
-
+ Lorem ipsum dolor sit amet
@@ -330,47 +237,7 @@
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.
-
-
-
-
-
- Иванов Петр Иванович
-
-
- 13.0.2016 / 21:05
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.
-
-
-
-
-
- Вы
-
-
- 13.0.2016 / 21:05
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo.
-
-
-
-
-
- Вы
-
-
- 13.0.2016 / 21:05
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-
+ Lorem ipsum dolor sit amet
@@ -425,8 +292,7 @@
2 / Резервирование
- Резервирование заказчиком суммы оплаты по заказ. Деньги перечисляются и хранятся на сайте.
-
+ Резервирование заказчиком суммы оплаты по заказ.
diff --git a/users/views.py b/users/views.py
index 34f03c5..aeeb4e9 100644
--- a/users/views.py
+++ b/users/views.py
@@ -144,7 +144,6 @@ class CustomerChat(View):
template_name = 'customer_chat.html'
def get(self, request, *args, **kwargs):
-
return render(request, self.template_name)