diff --git a/projects/migrations/0034_auto_20160916_1933.py b/projects/migrations/0034_auto_20160916_1933.py
new file mode 100644
index 0000000..a731d00
--- /dev/null
+++ b/projects/migrations/0034_auto_20160916_1933.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-16 16:33
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import projects.validators
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('projects', '0033_auto_20160916_1534'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='projectworktypesuggestion',
+ name='commentary',
+ field=models.TextField(blank=True, verbose_name='Комментарий'),
+ ),
+ migrations.AlterField(
+ model_name='projectworktypesuggestion',
+ name='email',
+ field=models.EmailField(max_length=254, verbose_name='Email'),
+ ),
+ migrations.AlterField(
+ model_name='projectworktypesuggestion',
+ name='name',
+ field=models.CharField(max_length=255, verbose_name='Название'),
+ ),
+ migrations.AlterField(
+ model_name='projectworktypesuggestion',
+ name='processed',
+ field=models.BooleanField(default=False, verbose_name='Рассмотрено?'),
+ ),
+ migrations.AlterField(
+ model_name='projectworktypesuggestion',
+ name='username',
+ field=models.CharField(blank=True, max_length=255, verbose_name='Имя пользователя'),
+ ),
+ migrations.AlterField(
+ model_name='stage',
+ name='term',
+ field=models.DateField(validators=[projects.validators.validate_term]),
+ ),
+ ]
diff --git a/projects/migrations/0035_auto_20160916_2003.py b/projects/migrations/0035_auto_20160916_2003.py
new file mode 100644
index 0000000..ae886bd
--- /dev/null
+++ b/projects/migrations/0035_auto_20160916_2003.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-16 17:03
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('projects', '0034_auto_20160916_1933'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='stage',
+ name='term',
+ field=models.DateField(),
+ ),
+ ]
diff --git a/projects/models.py b/projects/models.py
index 2a6c468..75a4f57 100644
--- a/projects/models.py
+++ b/projects/models.py
@@ -163,6 +163,11 @@ class Answer(models.Model):
class AnswerMessage(models.Model):
+ # Get a message's author:
+ #
+ # customer: `message.is_sender_customer and message.answer.project.customer`
+ # contractor/team: `not message2.is_sender_customer and message2.contractor_or_team`
+
answer = models.ForeignKey(Answer, related_name='messages')
created = models.DateTimeField(default=timezone.now)
is_sender_customer = models.BooleanField(default=False)
@@ -362,11 +367,11 @@ class PortfolioPhoto(models.Model):
class ProjectWorkTypeSuggestion(models.Model):
- name = models.CharField(max_length=255)
- commentary = models.TextField(blank=True)
- processed = models.BooleanField(default=False)
- username = models.CharField(max_length=255)
- email = models.EmailField()
+ name = models.CharField(max_length=255, verbose_name='Название')
+ commentary = models.TextField(blank=True, verbose_name='Комментарий')
+ processed = models.BooleanField(default=False, verbose_name='Рассмотрено?')
+ username = models.CharField(max_length=255, blank=True, verbose_name='Имя пользователя')
+ email = models.EmailField(verbose_name='Email')
class Meta:
verbose_name = 'Предложение типов работ (проектов)'
diff --git a/projects/templates/comparison.html b/projects/templates/comparison.html
index 31b097a..73a7e82 100644
--- a/projects/templates/comparison.html
+++ b/projects/templates/comparison.html
@@ -36,9 +36,9 @@
{% if cand.answer.author|class_name == 'User' %}
- {{ cand.answer.author.get_full_name }}
+ {% firstof cand.answer.author.get_full_name.strip cand.answer.author.username %}
{% elif cand.answer.author|class_name == 'Team' %}
- {{ cand.answer.author.name }}
+ {% firstof cand.answer.author.name.strip cand.answer.author.username %}
{% endif %}
|
diff --git a/projects/templates/customer_project_create.html b/projects/templates/customer_project_create.html
index 508d25f..d79fd31 100644
--- a/projects/templates/customer_project_create.html
+++ b/projects/templates/customer_project_create.html
@@ -304,22 +304,19 @@
;(function() {
- var $workTypeSuggestionModal = $('#projectWorkTypeSuggestionModal')
- var $form = $workTypeSuggestionModal.find('.-project-work-type-suggestion-form').first()
+ var $modal = $('#projectWorkTypeSuggestionModal')
+ var $form = $modal.find('.-project-work-type-suggestion-form').first()
var workTypeSuggestionUrl = '/projects/suggest-work-type/'
- $workTypeSuggestionModal.find('.-action-button').first().on('click', function($evt) {
+ $modal.find('.-action-button').first().on('click', function($evt) {
$.post(workTypeSuggestionUrl, $form.serialize())
.then(function(res) {
if (res.status === 'success') {
- console.log('Success')
$form.trigger('reset')
$('.-error').text('')
- $workTypeSuggestionModal.modal('hide')
+ $modal.modal('hide')
$.jGrowl('Предложение успешно отправлено')
} else if (res.status === 'error') {
- console.log('Error')
-
_.flow(
_.toPairs,
diff --git a/projects/templates/project_detail.html b/projects/templates/project_detail.html
index d954d47..6759da1 100644
--- a/projects/templates/project_detail.html
+++ b/projects/templates/project_detail.html
@@ -5,6 +5,16 @@
{% load specializtions_tags %}
{% load project_tags %}
+
+{% block head_css %}
+
+{% endblock %}
+
+
{% block content %}
{% include 'partials/header.html' %}
@@ -332,17 +342,17 @@
{% for message in answer.messages.all %}
-
+
{% if message.is_sender_customer %}
-
- {{ project.customer.get_full_name }}
+
+ {% firstof project.customer.get_full_name.strip project.customer.username %}
{% else %}
-
+
{% if answer.author|class_name == 'User' %}
- {{ answer.author.get_full_name }}
+ {% firstof answer.author.get_full_name.strip answer.author.username %}
{% elif answer.author|class_name == 'Team' %}
- {{ answer.author.name }}
+ {% firstof answer.author.name.strip answer.author.owner.username %}
{% endif %}
{% endif %}
@@ -705,17 +715,17 @@
{% for message in answer.messages.all %}
-
+
{% if message.is_sender_customer %}
- {{ project.customer.get_full_name }}
+ {% firstof project.customer.get_full_name.strip project.customer.username %}
{% else %}
{% if answer.author|class_name == 'User' %}
- {{ answer.author.get_full_name }}
+ {% firstof answer.author.get_full_name.strip answer.author.username %}
{% elif answer.author|class_name == 'Team' %}
- {{ answer.author.name }}
+ {% firstof answer.author.name.strip answer.author.owner.username %}
{% endif %}
{% endif %}
@@ -899,17 +909,17 @@
{% for message in answer.messages.all %}
-
+
{% if message.is_sender_customer %}
- {{ project.customer.get_full_name }}
+ {% firstof project.customer.get_full_name.strip project.customer.username %}
{% else %}
{% if answer.author|class_name == 'User' %}
- {{ answer.author.get_full_name }}
+ {% firstof answer.author.get_full_name.strip answer.author.username %}
{% elif answer.author|class_name == 'Team' %}
- {{ answer.author.name }}
+ {% firstof answer.author.name.strip answer.author.owner.username %}
{% endif %}
{% endif %}
@@ -1071,17 +1081,17 @@
{% for message in answer.messages.all %}
-
+
{% if message.is_sender_customer %}
- {{ project.customer.get_full_name }}
+ {% firstof project.customer.get_full_name.strip project.customer.username %}
{% else %}
{% if answer.author|class_name == 'User' %}
- {{ answer.author.get_full_name }}
+ {% firstof answer.author.get_full_name.strip answer.author.username %}
{% elif answer.author|class_name == 'Team' %}
- {{ answer.author.name }}
+ {% firstof answer.author.name.strip answer.author.owner.username %}
{% endif %}
{% endif %}
diff --git a/users/templates/contractor_profile.html b/users/templates/contractor_profile.html
index 99f9d25..a6d41c0 100644
--- a/users/templates/contractor_profile.html
+++ b/users/templates/contractor_profile.html
@@ -117,7 +117,7 @@
Контакты владельца
-
+
{% if contractor.website %}
@@ -126,6 +126,10 @@
- {{ contractor.email }}
+ {% if contractor.skype %}
+ - {{ contractor.skype }}
+ {% endif %}
+
{% if contractor.phone %}
- {{ contractor.phone }}
{% endif %}
@@ -346,20 +350,22 @@
-
+ {% if contractor == request.user %}
+
+ {% endif %}
-
-
-
+ {% if contractor.pk == request.user.pk %}
+
+
+
+ {% endif %}
+
{{ contractor.contractor_resume.text|safe }}
@@ -450,10 +459,14 @@
Дипломы / Сертификаты
-
+
+ {% if contractor == request.user %}
+
+ {% endif %}
+
{% for diplom in resume_diploms %}
@@ -471,11 +484,14 @@
{{ diplom.title }}
-
{% endfor %}
@@ -483,10 +499,14 @@
Допуск СРО
-
+
+ {% if contractor == request.user %}
+
+ {% endif %}
+
{% for cro in resume_cro %}
@@ -504,11 +524,14 @@
{{ cro.title }}
-
{% endfor %}
diff --git a/users/templates/customer_profile_open_projects.html b/users/templates/customer_profile_open_projects.html
index 9e112be..9a02670 100644
--- a/users/templates/customer_profile_open_projects.html
+++ b/users/templates/customer_profile_open_projects.html
@@ -53,11 +53,13 @@
- {{ proj.get_team_answers|length }} ответ от имени группы
-
+ {% if request.user == customer %}
+
+ {% endif %}
{{ proj.text }}
diff --git a/users/templates/partials/customer_profile_info_block.html b/users/templates/partials/customer_profile_info_block.html
index 2e409a7..74f1522 100644
--- a/users/templates/partials/customer_profile_info_block.html
+++ b/users/templates/partials/customer_profile_info_block.html
@@ -53,14 +53,16 @@
Открытые проекты
-
-
- Текущие проекты
-
-
-
+ {% if request.user == customer %}
+
-
+ Текущие проекты
+
+
+
+ {% endif %}
-
Отзывы
diff --git a/users/views.py b/users/views.py
index 7087560..4607b62 100644
--- a/users/views.py
+++ b/users/views.py
@@ -394,6 +394,7 @@ class ContractorProfileView(BaseMixin, DetailView):
context['portfolio_form'] = self.portfolio_form_class
display_team_invitation_button = \
+ request_user.is_authenticated() and \
request_user.is_contractor() and \
contractor != request_user and \
request_user.has_team() and \
diff --git a/wallets/forms.py b/wallets/forms.py
index 6433ffe..c2486c0 100644
--- a/wallets/forms.py
+++ b/wallets/forms.py
@@ -9,9 +9,11 @@ class WithDrawForm(forms.ModelForm):
model = WithDraw
fields = (
+ 'passport',
+ 'phone',
'sum',
- 'yandex_card',
'user',
+ 'yandex_card',
)
diff --git a/wallets/migrations/0016_auto_20160916_1933.py b/wallets/migrations/0016_auto_20160916_1933.py
new file mode 100644
index 0000000..7e8120a
--- /dev/null
+++ b/wallets/migrations/0016_auto_20160916_1933.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-16 16:33
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('wallets', '0015_auto_20160902_1904'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='withdraw',
+ name='passport',
+ field=models.CharField(default=0, max_length=50),
+ preserve_default=False,
+ ),
+ migrations.AddField(
+ model_name='withdraw',
+ name='phone',
+ field=models.CharField(default='+7 000 000 00 00', max_length=30),
+ preserve_default=False,
+ ),
+ ]
diff --git a/wallets/models.py b/wallets/models.py
index 4687761..2dc1a78 100644
--- a/wallets/models.py
+++ b/wallets/models.py
@@ -54,12 +54,14 @@ class InvoiceHistory(models.Model):
class WithDraw(models.Model):
- sum = models.DecimalField(max_digits=10, decimal_places=0, validators=[MinValueValidator(1)])
+ complete = models.BooleanField(default=False)
created = models.DateTimeField(default=timezone.now)
- yandex_card = models.CharField(max_length=30)
+ passport = models.CharField(max_length=50)
+ phone = models.CharField(max_length=30)
+ sum = models.DecimalField(max_digits=10, decimal_places=0, validators=[MinValueValidator(1)])
user = models.ForeignKey(User, related_name='with_draw')
- complete = models.BooleanField(default=False)
-
+ yandex_card = models.CharField(max_length=30)
+
def __str__(self):
return self.yandex_card
diff --git a/wallets/templates/score-detail.html b/wallets/templates/score-detail.html
index c274bb0..9a9d862 100644
--- a/wallets/templates/score-detail.html
+++ b/wallets/templates/score-detail.html
@@ -53,6 +53,17 @@
+
+
+
+
+
diff --git a/work_sell/forms.py b/work_sell/forms.py
index 00252f5..5d81052 100644
--- a/work_sell/forms.py
+++ b/work_sell/forms.py
@@ -46,6 +46,7 @@ class WorkSellForm(forms.ModelForm):
'term',
'term_type',
)
+
widgets = {
'construction_type': forms.Select(attrs={'class': 'selectpicker'}),
'building_classification': forms.Select(attrs={'class': 'selectpicker'}),
diff --git a/work_sell/templates/worksell_edit.html b/work_sell/templates/worksell_edit.html
index c4b7217..2f9340f 100644
--- a/work_sell/templates/worksell_edit.html
+++ b/work_sell/templates/worksell_edit.html
@@ -39,7 +39,7 @@
-
Специализации
+
Специализации {{ form.specialization.errors.as_text }}
@@ -64,7 +64,7 @@
-
Бюджет{{ form.budget.errors.as_text }}
+
Бюджет {{ form.budget.errors.as_text }}
@@ -76,7 +76,7 @@
-
Срок выполнения{{ form.budget.errors.as_text }}
+
Срок выполнения {{ form.budget.errors.as_text }}
@@ -90,17 +90,17 @@
-
Вид строительства
- {{ form.construction_type}}
+
Вид строительства {{ form.construction_type.errors.as_text }}
+ {{ form.construction_type }}
-
Классификация здания
- {{ form.building_classification}}
+
Классификация здания {{ form.building_classification.errors.as_text }}
+ {{ form.building_classification }}
-
Фотографии
+
Фотографии {{ form.photos.errors.as_text }}
{% for photo in form.photos.field.queryset.all %}