some fixes #PR-22,7,29,50

remotes/origin/PR-39
PekopT 9 years ago
parent 3a5d3bd15a
commit c39dfbd729
  1. 1
      archilance/settings/base.py
  2. 25
      assets/css/main.css
  3. 28
      assets/js/main.js
  4. 2
      projects/forms.py
  5. 100
      projects/templates/project_detail.html
  6. 2
      projects/views.py
  7. 4
      templates/registration/registration_form.html

@ -329,3 +329,4 @@ DEFAULT_FILE_STORAGE = 'archilance.util.ASCIIFileSystemStorage'
RECAPTCHA_PUBLIC_KEY = '6LftaQgUAAAAAG0oKrt1ORtop1jfIEzkTnCL4S3Q'
RECAPTCHA_PRIVATE_KEY = '6LftaQgUAAAAAMaIK-YCL1u1AfakVXjblULQCvfa'
NOCAPTCHA = True

@ -2383,6 +2383,19 @@ input[type="checkbox"]:checked + span {
position: relative;
}
.infoProjectBlock .existing-file-widget {
margin-left: 50px;
}
.infoProjectBlock .existing-file-widget a {
color: #737373;
font-size: 13px;
}
.infoProjectBlock .existing-file-widget a:hover {
color: #000;
}
.listProjectIn {
float: left;
margin: 40px 0 0 57px;
@ -4431,6 +4444,15 @@ input[type="checkbox"]:checked + span {
vertical-align: top;
}
.select-reg.captcha {
text-align: center;
}
.select-reg .g-recaptcha {
display: inline-table;
margin: 25px 0 0 0;
}
.email-reg, .pass-reg {
width: 360px;
height: 51px;
@ -4483,7 +4505,7 @@ input[type="checkbox"]:checked + span {
color: #6c6c6c;
font-size: 15px;
float: left;
margin: -2px 0 0 10px;
/*margin: -2px 0 0 10px;*/
line-height: 18px;
width: 90%;
text-align: left;
@ -6152,6 +6174,7 @@ li.officeList.icon_tml > a > p{
padding: 12px 30px;
font-size: 15px;
margin: auto;
margin: auto;
margin-bottom: 20px;
}
#simpleSpecContainer .-simple-spec-widget{

@ -34,34 +34,50 @@ $(document).ready(function(){
$('.showSpec').eq(ind).slideDown(300);
});
$('.selectpicker').selectpicker({
style: 'btn-info',
size: 4,
width: '237px'
size: 10,
width: '237px',
liveSearch: true,
liveSearchNormalize: true,
liveSearchPlaceholder: 'Поиск',
noneSelectedText: 'Выберите значение'
});
$('.selectpicker6').selectpicker({
style: 'btn-info',
size: 10,
width: '237px',
noneSelectedText: 'Выберите значение'
});
$('.selectpicker2').selectpicker({
style: 'btn-info',
size: 4,
width: '90px'
width: '90px',
noneSelectedText: 'Выберите значение'
});
$('.selectpicker3').selectpicker({
style: 'btn-info',
size: 4,
width: '360px'
width: '360px',
noneSelectedText: 'Выберите значение'
});
$('.selectpicker4').selectpicker({
style: 'btn-info',
size: 4,
width: '254px'
width: '254px',
noneSelectedText: 'Выберите значение'
});
$('.selectpicker5').selectpicker({
style: 'btn-info',
size: 4,
width: '117px'
width: '117px',
noneSelectedText: 'Выберите значение'
});
});

@ -42,7 +42,7 @@ class ProjectFilterForm(forms.ModelForm):
)
widgets = {
'work_type': forms.Select(attrs={'class': 'selectpicker -project-work-type-select-field'}),
'work_type': forms.Select(attrs={'class': 'selectpicker6 -project-work-type-select-field'}),
}
def __init__(self, *args, **kwargs):

@ -115,6 +115,19 @@
<p class="textProIn">
{{ project.text|linebreaksbr }}
</p>
</div> br
<div class="col-lg-10 col-lg-offset-1" style="margin-top: 15px;">
<p class="textProIn">
Приложенные файлы:
{% for file in project.files.all %}
<li class="existing-file-widget">
<a href="{{ file }}" class="file-upload-label">{{ file.file.name|basename }} {{ file.file.size|filesizeformat }}</a>
</li>
{% endfor %}
</p>
</div>
<div class="col-lg-10 col-lg-offset-1">
@ -757,7 +770,7 @@
{% csrf_token %}
<input type="hidden" name="next" value="{% url 'projects:detail' pk=project.pk %}#new-answers">
<div><textarea name="text" class="fr_answer"></textarea></div>
<div><textarea name="text" class="fr_answer" title="Текст сообщения"></textarea></div>
<div><button type="submit" class="fr_answer_sen">Отправить</button></div>
</form>
</div>
@ -887,11 +900,11 @@
</a>
</form>
{% else %}
{% if answer.author|class_name == 'User' %}
<a href="{% url 'chat:chat-user' %}?user_id={{ answer.author.pk }}" class="candLink candLink2">Перейти к обсуждению</a>
{% elif answer.author|class_name == 'Team'%}
<a href="{% url 'chat:chat-user' %}?user_id={{ answer.author.owner.pk }}" class="candLink candLink2">Перейти к обсуждению</a>
{% endif %}
{# {% if answer.author|class_name == 'User' %}#}
{# <a href="{% url 'chat:chat-user' %}?user_id={{ answer.author.pk }}" class="candLink candLink2">Перейти к обсуждению</a>#}
{# {% elif answer.author|class_name == 'Team'%}#}
{# <a href="{% url 'chat:chat-user' %}?user_id={{ answer.author.owner.pk }}" class="candLink candLink2">Перейти к обсуждению</a>#}
{# {% endif %}#}
{% endif %}
<form action="{% url 'projects:reject-project-answer' pk=answer.pk %}" method="POST" novalidate>
@ -961,8 +974,7 @@
<form action="{% url 'projects:create-answer-message' pk=answer.pk %}" method="POST" novalidate>
{% csrf_token %}
<input type="hidden" name="next" value="{% url 'projects:detail' pk=project.pk %}#candidate-answers">
<div><textarea style="margin-left:0;" name="text" class="fr_answer"></textarea></div>
<div><textarea style="margin-left:0;" name="text" class="fr_answer" title="Текст сообщения"></textarea></div>
<div><button style="margin-left:0;" type="submit" class="fr_answer_sen">Отправить</button></div>
</form>
</div>
@ -1151,59 +1163,55 @@
<script>
// Persistent Bootstrap tabs --------------------------------------
;(function() {
var $allTabs = $('a[data-toggle="tab"]')
var $allTabs = $('a[data-toggle="tab"]');
var $tab = $allTabs.filter('[href="' + window.location.hash + '"]').first()
var $tab = $allTabs.filter('[href="' + window.location.hash + '"]').first();
if (_.isEmpty($tab))
$tab = $allTabs.first()
$tab = $allTabs.first();
$tab.tab('show')
$tab.addClass('active')
$tab.tab('show');
$tab.addClass('active');
$allTabs.on('click', function($evt) { // Better handle "shown.bs.tab" event?
var $tab = $(this)
$allTabs.on('click', function() { // Better handle "shown.bs.tab" event?
var $tab = $(this);
$allTabs.removeClass('active')
$tab.addClass('active')
$allTabs.removeClass('active');
$tab.addClass('active');
window.location.hash = $tab.attr('href')
})
});
}())
// Toggle project answer form -----------------------------------
;(function() {
var $projectAnswerForm = $('.-project-answer-form').first()
var $projectAnswerForm = $('.-project-answer-form').first();
if ($.cookie('projectAnswerFormVisible')) {
$projectAnswerForm.show('slow')
$projectAnswerForm.show('slow');
$.cookie('projectAnswerFormVisible', 'true', {expires: new Date(new Date().getTime() + 300000)})
}
function toggleProjectAnswerForm() {
if ($.cookie('projectAnswerFormVisible')) {
$projectAnswerForm.hide('slow')
$projectAnswerForm.hide('slow');
$.cookie('projectAnswerFormVisible', '', {expires: new Date(new Date().getTime() + 300000)})
} else {
$projectAnswerForm.show('slow')
$projectAnswerForm.show('slow');
$.cookie('projectAnswerFormVisible', 'true', {expires: new Date(new Date().getTime() + 300000)})
}
}
$('.offer-order-contractor').on('click', function(e){
e.preventDefault()
e.preventDefault();
var senderId = $(this).attr('data-sender-id')
var recipentId = $(this).attr('data-recipent-id')
var orderId = $(this).attr('data-order-id')
var senderId = $(this).attr('data-sender-id');
var recipentId = $(this).attr('data-recipent-id');
var orderId = $(this).attr('data-order-id');
var msg = 'Вас выбрали исполнителем для заказа '
var msg = 'Вас выбрали исполнителем для заказа ';
socketMain.add_message({
format_type: 'add_message_contact',
@ -1212,42 +1220,42 @@
sender_id: String(senderId),
recipent_id: String(recipentId),
order_id: String(orderId),
chat_message: msg,
},
})
chat_message: msg
}
});
$(this).closest('form').submit()
})
});
$('.reject-project-link').on('click', function(e){
e.preventDefault();
var projectId = $(this).attr('data-project-id')
var msg = 'Вам отказано по проекту " ' + $(this).attr("data-order-name") + '" <a class="message_connect" href="http://{{ request.get_host }}/projects/'+ projectId +'/" >Перейти</a>'
var customerId = $(this).attr('data-sender-id')
var contractorId = $(this).attr('data-recipent-id')
var projectId = $(this).attr('data-project-id');
var msg = 'Вам отказано по проекту " ' + $(this).attr("data-order-name") + '" <a class="message_connect" href="http://{{ request.get_host }}/projects/'+ projectId +'/" >Перейти</a>';
var customerId = $(this).attr('data-sender-id');
var contractorId = $(this).attr('data-recipent-id');
socketMain.add_message({
format_type: 'add_message_contact',
message_type: 'reject_order',
data: {
sender_id: String(customerId),
recipent_id: String(contractorId),
chat_message: msg,
},
})
chat_message: msg
}
});
$(this).closest('form').submit();
})
});
$('.reject-project-link-contractor').on('click', function(e){
e.preventDefault();
$(this).closest('form').submit();
})
});
window.toggleProjectAnswerForm = toggleProjectAnswerForm
}())
}());
@ -1257,6 +1265,6 @@
if (_.includes(window.location.hash, ['#new-answers','#candidate-answers','#rejected-answers'])) {
$(window).scrollTop($('.-answers-scroll-to').first().offset().top)
}
}, 100)
}, 400)
</script>
{% endblock %}

@ -298,7 +298,7 @@ class ProjectFilterView(BaseMixin, View):
keywords = tuple(filter(None, re.split(r'\s|,|;', keywords)))
for k in keywords:
projects = projects.filter(Q(name__icontains=k) | Q(text__icontains=k))
projects = projects.filter(Q(name__icontains=k.lower()) | Q(text__icontains=k.lower()))
if cro:
projects = projects.filter(cro=cro)

@ -51,7 +51,7 @@
{{ form.password2.errors }}
</div>
<div class="col-lg-12 select-reg">
<div class="col-lg-12 select-reg captcha">
{{ form.captcha }}
{{ form.captcha.errors }}
</div>
@ -60,7 +60,7 @@
</div>
<div class="clearfix"></div>
<div class="col-lg-12" style="margin-top: 10px;">
<div class="col-lg-12" style="margin-top: 25px;">
<div class="col-xs-12 text-center">
<div class="btn-group" role="group">

Loading…
Cancel
Save