remotes/origin/PR-39
Mukhtar 9 years ago
commit a8d4d19834
  1. 2
      assets/css/extra.css
  2. 51
      assets/index.js
  3. 2
      assets/js/chat.js
  4. 2
      projects/models.py
  5. 6
      projects/templates/customer_project_create.html
  6. 4
      projects/templates/project_filter.html
  7. 2
      templates/partials/base.html
  8. 6
      users/templates/contractor_profile.html

@ -210,7 +210,7 @@
border-top: 1px solid black;
border-bottom: 1px solid black;
-webkit-transform: scale(1.03);
-moz- transform: scale(1.03);
-moz-transform: scale(1.03);
transform: scale(1.03);
box-shadow: 0 0 10px rgba(0,0,0,0.7);
z-index: 999;

@ -74,7 +74,7 @@ $('[data-tooltip]').tooltip({
var $specSelect4 = $container.find('.-spec-select-level-4').first()
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4]
reinitSpecializationsByWorkType($specSelects, null)
reinitSpecializationsByWorkType($specSelect1, null, $container)
var chosenSpecId = $chosenSpecId.val()
@ -88,20 +88,29 @@ $('[data-tooltip]').tooltip({
})
function reinitSpecializationsByWorkType($specSelects, workTypeId) {
function reinitSpecializationsByWorkType($specSelect1, workTypeId, $container) {
var $chosenSpecId = $container.find('.-chosen-spec-id').first()
var $specSelect2 = $container.find('.-spec-select-level-2').first()
var $specSelect3 = $container.find('.-spec-select-level-3').first()
var $specSelect4 = $container.find('.-spec-select-level-4').first()
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4]
$.get('/api/specializations/?parent__name=_root')
.then(function(res) {
var rootSpecs = res.results
if (workTypeId == null) {
var url = '/api/specializations/'
var specId = null
} else {
var rootSpec = ({1: rootSpecs[0], 2: rootSpecs[1], 3: rootSpecs[2]})[workTypeId]
var specId = rootSpec.id
var url = format('/api/specializations/?lft__gte=%s&rght__lte=%s', rootSpec.lft, rootSpec.rght)
}
specSelectOptions.ajax.url = url
$specSelects.select2(specSelectOptions)
$specSelect1.select2(_.merge(specSelectOptions, {ajax: {url: url}}))
updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects)
})
}
@ -110,6 +119,12 @@ $('[data-tooltip]').tooltip({
function updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects) {
return getSpecializationTree(specId).then(function(specs) {
var spec = specs.spec
specSelects[1].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel2}}))
specSelects[2].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel3}}))
specSelects[3].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel4}}))
var specLevel1 = specs.specLevel1
var specLevel2 = specs.specLevel2
var specLevel3 = specs.specLevel3
@ -121,10 +136,19 @@ $('[data-tooltip]').tooltip({
specSelects[3].select2('data', specLevel4 ? {id: specLevel4.id, text: specLevel4.name, origItem: specLevel4} : null)
$chosenSpecId.val(specId)
specSelects[1].select2('container').css('display', !specLevel1 || _.isEmpty(specLevel1.children) ? 'none' : 'block')
specSelects[2].select2('container').css('display', !specLevel2 || _.isEmpty(specLevel2.children) ? 'none' : 'block')
specSelects[3].select2('container').css('display', !specLevel3 || _.isEmpty(specLevel3.children) ? 'none' : 'block')
})
}
window.updateSpecializationWidgets = updateSpecializationWidgets
//function repopulateSpecializations() {
//
//}
}())
@ -676,7 +700,9 @@ function loadAllPhotos(portfIds) {
function getSpecializationTree(specId) {
var specs = {
spec: null,
specLevel1: null, specLevel2: null, specLevel3: null, specLevel4: null,
urlLevel2: null, urlLevel3: null, urlLevel4: null,
}
if (specId === null) {
@ -685,7 +711,11 @@ function getSpecializationTree(specId) {
return $.ajax({url: '/api/specializations/' + specId + '/', method: 'GET', dataType: 'json'})
.then(function(spec) {
if (spec.level === 1) {
return _.merge(specs, {specLevel1: spec})
return _.merge(specs, {
spec: spec,
specLevel1: spec,
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', spec.lft, spec.rght),
})
} else if (spec.level === 2) {
var specLevel2 = spec
@ -694,8 +724,11 @@ function getSpecializationTree(specId) {
var specLevel1 = spec
return _.merge(specs, {
spec: specLevel2,
specLevel1: specLevel1,
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght),
specLevel2: specLevel2,
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght),
})
})
} else if (spec.level === 3) {
@ -710,9 +743,13 @@ function getSpecializationTree(specId) {
var specLevel1 = spec
return _.merge(specs, {
spec: specLevel3,
specLevel1: specLevel1,
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght),
specLevel2: specLevel2,
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght),
specLevel3: specLevel3,
urlLevel4: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel3.lft, specLevel3.rght),
})
})
})
@ -732,9 +769,13 @@ function getSpecializationTree(specId) {
var specLevel1 = spec
return _.merge(specs, {
spec: specLevel4,
specLevel1: specLevel1,
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght),
specLevel2: specLevel2,
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght),
specLevel3: specLevel3,
urlLevel4: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel3.lft, specLevel3.rght),
specLevel4: specLevel4,
})
})

@ -29,7 +29,7 @@ window.confirm = function (message, callback, caption) {
var SocketHandler = function () {
domain = domain.replace(':' + port, '');
var url = 'ws://' + domain + '/chat/' + userId + '/';
var url = 'ws://' + domain + ':8888/chat/' + userId + '/';
var sock = new WebSocket(url);
var intervalId;
sock.onopen = function () {

@ -74,7 +74,7 @@ class Realty(models.Model):
class Project(models.Model, HitCountMixin):
WORK_TYPES = (
(1, 'Проектирование'),
(2, 'Проверка документации'),
(2, 'Техническое сопровождение'),
# (3, 'Устранение замечаний в проекте'),
)

@ -365,7 +365,7 @@
var $radios = $radiosContainer.find('input[type=radio][name={{ form.work_type.html_name }}]')
var workTypeId = Number($radios.filter(':checked').val()) || 1
reinitSpecializationsByWorkType($specSelects, workTypeId)
reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer)
var chosenSpecId = $chosenSpecId.val()
@ -374,8 +374,8 @@
$radios.on('change', function($evt) {
var $that = $(this)
var workTypeId = $that.val()
reinitSpecializationsByWorkType($specSelects, workTypeId)
var workTypeId = Number($that.val())
reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer)
})
}())
</script>

@ -262,7 +262,7 @@
var $workTypeSelect = $('.-project-work-type-select-field').first()
var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1
reinitSpecializationsByWorkType($specSelects, workTypeId)
reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer)
var chosenSpecId = $chosenSpecId.val()
@ -272,7 +272,7 @@
$workTypeSelect.on('change', function($evt) {
var $that = $(this)
var workTypeId = Number($that.val())
reinitSpecializationsByWorkType($specSelects, workTypeId)
reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer)
})
}())
</script>

@ -86,7 +86,7 @@
if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/510/work-projects') != 0)) {
domain = domain.replace(':' + port, '');
var url = 'ws://' + domain + '/chat/' + userId + '/';
var url = 'ws://' + domain + ':8888/chat/' + userId + '/';
var sock = new WebSocket(url);
var intervalId;
sock.onopen = function () {

@ -92,7 +92,9 @@
<div class="statusUser busy">Занят</div>
{% endif %}
<a href="#" data-toggle="modal" data-target="#contact-contactor-modal" class="showCon">показать контакты</a>
{% if request.user.is_authenticated %}
<a href="#" data-toggle="modal" data-target="#contact-contactor-modal" class="showCon">показать контакты</a>
{% endif %}
</div>
<div class="col-lg-4">
{% specialization_widget contractor.pk %}
@ -1034,7 +1036,7 @@
formData.append('resume_file', e.target.files[0]);
var file = e.target.files[0]
var allowedExts = ['.pdf','.doc','.docx','.xml','.odt','.uot','.dot','.rtf','.txt','.uop','.pptx','.odp','.html']
var allowedExts = ['.pdf','.doc','.docx','.xml','.odt','.uot','.dot','.rtf','.txt','.uop','.pptx','.odp','.html','.jpg','.jpeg','.tiff','.png']
if (!_.includes(path.extname(file.name), allowedExts)) {
alert('Файл не подходит. Выберите документ')

Loading…
Cancel
Save