diff --git a/assets/css/main.css b/assets/css/main.css index 0445a58..c791120 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -266,12 +266,11 @@ ul li { color: black; } -.changeBlock p:after { +.changeBlock:after { content: ''; position: absolute; width: 66px; height: 1px; - bottom: -52px; left: 50%; margin-left: -30px; background-color: white; @@ -312,7 +311,7 @@ ul li { .imgProfile { width: 75px; height: 75px; - float: left; + float: right; margin: 0 0 0 -60px; } @@ -323,7 +322,7 @@ ul li { } .infoProfile { - float: left; + float: right; } .infoProfile .btn-group .btn { @@ -352,7 +351,7 @@ ul li { .rating { width: 46px; height: 46px; - float: left; + float: right; border-radius: 100%; background-color: #4D4D4D; margin: 15px 0 0 10px; @@ -384,8 +383,8 @@ ul li { color: #ff2c2c; font-size: 18px; font-family: 'pfdintextcomppro-regular', sans-serif; - float: left; - margin: 28px 0 0 15px; + float: right; + margin: 28px 0 0 9px; cursor: pointer; } @@ -3418,7 +3417,9 @@ input[type="checkbox"]:checked + span { margin: 10px 0 20px 0; } -.textAreaBlock2 a, .textAreaBlock2 a:link, .textAreaBlock2 a:visited { +.textAreaBlock2 a:not(.cke_button, .cke_combo_button, .cke_path_item), +.textAreaBlock2 a:link:not(.cke_button, .cke_combo_button, .cke_path_item), +.textAreaBlock2 a:visited:not(.cke_button, .cke_combo_button, .cke_path_item) { font-family: 'pfdintextcomppro-regular', sans-serif; letter-spacing: 2px; text-transform: uppercase; @@ -5962,7 +5963,7 @@ a.linkS2[data-target="#withdraw-money"]{ border-radius: 50px; border: 1px solid #42B476; } -.laladsd{ - color: inherit; +input[type="radio"]{ + opacity: 0; } /*end_new*/ \ No newline at end of file diff --git a/assets/index.js b/assets/index.js index 12a62af..1aea79f 100644 --- a/assets/index.js +++ b/assets/index.js @@ -229,6 +229,34 @@ function initContractorSelect($select) { +// Order offer project select --------------------------------------------- + + +var projectSelectOptions = { + language: 'ru', + placeholder: 'Выберите проект', // Required by `allowClear` + allowClear: true, +} + +function initProjectSelect($select, customerId) { + return $.ajax({url: '/api/projects/?customer=' + customerId, method: 'GET', dataType: 'json'}) + .then(function(res) { + var projects = res.results + + $select.select2(_.merge(projectSelectOptions, { + data: _.map(function(project) { + return { + id: project.id, + text: project.name, + origItem: project, + } + }, projects), + })) + }) +} + + + diff --git a/chat/views.py b/chat/views.py index 5ee3681..ba30f68 100644 --- a/chat/views.py +++ b/chat/views.py @@ -56,7 +56,7 @@ class ChatUserView(LoginRequiredMixin, View): 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').exclude(order__contractor__isnull=True, order__team__isnull=True) + orders = request.user.customer_projects.select_related('order').exclude(order__contractor__isnull=True, order__team__isnull=True) transaction = Transaction.objects.get_or_create(customer=request.user, type='reservation', complete=False) self.template_name = 'chat_customer.html' return render(request, self.template_name, {'contacts_users': contacts_users, diff --git a/common/migrations/0015_merge.py b/common/migrations/0015_merge.py new file mode 100644 index 0000000..7cb3d4b --- /dev/null +++ b/common/migrations/0015_merge.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-07 14:05 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0014_auto_20160906_1713'), + ('common', '0014_auto_20160907_1101'), + ] + + operations = [ + ] diff --git a/projects/forms.py b/projects/forms.py index 01f57f1..e16d95c 100644 --- a/projects/forms.py +++ b/projects/forms.py @@ -276,7 +276,7 @@ class CustomerProjectTrashForm(forms.Form): self.req = kwargs.pop('req') super().__init__(*args, **kwargs) - self.fields['pk'].queryset = self.req.user.projects.filter(state='active') + self.fields['pk'].queryset = self.req.user.customer_projects.filter(state='active') class ContractorPortfolioTrashForm(forms.Form): @@ -296,7 +296,7 @@ class CustomerProjectRestoreForm(forms.Form): self.req = kwargs.pop('req') super().__init__(*args, **kwargs) - self.fields['pk'].queryset = self.req.user.projects.filter(state='trashed') + self.fields['pk'].queryset = self.req.user.customer_projects.filter(state='trashed') class CustomerProjectDeleteForm(forms.Form): @@ -306,7 +306,7 @@ class CustomerProjectDeleteForm(forms.Form): self.req = kwargs.pop('req') super().__init__(*args, **kwargs) - self.fields['pk'].queryset = self.req.user.projects.filter(Q(state='active') | Q(state='trashed')) + self.fields['pk'].queryset = self.req.user.customer_projects.filter(Q(state='active') | Q(state='trashed')) # import code; code.interact(local=dict(globals(), **locals())) diff --git a/projects/migrations/0027_auto_20160907_1658.py b/projects/migrations/0027_auto_20160907_1658.py new file mode 100644 index 0000000..97a9673 --- /dev/null +++ b/projects/migrations/0027_auto_20160907_1658.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-07 13:58 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0026_auto_20160906_1621'), + ] + + operations = [ + migrations.AlterField( + model_name='project', + name='customer', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='customer_projects', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/projects/models.py b/projects/models.py index 0c0b805..ccf519c 100644 --- a/projects/models.py +++ b/projects/models.py @@ -91,7 +91,7 @@ class Project(models.Model, HitCountMixin): created = models.DateTimeField(default=timezone.now) cro = models.BooleanField(default=False) currency = models.CharField(max_length=20, default='rur', choices=CURRENCIES) - customer = models.ForeignKey(User, related_name='projects') # Related name should've been "customer_projects" + customer = models.ForeignKey(User, related_name='customer_projects') deal_type = models.CharField(max_length=20, default='secure_deal', choices=DEAL_TYPES) name = models.CharField(max_length=255) price_and_term_required = models.BooleanField(default=False) diff --git a/projects/templates/chattest.html b/projects/templates/chattest.html index f0261f3..2ab5cc3 100644 --- a/projects/templates/chattest.html +++ b/projects/templates/chattest.html @@ -3,7 +3,7 @@
Исполнители
diff --git a/projects/urls.py b/projects/urls.py index bbf00a8..e220158 100644 --- a/projects/urls.py +++ b/projects/urls.py @@ -3,25 +3,25 @@ from django.views.generic import TemplateView from .views import ( add_candidate, + ArbitrationCreateView, CandidateDeleteView, contractor_portfolio_create, ContractorAnswerArchiveView, ContractorPortfolioTrashView, ContractorPortfolioUpdateView, + CustomerOfferOrderView, CustomerProjectCreateView, CustomerProjectDeleteView, CustomerProjectEditView, CustomerProjectRestoreView, CustomerProjectTrashView, - OfferOrderView, + PortfolioDetail, ProjectAnswerCreateMessageView, ProjectComparisonView, ProjectDetailWithAnswerView, ProjectFilterView, RejectProjectAnswerView, sort_candidates, - PortfolioDetail, - ArbitrationCreateView, ) app_name = 'projects' @@ -51,7 +51,7 @@ urlpatterns = [ urls.url(r'^candidate/comparison/sort/$', sort_candidates, name='comparison-sort'), urls.url(r'^candidate/comparison/(?P
- {% endif %}
-
- {% elif request.user.is_customer %}
-
- {% if request.user.avatar %}
- {% thumbnail request.user.avatar "75x75" crop="center" as im %}
-
- {% endif %}
-
- {% endif %}
-
+ {% endif %}
+
+ {% elif request.user.is_customer %}
+
+ {% if request.user.avatar %}
+ {% thumbnail request.user.avatar "75x75" crop="center" as im %}
+
+ {% endif %}
+
+ {% endif %}
+
-
+ {% endif %}
+ {{ team.name }} {# TODO #}
@@ -186,14 +195,16 @@
- {% endif %}
+ {% if contractor.avatar %}
+ {% thumbnail contractor.avatar "126x125" crop="center" as avatar %}
+
+ {% endif %}
- {{ contractor.get_full_name }} [{{ contractor.username }}] + {{ contractor.get_full_name }} [{{ contractor.username }}]
Есть допуск СРО
@@ -392,3 +409,52 @@