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 @@ + + +
+ +- Дизай-проект квартиры на набережной 200 m2 -
-- Испонитель: Группа Икс -
-- Чаты: Иванов, Петров, Пенкин -
- - - Полное описание заказа - -- Иванов Петр Иванович -
- - 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. -
-Контакты
- Дизай-проект квартиры на набережной 200 m2 -
-- Заказчик: Группа Икс -
-- 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- 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 amet2 / Резервирование
- Резервирование заказчиком суммы оплаты по заказ. Деньги перечисляются и хранятся на сайте. -
+ Резервирование заказчиком суммы оплаты по заказ.3 / Выполнение работы
- Процесс выполнения задания в заказе до получения заказчиком итогового результата работы. -
+ Процесс выполнения задания в заказе