Merge branch 'master' into artur

remotes/origin/PR-39
ArturBaybulatov 10 years ago
commit 2a9f5e5288
  1. 17
      archilance/settings/prod.py
  2. 39
      assets/css/main.css
  3. 13
      projects/templates/comparison.html
  4. 13
      projects/templates/project_detail.html
  5. 2
      projects/urls.py
  6. 13
      projects/views.py
  7. 8
      update.sh
  8. 130
      users/templates/portfolio_create_form.html

@ -1,3 +1,18 @@
from .base import *
DEBUG = False
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'archilance',
'USER': 'postgres',
'PASSWORD': 'vfhbyrf',
'HOST': 'localhost',
'PORT': '',
}
}
DEBUG = True
TEMPLATE_DEBUG = True
SECRET_KEY = 'vb6@b9zj7^f!^+x*e8=e!oundyu1!e*&0i(3gu2xwo4%fx4h&n'

@ -412,7 +412,7 @@ ul li {
width: 100%;
background-color: #F2F2F2;
position: relative;
margin-bottom: 140px;
/*margin-bottom: 140px;*/
}
.scoreButtons > p {
@ -541,6 +541,8 @@ footer {
width: 100%;
position: relative;
background-color: #F7F7F7;
margin-top: 80px;
float: left;
}
footer:after {
@ -1048,7 +1050,7 @@ footer:after {
.pagin {
text-align: center;
margin: 30px 0 30px 0;
margin: 30px 0 0px 0;
}
.pagin nav {
@ -1650,10 +1652,11 @@ input[type="checkbox"]:checked + span {
.menuUser ul {
float: left;
width: 100%;
}
.menuUser ul li {
width: 101%;
width: 100%;
margin-top: 1px;
position: relative;
background-color: #F1F1F1;
@ -3262,7 +3265,7 @@ input[type="checkbox"]:checked + span {
width: 100%;
border-top: 1px solid #DADADA;
border-bottom: 1px solid #DADADA;
margin: 18px 0 80px; 0;
margin: 18px 0 0px 0;
float: left;
}
@ -4346,7 +4349,7 @@ input[type="checkbox"]:checked + span {
width: 100%;
float: left;
margin: 0 0 80px 0;
padding: 67px 0 15px 0;
padding: 67px 0 0 0;
background-color: #ddd;
text-align: center;
}
@ -5703,4 +5706,30 @@ input[type="radio"]:checked + span {
#order-stages > div:nth-last-child(2), #order-stages > div:last-child{
border: none;
}
.linkSort button{
font-size: 14px;
font-family: 'Arial-MT-Regular', sans-serif;
float: left;
color: #6b6b6b;
padding: 11px 23px;
border-radius: 40px;
margin-right: 6px;
border: 1px solid #c2c2c2;
background-color: #fff;
}
.linkSort button:after{
content: "\e252";
font-family: 'Glyphicons Halflings';
position: relative;
right: -5px;
top: 3px;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.linkSort button:focus{
outline: none;
}
/*end_new*/

@ -68,15 +68,18 @@
<td>
<div class="tableButtons disTab">
<div class="btnTab btnTab1"></div>
<a href="/test">
<div class="btnTab btnTab2"></div>
<a href="{% url 'chat:chat-user' %}">
<div class="btnTab btnTab1"></div>
</a>
<a href="/delete">
<div class="btnTab btnTab3"></div>
<a href="{% url 'chat:chat-user' %}?user_id={{ cand.answer.author.pk }}">
<div class="btnTab btnTab2"></div>
</a>
<form method="POST" action="{% url 'projects:delete-candidate' cand.pk %}">
{% csrf_token %}<input class="btnTab btnTab3" type="submit" value="">
</form>
<div class="btnTab btnTab4"></div>
</div>
</td>

@ -480,22 +480,15 @@
<div class="col-lg-12 compareBlock">
<div class="col-lg-2 col-lg-offset-5">
<p>Сравнить кандидатов</p>
<p><a href="{% url 'projects:comparison' project.pk %}">Сравнить кандидатов</a></p>
</div>
</div>
<div class="col-lg-12 exNew">
<p>Новые исполнители</p>
</div>
{% for answer in project.answers.all %}
<div class="candidateBlock disTab">

@ -20,6 +20,7 @@ from .views import (
ProjectDetailWithAnswerView,
ProjectFilterView,
sort_candidates,
CandidateDeleteView,
)
app_name = 'projects'
@ -44,6 +45,7 @@ urlpatterns = [
urls.url(r'^portfolio/(?P<pk>\d+)/edit/$', ContractorPortfolioUpdateView.as_view(), name='contractor-portfolio-edit'),
urls.url(r'^candidate/add/(?P<answer_id>(\d+))/(?P<project_id>(\d+))/$', add_candidate, name='add-candidate'),
urls.url(r'^candidate/delete/(?P<pk>(\d+))/$', CandidateDeleteView.as_view(), name='delete-candidate'),
urls.url(r'^candidate/comparison/sort/$', sort_candidates, name='comparison-sort'),
urls.url(r'^candidate/comparison/(?P<pk>\d+)/$', ProjectComparisonView.as_view(), name='comparison'),

@ -592,10 +592,21 @@ class ProjectComparisonView(DetailView):
def add_candidate(request, answer_id, project_id):
answer = Answer.objects.get(pk=answer_id)
project = Project.objects.get(pk=project_id)
candidate = Candidate.objects.create(answer=answer, project=project)
count_answers = Candidate.objects.filter(project=project).count()
count_answers += 1
candidate = Candidate.objects.create(answer=answer, project=project, position=count_answers)
return HttpResponseRedirect(reverse('projects:detail', args=[project_id]))
class CandidateDeleteView(DeleteView):
model = Candidate
def get_success_url(self):
return reverse('projects:comparison', kwargs={'pk': self.object.project_id})
def get(self, *args, **kwargs):
return self.post(*args, **kwargs)
def sort_candidates(request):
if request.is_ajax():
items = request.POST.getlist('items[]')

@ -0,0 +1,8 @@
#!/usr/bin/env bash
source ../env/bin/activate &&
git reset --hard &&
git pull &&
./manage.py migrate --noinput &&
./manage.py collectstatic --noinput &&
supervisorctl restart arch

@ -3,115 +3,125 @@
<form method="post" id="portfolio-add-form">{% csrf_token %}
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Название<span style="color: red; margin-left:8px; font-size: 12px;" class="error-{{ portfolio_form.name.html_name }}">{{ portfolio_form.name.errors.as_text }}</span></p>
<p>Название<span style="color: red; margin-left:8px; font-size: 12px;"
class="error-{{ portfolio_form.name.html_name }}">{{ portfolio_form.name.errors.as_text }}</span>
</p>
<input type="text" class="box-sizing" name="{{ portfolio_form.name.html_name }}"
value="{{ portfolio_form.name.value }}">
</div>
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Описание<span style="color: red; margin-left:8px; font-size: 12px;" class="error-{{ portfolio_form.description.html_name }}">{{ portfolio_form.description.errors.as_text }}</span></p>
<textarea name="{{ portfolio_form.description.html_name }}" id="text-new">{{ portfolio_form.description.value }}</textarea>
<p>Описание<span style="color: red; margin-left:8px; font-size: 12px;"
class="error-{{ portfolio_form.description.html_name }}">{{ portfolio_form.description.errors.as_text }}</span>
</p>
<textarea name="{{ portfolio_form.description.html_name }}"
id="text-new">{{ portfolio_form.description.value }}</textarea>
</div>
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Специализации</p>
</div>
</div>
<div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%">
</div>
<div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%">
</div>
<div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-2" style="width: 100%">
</div>
<div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-2" style="width: 100%">
</div>
<div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-3" style="width: 100%">
</div>
<div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-3" style="width: 100%">
</div>
<div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-4" style="width: 100%">
</div>
<div class="textAreaBlock2 text-nn box-sizing disTab">
<input type="hidden" id="chosenSpecId" name="{{ portfolio_form.specialization.html_name }}"
<div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-4" style="width: 100%">
</div>
<div class="textAreaBlock2 text-nn box-sizing disTab">
<input type="hidden" id="chosenSpecId" name="{{ portfolio_form.specialization.html_name }}"
value="{{ portfolio_form.specialization.value }}">
</div>
</div>
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab">
<p>Бюджет{{ portfolio_form.budget.errors.as_text }}</p>
<p>Бюджет{{ portfolio_form.budget.errors.as_text }}</p>
<div class="row">
<div class="col-lg-6">
<input type="text" class="box-sizing" name="{{ portfolio_form.budget.html_name }}" value="{{ portfolio_form.budget.value }}">
<input type="text" class="box-sizing" name="{{ portfolio_form.budget.html_name }}"
value="{{ portfolio_form.budget.value }}">
</div>
<div class="col-lg-3">
{{ portfolio_form.currency}}
{{ portfolio_form.currency }}
</div>
</div>
</div>
</div>
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab">
<p>Срок выполнения{{ portfolio_form.budget.errors.as_text }}</p>
<p>Срок выполнения{{ portfolio_form.budget.errors.as_text }}</p>
<div class="row">
<div class="col-lg-6">
<input type="text" class="box-sizing" name="{{ portfolio_form.budget.html_name }}" value="{{ portfolio_form.budget.value }}">
<input type="text" class="box-sizing" name="{{ portfolio_form.budget.html_name }}"
value="{{ portfolio_form.budget.value }}">
</div>
<div class="col-lg-3">
{{ portfolio_form.term_type }}
</div>
</div>
</div>
<div class="textAreaBlock2 text-nn box-sizing disTab"></div>
<div class="textAreaBlock2 polsF1text-nn box-sizing disTab"></div>
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab" id="modal_type_build">
<p>Вид строительства</p>
<div class="row">
<div class="col-lg-3">
<p>Вид строительства</p>
{{ portfolio_form.construction_type}}
<div class="col-lg-6">
{{ portfolio_form.construction_type }}
</div>
<div class="col-lg-3">
<p>Классификация здания</p>
{{ portfolio_form.building_classification}}
</div>
</div>
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab">
<p>Классификация здания</p>
<div class="row">
<div class="col-lg-6">
{{ portfolio_form.building_classification }}
</div>
</div>
</div>
<div class="polsF1 polsF2 disTab">
<p>Классификация здания</p>
{{ portfolio_form.building_classification}}
</div>
<div class="extAreaBlock2 polsF1 text-nn box-sizing disTab">
<p></p>
<div class="row">
<div class="col-lg-6 make-new">
<div class="polsF1 polsF2 disTab">
<input type="hidden" name="{{ portfolio_form.user.html_name }}" value="{{ request.user.pk }}" />
<input type="hidden" name="images-ids" id="upload-files-pk" />
{{ portfolio_form.duplicate }} Дублировать проект в готовые работы
</div>
<label>{{ portfolio_form.duplicate }}<span></span></label>
<p>Дублировать проект в готовые работы</p>
</div>
<div class="polsF1 polsF2 disTab">
<input type="hidden" name="" id="upload-files-pk" value="" />
<input type="hidden" name="{{ portfolio_form.user.html_name }}" value="{{ request.user.pk }}"/>
<input type="hidden" name="images-ids" id="upload-files-pk"/>
</div>
</div>
<!-- The fileinput-button span is used to style the file input field as button -->
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab" style="margin-bottom: 12px;">
<!-- The fileinput-button span is used to style the file input field as button -->
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab" style="margin-bottom: 12px;">
<span class="btn btn-success fileinput-button add_file_to_port">
<span>Выберите файлы</span>
<input id="fileupload" type="file" name="file" multiple value="">
</span>
</div>
<br>
<br>
<!-- The global progress bar -->
<div id="progress-portfolio" class="progress">
<div class="progress-bar progress-bar-success"></div>
</div>
<!-- The container for the uploaded files -->
<div id="files" class="files"></div>
<br>
<div class="searchF1 polsF1 polsFF links-filter">
<input class="btn-submit-link" type="submit" value="Разместить портфолио">
</div>
<br>
<br>
<!-- The global progress bar -->
<div id="progress-portfolio" class="progress">
<div class="progress-bar progress-bar-success"></div>
</div>
<!-- The container for the uploaded files -->
<div id="files" class="files"></div>
<br>
<!-- The global progress bar -->
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab">
<div id="progress-portfolio" class="progress">
@ -123,9 +133,9 @@
<div id="files" class="files"></div>
</div>
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab">
<input class="btn-submit-link add_file_to_port" type="submit" value="Разместить портфолио">
<input class="btn-submit-link add_file_to_port" type="submit" value="Разместить портфолио">
</div>
<!-- </div> -->
<!-- </div> -->
</form>
</div>

Loading…
Cancel
Save