From f3564ee9437b2a16ffe65f4f6a2ec13db245f46e Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Wed, 20 Jul 2016 15:12:59 +0300 Subject: [PATCH 1/3] #ARC-11 add changes for views --- api/views.py | 5 +- chat/templates/chat_contractor.html | 69 +-- chat/templates/chat_customer.html | 638 +++++++++++++++------------- chat/views.py | 42 +- templates/home.html | 2 +- 5 files changed, 418 insertions(+), 338 deletions(-) diff --git a/api/views.py b/api/views.py index ffe3cf5..408a7ed 100755 --- a/api/views.py +++ b/api/views.py @@ -39,11 +39,10 @@ class MessageViewSet(ModelViewSet): 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)) + if search_param == 'in': + queryset = queryset.filter(Q(sender__in=[sender_id,recipent_id]),Q(recipent__in=[sender_id,recipent_id])).order_by('created') return queryset diff --git a/chat/templates/chat_contractor.html b/chat/templates/chat_contractor.html index 1ac5f6f..89f5380 100644 --- a/chat/templates/chat_contractor.html +++ b/chat/templates/chat_contractor.html @@ -1,11 +1,12 @@ {% extends 'partials/base.html' %} {% load staticfiles %} + {% load thumbnail %} {% block content %} {% include 'partials/header.html' %}
-

Чат {{ request.user }}

+

Чат {{ request.user }} {{ request.user.pk }}

@@ -33,20 +34,19 @@

Контакты

- {% for contact in contractor_contacts %} -
+ {% for contact in contacts_users %} +
+
- - + +
@@ -137,7 +138,7 @@

Заказы

{% for order in orders %} -
+

{{ order }} @@ -161,15 +162,15 @@

- {% for msg in chat_messages %} -
-
-

{{ msg.sender.get_full_name }}

- {{ msg.created }} -
-

{{ msg }}

-
- {% endfor %} +{# {% for msg in chat_messages %}#} +{#
#} +{#
#} +{#

{{ msg.sender.get_full_name }}

#} +{# {{ msg.created }}#} +{#
#} +{#

{{ msg }}

#} +{#
#} +{# {% endfor %}#}
@@ -364,6 +365,7 @@ var SocketHandler = function () { }; sock.onmessage = function (event) { console.log(event.data); + alert(event.data); var message = JSON.parse(event.data); var inbox = document.getElementById('message-chat-space'); inbox.innerHTML += '
' + @@ -404,6 +406,7 @@ var SocketHandler = function () { } $(function () { + var currentChatUser = {{ request.user.pk }}; var socket = new SocketHandler(); var form = document.getElementById('message_form'); var csrftoken = getCookie('csrftoken'); @@ -411,7 +414,9 @@ $(function () { // Вытащить сообщения для чата заказа $('.order-block').on('click', function () { var orderId = $(this).attr('data-id'); + var recipentId = $(this).attr('data-recipent-id'); $("#chat-contractor-order #orderId").val(orderId); + $("#chat-contractor-order #recipentId").val(recipentId); var inbox = document.getElementById('message-chat-order-space'); inbox.innerHTML = ''; $.ajax({ @@ -439,14 +444,21 @@ $(function () { $.ajax({ url: '/api/message', type: 'GET', - data: {csrfmiddlewaretoken: csrftoken, 'recipent__id': userId}, + data: {csrfmiddlewaretoken: csrftoken, 'operand': 'in', 'sender_id':currentChatUser,'recipent_id': userId}, dataType: 'json', success: function (json) { $.each(json.results, function (i, v) { + console.log(v.sender.id); - console.log(v.recipent.id); - inbox.innerHTML += '
' + - '

Иванов

13.0.2016
' + + var senderName = 'Вы'; + var className = 'youChat'; + if(v.sender.id == userId){ + senderName = v.sender.username; + className = ''; + } + + inbox.innerHTML += '
' + + '

'+ senderName +'

'+ v.created +'
' + '

' + v.text + '

'; }); } @@ -469,14 +481,15 @@ $(function () { } }); + var inbox = $('#message-chat-space').html(); + $('#message-chat-space').html(inbox + '
' + + '

Вы

Сейчас
' + + '

' + chatMessage +'

'); + $("#chat").val(""); }); }); - - - - {% endblock %} diff --git a/chat/templates/chat_customer.html b/chat/templates/chat_customer.html index aab3ae6..57924d8 100644 --- a/chat/templates/chat_customer.html +++ b/chat/templates/chat_customer.html @@ -1,326 +1,378 @@ {% extends 'partials/base.html' %} {% load staticfiles %} +{% load thumbnail %} {% block content %} -{% include 'partials/header.html' %} -
-
-
-

Чат

-
-
-
-
- -
-
-
-
-
-
-

Контакты

- {% for contact in customer_contacts %} - - - {% endfor %} - -
-
-
-
-
- - - - - -
-
-

Прикрепить файл

+ {% include 'partials/header.html' %} +
+
+
+

Чат

+
+
+
+
+ +
+
+
+
+
+
+

Контакты

+ {% for contact in contacts_users %} +
+
+ {% thumbnail contact.avatar "60x60" crop="center" as im %} + mess-image + {% endthumbnail %} +
+

+ {{ contact.username }} {{ contact.username }} +

+ Контакты + 0 + + Удалить контакт + +
+ {% endfor %} + +
+
+
+
+
+ + + + + +
+
+

Прикрепить файл

Не более 10 файлов с общим объемом 500мб -
- - отправить - -
- - -
-
-
-

Контакты

- -
-
-
- Начало: - Срок сдачи: -
-
- 13.0.2016 - 13.0.2016 -
-
-
-

Входящие документы

-
    -
  • - Архитерурное 2.jpg - 7мб -
    -
  • -
- - Распечатать с помощью ресурса - -
-
-

Для заметок

- - сохранить -
- - -
-
-
-
- -
-

Заказы

- {% for order in orders %} -
- -

- {{ order }} -

-
-

- Испонитель: {{ order.order.contractor.get_full_name }} -

-{#

#} -{# Чаты: Иванов, Петров, Пенкин#} -{#

#} - - - Полное описание заказа - -
-
- {% endfor%} -
- -
-
-
- {% for msg in chat_messages %} -{#
#} -{#
#} -{#

{{ msg.sender.get_full_name }}

#} -{# {{ msg.created }}#} -{#
#} -{#

{{ msg }}

#} -{#
#} - {% endfor %} +
+ + отправить + +
+ + +
+
+
+

Контакты

+ +
+
+
+ Начало: + Срок сдачи: +
+
+ 13.0.2016 + 13.0.2016 +
+
+
+

Входящие документы

+
    +
  • + Архитерурное 2.jpg + 7мб +
    +
  • +
+ + Распечатать с помощью ресурса + +
+
+

Для заметок

+ + сохранить +
+ + +
-
- - - - -
-
-

Прикрепить файл

+
+
+ +
+

Заказы

+ {% for order in orders %} +
+ +

+ {{ order }} +

+
+

+ Испонитель: {{ order.order.contractor.get_full_name }} +

+ {#

#} + {# Чаты: Иванов, Петров, Пенкин#} + {#

#} + + + Полное описание заказа + +
+
+ {% endfor %} +
+ +
+
+
+ {% for msg in chat_messages %} + {#
#} + {#
#} + {#

{{ msg.sender.get_full_name }}

#} + {# {{ msg.created }}#} + {#
#} + {#

{{ msg }}

#} + {#
#} + {% endfor %} +
+ + + + + +
+
+

Прикрепить файл

Не более 10 файлов с общим объемом 500мб -
- отправить -
- -
-
-
-

Для заметок

- - сохранить -
- -
-
-
- {% include 'partials/footer.html' %} -
-
+
+ отправить +
+ +
+
+
+

Для заметок

+ + сохранить +
+ +
+
+
+ {% include 'partials/footer.html' %} +
+
{% endblock %} {% block js_block %} + {% endblock %} diff --git a/chat/views.py b/chat/views.py index 9bae005..e1d3b70 100644 --- a/chat/views.py +++ b/chat/views.py @@ -3,6 +3,7 @@ from django.views.generic import View from django.db.models import Q from .models import Message +from users.models import User class ChatUserView(View): @@ -10,25 +11,40 @@ class ChatUserView(View): def get(self, request, *args, **kwargs): if request.user.is_authenticated() and request.user.is_customer(): - customer_contacts = Message.objects.values('sender_id','recipent_id').\ - filter(Q(recipent_id=request.user.pk)| Q(sender_id=request.user.pk)).distinct() + customer_contacts = Message.objects.values_list('sender_id', 'recipent_id'). \ + filter(Q(recipent_id=request.user.pk) | Q(sender_id=request.user.pk)).distinct() + + users_ids = [] + for msg in customer_contacts: + a, b = msg + if a != request.user.pk: + users_ids.append(a) + if b != request.user.pk: + users_ids.append(b) + contacts_users = User.objects.filter(pk__in=users_ids) + chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)) orders = request.user.projects.select_related('order').all() self.template_name = 'chat_customer.html' - return render(request, self.template_name, {'customer_contacts': customer_contacts, + return render(request, self.template_name, {'contacts_users': contacts_users, 'chat_messages': chat_messages, 'orders': orders}) else: orders = request.user.orders.all() - # contractor_contacts = request.user.sender_messages.values('recipent_id').distinct('recipent_id').\ - # values('recipent_id__email', 'recipent_id__first_name', 'recipent_id__last_name', 'recipent_id__id') - contractor_contacts = Message.objects.values('sender_id','recipent_id').\ - filter(Q(recipent_id=request.user.pk)| Q(sender_id=request.user.pk)).distinct() - - chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)).order_by('created') + contractor_contacts = Message.objects.values_list('sender_id', 'recipent_id').filter( + Q(recipent_id=request.user.pk) | Q(sender_id=request.user.pk)).distinct() + users_ids = [] + for msg in contractor_contacts: + a, b = msg + if a != request.user.pk: + users_ids.append(a) + if b != request.user.pk: + users_ids.append(b) + contacts_users = User.objects.filter(pk__in=users_ids) + chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)).order_by( + 'created') self.template_name = 'chat_contractor.html' return render(request, self.template_name, {'orders': orders, - 'contractor_contacts': contractor_contacts, - 'chat_messages': chat_messages}) - - + 'contacts_users': contacts_users, + 'chat_messages': chat_messages + }) diff --git a/templates/home.html b/templates/home.html index ce3ac94..2052352 100644 --- a/templates/home.html +++ b/templates/home.html @@ -50,7 +50,7 @@
- +
From 5797457346587514afaa05a6a8f653db27c64fc8 Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Fri, 22 Jul 2016 10:20:06 +0300 Subject: [PATCH 2/3] #ARC-22 update testapp.py --- chat/testapp.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/chat/testapp.py b/chat/testapp.py index 401abf0..f8e5fa7 100644 --- a/chat/testapp.py +++ b/chat/testapp.py @@ -56,10 +56,8 @@ class TutorialHandler(websocket.WebSocketHandler): waiters = set() def open(self, *args, **kwargs): - self.waiters.add(self) - # print(dir(self)) - print(self.patch) - # print(self.waiters) + self.user_id = kwargs.get('user_id',1) + self.waiters.add((self.user_id, self)) # @gen.coroutine def on_message(self, message): @@ -70,13 +68,16 @@ class TutorialHandler(websocket.WebSocketHandler): if parsed['format_type'] == 'add_message_contact': self.add_message_for_contact(parsed['data']['chat_message'], parsed['data']['sender_id'], parsed['data']['recipent_id']) + elif parsed['format_type'] == 'add_message_order': + self.add_message_for_order(parsed['data']['chat_message'], parsed['data']['sender_id'], + parsed['data']['recipent_id'], parsed['data']['order_id']) elif parsed['format_type'] == 'order_message': self.get_messages_from_order_chat(parsed['order_id']) else: self.get_messages_from_order(parsed['user_id']) def on_close(self): - self.waiters.remove(self) + self.waiters.remove((self.user_id, self)) # insert_sql = "INSERT INTO chat_message (id,text,created,order_id, user_id) VALUES (DEFAULT,'{0}',NOW(),6,4)".format(str(parsed['message'])) # yield self.db.execute(insert_sql) @@ -91,9 +92,19 @@ class TutorialHandler(websocket.WebSocketHandler): insert_sql = "INSERT INTO chat_message (id,text,created,order_id, sender_id,recipent_id, private_type) " \ "VALUES (DEFAULT,'{0}',NOW(),NULL,{1},{2},'true')".format(message, sender_id, recipent_id) yield self.db.execute(insert_sql) - for waiter in self.waiters: + waiters = tuple(w for c, w in self.waiters if c == recipent_id) + for waiter in waiters: waiter.write_message({'msg': message, 'answer_type': 'add_contact'}) + @gen.coroutine + def add_message_for_order(self, message, sender_id,recipent_id, order_id): + insert_sql = "INSERT INTO chat_message (id,text,created,order_id, sender_id,recipent_id, private_type) " \ + "VALUES (DEFAULT,'{0}',NOW(),{1},{2},{3},'false')".format(message,order_id, sender_id, recipent_id) + yield self.db.execute(insert_sql) + waiters = tuple(w for c, w in self.waiters if c == recipent_id) + for waiter in waiters: + waiter.write_message({'msg': message, 'answer_type': 'add_order'}) + @gen.coroutine def get_messages_from_order(self, order_id): sql = "SELECT text FROM chat_message WHERE recipent_id=" + order_id @@ -119,7 +130,7 @@ class TutorialHandler(websocket.WebSocketHandler): class Application(web.Application): def __init__(self): handlers = [ - (r"/chat", TutorialHandler), + (r"/chat/(?P\d+)/", TutorialHandler), (r"/test", TestHandler), ] super().__init__(handlers=handlers, **settings) From 5715a301e2fd410f3f4dd13293f41e0348ed7832 Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Fri, 22 Jul 2016 14:46:50 +0300 Subject: [PATCH 3/3] #ARC-22 Restore migrations all --- .../0001_initial.py | 0 .../0002_auto_20160608_1555.py | 0 .../0003_auto_20160629_1914.py | 0 .../0004_auto_20160630_1204.py | 0 .../0005_notes.py | 0 .../0006_auto_20160704_1811.py | 0 .../__init__.py | 0 chat/templates/chat_contractor.html | 925 +++++++++--------- chat/templates/chat_customer.html | 43 + .../0001_initial.py | 0 .../0002_auto_20160615_1625.py | 0 .../0003_mainpage.py | 0 .../0004_settings.py | 0 .../__init__.py | 0 .../0001_initial.py | 0 .../0002_auto_20160519_1022.py | 0 .../0003_auto_20160519_1312.py | 0 .../0004_auto_20160519_1338.py | 0 .../0005_auto_20160524_1053.py | 0 .../0006_auto_20160524_1208.py | 0 .../0007_auto_20160525_0948.py | 0 .../0008_auto_20160525_1044.py | 0 .../0009_auto_20160525_1524.py | 0 .../0010_auto_20160525_1525.py | 0 .../0011_auto_20160525_1526.py | 0 .../0012_auto_20160530_1355.py | 0 .../0013_auto_20160602_1203.py | 0 .../0014_auto_20160602_1559.py | 0 .../0015_auto_20160602_1606.py | 0 .../0016_auto_20160603_1140.py | 0 .../0017_auto_20160606_1659.py | 0 .../0018_auto_20160607_1915.py | 0 .../0019_auto_20160607_1916.py | 0 .../0020_auto_20160608_1555.py | 0 .../0021_auto_20160608_1602.py | 0 .../0022_auto_20160608_1605.py | 0 .../0023_auto_20160608_1609.py | 0 .../0024_auto_20160609_1808.py | 0 .../0025_auto_20160609_1916.py | 0 .../0026_auto_20160610_1204.py | 0 .../0027_auto_20160610_1231.py | 0 .../0028_auto_20160610_1301.py | 0 .../0029_project_active.py | 0 .../0030_auto_20160610_1430.py | 0 .../0031_auto_20160610_1434.py | 0 .../0032_auto_20160615_1610.py | 0 .../0033_auto_20160621_1057.py | 0 .../0034_auto_20160622_1200.py | 0 .../0035_auto_20160630_1635.py | 0 .../0036_auto_20160630_1846.py | 0 .../0037_auto_20160704_1444.py | 0 .../0038_auto_20160706_1249.py | 0 .../0039_auto_20160707_1724.py | 0 .../__init__.py | 0 .../0001_initial.py | 0 .../0002_auto_20160531_0906.py | 0 .../__init__.py | 0 .../0001_initial.py | 0 .../0002_auto_20160602_1203.py | 0 .../__init__.py | 0 .../0001_initial.py | 0 .../0002_team_groups.py | 0 .../0003_user_created_at.py | 0 .../0004_auto_20160524_1053.py | 0 .../0005_auto_20160524_1054.py | 0 .../0006_auto_20160525_0948.py | 0 .../0007_auto_20160525_1526.py | 0 .../0008_auto_20160525_1527.py | 0 .../0009_auto_20160602_1213.py | 0 .../0010_user_last_time_visit.py | 0 .../0011_user_contractor_specializations.py | 0 .../0012_user_status.py | 0 .../0013_auto_20160610_1703.py | 0 .../0014_auto_20160615_1611.py | 0 .../0015_auto_20160615_1747.py | 0 .../0016_auto_20160617_1815.py | 0 .../0017_user_phone.py | 0 .../0018_auto_20160710_1838.py | 0 .../0019_auto_20160710_1950.py | 0 .../0020_auto_20160711_1759.py | 0 .../0021_contractorresumefiles_resume.py | 0 .../__init__.py | 0 .../0001_initial.py | 0 .../0002_auto_20160607_1755.py | 0 .../0003_auto_20160621_1259.py | 0 .../0004_worksell_price.py | 0 .../0005_auto_20160704_1449.py | 0 .../0006_worksellphoto.py | 0 .../0007_auto_20160705_1514.py | 0 .../0008_auto_20160706_1249.py | 0 .../0009_auto_20160707_1315.py | 0 .../0010_auto_20160707_1401.py | 0 .../0011_picture.py | 0 .../__init__.py | 0 94 files changed, 514 insertions(+), 454 deletions(-) rename chat/{migrations => migrations_mukhtar}/0001_initial.py (100%) rename chat/{migrations => migrations_mukhtar}/0002_auto_20160608_1555.py (100%) rename chat/{migrations => migrations_mukhtar}/0003_auto_20160629_1914.py (100%) rename chat/{migrations => migrations_mukhtar}/0004_auto_20160630_1204.py (100%) rename chat/{migrations => migrations_mukhtar}/0005_notes.py (100%) rename chat/{migrations => migrations_mukhtar}/0006_auto_20160704_1811.py (100%) rename chat/{migrations => migrations_mukhtar}/__init__.py (100%) rename common/{migrations => migrations_mukhtar}/0001_initial.py (100%) rename common/{migrations => migrations_mukhtar}/0002_auto_20160615_1625.py (100%) rename common/{migrations => migrations_mukhtar}/0003_mainpage.py (100%) rename common/{migrations => migrations_mukhtar}/0004_settings.py (100%) rename common/{migrations => migrations_mukhtar}/__init__.py (100%) rename projects/{migrations => migrations_mukhtar}/0001_initial.py (100%) rename projects/{migrations => migrations_mukhtar}/0002_auto_20160519_1022.py (100%) rename projects/{migrations => migrations_mukhtar}/0003_auto_20160519_1312.py (100%) rename projects/{migrations => migrations_mukhtar}/0004_auto_20160519_1338.py (100%) rename projects/{migrations => migrations_mukhtar}/0005_auto_20160524_1053.py (100%) rename projects/{migrations => migrations_mukhtar}/0006_auto_20160524_1208.py (100%) rename projects/{migrations => migrations_mukhtar}/0007_auto_20160525_0948.py (100%) rename projects/{migrations => migrations_mukhtar}/0008_auto_20160525_1044.py (100%) rename projects/{migrations => migrations_mukhtar}/0009_auto_20160525_1524.py (100%) rename projects/{migrations => migrations_mukhtar}/0010_auto_20160525_1525.py (100%) rename projects/{migrations => migrations_mukhtar}/0011_auto_20160525_1526.py (100%) rename projects/{migrations => migrations_mukhtar}/0012_auto_20160530_1355.py (100%) rename projects/{migrations => migrations_mukhtar}/0013_auto_20160602_1203.py (100%) rename projects/{migrations => migrations_mukhtar}/0014_auto_20160602_1559.py (100%) rename projects/{migrations => migrations_mukhtar}/0015_auto_20160602_1606.py (100%) rename projects/{migrations => migrations_mukhtar}/0016_auto_20160603_1140.py (100%) rename projects/{migrations => migrations_mukhtar}/0017_auto_20160606_1659.py (100%) rename projects/{migrations => migrations_mukhtar}/0018_auto_20160607_1915.py (100%) rename projects/{migrations => migrations_mukhtar}/0019_auto_20160607_1916.py (100%) rename projects/{migrations => migrations_mukhtar}/0020_auto_20160608_1555.py (100%) rename projects/{migrations => migrations_mukhtar}/0021_auto_20160608_1602.py (100%) rename projects/{migrations => migrations_mukhtar}/0022_auto_20160608_1605.py (100%) rename projects/{migrations => migrations_mukhtar}/0023_auto_20160608_1609.py (100%) rename projects/{migrations => migrations_mukhtar}/0024_auto_20160609_1808.py (100%) rename projects/{migrations => migrations_mukhtar}/0025_auto_20160609_1916.py (100%) rename projects/{migrations => migrations_mukhtar}/0026_auto_20160610_1204.py (100%) rename projects/{migrations => migrations_mukhtar}/0027_auto_20160610_1231.py (100%) rename projects/{migrations => migrations_mukhtar}/0028_auto_20160610_1301.py (100%) rename projects/{migrations => migrations_mukhtar}/0029_project_active.py (100%) rename projects/{migrations => migrations_mukhtar}/0030_auto_20160610_1430.py (100%) rename projects/{migrations => migrations_mukhtar}/0031_auto_20160610_1434.py (100%) rename projects/{migrations => migrations_mukhtar}/0032_auto_20160615_1610.py (100%) rename projects/{migrations => migrations_mukhtar}/0033_auto_20160621_1057.py (100%) rename projects/{migrations => migrations_mukhtar}/0034_auto_20160622_1200.py (100%) rename projects/{migrations => migrations_mukhtar}/0035_auto_20160630_1635.py (100%) rename projects/{migrations => migrations_mukhtar}/0036_auto_20160630_1846.py (100%) rename projects/{migrations => migrations_mukhtar}/0037_auto_20160704_1444.py (100%) rename projects/{migrations => migrations_mukhtar}/0038_auto_20160706_1249.py (100%) rename projects/{migrations => migrations_mukhtar}/0039_auto_20160707_1724.py (100%) rename projects/{migrations => migrations_mukhtar}/__init__.py (100%) rename reviews/{migrations => migrations_mukhtar}/0001_initial.py (100%) rename reviews/{migrations => migrations_mukhtar}/0002_auto_20160531_0906.py (100%) rename reviews/{migrations => migrations_mukhtar}/__init__.py (100%) rename specializations/{migrations => migrations_mukhtar}/0001_initial.py (100%) rename specializations/{migrations => migrations_mukhtar}/0002_auto_20160602_1203.py (100%) rename specializations/{migrations => migrations_mukhtar}/__init__.py (100%) rename users/{migrations => migrations_mukhtar}/0001_initial.py (100%) rename users/{migrations => migrations_mukhtar}/0002_team_groups.py (100%) rename users/{migrations => migrations_mukhtar}/0003_user_created_at.py (100%) rename users/{migrations => migrations_mukhtar}/0004_auto_20160524_1053.py (100%) rename users/{migrations => migrations_mukhtar}/0005_auto_20160524_1054.py (100%) rename users/{migrations => migrations_mukhtar}/0006_auto_20160525_0948.py (100%) rename users/{migrations => migrations_mukhtar}/0007_auto_20160525_1526.py (100%) rename users/{migrations => migrations_mukhtar}/0008_auto_20160525_1527.py (100%) rename users/{migrations => migrations_mukhtar}/0009_auto_20160602_1213.py (100%) rename users/{migrations => migrations_mukhtar}/0010_user_last_time_visit.py (100%) rename users/{migrations => migrations_mukhtar}/0011_user_contractor_specializations.py (100%) rename users/{migrations => migrations_mukhtar}/0012_user_status.py (100%) rename users/{migrations => migrations_mukhtar}/0013_auto_20160610_1703.py (100%) rename users/{migrations => migrations_mukhtar}/0014_auto_20160615_1611.py (100%) rename users/{migrations => migrations_mukhtar}/0015_auto_20160615_1747.py (100%) rename users/{migrations => migrations_mukhtar}/0016_auto_20160617_1815.py (100%) rename users/{migrations => migrations_mukhtar}/0017_user_phone.py (100%) rename users/{migrations => migrations_mukhtar}/0018_auto_20160710_1838.py (100%) rename users/{migrations => migrations_mukhtar}/0019_auto_20160710_1950.py (100%) rename users/{migrations => migrations_mukhtar}/0020_auto_20160711_1759.py (100%) rename users/{migrations => migrations_mukhtar}/0021_contractorresumefiles_resume.py (100%) rename users/{migrations => migrations_mukhtar}/__init__.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0001_initial.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0002_auto_20160607_1755.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0003_auto_20160621_1259.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0004_worksell_price.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0005_auto_20160704_1449.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0006_worksellphoto.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0007_auto_20160705_1514.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0008_auto_20160706_1249.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0009_auto_20160707_1315.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0010_auto_20160707_1401.py (100%) rename work_sell/{migrations => migrations_mukhtar}/0011_picture.py (100%) rename work_sell/{migrations => migrations_mukhtar}/__init__.py (100%) diff --git a/chat/migrations/0001_initial.py b/chat/migrations_mukhtar/0001_initial.py similarity index 100% rename from chat/migrations/0001_initial.py rename to chat/migrations_mukhtar/0001_initial.py diff --git a/chat/migrations/0002_auto_20160608_1555.py b/chat/migrations_mukhtar/0002_auto_20160608_1555.py similarity index 100% rename from chat/migrations/0002_auto_20160608_1555.py rename to chat/migrations_mukhtar/0002_auto_20160608_1555.py diff --git a/chat/migrations/0003_auto_20160629_1914.py b/chat/migrations_mukhtar/0003_auto_20160629_1914.py similarity index 100% rename from chat/migrations/0003_auto_20160629_1914.py rename to chat/migrations_mukhtar/0003_auto_20160629_1914.py diff --git a/chat/migrations/0004_auto_20160630_1204.py b/chat/migrations_mukhtar/0004_auto_20160630_1204.py similarity index 100% rename from chat/migrations/0004_auto_20160630_1204.py rename to chat/migrations_mukhtar/0004_auto_20160630_1204.py diff --git a/chat/migrations/0005_notes.py b/chat/migrations_mukhtar/0005_notes.py similarity index 100% rename from chat/migrations/0005_notes.py rename to chat/migrations_mukhtar/0005_notes.py diff --git a/chat/migrations/0006_auto_20160704_1811.py b/chat/migrations_mukhtar/0006_auto_20160704_1811.py similarity index 100% rename from chat/migrations/0006_auto_20160704_1811.py rename to chat/migrations_mukhtar/0006_auto_20160704_1811.py diff --git a/chat/migrations/__init__.py b/chat/migrations_mukhtar/__init__.py similarity index 100% rename from chat/migrations/__init__.py rename to chat/migrations_mukhtar/__init__.py diff --git a/chat/templates/chat_contractor.html b/chat/templates/chat_contractor.html index 89f5380..2f27655 100644 --- a/chat/templates/chat_contractor.html +++ b/chat/templates/chat_contractor.html @@ -1,495 +1,512 @@ {% extends 'partials/base.html' %} {% load staticfiles %} - {% load thumbnail %} +{% load thumbnail %} {% block content %} -{% include 'partials/header.html' %} -
-
-
-

Чат {{ request.user }} {{ request.user.pk }}

-
-
-
-
-
- +
+
+
+
+
+
+
+

Контакты

+ {% for contact in contacts_users %} +
+
+ {% thumbnail contact.avatar "60x60" crop="center" as im %} + mess-image + {% endthumbnail %} +
+

+ + {{ contact.username }}{{ contact.username }}{{ contact.first_name }} {{ contact.last_name }} +

+ Контакты + + 0 + + Удалить контакт + +
+ {% endfor %} + +
+
+
+
+ +
+ + + + + +
+
+

Прикрепить файл

Не более 10 файлов с общим объемом 500мб -
- - отправить - -
- - -
-
-
-

Контакты

- -
-
-
- Начало: - Срок сдачи: -
-
- 13.0.2016 - 13.0.2016 -
-
-
-

Входящие документы

-
    -
  • - Архитерурное 2.jpg - 7мб -
    -
  • - -
- - Распечатать с помощью ресурса - -
-
-

Для заметок

- - сохранить -
- - -
-
-
-
- -
-

Заказы

- {% for order in orders %} -
- -

- {{ order }} -

-
-

- Испонитель: {{ request.user.get_full_name }} -

-

- Чаты: Иванов, Петров, Пенкин -

- - - Полное описание заказа - -
-
- {% endfor%} -
- -
-
-
-{# {% for msg in chat_messages %}#} -{#
#} -{#
#} -{#

{{ msg.sender.get_full_name }}

#} -{# {{ msg.created }}#} -{#
#} -{#

{{ msg }}

#} -{#
#} -{# {% endfor %}#} +
+ + отправить + +
+ + +
+
+
+

Контакты

+ +
+
+
+ Начало: + Срок сдачи: +
+
+ 13.0.2016 + 13.0.2016 +
+
+
+

Входящие документы

+
    +
  • + Архитерурное 2.jpg + 7мб +
    +
  • + +
+ + Распечатать с помощью ресурса + +
+
+

Для заметок

+ + сохранить +
+ + +
-
- - - - - -
-
-

Прикрепить файл

+
+
+ +
+

Заказы

+ {% for order in orders %} +
+ +

+ {{ order }} +

+
+

+ Испонитель: {{ request.user.get_full_name }} +

+

+ Чаты: Иванов, Петров, Пенкин +

+ + + Полное описание заказа + +
+
+ {% endfor %} +
+ +
+
+
+ {# {% for msg in chat_messages %}#} + {#
#} + {#
#} + {#

{{ msg.sender.get_full_name }}

#} + {# {{ msg.created }}#} + {#
#} + {#

{{ msg }}

#} + {#
#} + {# {% endfor %}#} +
+ + + + + + +
+
+

Прикрепить файл

Не более 10 файлов с общим объемом 500мб -
- отправить -
- -
-
-
-

Для заметок

- - сохранить -
- -
-
-
-
-
-

Заказы

-
- -

- Дизай-проект квартиры на набережной 200 m2 -

-
-

- Заказчик: Группа Икс -

-
    -
  • Иванов Петр Иванович
  • -
  • Сергей Пенкин
  • -
- - - Полное описание заказа - -
-
-
- -

- Дизай-проект квартиры на набережной 200 m2 -

-
-

- Заказчик: Группа Икс -

-
    -
  • Иванов Петр Иванович
  • -
  • Сергей Пенкин
  • -
- - - Полное описание заказа - -
-
-
-
-
-
-
-

- Иванов Петр Иванович -

+
+ отправить +
+ +
+
+
+

Для заметок

+ + сохранить +
+ +
+
+
+
+
+

Заказы

+
+ +

+ Дизай-проект квартиры на набережной 200 m2 +

+
+

+ Заказчик: Группа Икс +

+
    +
  • Иванов Петр Иванович
  • +
  • Сергей Пенкин
  • +
+ + + Полное описание заказа + +
+
+
+ +

+ Дизай-проект квартиры на набережной 200 m2 +

+
+

+ Заказчик: Группа Икс +

+
    +
  • Иванов Петр Иванович
  • +
  • Сергей Пенкин
  • +
+ + + Полное описание заказа + +
+
+
+
+
+
+
+

+ Иванов Петр Иванович +

13.0.2016 / 21:05 -
-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit

-
-
-
-

- Вы -

+
+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit

+
+
+
+

+ Вы +

13.0.2016 / 21:05 -
-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit.

-
- -
-
-

Прикрепить файл

+
+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.

+
+ +
+
+

Прикрепить файл

Не более 10 файлов с общим объемом 500мб -
- отправить -
-
-
-

Этапы работы

-
-

1 / Согласование условий

-

- Обсуджение задания и условий выполнения работы. Подтверждение заказа исполнителем. -

-
-
-
-

- Этап 1Название этапа -

-

- Результаты этапа: Готовый чертеж 1 -

-
-

до 16.03.2015

- 30 000 -
-
-
-
-
-

- Этап 2Название этапа -

-

- Результаты этапа: Готовый чертеж 1 -

-
-

до 16.03.2015

- 30 000 -
-
-
- -
-

2 / Резервирование

-

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

-
    -
  • Сумма еще не зарезервирована
  • -
  • Сумма за этап1, Зарезервирована
  • -
-
-
-

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

-

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

-
-
-
-
- {% include 'partials/footer.html' %} -
-
+
+ отправить +
+
+
+

Этапы работы

+
+

1 / Согласование условий

+

+ Обсуджение задания и условий выполнения работы. Подтверждение заказа исполнителем. +

+
+
+
+

+ Этап 1Название этапа +

+

+ Результаты этапа: Готовый чертеж 1 +

+
+

до 16.03.2015

+ 30 000 +
+
+
+
+
+

+ Этап 2Название этапа +

+

+ Результаты этапа: Готовый чертеж 1 +

+
+

до 16.03.2015

+ 30 000 +
+
+
+ +
+

2 / Резервирование

+

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

+
    +
  • Сумма еще не зарезервирована
  • +
  • Сумма за этап1, Зарезервирована
  • +
+
+
+

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

+

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

+
+
+
+
+ {% include 'partials/footer.html' %} +
+
{% endblock %} {% block js_block %} -{# #} - #} + + }); + {% endblock %} diff --git a/chat/templates/chat_customer.html b/chat/templates/chat_customer.html index 57924d8..8e2c2d9 100644 --- a/chat/templates/chat_customer.html +++ b/chat/templates/chat_customer.html @@ -181,6 +181,49 @@
+

Этапы работы

+
+

1 / Согласование условий

+

+ Обсуджение задания и условий выполнения работы. Подтверждение заказа исполнителем. +

+
+
+
+

+ Этап 1 +

+
+
+ + + + +
+ + сохранить +
+ +
+
+
+
+

+ Этап 2Название этапа +

+

+ Результаты этапа: Готовый чертеж 1 +

+
+

до 16.03.2015

+ 30 000 +
+
+
+ +

Для заметок

diff --git a/common/migrations/0001_initial.py b/common/migrations_mukhtar/0001_initial.py similarity index 100% rename from common/migrations/0001_initial.py rename to common/migrations_mukhtar/0001_initial.py diff --git a/common/migrations/0002_auto_20160615_1625.py b/common/migrations_mukhtar/0002_auto_20160615_1625.py similarity index 100% rename from common/migrations/0002_auto_20160615_1625.py rename to common/migrations_mukhtar/0002_auto_20160615_1625.py diff --git a/common/migrations/0003_mainpage.py b/common/migrations_mukhtar/0003_mainpage.py similarity index 100% rename from common/migrations/0003_mainpage.py rename to common/migrations_mukhtar/0003_mainpage.py diff --git a/common/migrations/0004_settings.py b/common/migrations_mukhtar/0004_settings.py similarity index 100% rename from common/migrations/0004_settings.py rename to common/migrations_mukhtar/0004_settings.py diff --git a/common/migrations/__init__.py b/common/migrations_mukhtar/__init__.py similarity index 100% rename from common/migrations/__init__.py rename to common/migrations_mukhtar/__init__.py diff --git a/projects/migrations/0001_initial.py b/projects/migrations_mukhtar/0001_initial.py similarity index 100% rename from projects/migrations/0001_initial.py rename to projects/migrations_mukhtar/0001_initial.py diff --git a/projects/migrations/0002_auto_20160519_1022.py b/projects/migrations_mukhtar/0002_auto_20160519_1022.py similarity index 100% rename from projects/migrations/0002_auto_20160519_1022.py rename to projects/migrations_mukhtar/0002_auto_20160519_1022.py diff --git a/projects/migrations/0003_auto_20160519_1312.py b/projects/migrations_mukhtar/0003_auto_20160519_1312.py similarity index 100% rename from projects/migrations/0003_auto_20160519_1312.py rename to projects/migrations_mukhtar/0003_auto_20160519_1312.py diff --git a/projects/migrations/0004_auto_20160519_1338.py b/projects/migrations_mukhtar/0004_auto_20160519_1338.py similarity index 100% rename from projects/migrations/0004_auto_20160519_1338.py rename to projects/migrations_mukhtar/0004_auto_20160519_1338.py diff --git a/projects/migrations/0005_auto_20160524_1053.py b/projects/migrations_mukhtar/0005_auto_20160524_1053.py similarity index 100% rename from projects/migrations/0005_auto_20160524_1053.py rename to projects/migrations_mukhtar/0005_auto_20160524_1053.py diff --git a/projects/migrations/0006_auto_20160524_1208.py b/projects/migrations_mukhtar/0006_auto_20160524_1208.py similarity index 100% rename from projects/migrations/0006_auto_20160524_1208.py rename to projects/migrations_mukhtar/0006_auto_20160524_1208.py diff --git a/projects/migrations/0007_auto_20160525_0948.py b/projects/migrations_mukhtar/0007_auto_20160525_0948.py similarity index 100% rename from projects/migrations/0007_auto_20160525_0948.py rename to projects/migrations_mukhtar/0007_auto_20160525_0948.py diff --git a/projects/migrations/0008_auto_20160525_1044.py b/projects/migrations_mukhtar/0008_auto_20160525_1044.py similarity index 100% rename from projects/migrations/0008_auto_20160525_1044.py rename to projects/migrations_mukhtar/0008_auto_20160525_1044.py diff --git a/projects/migrations/0009_auto_20160525_1524.py b/projects/migrations_mukhtar/0009_auto_20160525_1524.py similarity index 100% rename from projects/migrations/0009_auto_20160525_1524.py rename to projects/migrations_mukhtar/0009_auto_20160525_1524.py diff --git a/projects/migrations/0010_auto_20160525_1525.py b/projects/migrations_mukhtar/0010_auto_20160525_1525.py similarity index 100% rename from projects/migrations/0010_auto_20160525_1525.py rename to projects/migrations_mukhtar/0010_auto_20160525_1525.py diff --git a/projects/migrations/0011_auto_20160525_1526.py b/projects/migrations_mukhtar/0011_auto_20160525_1526.py similarity index 100% rename from projects/migrations/0011_auto_20160525_1526.py rename to projects/migrations_mukhtar/0011_auto_20160525_1526.py diff --git a/projects/migrations/0012_auto_20160530_1355.py b/projects/migrations_mukhtar/0012_auto_20160530_1355.py similarity index 100% rename from projects/migrations/0012_auto_20160530_1355.py rename to projects/migrations_mukhtar/0012_auto_20160530_1355.py diff --git a/projects/migrations/0013_auto_20160602_1203.py b/projects/migrations_mukhtar/0013_auto_20160602_1203.py similarity index 100% rename from projects/migrations/0013_auto_20160602_1203.py rename to projects/migrations_mukhtar/0013_auto_20160602_1203.py diff --git a/projects/migrations/0014_auto_20160602_1559.py b/projects/migrations_mukhtar/0014_auto_20160602_1559.py similarity index 100% rename from projects/migrations/0014_auto_20160602_1559.py rename to projects/migrations_mukhtar/0014_auto_20160602_1559.py diff --git a/projects/migrations/0015_auto_20160602_1606.py b/projects/migrations_mukhtar/0015_auto_20160602_1606.py similarity index 100% rename from projects/migrations/0015_auto_20160602_1606.py rename to projects/migrations_mukhtar/0015_auto_20160602_1606.py diff --git a/projects/migrations/0016_auto_20160603_1140.py b/projects/migrations_mukhtar/0016_auto_20160603_1140.py similarity index 100% rename from projects/migrations/0016_auto_20160603_1140.py rename to projects/migrations_mukhtar/0016_auto_20160603_1140.py diff --git a/projects/migrations/0017_auto_20160606_1659.py b/projects/migrations_mukhtar/0017_auto_20160606_1659.py similarity index 100% rename from projects/migrations/0017_auto_20160606_1659.py rename to projects/migrations_mukhtar/0017_auto_20160606_1659.py diff --git a/projects/migrations/0018_auto_20160607_1915.py b/projects/migrations_mukhtar/0018_auto_20160607_1915.py similarity index 100% rename from projects/migrations/0018_auto_20160607_1915.py rename to projects/migrations_mukhtar/0018_auto_20160607_1915.py diff --git a/projects/migrations/0019_auto_20160607_1916.py b/projects/migrations_mukhtar/0019_auto_20160607_1916.py similarity index 100% rename from projects/migrations/0019_auto_20160607_1916.py rename to projects/migrations_mukhtar/0019_auto_20160607_1916.py diff --git a/projects/migrations/0020_auto_20160608_1555.py b/projects/migrations_mukhtar/0020_auto_20160608_1555.py similarity index 100% rename from projects/migrations/0020_auto_20160608_1555.py rename to projects/migrations_mukhtar/0020_auto_20160608_1555.py diff --git a/projects/migrations/0021_auto_20160608_1602.py b/projects/migrations_mukhtar/0021_auto_20160608_1602.py similarity index 100% rename from projects/migrations/0021_auto_20160608_1602.py rename to projects/migrations_mukhtar/0021_auto_20160608_1602.py diff --git a/projects/migrations/0022_auto_20160608_1605.py b/projects/migrations_mukhtar/0022_auto_20160608_1605.py similarity index 100% rename from projects/migrations/0022_auto_20160608_1605.py rename to projects/migrations_mukhtar/0022_auto_20160608_1605.py diff --git a/projects/migrations/0023_auto_20160608_1609.py b/projects/migrations_mukhtar/0023_auto_20160608_1609.py similarity index 100% rename from projects/migrations/0023_auto_20160608_1609.py rename to projects/migrations_mukhtar/0023_auto_20160608_1609.py diff --git a/projects/migrations/0024_auto_20160609_1808.py b/projects/migrations_mukhtar/0024_auto_20160609_1808.py similarity index 100% rename from projects/migrations/0024_auto_20160609_1808.py rename to projects/migrations_mukhtar/0024_auto_20160609_1808.py diff --git a/projects/migrations/0025_auto_20160609_1916.py b/projects/migrations_mukhtar/0025_auto_20160609_1916.py similarity index 100% rename from projects/migrations/0025_auto_20160609_1916.py rename to projects/migrations_mukhtar/0025_auto_20160609_1916.py diff --git a/projects/migrations/0026_auto_20160610_1204.py b/projects/migrations_mukhtar/0026_auto_20160610_1204.py similarity index 100% rename from projects/migrations/0026_auto_20160610_1204.py rename to projects/migrations_mukhtar/0026_auto_20160610_1204.py diff --git a/projects/migrations/0027_auto_20160610_1231.py b/projects/migrations_mukhtar/0027_auto_20160610_1231.py similarity index 100% rename from projects/migrations/0027_auto_20160610_1231.py rename to projects/migrations_mukhtar/0027_auto_20160610_1231.py diff --git a/projects/migrations/0028_auto_20160610_1301.py b/projects/migrations_mukhtar/0028_auto_20160610_1301.py similarity index 100% rename from projects/migrations/0028_auto_20160610_1301.py rename to projects/migrations_mukhtar/0028_auto_20160610_1301.py diff --git a/projects/migrations/0029_project_active.py b/projects/migrations_mukhtar/0029_project_active.py similarity index 100% rename from projects/migrations/0029_project_active.py rename to projects/migrations_mukhtar/0029_project_active.py diff --git a/projects/migrations/0030_auto_20160610_1430.py b/projects/migrations_mukhtar/0030_auto_20160610_1430.py similarity index 100% rename from projects/migrations/0030_auto_20160610_1430.py rename to projects/migrations_mukhtar/0030_auto_20160610_1430.py diff --git a/projects/migrations/0031_auto_20160610_1434.py b/projects/migrations_mukhtar/0031_auto_20160610_1434.py similarity index 100% rename from projects/migrations/0031_auto_20160610_1434.py rename to projects/migrations_mukhtar/0031_auto_20160610_1434.py diff --git a/projects/migrations/0032_auto_20160615_1610.py b/projects/migrations_mukhtar/0032_auto_20160615_1610.py similarity index 100% rename from projects/migrations/0032_auto_20160615_1610.py rename to projects/migrations_mukhtar/0032_auto_20160615_1610.py diff --git a/projects/migrations/0033_auto_20160621_1057.py b/projects/migrations_mukhtar/0033_auto_20160621_1057.py similarity index 100% rename from projects/migrations/0033_auto_20160621_1057.py rename to projects/migrations_mukhtar/0033_auto_20160621_1057.py diff --git a/projects/migrations/0034_auto_20160622_1200.py b/projects/migrations_mukhtar/0034_auto_20160622_1200.py similarity index 100% rename from projects/migrations/0034_auto_20160622_1200.py rename to projects/migrations_mukhtar/0034_auto_20160622_1200.py diff --git a/projects/migrations/0035_auto_20160630_1635.py b/projects/migrations_mukhtar/0035_auto_20160630_1635.py similarity index 100% rename from projects/migrations/0035_auto_20160630_1635.py rename to projects/migrations_mukhtar/0035_auto_20160630_1635.py diff --git a/projects/migrations/0036_auto_20160630_1846.py b/projects/migrations_mukhtar/0036_auto_20160630_1846.py similarity index 100% rename from projects/migrations/0036_auto_20160630_1846.py rename to projects/migrations_mukhtar/0036_auto_20160630_1846.py diff --git a/projects/migrations/0037_auto_20160704_1444.py b/projects/migrations_mukhtar/0037_auto_20160704_1444.py similarity index 100% rename from projects/migrations/0037_auto_20160704_1444.py rename to projects/migrations_mukhtar/0037_auto_20160704_1444.py diff --git a/projects/migrations/0038_auto_20160706_1249.py b/projects/migrations_mukhtar/0038_auto_20160706_1249.py similarity index 100% rename from projects/migrations/0038_auto_20160706_1249.py rename to projects/migrations_mukhtar/0038_auto_20160706_1249.py diff --git a/projects/migrations/0039_auto_20160707_1724.py b/projects/migrations_mukhtar/0039_auto_20160707_1724.py similarity index 100% rename from projects/migrations/0039_auto_20160707_1724.py rename to projects/migrations_mukhtar/0039_auto_20160707_1724.py diff --git a/projects/migrations/__init__.py b/projects/migrations_mukhtar/__init__.py similarity index 100% rename from projects/migrations/__init__.py rename to projects/migrations_mukhtar/__init__.py diff --git a/reviews/migrations/0001_initial.py b/reviews/migrations_mukhtar/0001_initial.py similarity index 100% rename from reviews/migrations/0001_initial.py rename to reviews/migrations_mukhtar/0001_initial.py diff --git a/reviews/migrations/0002_auto_20160531_0906.py b/reviews/migrations_mukhtar/0002_auto_20160531_0906.py similarity index 100% rename from reviews/migrations/0002_auto_20160531_0906.py rename to reviews/migrations_mukhtar/0002_auto_20160531_0906.py diff --git a/reviews/migrations/__init__.py b/reviews/migrations_mukhtar/__init__.py similarity index 100% rename from reviews/migrations/__init__.py rename to reviews/migrations_mukhtar/__init__.py diff --git a/specializations/migrations/0001_initial.py b/specializations/migrations_mukhtar/0001_initial.py similarity index 100% rename from specializations/migrations/0001_initial.py rename to specializations/migrations_mukhtar/0001_initial.py diff --git a/specializations/migrations/0002_auto_20160602_1203.py b/specializations/migrations_mukhtar/0002_auto_20160602_1203.py similarity index 100% rename from specializations/migrations/0002_auto_20160602_1203.py rename to specializations/migrations_mukhtar/0002_auto_20160602_1203.py diff --git a/specializations/migrations/__init__.py b/specializations/migrations_mukhtar/__init__.py similarity index 100% rename from specializations/migrations/__init__.py rename to specializations/migrations_mukhtar/__init__.py diff --git a/users/migrations/0001_initial.py b/users/migrations_mukhtar/0001_initial.py similarity index 100% rename from users/migrations/0001_initial.py rename to users/migrations_mukhtar/0001_initial.py diff --git a/users/migrations/0002_team_groups.py b/users/migrations_mukhtar/0002_team_groups.py similarity index 100% rename from users/migrations/0002_team_groups.py rename to users/migrations_mukhtar/0002_team_groups.py diff --git a/users/migrations/0003_user_created_at.py b/users/migrations_mukhtar/0003_user_created_at.py similarity index 100% rename from users/migrations/0003_user_created_at.py rename to users/migrations_mukhtar/0003_user_created_at.py diff --git a/users/migrations/0004_auto_20160524_1053.py b/users/migrations_mukhtar/0004_auto_20160524_1053.py similarity index 100% rename from users/migrations/0004_auto_20160524_1053.py rename to users/migrations_mukhtar/0004_auto_20160524_1053.py diff --git a/users/migrations/0005_auto_20160524_1054.py b/users/migrations_mukhtar/0005_auto_20160524_1054.py similarity index 100% rename from users/migrations/0005_auto_20160524_1054.py rename to users/migrations_mukhtar/0005_auto_20160524_1054.py diff --git a/users/migrations/0006_auto_20160525_0948.py b/users/migrations_mukhtar/0006_auto_20160525_0948.py similarity index 100% rename from users/migrations/0006_auto_20160525_0948.py rename to users/migrations_mukhtar/0006_auto_20160525_0948.py diff --git a/users/migrations/0007_auto_20160525_1526.py b/users/migrations_mukhtar/0007_auto_20160525_1526.py similarity index 100% rename from users/migrations/0007_auto_20160525_1526.py rename to users/migrations_mukhtar/0007_auto_20160525_1526.py diff --git a/users/migrations/0008_auto_20160525_1527.py b/users/migrations_mukhtar/0008_auto_20160525_1527.py similarity index 100% rename from users/migrations/0008_auto_20160525_1527.py rename to users/migrations_mukhtar/0008_auto_20160525_1527.py diff --git a/users/migrations/0009_auto_20160602_1213.py b/users/migrations_mukhtar/0009_auto_20160602_1213.py similarity index 100% rename from users/migrations/0009_auto_20160602_1213.py rename to users/migrations_mukhtar/0009_auto_20160602_1213.py diff --git a/users/migrations/0010_user_last_time_visit.py b/users/migrations_mukhtar/0010_user_last_time_visit.py similarity index 100% rename from users/migrations/0010_user_last_time_visit.py rename to users/migrations_mukhtar/0010_user_last_time_visit.py diff --git a/users/migrations/0011_user_contractor_specializations.py b/users/migrations_mukhtar/0011_user_contractor_specializations.py similarity index 100% rename from users/migrations/0011_user_contractor_specializations.py rename to users/migrations_mukhtar/0011_user_contractor_specializations.py diff --git a/users/migrations/0012_user_status.py b/users/migrations_mukhtar/0012_user_status.py similarity index 100% rename from users/migrations/0012_user_status.py rename to users/migrations_mukhtar/0012_user_status.py diff --git a/users/migrations/0013_auto_20160610_1703.py b/users/migrations_mukhtar/0013_auto_20160610_1703.py similarity index 100% rename from users/migrations/0013_auto_20160610_1703.py rename to users/migrations_mukhtar/0013_auto_20160610_1703.py diff --git a/users/migrations/0014_auto_20160615_1611.py b/users/migrations_mukhtar/0014_auto_20160615_1611.py similarity index 100% rename from users/migrations/0014_auto_20160615_1611.py rename to users/migrations_mukhtar/0014_auto_20160615_1611.py diff --git a/users/migrations/0015_auto_20160615_1747.py b/users/migrations_mukhtar/0015_auto_20160615_1747.py similarity index 100% rename from users/migrations/0015_auto_20160615_1747.py rename to users/migrations_mukhtar/0015_auto_20160615_1747.py diff --git a/users/migrations/0016_auto_20160617_1815.py b/users/migrations_mukhtar/0016_auto_20160617_1815.py similarity index 100% rename from users/migrations/0016_auto_20160617_1815.py rename to users/migrations_mukhtar/0016_auto_20160617_1815.py diff --git a/users/migrations/0017_user_phone.py b/users/migrations_mukhtar/0017_user_phone.py similarity index 100% rename from users/migrations/0017_user_phone.py rename to users/migrations_mukhtar/0017_user_phone.py diff --git a/users/migrations/0018_auto_20160710_1838.py b/users/migrations_mukhtar/0018_auto_20160710_1838.py similarity index 100% rename from users/migrations/0018_auto_20160710_1838.py rename to users/migrations_mukhtar/0018_auto_20160710_1838.py diff --git a/users/migrations/0019_auto_20160710_1950.py b/users/migrations_mukhtar/0019_auto_20160710_1950.py similarity index 100% rename from users/migrations/0019_auto_20160710_1950.py rename to users/migrations_mukhtar/0019_auto_20160710_1950.py diff --git a/users/migrations/0020_auto_20160711_1759.py b/users/migrations_mukhtar/0020_auto_20160711_1759.py similarity index 100% rename from users/migrations/0020_auto_20160711_1759.py rename to users/migrations_mukhtar/0020_auto_20160711_1759.py diff --git a/users/migrations/0021_contractorresumefiles_resume.py b/users/migrations_mukhtar/0021_contractorresumefiles_resume.py similarity index 100% rename from users/migrations/0021_contractorresumefiles_resume.py rename to users/migrations_mukhtar/0021_contractorresumefiles_resume.py diff --git a/users/migrations/__init__.py b/users/migrations_mukhtar/__init__.py similarity index 100% rename from users/migrations/__init__.py rename to users/migrations_mukhtar/__init__.py diff --git a/work_sell/migrations/0001_initial.py b/work_sell/migrations_mukhtar/0001_initial.py similarity index 100% rename from work_sell/migrations/0001_initial.py rename to work_sell/migrations_mukhtar/0001_initial.py diff --git a/work_sell/migrations/0002_auto_20160607_1755.py b/work_sell/migrations_mukhtar/0002_auto_20160607_1755.py similarity index 100% rename from work_sell/migrations/0002_auto_20160607_1755.py rename to work_sell/migrations_mukhtar/0002_auto_20160607_1755.py diff --git a/work_sell/migrations/0003_auto_20160621_1259.py b/work_sell/migrations_mukhtar/0003_auto_20160621_1259.py similarity index 100% rename from work_sell/migrations/0003_auto_20160621_1259.py rename to work_sell/migrations_mukhtar/0003_auto_20160621_1259.py diff --git a/work_sell/migrations/0004_worksell_price.py b/work_sell/migrations_mukhtar/0004_worksell_price.py similarity index 100% rename from work_sell/migrations/0004_worksell_price.py rename to work_sell/migrations_mukhtar/0004_worksell_price.py diff --git a/work_sell/migrations/0005_auto_20160704_1449.py b/work_sell/migrations_mukhtar/0005_auto_20160704_1449.py similarity index 100% rename from work_sell/migrations/0005_auto_20160704_1449.py rename to work_sell/migrations_mukhtar/0005_auto_20160704_1449.py diff --git a/work_sell/migrations/0006_worksellphoto.py b/work_sell/migrations_mukhtar/0006_worksellphoto.py similarity index 100% rename from work_sell/migrations/0006_worksellphoto.py rename to work_sell/migrations_mukhtar/0006_worksellphoto.py diff --git a/work_sell/migrations/0007_auto_20160705_1514.py b/work_sell/migrations_mukhtar/0007_auto_20160705_1514.py similarity index 100% rename from work_sell/migrations/0007_auto_20160705_1514.py rename to work_sell/migrations_mukhtar/0007_auto_20160705_1514.py diff --git a/work_sell/migrations/0008_auto_20160706_1249.py b/work_sell/migrations_mukhtar/0008_auto_20160706_1249.py similarity index 100% rename from work_sell/migrations/0008_auto_20160706_1249.py rename to work_sell/migrations_mukhtar/0008_auto_20160706_1249.py diff --git a/work_sell/migrations/0009_auto_20160707_1315.py b/work_sell/migrations_mukhtar/0009_auto_20160707_1315.py similarity index 100% rename from work_sell/migrations/0009_auto_20160707_1315.py rename to work_sell/migrations_mukhtar/0009_auto_20160707_1315.py diff --git a/work_sell/migrations/0010_auto_20160707_1401.py b/work_sell/migrations_mukhtar/0010_auto_20160707_1401.py similarity index 100% rename from work_sell/migrations/0010_auto_20160707_1401.py rename to work_sell/migrations_mukhtar/0010_auto_20160707_1401.py diff --git a/work_sell/migrations/0011_picture.py b/work_sell/migrations_mukhtar/0011_picture.py similarity index 100% rename from work_sell/migrations/0011_picture.py rename to work_sell/migrations_mukhtar/0011_picture.py diff --git a/work_sell/migrations/__init__.py b/work_sell/migrations_mukhtar/__init__.py similarity index 100% rename from work_sell/migrations/__init__.py rename to work_sell/migrations_mukhtar/__init__.py