diff --git a/archilance/settings/base.py b/archilance/settings/base.py index ff03ede..e61ea09 100644 --- a/archilance/settings/base.py +++ b/archilance/settings/base.py @@ -173,8 +173,8 @@ AUTHENTICATION_BACKENDS = ( 'social.backends.vk.VKOAuth2', 'social.backends.odnoklassniki.OdnoklassnikiOAuth2', 'social.backends.mailru.MailruOAuth2', - # 'django.contrib.auth.backends.ModelBackend', 'users.backend.EmailOrUsernameModelBackend', + 'django.contrib.auth.backends.ModelBackend', ) # SOCIAL_AUTH_FACEBOOK_KEY = '222531191461451' diff --git a/assets/css/main.css b/assets/css/main.css index aad0124..7422889 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -5996,10 +5996,10 @@ a.linkS2[data-target="#withdraw-money"]{ line-height: 15px; } .tooltip.top{ - margin-top: 0px; + margin-top: 0; } .changeBlock { - min-height: 450px; + min-height: 500px; display: table; padding: 143px 20px 120px 20px; } diff --git a/assets/index.js b/assets/index.js index cbe510c..915f5c4 100644 --- a/assets/index.js +++ b/assets/index.js @@ -1,10 +1,10 @@ // Constants ----------------------------------------------- -var API_PAGE_SIZE = 100 -var LIVE_IMAGE_UPLOAD_URL = '/common/live-image-upload/create/' -var STUB_IMAGE_URL = '/static/img/profile.jpg' - +var API_PAGE_SIZE = 100; +var LIVE_IMAGE_UPLOAD_URL = '/common/live-image-upload/create/'; +var STUB_IMAGE_URL = '/static/img/profile.jpg'; +var DEFAULT_WORK_TYPE = 403; // Plugins init -------------------------------------------- @@ -90,32 +90,32 @@ $('[data-tooltip]').tooltip({ var $workTypeSelect = $container.find('.-project-work-type-select-field').first() if (!_.isEmpty($workTypeSelect)) { - var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1 + var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || DEFAULT_WORK_TYPE; $workTypeSelect.on('change', function($evt) { var $that = $(this) var workTypeId = Number($that.val()) reinitSpecializationsByWorkType(specSelects, workTypeId).then(function(rootSpec) { - updateSpecializationWidgets(rootSpec.id, $container, $chosenSpecId, specSelects) + updateSpecializationWidgets(workTypeId, $container, $chosenSpecId, specSelects) }) }) } else { var $workTypeRadios = $container.find('.-project-work-type-radios-container').first().find('input[type=radio]') if (!_.isEmpty($workTypeRadios)) { - var workTypeId = Number($workTypeRadios.filter(':checked').val()) || 1 + var workTypeId = Number($workTypeRadios.filter(':checked').val()) || DEFAULT_WORK_TYPE; $workTypeRadios.on('change', function($evt) { var $that = $(this) var workTypeId = Number($that.val()) reinitSpecializationsByWorkType(specSelects, workTypeId).then(function(rootSpec) { - updateSpecializationWidgets(rootSpec.id, $container, $chosenSpecId, specSelects) + updateSpecializationWidgets(workTypeId, $container, $chosenSpecId, specSelects) }) }) } else { - var workTypeId = 1 + var workTypeId = DEFAULT_WORK_TYPE; } } @@ -142,29 +142,35 @@ $('[data-tooltip]').tooltip({ function reinitSpecializationsByWorkType(specSelects, workTypeId) { - return $.get('/api/specializations/?parent__name=_root') + return $.get('/api/specializations/?parent__id='+workTypeId) .then(function(res) { - var rootSpecs = res.results - + var rootSpecs = res.results; + console.log('workTypeId', workTypeId) if (workTypeId == null) { - var url = '/api/specializations/' - var specId = 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 specializations = {}; + $.each(rootSpecs, function(key, spec) { + specializations[spec.id] = spec; + }); + // var rootSpec = specializations[workTypeId]; + var rootSpec = rootSpecs[0].parent; + console.log('rootSpec', rootSpec); + // var specId = rootSpec.id var url = format('/api/specializations/?lft__gte=%s&rght__lte=%s', rootSpec.lft, rootSpec.rght) } - specSelects[0].select2(_.merge(specSelectOptions, {ajax: {url: url}})) - specSelects[1].select2(_.merge(specSelectOptions, {ajax: {url: null}})) - specSelects[2].select2(_.merge(specSelectOptions, {ajax: {url: null}})) - specSelects[3].select2(_.merge(specSelectOptions, {ajax: {url: null}})) + specSelects[0].select2(_.merge(specSelectOptions, {ajax: {url: url}})); + specSelects[1].select2(_.merge(specSelectOptions, {ajax: {url: null}})); + specSelects[2].select2(_.merge(specSelectOptions, {ajax: {url: null}})); + specSelects[3].select2(_.merge(specSelectOptions, {ajax: {url: null}})); // TODO: Hardcoded: - specSelects[0].select2('container').closest('.-single-spec-select').css('display', workTypeId === 2 ? 'none' : 'block') - specSelects[1].select2('container').closest('.-single-spec-select').find('.-dynamic-label').first().text(workTypeId === 2 ? 'Перечень услуг' : 'Стадия проекта') + // specSelects[0].select2('container').closest('.-single-spec-select').css('display', workTypeId === 2 ? 'none' : 'block'); + specSelects[1].select2('container').closest('.-single-spec-select').find('.-dynamic-label').first().text(workTypeId === 2 ? 'Перечень услуг' : 'Стадия проекта'); return rootSpec @@ -176,10 +182,10 @@ $('[data-tooltip]').tooltip({ 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}})) - + 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; diff --git a/projects/models.py b/projects/models.py index 8e1c488..6c9869a 100644 --- a/projects/models.py +++ b/projects/models.py @@ -83,11 +83,7 @@ class Realty(models.Model): class Project(models.Model, HitCountMixin): - WORK_TYPES = ( - (1, 'Проектирование'), - (2, 'Техническое сопровождение'), - # (3, 'Устранение замечаний в проекте'), - ) + WORK_TYPES = tuple([(x.pk, x.name) for x in Specialization.objects.filter(level=1)]) DEAL_TYPES = ( ('secure_deal', 'Безопасная сделка'), # "Безопасная сделка (с резервированием бюджета)" @@ -117,6 +113,9 @@ class Project(models.Model, HitCountMixin): text = models.TextField(blank=True) work_type = models.IntegerField(default=1, choices=WORK_TYPES) + def __init__(self, *args, **kwargs): + super(Project, self).__init__(*args, **kwargs) + def __str__(self): return self.name diff --git a/projects/templates/_trash/project_form.html b/projects/templates/_trash/project_form.html index bb07f8e..1b557fd 100644 --- a/projects/templates/_trash/project_form.html +++ b/projects/templates/_trash/project_form.html @@ -45,15 +45,12 @@
{% trans 'project_stage0' %}:
Проектирование
-Техническое сопровождение
-{{ x.1 }}
+