Modified specialization select logic, implemented for both portfolio and work-sell creation and editing

remotes/origin/PR-39
ArturBaybulatov 10 years ago
parent 9b16b94947
commit c3fc87c327
  1. 1
      projects/forms.py
  2. 44
      projects/templates/contractor_portfolio_edit.html
  3. 114
      users/templates/contractor_profile.html
  4. 40
      users/templates/portfolio_create_form.html
  5. 39
      users/templates/worksell_create_form.html
  6. 44
      work_sell/templates/worksell_edit.html

@ -200,6 +200,7 @@ class PortfolioForm(forms.ModelForm):
'construction_type': forms.Select(attrs={'class': 'selectpicker'}), 'construction_type': forms.Select(attrs={'class': 'selectpicker'}),
'currency': forms.Select(attrs={'class': 'selectpicker'}), 'currency': forms.Select(attrs={'class': 'selectpicker'}),
'term_type': forms.Select(attrs={'class': 'selectpicker'}), 'term_type': forms.Select(attrs={'class': 'selectpicker'}),
'work_type': forms.Select(attrs={'class': 'selectpicker -project-work-type-select-field'}),
} }

@ -26,8 +26,11 @@
<p class="titleScore">Изменение портфолио</p> <p class="titleScore">Изменение портфолио</p>
</div> </div>
<form method="post" enctype="multipart/form-data" id="worksell-add-form">{% csrf_token %} <form method="post" enctype="multipart/form-data" id="worksell-add-form" class="-spec-work-type-combo-container">
{% csrf_token %}
{{ form.errors }} {{ form.errors }}
<div class="textAreaBlock2 text-nn box-sizing disTab"> <div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Название <span style="color: red">{{ form.name.errors.as_text }}</span></p> <p>Название <span style="color: red">{{ form.name.errors.as_text }}</span></p>
<input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}"> <input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}">
@ -52,7 +55,7 @@
<div class="textAreaBlock2 text-nn box-sizing disTab"> <div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Специализации</p> <p>Специализации</p>
</div> </div>
<div class="-spec-select-container">
<div class="col-lg-3"> <div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%"> <input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%">
</div> </div>
@ -72,7 +75,6 @@
<input type="hidden" class="-chosen-spec-id" name="{{ form.specialization.html_name }}" <input type="hidden" class="-chosen-spec-id" name="{{ form.specialization.html_name }}"
value="{{ form.specialization.value }}"> value="{{ form.specialization.value }}">
</div>
<div class="textAreaBlock2 text-nn box-sizing disTab"> <div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Бюджет{{ form.budget.errors.as_text }}</p> <p>Бюджет{{ form.budget.errors.as_text }}</p>
<div class="row"> <div class="row">
@ -170,39 +172,3 @@
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
{% block js_block %}
<script>
// Load specialization choices by work type ---------------------------
;(function() {
var $specSelectContainer = $('.-spec-select-container').first()
var $specSelects = $specSelectContainer.find('.-spec-select')
var $chosenSpecId = $specSelectContainer.find('.-chosen-spec-id').first()
var $specSelect1 = $specSelectContainer.find('.-spec-select-level-1').first()
var $specSelect2 = $specSelectContainer.find('.-spec-select-level-2').first()
var $specSelect3 = $specSelectContainer.find('.-spec-select-level-3').first()
var $specSelect4 = $specSelectContainer.find('.-spec-select-level-4').first()
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4]
var $workTypeSelect = $('.-project-work-type-select-field').first()
var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1
reinitSpecializationsByWorkType($specSelects, workTypeId)
var chosenSpecId = $chosenSpecId.val()
if (chosenSpecId)
updateSpecializationWidgets(chosenSpecId, $specSelectContainer, $chosenSpecId, specSelects)
$workTypeSelect.on('change', function($evt) {
var $that = $(this)
var workTypeId = Number($that.val())
reinitSpecializationsByWorkType($specSelects, workTypeId)
})
}())
</script>
{% endblock %}

@ -614,7 +614,7 @@
<script src='{% static "lib/ckeditor/adapters/jquery.js" %}'></script> <script src='{% static "lib/ckeditor/adapters/jquery.js" %}'></script>
<script> <script>
(function() { ;(function() {
// Pagination --------------------------------------------------- // Pagination ---------------------------------------------------
@ -822,68 +822,68 @@
// Load portfolio specialization choices by work type --------------------------- // Load portfolio specialization choices by work type ---------------------------
;(function() { //;(function() {
var $specSelectContainer = $('.-spec-select-container.-for-portfolios').first() // var $specSelectContainer = $('.-spec-select-container.-for-portfolios').first()
var $specSelects = $specSelectContainer.find('.-spec-select') // var $specSelects = $specSelectContainer.find('.-spec-select')
//
var $chosenSpecId = $specSelectContainer.find('.-chosen-spec-id').first() // var $chosenSpecId = $specSelectContainer.find('.-chosen-spec-id').first()
//
var $specSelect1 = $specSelectContainer.find('.-spec-select-level-1').first() // var $specSelect1 = $specSelectContainer.find('.-spec-select-level-1').first()
var $specSelect2 = $specSelectContainer.find('.-spec-select-level-2').first() // var $specSelect2 = $specSelectContainer.find('.-spec-select-level-2').first()
var $specSelect3 = $specSelectContainer.find('.-spec-select-level-3').first() // var $specSelect3 = $specSelectContainer.find('.-spec-select-level-3').first()
var $specSelect4 = $specSelectContainer.find('.-spec-select-level-4').first() // var $specSelect4 = $specSelectContainer.find('.-spec-select-level-4').first()
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4] // var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4]
//
var $workTypeSelect = $('.-project-work-type-select-field').first() // var $workTypeSelect = $('.-project-work-type-select-field').first()
//
var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1 // var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1
reinitSpecializationsByWorkType($specSelects, workTypeId) // reinitSpecializationsByWorkType($specSelects, workTypeId)
//
var chosenSpecId = $chosenSpecId.val() // var chosenSpecId = $chosenSpecId.val()
//
if (chosenSpecId) // if (chosenSpecId)
updateSpecializationWidgets(chosenSpecId, $specSelectContainer, $chosenSpecId, specSelects) // updateSpecializationWidgets(chosenSpecId, $specSelectContainer, $chosenSpecId, specSelects)
//
$workTypeSelect.on('change', function($evt) { // $workTypeSelect.on('change', function($evt) {
var $that = $(this) // var $that = $(this)
var workTypeId = Number($that.val()) // var workTypeId = Number($that.val())
reinitSpecializationsByWorkType($specSelects, workTypeId) // reinitSpecializationsByWorkType($specSelects, workTypeId)
}) // })
}()) //}())
// Load "work_sell" specialization choices by work type --------------------------- // Load "work_sell" specialization choices by work type ---------------------------
;(function() { //;(function() {
var $specSelectContainer = $('.-spec-select-container.-for-work-sell').first() // var $specSelectContainer = $('.-spec-select-container.-for-work-sell').first()
var $specSelects = $specSelectContainer.find('.-spec-select') // var $specSelects = $specSelectContainer.find('.-spec-select')
//
var $chosenSpecId = $specSelectContainer.find('.-chosen-spec-id').first() // var $chosenSpecId = $specSelectContainer.find('.-chosen-spec-id').first()
//
var $specSelect1 = $specSelectContainer.find('.-spec-select-level-1').first() // var $specSelect1 = $specSelectContainer.find('.-spec-select-level-1').first()
var $specSelect2 = $specSelectContainer.find('.-spec-select-level-2').first() // var $specSelect2 = $specSelectContainer.find('.-spec-select-level-2').first()
var $specSelect3 = $specSelectContainer.find('.-spec-select-level-3').first() // var $specSelect3 = $specSelectContainer.find('.-spec-select-level-3').first()
var $specSelect4 = $specSelectContainer.find('.-spec-select-level-4').first() // var $specSelect4 = $specSelectContainer.find('.-spec-select-level-4').first()
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4] // var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4]
//
var $workTypeSelect = $('.-project-work-type-select-field').first() // var $workTypeSelect = $('.-project-work-type-select-field').first()
//
var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1 // var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1
reinitSpecializationsByWorkType($specSelects, workTypeId) // reinitSpecializationsByWorkType($specSelects, workTypeId)
//
var chosenSpecId = $chosenSpecId.val() // var chosenSpecId = $chosenSpecId.val()
//
if (chosenSpecId) // if (chosenSpecId)
updateSpecializationWidgets(chosenSpecId, $specSelectContainer, $chosenSpecId, specSelects) // updateSpecializationWidgets(chosenSpecId, $specSelectContainer, $chosenSpecId, specSelects)
//
$workTypeSelect.on('change', function($evt) { // $workTypeSelect.on('change', function($evt) {
var $that = $(this) // var $that = $(this)
var workTypeId = Number($that.val()) // var workTypeId = Number($that.val())
reinitSpecializationsByWorkType($specSelects, workTypeId) // reinitSpecializationsByWorkType($specSelects, workTypeId)
}) // })
}()) //}())

@ -2,7 +2,9 @@
<div class="modal-body"> <div class="modal-body">
<form method="post" id="portfolio-add-form">{% csrf_token %} <form method="post" id="portfolio-add-form" class="-spec-work-type-combo-container">
{% csrf_token %}
<div class="textAreaBlock2 text-nn box-sizing disTab"> <div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Название<span style="color: red; margin-left:8px; font-size: 12px;" <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> class="error-{{ portfolio_form.name.html_name }}">{{ portfolio_form.name.errors.as_text }}</span>
@ -32,30 +34,28 @@
<p>Специализации</p> <p>Специализации</p>
</div> </div>
<div class="-spec-select-container -for-portfolios"> <div class="col-lg-3">
<div class="col-lg-3"> <input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%">
<input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%"> </div>
</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"> <div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-3" style="width: 100%"> <input type='hidden' class="-spec-select -spec-select-level-2" style="width: 100%">
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-4" style="width: 100%"> <input type='hidden' class="-spec-select -spec-select-level-3" style="width: 100%">
</div> </div>
<input <div class="col-lg-3">
type="hidden" <input type='hidden' class="-spec-select -spec-select-level-4" style="width: 100%">
name="{{ portfolio_form.specialization.html_name }}"
value="{{ portfolio_form.specialization.value }}"
class="-chosen-spec-id">
</div> </div>
<input
type="hidden"
name="{{ portfolio_form.specialization.html_name }}"
value="{{ portfolio_form.specialization.value }}"
class="-chosen-spec-id">
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab"> <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="row">

@ -2,7 +2,8 @@
<div class="modal-body"> <div class="modal-body">
<form method="post" id="worksell-add-form">{% csrf_token %} <form method="post" id="worksell-add-form" class="-spec-work-type-combo-container">
{% csrf_token %}
<div class="textAreaBlock2 text-nn box-sizing disTab"> <div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Название заказа <span style="color: red">{{ worksell_form.name.errors.as_text }}</span></p> <p>Название заказа <span style="color: red">{{ worksell_form.name.errors.as_text }}</span></p>
@ -28,30 +29,28 @@
<p>Специализации</p> <p>Специализации</p>
</div> </div>
<div class="-spec-select-container -for-work-sell"> <div class="col-lg-3">
<div class="col-lg-3"> <input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%">
<input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%"> </div>
</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"> <div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-3" style="width: 100%"> <input type='hidden' class="-spec-select -spec-select-level-2" style="width: 100%">
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-4" style="width: 100%"> <input type='hidden' class="-spec-select -spec-select-level-3" style="width: 100%">
</div> </div>
<input <div class="col-lg-3">
type="hidden" <input type='hidden' class="-spec-select -spec-select-level-4" style="width: 100%">
class="-chosen-spec-id"
name="{{ worksell_form.specialization.html_name }}"
value="{{ worksell_form.specialization.value }}">
</div> </div>
<input
type="hidden"
class="-chosen-spec-id"
name="{{ worksell_form.specialization.html_name }}"
value="{{ worksell_form.specialization.value }}">
<div class="textAreaBlock2 polsF1 text-nn box-sizing disTab"> <div class="textAreaBlock2 polsF1 text-nn box-sizing disTab">
<p>Бюджет{{ worksell_form.budget.errors.as_text }}</p> <p>Бюджет{{ worksell_form.budget.errors.as_text }}</p>
<div class="row"> <div class="row">

@ -26,7 +26,9 @@
<p class="titleScore">Изменение готового проекта</p> <p class="titleScore">Изменение готового проекта</p>
</div> </div>
<form method="post" enctype="multipart/form-data" id="worksell-add-form">{% csrf_token %} <form method="post" enctype="multipart/form-data" id="worksell-add-form" class="-spec-work-type-combo-container">
{% csrf_token %}
<div class="textAreaBlock2 text-nn box-sizing disTab"> <div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Название заказа <span style="color: red">{{ form.name.errors.as_text }}</span></p> <p>Название заказа <span style="color: red">{{ form.name.errors.as_text }}</span></p>
<input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}"> <input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}">
@ -52,7 +54,7 @@
<p>Специализации <span style="color: red">{{ form.specialization.errors.as_text }}</span></p> <p>Специализации <span style="color: red">{{ form.specialization.errors.as_text }}</span></p>
</div> </div>
<div class="-spec-select-container">
<div class="col-lg-3"> <div class="col-lg-3">
<input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%"> <input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%">
</div> </div>
@ -71,7 +73,7 @@
<input type="hidden" class="-chosen-spec-id" name="{{ form.specialization.html_name }}" <input type="hidden" class="-chosen-spec-id" name="{{ form.specialization.html_name }}"
value="{{ form.specialization.value }}"> value="{{ form.specialization.value }}">
</div>
<div class="textAreaBlock2 text-nn box-sizing disTab"> <div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Бюджет <span style="color: red">{{ form.budget.errors.as_text }}</span></p> <p>Бюджет <span style="color: red">{{ form.budget.errors.as_text }}</span></p>
@ -171,39 +173,3 @@
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
{% block js_block %}
<script>
// Load specialization choices by work type ---------------------------
;(function() {
var $specSelectContainer = $('.-spec-select-container').first()
var $specSelects = $specSelectContainer.find('.-spec-select')
var $chosenSpecId = $specSelectContainer.find('.-chosen-spec-id').first()
var $specSelect1 = $specSelectContainer.find('.-spec-select-level-1').first()
var $specSelect2 = $specSelectContainer.find('.-spec-select-level-2').first()
var $specSelect3 = $specSelectContainer.find('.-spec-select-level-3').first()
var $specSelect4 = $specSelectContainer.find('.-spec-select-level-4').first()
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4]
var $workTypeSelect = $('.-project-work-type-select-field').first()
var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1
reinitSpecializationsByWorkType($specSelects, workTypeId)
var chosenSpecId = $chosenSpecId.val()
if (chosenSpecId)
updateSpecializationWidgets(chosenSpecId, $specSelectContainer, $chosenSpecId, specSelects)
$workTypeSelect.on('change', function($evt) {
var $that = $(this)
var workTypeId = Number($that.val())
reinitSpecializationsByWorkType($specSelects, workTypeId)
})
}())
</script>
{% endblock %}

Loading…
Cancel
Save