From 419a21ff2350baf4a1dbd081615b4ddbef27fae2 Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Fri, 2 Sep 2016 10:18:27 +0300 Subject: [PATCH] #ARC-23 Fix bugs --- api/views.py | 2 +- archilance/settings/base.py | 17 ++++--- assets/img/favicon.jpg | Bin 0 -> 6033 bytes assets/img/favicon128.jpg | Bin 0 -> 7784 bytes assets/img/favicon18.jpg | Bin 0 -> 1283 bytes assets/img/favicon50.jpg | Bin 0 -> 3013 bytes assets/js/chat.js | 47 +++++++++++++++--- chat/admin.py | 2 +- chat/chat.py | 4 +- chat/migrations/0010_auto_20160901_1247.py | 26 ++++++++++ chat/models.py | 2 + chat/serializers.py | 12 +++++ chat/templates/chat_contractor.html | 28 +++++------ chat/templates/contact-info.html | 19 ++++--- chat/templates/order_info.html | 21 +------- chat/templates/reverse_stage_modal.html | 5 ++ .../migrations/0024_auto_20160901_1247.py | 35 +++++++++++++ projects/serializers.py | 43 ++++++++-------- users/pipeline.py | 6 +-- users/signals.py | 2 +- users/templates/add_email_form.html | 4 +- wallets/migrations/0012_auto_20160901_1247.py | 21 ++++++++ .../migrations/0009_auto_20160901_1247.py | 20 ++++++++ 23 files changed, 229 insertions(+), 87 deletions(-) create mode 100644 assets/img/favicon.jpg create mode 100644 assets/img/favicon128.jpg create mode 100644 assets/img/favicon18.jpg create mode 100644 assets/img/favicon50.jpg create mode 100644 chat/migrations/0010_auto_20160901_1247.py create mode 100644 projects/migrations/0024_auto_20160901_1247.py create mode 100644 wallets/migrations/0012_auto_20160901_1247.py create mode 100644 work_sell/migrations/0009_auto_20160901_1247.py diff --git a/api/views.py b/api/views.py index a499d4a..f66b1d7 100755 --- a/api/views.py +++ b/api/views.py @@ -73,7 +73,7 @@ class DocumentViewSet(ModelViewSet): queryset = Documents.objects.all() serializer_class = DocumentsSerializer # filter_class = DocumentsFilterSet - # permission_classes = (permissions.IsAuthenticatedOrReadOnly,) + permission_classes = (permissions.IsAuthenticatedOrReadOnly,) def get_queryset(self): queryset = Documents.objects.all() diff --git a/archilance/settings/base.py b/archilance/settings/base.py index 40003c7..b275586 100644 --- a/archilance/settings/base.py +++ b/archilance/settings/base.py @@ -111,6 +111,8 @@ TEMPLATES = [ 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.core.context_processors.request', + 'social.apps.django_app.context_processors.backends', + 'social.apps.django_app.context_processors.login_redirect', ], # Load these templatetags by default: @@ -189,11 +191,11 @@ SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 's69NCyhSlwY0OuGGT8_dFI7E' # SOCIAL_AUTH_TWITTER_KEY = 'YAe05K4IYYxHhA6J1mTOdDBjq' # SOCIAL_AUTH_TWITTER_SECRET = 'iRuYqRRaoGkCD4ip74NICb8FeZMxvM6MZ8HLMbm1jX99o7pcaL' -SOCIAL_AUTH_TWITTER_KEY = 'vZvKDqyosgeGuRwnY8mKy9sHV' -SOCIAL_AUTH_TWITTER_SECRET = 'ulPAOEMWscoBh7hldpKXXQksACUuSfp25GWAOSv5PiMV1o6Sah' +SOCIAL_AUTH_TWITTER_KEY = 'dRdPuFDlx8kMxJmECRNjd7ng9' +SOCIAL_AUTH_TWITTER_SECRET = 'WhXRHP6BzNwFS8x94pcaCBwxCSMkAEVm3Rg82XhzUaIqsf2Ur0' -SOCIAL_AUTH_VK_OAUTH2_KEY = '5469025' -SOCIAL_AUTH_VK_OAUTH2_SECRET = '3Wild7HqYq6YFiLz9i7l' +SOCIAL_AUTH_VK_OAUTH2_KEY = '5542865' +SOCIAL_AUTH_VK_OAUTH2_SECRET = 'BsOSDhmyNiDte7cMJlVq' SOCIAL_AUTH_VK_OAUTH2_SCOPE = [ 'notify', @@ -201,9 +203,10 @@ SOCIAL_AUTH_VK_OAUTH2_SCOPE = [ 'email', ] -SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/' -SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/' -SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/' + +# SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/' +# SOCIAL_AUTH_NEW_USER_REDIRECT_URL = 'http://proekton.com/' +# SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = 'http://proekton.com/' SOCIAL_AUTH_PIPELINE = ( 'social.pipeline.social_auth.social_details', diff --git a/assets/img/favicon.jpg b/assets/img/favicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1912f69433ece438ad6659c7c2baaa3ddb78d8c8 GIT binary patch literal 6033 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 ptz($bv@oNb@{2Rnc&>H{% literal 0 HcmV?d00001 diff --git a/assets/img/favicon128.jpg b/assets/img/favicon128.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a535499cf34b78a791db50678e1fb154b655aef GIT binary patch literal 7784 zcmbtZc|27AyFao__I+Qb>_wpnStiLAqExn+q_QQIly#1%EZK!3hNPWIc43UYBw42r zV^p#XGh`fQyXSlF{oVU|-M{YZ-ZQWH3vh7( z02llLIFo=ieE0vm{xS0ZvjG2^(+-I51mb~sZZ1_|hd39vI2Wf2K*E0V{)cVgKQFEw z+&sK|h@Jcbg7AVmF<=K5H}?)6ZeCs<9(Z*e{2bsB=atxPV8thS(hs3}UFyJ{?6RF| zN2>|ar-rEN2QS=6;1`gQm6KP{(A3i2v)9n*kg>E(a% z(&d1_py2SE5w~tfMnxyyy>~w;IVCkG_hDXs!K258Ps^WGJb&@>)$8{)wRQCkjZMuR zon75My?q})4UdeDjT66ppO_`j{rvTN{?Ec9ZEgMU27MFS+WrR@7r^~rA^Q(t{{xpe zjB5uE4>u3uA6#5JZo^-0aUR~?27D4$ClP+vB~=gH*(r52yR4ePuXgYhRrApse6 z!&wd5KhXXi+5Zk$!v6``e*yb%ToZs0Hy4~dZgBtwZ~)Y{HttU*oBtyR;9H7~-~b6} zm;qlo){7P`hHb1YWJkhDg_Ib4t-ONSwcu;i*jnF6z1$jA>f3)kqHLkytftPJBCUKb zrMC-`FCQZM0OXfn(kzSvY%Mj`J7wDVAA{_kMOr=4?GjB_+O%gUyOT7Zxa!0Kl5H(@ zRj|~P_-~UO0BFNoq34Yz+*!%?N?#HE zweB06FF-;mx)x-rP1v@QXC}kwzEsH&8QPT9a|mk-<%LEj96P%<^*q^s|GoP9VOu+% zG&dKff*$Rn5)#s$Sq{azRL43}IKZ{T0Nd&%ZfTyqTMnw`01k?*bUam%jOGB^i!ou4 zq1hbo&;GCw4!|qJ$_Oa#;}^Pxl9;g5Dm|m1;$VSjlHy{5L+Dy0_4F#F+S|PfY23n+ zTHVOTJudgL(tkOC(m7UW{eYZ9s>y&PuS< zj2xM@V=5x4xNeml#c%7nph|`nZsKXUP=^66+~bt_*w#C#CqkQlrI~#0o7oIy4)Cc8 zFN9itjrlsW-C&douuq$xg#A=wz0B>3CL3o&y!;k?`}ilL2PCOypY?$&BE`U4Bow7Z zIdV91)f>4f*Twke^$l|BisLI(pZX7_eh<(?e zF~(W}3F7!*Fr^vKlt6bOrI?NpEPQ1zE;wIw{|hy=WGMYXpZ({>c`k&LWQIKj{re31 z4;)jTJ?R(WGS!SMH4!TBimnFMhgUXDk@FMrmb|Pw&<_Q$e<+Biv(=!(U%vE{D{_6D zgLuTcCHimrht7OR>lw_=oYgX4?*^5zGM181FNv6LgyoJLacX)u_SZW%^xDPxLb;2v z0s1Ye+=+=pDP(+YE0V0)K%F5Auiz?N4C?Q*T7Hu?@t8c`60F0*B)V=oPx57#S)hlaxgEQ<1RuhJRn84riVWE7jO6p*WCnoNvNU3OlD&)p6SU^*qa7p_}A8~7))T8epLXv4>MF{EiFLc7An;=$J5wfr@rdX}vE zO)0KrEcGUya-9}7E0fDG2nIzriqiSby-PnvMHa?Q)nCsyc$O+ah>s@SREiZoK6$7O7x~GZB9_?XK}wU@X&#Qw zHToO2TzUkeker@?UDG2tR@~%Q#0K1@5PD0^4XL1?=r?rN;Vp?JcUtGZzdu)^)DIPy z?%TbE&HaL@V;&{af51yMGog0TZ|0i}b2Sd2QRNIu7y|B_=?s;3Xvk<}_Kt;Ux66bg z2RQq?3RMXrjMyo7ssr|WQ8%`3lc|_XEh5c#wt71!b`z0O93W8MrlPxpzdY6D!Qs(2 z>e*|HX(^2dML(>In3jsJkJC~R-M+ik*a@3Iz@-mFWAwOYCESBcFjLVbHLs_&GBC=v z`*ABTjx~+?dnWWBY!or?-g+n|$~}U3^@0P4J;eM#{!{2XmwMSFb`;{*8 zs@!t0%wq+@#I^F|;Ap6w=h%wyz|>mbictEKWswtO@+K5 zb&nOTIF~bp(-uenSj$B|^_Y9u=F_0fnih^7ilSO~fi?k@kB;60nEswQ^qTaeZpZVtN)!Lz(6Lo5`_dso` zzq_l$(asr@UBqp;qzH#mp{sY`!ap;Kqxo0PD$B){Sc0lL&|Tc$IhcGfod~eqz_7`WmfU~P zJ2%o1j>ByV3og$;PmGe~>T5$34v|k6mvR+D5MxRub(4&{ z%XE7gInwTatJ$`kca$15areeK`)U`-ywlS^sn6yDO$i8j9`5fT>F4MkxSw+X)?KNe z;zAbS()e$DiU4~NMOsAj4p3|8&a4bex!{T7^!el#9o<{e&tz)UGo`X8rV@Nk|B6z3 z#{rPDzVQO=yBvU&0a86hlTq&mh)EdnDWAPe6Yn3_+H+lu^Mr}1dMh|RrDK)V9#cQ^ zh4>skniJQ*yJXm<9?L(pNB!!1wO5@wWkPRv{;>iQ7qz)r8g0ATLwLECh^Ldxi;zFr z$I+EqyzzR`E7xl=T)!dzkM6YBv78kyN9v&rvv9N#p3+IH<3CGNsg+ZbHYQr#LGVbg z-w>_W*@9b3!g)9yu65Xi=;u_wD6!pZfS6}k*t)W0W`8T{de2Awivo{%0sw#I zrR`kEj-eMRNqkLP^*BXbIC+Coq73QWFJ)2O}W@~%{5 zoqm&sqPWmjecq2!jGRNw4a!{jD&GF+e>r6>5marj-Wa#``E|Rs(%p>kj7OEClag!^ zVd~~`&|L9BQrO)MWn*+oS=~FLo}NZXO6X@=MJvsdZ?^g1LBNWw6iw_yQqP1zdsjPF zzZK2;3@(o`3}+S!Gt(r7=Z}rYy3J1Z`L$$U4ein$QH(f%p;UmaTGZ^UXpj#t##V(I z$Y5%Oo-EYs**YFke0(M5@&46-oFMlv5BtP@zP%I7LRcih+hG7){wL9p*6q$rNV}l} z!NPHXOU^f3W0ep+FkJu@;?;j)Rg~lL#q%M1I4svm0Ru#QURc-r&EjDRpqxsC6oOx zWLxXL&RB*f^gkqjJ6Aibt zGCwtZ*x{%9>D19LjWz_O3-}!TWG8(UDrW@8x{jH9k}2V*i)iTwGp57< zO%PokVmLDGS&uO4ksuk-$%=6sem-oZ9kvqscK@?_*@WE*8Lk<}sr&Do*FH`Jq z7vueC{6g>VEqPD3ufOqGSV-HLDW%nmuS?3P6LfTTbRBLHe?H~o;Ta@0ZRUB-Yrk4r zGBG$R#tI1idDCQ(D}*fo7eB8ml*s^NUGT(MPt#C=&Qk~fywhE4u}?S<->Z})AmY%+ zofERQn5zBHA;*o5W<6r7vPaPphFC5LVPC=yTG^emjn*V}DyQ~2kMR4a5Tm=5o&+SA zb^}^)#0{8^tcn(}9744>TRvZi3IF9>W#b=ibT7rpV7*G!C%IjS)TmYomWeVY4O&bY zO0go-B%FZGPFmnUi zX|qT~kU=m~s_uh!SlHG5q1{vC6S-XvZe;hH2Bhgc)(3!4m9aH;4S7&%sZ9;recJ_; zd1W!w?50AaM;RBWxN`60TBsGR05F%~mKh4d!-zban|YFk==CwEVuq2Ba_FKW$6|$v z)sy!>$#kWw4I+ybdY&HfSP{^7=+W8wcr);O_Go#z^riFGI(rCb5m{C|V$lj5z-je6 z2cVZjp|s4|h{5Gw4CkQ!mw{d-1&8jH&iHt#6BAZXW;mX{T%3Ab;IUdKLLH;T0d&#S zlSoK4vkP?}-e{aaErTDJQ&M%$|3Z?3h zP+iCg?%qPZJLX(vi_y=^-~6a}KXA$a`fcT=%QpM8veMiY3G+&q@n7}mf;7EOJhU50 zKnX+TbHDK~AgmXZ_@bh6FzIPqT5z*tqi}sp$SW0lxhuPJ73MYDLRe4OeC#hsstx-4 zyI3^T)$B9a`vbILPg08?;-vpLrj!QdY25#PL_Cpq%gGK9JppFVOit3NP!S`Ld5(ri zH+OvNqnUmkb9uzD@$%YRO1Te#N8h^M@SOOj-MIvdBdE71NGEK05FW|BAkPTKMfTuf zR{E!N=N(AJhe$KQDZ;srFXlK3YJm@*y-@EunD!(BH(StSDNK{SW5lxS#AprUZWg

)D%^$PtEndqEw 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 Ym9bA}WyUU<=9XTTmgMOw!ubCt0O5TP?EnA( literal 0 HcmV?d00001 diff --git a/assets/img/favicon50.jpg b/assets/img/favicon50.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b47fca4b9bd1eb278413391d1d9a58c0ed211e4b GIT binary patch literal 3013 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 literal 0 HcmV?d00001 diff --git a/assets/js/chat.js b/assets/js/chat.js index 5648c1b..a3305c6 100644 --- a/assets/js/chat.js +++ b/assets/js/chat.js @@ -1,6 +1,6 @@ var SocketHandler = function () { domain = domain.replace(':' + port, ''); - var url = 'ws://' + domain + '/chat/' + userId + '/'; + var url = 'ws://' + domain + ':8888/chat/' + userId + '/'; var sock = new WebSocket(url); var intervalId; sock.onopen = function () { @@ -35,6 +35,7 @@ var SocketHandler = function () { }, 2000); console.log('approve stages'); } + if (inbox) { var textMessage = message.msg; var classMessage = 'youChat'; @@ -106,6 +107,7 @@ function csrfSafeMethod(method) { var socket = new SocketHandler(); var csrftoken = getCookie('csrftoken'); + $(function () { var currentHash = URI(location.href).hash(); @@ -133,7 +135,28 @@ $(function () { $(".full-order-info").click('on',function(e){ e.preventDefault(); e.stopPropagation(); - $("#order-info").modal('show'); + var orderId = $(this).closest('.orderBlock').attr('data-id'); + $.ajax({ + url: '/api/orders/' + orderId + '/', + data: { + csrfmiddlewaretoken: csrftoken, + }, + dataType: 'json', + success: function(data){ + var outTable = ''; + outTable += 'Название'+data.project.name +''; + outTable += 'Безопасная сделка'+data.secure +''; + if(data.project.realty) { + outTable += 'Тип здания' + data.project.realty.building_classification.name + ''; + outTable += 'Классификация здания' + data.project.realty.construction_type.name + ''; + } + $("#order-info table").html(outTable); + $("#order-info").modal('show'); + }, + error: function(e,jqxhr){ + console.log(e); + } + }); }); $(".conMess").click('on',function(e){ @@ -143,6 +166,12 @@ $(function () { }); + $("#paymentfromSite").on('click',function(){ + var sum = $("#stageSumPay").val(); + alert(sum); + }); + + // Вытащить сообщения для конактов $('.user-block').on('click', function () { @@ -296,7 +325,7 @@ $(function () { var orderId = $("#chat-order-add #orderId").val(); if (chatMessage) { - $("#chat-order-add .errorEmptyMessage").hide(); + //$("#chat-order-add .errorEmptyMessage").hide(); chatMessage += '
' + $("#document-send-order").html(); socket.add_contact_message({ "format_type": "add_message_order", @@ -325,13 +354,19 @@ $(function () { var senderId = $("#senderContactId").val(); if (chatMessage) { $("#contact-chat-form .errorEmptyMessage").hide(); - chatMessage += '
' + $("#document-send-contact").html(); + var sendLinks = $("#document-send-contact a"); + var sendLinkIds = ""; + $.each(sendLinks, function(i, v){ + sendLinkIds += $(this).attr('data-id') + ';'; + }); + console.log(sendLinkIds); socket.add_contact_message({ "format_type": "add_message_contact", "data": { "sender_id": senderId, "recipent_id": recipentId, "chat_message": chatMessage, + "document_send_links": sendLinkIds, } }); $("#chat").val(""); @@ -424,7 +459,7 @@ $(function () { // var currentValue = ''; // currentValue += file.id + ';'; //$("#documentSendIds").val(currentValue); - var htmlImg = '

' + file.name + '

'; + var htmlImg = '' + file.name + ''; var document_send = $(htmlImg).appendTo("#document-send-order"); }); }, @@ -467,7 +502,7 @@ $(function () { dataType: 'json', done: function (e, data) { $.each(data.result.files, function (index, file) { - var htmlImg = '' + file.name + ''; + var htmlImg = '' + file.name + ''; var document_send = $(htmlImg).appendTo("#document-send-contact"); }); }, diff --git a/chat/admin.py b/chat/admin.py index bad96cc..d91a0a7 100644 --- a/chat/admin.py +++ b/chat/admin.py @@ -11,7 +11,7 @@ class NotesAdmin(admin.ModelAdmin): class DocumentsAdmin(admin.ModelAdmin): - list_display = ('file', 'sender', 'recipent', 'order','team') + list_display = ('sender', 'recipent', 'order','team') admin.site.register(Message, MessageAdmin) diff --git a/chat/chat.py b/chat/chat.py index f9d1d05..171bd6d 100644 --- a/chat/chat.py +++ b/chat/chat.py @@ -59,7 +59,9 @@ class ChatHandler(websocket.WebSocketHandler): order_id = message_data['data'].get('order_id', None) team_id = message_data['data'].get('team_id', None) message = message_data['data'].get('chat_message', None) - # message = html.escape(message) + document_send_links = message_data['data'].get('document_send_links', None) + + message = html.escape(message) message = message.replace('\n', '
') answer_type = message_data['format_type'] diff --git a/chat/migrations/0010_auto_20160901_1247.py b/chat/migrations/0010_auto_20160901_1247.py new file mode 100644 index 0000000..e31ec3c --- /dev/null +++ b/chat/migrations/0010_auto_20160901_1247.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-01 09:47 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('chat', '0009_auto_20160829_1120'), + ] + + operations = [ + migrations.AddField( + model_name='documents', + name='is_send', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='documents', + name='message', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='chat.Message'), + ), + ] diff --git a/chat/models.py b/chat/models.py index 5cc9468..585c754 100644 --- a/chat/models.py +++ b/chat/models.py @@ -46,6 +46,8 @@ class Documents(models.Model): sender = models.ForeignKey(User, related_name='sender_documents') recipent = models.ForeignKey(User, related_name='recipent_documents', null=True, blank=True) created = models.DateTimeField(auto_now_add=True) + is_send = models.BooleanField(default=False) + message = models.ForeignKey(Message, related_name='documents', null=True, blank=True) def __str__(self): return self.file.url diff --git a/chat/serializers.py b/chat/serializers.py index 56ad2bd..00ef5df 100644 --- a/chat/serializers.py +++ b/chat/serializers.py @@ -14,6 +14,7 @@ class DocumentsSerializer(ModelSerializer): model = Documents fields = ( + 'id', 'file', 'file_size', 'file_url', @@ -21,6 +22,8 @@ class DocumentsSerializer(ModelSerializer): 'recipent', 'team', 'order', + 'is_send', + 'message', ) def get_file(self, obj): @@ -38,6 +41,8 @@ class MessageSerializer(ModelSerializer): sender = UserSerializer() recipent = UserSerializer() created = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + documents = DocumentsSerializer(read_only=True, many=True) + text = serializers.SerializerMethodField() class Meta: model = Message @@ -50,8 +55,15 @@ class MessageSerializer(ModelSerializer): 'recipent', 'private_type', 'team', + 'documents', ) + def get_text(self, obj): + out = obj.text + documents = '
'.join([doc.file.name for doc in obj.documents.all()]) + out += '
' + documents + return out + class NoteSerializer(ModelSerializer): diff --git a/chat/templates/chat_contractor.html b/chat/templates/chat_contractor.html index 88a4f5f..38263a8 100644 --- a/chat/templates/chat_contractor.html +++ b/chat/templates/chat_contractor.html @@ -142,14 +142,14 @@
- - - + + +
- +

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

@@ -164,7 +164,7 @@

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

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

@@ -204,12 +204,6 @@ {% include 'arbitration_modal.html' %} - - - {% include 'order_info.html' %} - - -
@@ -234,7 +228,7 @@

Заказы

{% for torder in team_orders %}
+ data-team-id="{{ torder.team.pk }}" data-order-id="{{ torder.pk }}" data-id="{{ torder.pk }}">

{{ torder }} @@ -273,9 +267,9 @@

- - - + + + @@ -299,6 +293,10 @@
{% endif %} + + + {% include 'order_info.html' %} +
{% include 'partials/footer.html' %}
diff --git a/chat/templates/contact-info.html b/chat/templates/contact-info.html index f82392c..4e4c5cb 100644 --- a/chat/templates/contact-info.html +++ b/chat/templates/contact-info.html @@ -6,17 +6,16 @@
- - +
diff --git a/chat/templates/order_info.html b/chat/templates/order_info.html index 1017f84..0e2842f 100644 --- a/chat/templates/order_info.html +++ b/chat/templates/order_info.html @@ -6,27 +6,8 @@ - diff --git a/chat/templates/reverse_stage_modal.html b/chat/templates/reverse_stage_modal.html index 1dd33d8..0074668 100644 --- a/chat/templates/reverse_stage_modal.html +++ b/chat/templates/reverse_stage_modal.html @@ -65,6 +65,11 @@ + + + + + diff --git a/projects/migrations/0024_auto_20160901_1247.py b/projects/migrations/0024_auto_20160901_1247.py new file mode 100644 index 0000000..b9304af --- /dev/null +++ b/projects/migrations/0024_auto_20160901_1247.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-01 09:47 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0023_auto_20160830_1024'), + ] + + operations = [ + migrations.AlterField( + model_name='answer', + name='term_type', + field=models.CharField(blank=True, choices=[('day', 'За день'), ('hour', 'За час'), ('month', 'За месяц'), ('project', 'За проект')], max_length=10, null=True), + ), + migrations.AlterField( + model_name='portfolio', + name='term_type', + field=models.CharField(blank=True, choices=[('day', 'За день'), ('hour', 'За час'), ('month', 'За месяц'), ('project', 'За проект')], default='hour', max_length=20, null=True), + ), + migrations.AlterField( + model_name='project', + name='term_type', + field=models.CharField(choices=[('day', 'За день'), ('hour', 'За час'), ('month', 'За месяц'), ('project', 'За проект')], default='hour', max_length=20), + ), + migrations.AlterField( + model_name='stage', + name='term_type', + field=models.CharField(choices=[('day', 'За день'), ('hour', 'За час'), ('month', 'За месяц'), ('project', 'За проект')], default='hour', max_length=10), + ), + ] diff --git a/projects/serializers.py b/projects/serializers.py index 183309b..a78bf2f 100755 --- a/projects/serializers.py +++ b/projects/serializers.py @@ -71,32 +71,14 @@ class StageSerializer(ModelSerializer): ) -class OrderSerializer(ModelSerializer): - stages = StageSerializer(many=True, read_only=True) - - class Meta: - model = Order - - fields = ( - 'id', - 'contractor', - 'team', - 'created', - 'project', - 'secure', - 'status', - 'stages', - ) - - class ProjectSerializer(ModelSerializer): customer = UserSerializer() specialization = SpecializationSerializer() realty = RealtySerializer() - + class Meta: model = Project - + fields = ( 'budget', 'budget_by_agreement', @@ -115,6 +97,27 @@ class ProjectSerializer(ModelSerializer): 'term_type', 'text', 'work_type', + + ) + + +class OrderSerializer(ModelSerializer): + stages = StageSerializer(many=True, read_only=True) + project = ProjectSerializer(read_only=True) + + class Meta: + model = Order + + fields = ( + 'id', + 'contractor', + 'team', + 'created', + 'project', + 'secure', + 'status', + 'stages', + 'project', ) diff --git a/users/pipeline.py b/users/pipeline.py index ddd79c6..16e2b64 100644 --- a/users/pipeline.py +++ b/users/pipeline.py @@ -1,4 +1,4 @@ -from django.shortcuts import redirect, render_to_response +from django.shortcuts import redirect, render_to_response, render from django.core.mail import EmailMultiAlternatives from django.template.loader import get_template, render_to_string from social.pipeline.partial import partial @@ -38,8 +38,8 @@ def add_email_for_user(backend, details, response, is_new=False, *args, **kwargs data = backend.strategy.request_data() if is_new: if not details.get('email'): - if 'email' in kwargs['request']: - return {'email': kwargs['request']['email']} + if 'email' in data: + return {'email': data.get('email')} else: return render_to_response('add_email_form.html') diff --git a/users/signals.py b/users/signals.py index b32c869..e78c6ef 100644 --- a/users/signals.py +++ b/users/signals.py @@ -6,7 +6,7 @@ from users.models import ContractorResume @receiver(user_registered) def user_registered_callback(sender, user, request, **kwargs): # import code; code.interact(local=dict(globals(), **locals())) - group_name = request.POST['group_id'] or None + group_name = request.POST['group_id'] or 'Исполнители' g = Group.objects.get(name=group_name) g.user_set.add(user) if group_name == 'Исполнители': diff --git a/users/templates/add_email_form.html b/users/templates/add_email_form.html index e32ce1f..58e4c02 100644 --- a/users/templates/add_email_form.html +++ b/users/templates/add_email_form.html @@ -1,7 +1,7 @@ {% extends 'partials/base.html' %} {% block content %} - {% include 'partials/header.html' %} +
@@ -13,7 +13,7 @@
- {% include 'partials/footer.html' %} +
diff --git a/wallets/migrations/0012_auto_20160901_1247.py b/wallets/migrations/0012_auto_20160901_1247.py new file mode 100644 index 0000000..dc3b386 --- /dev/null +++ b/wallets/migrations/0012_auto_20160901_1247.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-01 09:47 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wallets', '0011_withdraw_complete'), + ] + + operations = [ + migrations.AlterField( + model_name='withdraw', + name='sum', + field=models.DecimalField(decimal_places=0, max_digits=10, validators=[django.core.validators.MinValueValidator(1)]), + ), + ] diff --git a/work_sell/migrations/0009_auto_20160901_1247.py b/work_sell/migrations/0009_auto_20160901_1247.py new file mode 100644 index 0000000..2c85f21 --- /dev/null +++ b/work_sell/migrations/0009_auto_20160901_1247.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-01 09:47 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('work_sell', '0008_merge'), + ] + + operations = [ + migrations.AlterField( + model_name='worksell', + name='term_type', + field=models.CharField(blank=True, choices=[('day', 'За день'), ('hour', 'За час'), ('month', 'За месяц'), ('project', 'За проект')], default='hour', max_length=20, null=True), + ), + ]