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

Контакты

- mess-image + mess-image

Иванов Петр Иванович @@ -211,16 +148,6 @@ 7мб

-
  • - Архитерурное 2.jpg - 7мб -
    -
  • -
  • - Архитерурное 2.jpg - 7мб -
    -
  • Распечатать с помощью ресурса @@ -285,25 +212,6 @@
    -
    - -

    - Дизай-проект квартиры на набережной 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 / Резервирование

    - Резервирование заказчиком суммы оплаты по заказ. Деньги перечисляются и хранятся на сайте. -

    + Резервирование заказчиком суммы оплаты по заказ.

    • Сумма еще не зарезервирована
    • Сумма за этап1, Зарезервирована
    • @@ -435,8 +301,7 @@

      3 / Выполнение работы

      - Процесс выполнения задания в заказе до получения заказчиком итогового результата работы. -

      + Процесс выполнения задания в заказе

    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)