diff --git a/archilance/mixins.py b/archilance/mixins.py index a2645d2..fa25733 100644 --- a/archilance/mixins.py +++ b/archilance/mixins.py @@ -11,7 +11,7 @@ class BaseMixin(ContextMixin): next = self.kwargs.get('next') # Redirect back path back = self.kwargs.get('back') # Redirect back path - if pk: c['pk'] = pk + if pk: c['pk'] = int(pk) if next: c['next'] = next if back: c['back'] = back diff --git a/assets/index.js b/assets/index.js index 380e595..4997f4e 100644 --- a/assets/index.js +++ b/assets/index.js @@ -1,4 +1,5 @@ -var $specSelects = $('.-spec-select') +// Common ------------------------------------------------- + var specSelectOptions = { language: 'ru', @@ -44,6 +45,21 @@ var specSelectOptions = { } } + + + + + + + + + + +// Specialization select ----------------------------------- + + +var $specSelects = $('.-spec-select') + $specSelects.select2(specSelectOptions) var chosenSpecId = $('#chosenSpecId').val() @@ -84,9 +100,53 @@ function updateSpecializationWidgets(specId) { +// Specialization select (simple) ------------------------------- + + +var simpleSpecSelectsOptions = { + language: 'ru', + placeholder: 'Выберите специализацию', // Required by `allowClear` + allowClear: true, +} + +$('#addSpec').on('click', function($evt) { + var $simpleSpecContainer = $('#simpleSpecContainer') + var $simpleSpecWidget = $simpleSpecContainer.find('.-simple-spec-widget').first() + var $newSimpleSpecWidget = $simpleSpecWidget.clone() + $simpleSpecContainer.append($newSimpleSpecWidget) + + var $simpleSpecSelect = $newSimpleSpecWidget.find('.-simple-spec-select').first() + //var $chosenSimpleSpecId = $newSimpleSpecWidget.find('.-chosen-simple-spec-id').first() + + $.ajax({url: '/api/specializations/', method: 'GET', dataType: 'json'}) + .then(function(res) { + $simpleSpecSelect.select2(_.merge(simpleSpecSelectsOptions, { + data: _.map(function(item) { + return { + text: _.repeat(item.level-1, '---') + item.name, + id: item.id, + origItem: item, + } + }, res.results), + })) + + $newSimpleSpecWidget.css('display', 'block') + }) +}) + + +$('#simpleSpecContainer').on('change', '.-simple-spec-select', function($evt) { + if ($evt.added) + $(this).parent().children('.-chosen-simple-spec-id').first().val($evt.added.id) +}) + + + + + -//--------------------------------------------------- +// Location select ---------------------------------------------- var $locationSelects = $('.-location-select') diff --git a/projects/migrations/0005_auto_20160726_1958.py b/projects/migrations/0005_auto_20160726_1958.py new file mode 100644 index 0000000..c6907b9 --- /dev/null +++ b/projects/migrations/0005_auto_20160726_1958.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-26 16:58 +from __future__ import unicode_literals + +import datetime +from django.db import migrations, models +from django.utils.timezone import utc + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0004_auto_20160726_1931'), + ] + + operations = [ + migrations.AlterField( + model_name='stage', + name='created', + field=models.DateTimeField(default=datetime.datetime(2016, 7, 26, 16, 58, 47, 631021, tzinfo=utc)), + ), + ] diff --git a/projects/templates/customer_project_edit.html b/projects/templates/customer_project_edit.html index 24cd06d..ff9b69d 100644 --- a/projects/templates/customer_project_edit.html +++ b/projects/templates/customer_project_edit.html @@ -13,6 +13,7 @@