diff --git a/assets/js/build/init_create_worksell.js b/assets/js/build/init_create_worksell.js
index b6b0f96..5a4c81a 100644
--- a/assets/js/build/init_create_worksell.js
+++ b/assets/js/build/init_create_worksell.js
@@ -46,27 +46,27 @@
'use strict';
- var _SelectedContainer = __webpack_require__(10);
+ var _SelectedContainer = __webpack_require__(9);
var _SelectedContainer2 = _interopRequireDefault(_SelectedContainer);
- var _SelectedContainerCreate = __webpack_require__(14);
+ var _SelectedContainerCreate = __webpack_require__(13);
var _SelectedContainerCreate2 = _interopRequireDefault(_SelectedContainerCreate);
- var _NoTreeSelect = __webpack_require__(15);
+ var _NoTreeSelect = __webpack_require__(14);
var _NoTreeSelect2 = _interopRequireDefault(_NoTreeSelect);
- var _TreeSelect = __webpack_require__(17);
+ var _TreeSelect = __webpack_require__(16);
var _TreeSelect2 = _interopRequireDefault(_TreeSelect);
- var _SingleTreeSelect = __webpack_require__(18);
+ var _SingleTreeSelect = __webpack_require__(17);
var _SingleTreeSelect2 = _interopRequireDefault(_SingleTreeSelect);
- var _SelectOrCreate = __webpack_require__(19);
+ var _SelectOrCreate = __webpack_require__(18);
var _SelectOrCreate2 = _interopRequireDefault(_SelectOrCreate);
@@ -175,8 +175,7 @@
/* 6 */,
/* 7 */,
/* 8 */,
-/* 9 */,
-/* 10 */
+/* 9 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -191,15 +190,15 @@
var _desc, _value, _class; // `
- var _DataTree = __webpack_require__(11);
+ var _DataTree = __webpack_require__(10);
var _DataTree2 = _interopRequireDefault(_DataTree);
- var _NoTreeData = __webpack_require__(12);
+ var _NoTreeData = __webpack_require__(11);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
- var _decorators = __webpack_require__(13);
+ var _decorators = __webpack_require__(12);
var _decorators2 = _interopRequireDefault(_decorators);
@@ -430,7 +429,7 @@
exports.default = SelectedContainer;
/***/ },
-/* 11 */
+/* 10 */
/***/ function(module, exports) {
"use strict";
@@ -585,7 +584,7 @@
exports.default = DataTree;
/***/ },
-/* 12 */
+/* 11 */
/***/ function(module, exports) {
"use strict";
@@ -641,7 +640,7 @@
exports.default = NoTreeData;
/***/ },
-/* 13 */
+/* 12 */
/***/ function(module, exports) {
"use strict";
@@ -725,7 +724,7 @@
// export {onBind};
/***/ },
-/* 14 */
+/* 13 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -741,11 +740,11 @@
var _desc, _value, _class;
- var _SelectedContainer2 = __webpack_require__(10);
+ var _SelectedContainer2 = __webpack_require__(9);
var _SelectedContainer3 = _interopRequireDefault(_SelectedContainer2);
- var _decorators = __webpack_require__(13);
+ var _decorators = __webpack_require__(12);
var _decorators2 = _interopRequireDefault(_decorators);
@@ -808,7 +807,7 @@
this._removeById(this.elements_id[0]);
this.elements_id = [0];
this.$input_id = this.$self.find('input[type="hidden"].-id');
- this.$input_id.val();
+ this.$input_id.val("");
this.$input_name = this.$self.find('input[type="hidden"].-name');
this.$input_name.val(_id.text);
this.$self.append(_SelectedContainer3.default.getTemplate("", _id.text, 0));
@@ -826,7 +825,7 @@
exports.default = SelectedContainerCreate;
/***/ },
-/* 15 */
+/* 14 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -840,9 +839,9 @@
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
- var _AbsBaseSelect2 = __webpack_require__(16);
+ var _AbsBaseSelect2 = __webpack_require__(15);
- var _NoTreeData = __webpack_require__(12);
+ var _NoTreeData = __webpack_require__(11);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
@@ -909,7 +908,7 @@
exports.default = NoTreeSelect;
/***/ },
-/* 16 */
+/* 15 */
/***/ function(module, exports) {
"use strict";
@@ -1451,7 +1450,7 @@
exports.AbsBaseSelect = AbsBaseSelect;
/***/ },
-/* 17 */
+/* 16 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -1465,9 +1464,9 @@
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
- var _AbsBaseSelect2 = __webpack_require__(16);
+ var _AbsBaseSelect2 = __webpack_require__(15);
- var _DataTree = __webpack_require__(11);
+ var _DataTree = __webpack_require__(10);
var _DataTree2 = _interopRequireDefault(_DataTree);
@@ -1576,7 +1575,7 @@
exports.default = TreeSelect;
/***/ },
-/* 18 */
+/* 17 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -1588,9 +1587,9 @@
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _AbsBaseSelect = __webpack_require__(16);
+ var _AbsBaseSelect = __webpack_require__(15);
- var _TreeSelect2 = __webpack_require__(17);
+ var _TreeSelect2 = __webpack_require__(16);
var _TreeSelect3 = _interopRequireDefault(_TreeSelect2);
@@ -1671,7 +1670,7 @@
exports.default = SingleTreeSelect;
/***/ },
-/* 19 */
+/* 18 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -1685,9 +1684,9 @@
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
- var _AbsBaseSelect2 = __webpack_require__(16);
+ var _AbsBaseSelect2 = __webpack_require__(15);
- var _NoTreeData = __webpack_require__(12);
+ var _NoTreeData = __webpack_require__(11);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
diff --git a/assets/js/build/init_customer_project_create.js b/assets/js/build/init_customer_project_create.js
index 543551c..6b6233e 100644
--- a/assets/js/build/init_customer_project_create.js
+++ b/assets/js/build/init_customer_project_create.js
@@ -46,27 +46,27 @@
'use strict';
- var _SelectedContainer = __webpack_require__(10);
+ var _SelectedContainer = __webpack_require__(9);
var _SelectedContainer2 = _interopRequireDefault(_SelectedContainer);
- var _SelectedContainerCreate = __webpack_require__(14);
+ var _SelectedContainerCreate = __webpack_require__(13);
var _SelectedContainerCreate2 = _interopRequireDefault(_SelectedContainerCreate);
- var _NoTreeSelect = __webpack_require__(15);
+ var _NoTreeSelect = __webpack_require__(14);
var _NoTreeSelect2 = _interopRequireDefault(_NoTreeSelect);
- var _TreeSelect = __webpack_require__(17);
+ var _TreeSelect = __webpack_require__(16);
var _TreeSelect2 = _interopRequireDefault(_TreeSelect);
- var _SingleTreeSelect = __webpack_require__(18);
+ var _SingleTreeSelect = __webpack_require__(17);
var _SingleTreeSelect2 = _interopRequireDefault(_SingleTreeSelect);
- var _SelectOrCreate = __webpack_require__(19);
+ var _SelectOrCreate = __webpack_require__(18);
var _SelectOrCreate2 = _interopRequireDefault(_SelectOrCreate);
@@ -210,8 +210,7 @@
/* 6 */,
/* 7 */,
/* 8 */,
-/* 9 */,
-/* 10 */
+/* 9 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -226,15 +225,15 @@
var _desc, _value, _class; // `
- var _DataTree = __webpack_require__(11);
+ var _DataTree = __webpack_require__(10);
var _DataTree2 = _interopRequireDefault(_DataTree);
- var _NoTreeData = __webpack_require__(12);
+ var _NoTreeData = __webpack_require__(11);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
- var _decorators = __webpack_require__(13);
+ var _decorators = __webpack_require__(12);
var _decorators2 = _interopRequireDefault(_decorators);
@@ -465,7 +464,7 @@
exports.default = SelectedContainer;
/***/ },
-/* 11 */
+/* 10 */
/***/ function(module, exports) {
"use strict";
@@ -620,7 +619,7 @@
exports.default = DataTree;
/***/ },
-/* 12 */
+/* 11 */
/***/ function(module, exports) {
"use strict";
@@ -676,7 +675,7 @@
exports.default = NoTreeData;
/***/ },
-/* 13 */
+/* 12 */
/***/ function(module, exports) {
"use strict";
@@ -760,7 +759,7 @@
// export {onBind};
/***/ },
-/* 14 */
+/* 13 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -776,11 +775,11 @@
var _desc, _value, _class;
- var _SelectedContainer2 = __webpack_require__(10);
+ var _SelectedContainer2 = __webpack_require__(9);
var _SelectedContainer3 = _interopRequireDefault(_SelectedContainer2);
- var _decorators = __webpack_require__(13);
+ var _decorators = __webpack_require__(12);
var _decorators2 = _interopRequireDefault(_decorators);
@@ -843,7 +842,7 @@
this._removeById(this.elements_id[0]);
this.elements_id = [0];
this.$input_id = this.$self.find('input[type="hidden"].-id');
- this.$input_id.val();
+ this.$input_id.val("");
this.$input_name = this.$self.find('input[type="hidden"].-name');
this.$input_name.val(_id.text);
this.$self.append(_SelectedContainer3.default.getTemplate("", _id.text, 0));
@@ -861,7 +860,7 @@
exports.default = SelectedContainerCreate;
/***/ },
-/* 15 */
+/* 14 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -875,9 +874,9 @@
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
- var _AbsBaseSelect2 = __webpack_require__(16);
+ var _AbsBaseSelect2 = __webpack_require__(15);
- var _NoTreeData = __webpack_require__(12);
+ var _NoTreeData = __webpack_require__(11);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
@@ -944,7 +943,7 @@
exports.default = NoTreeSelect;
/***/ },
-/* 16 */
+/* 15 */
/***/ function(module, exports) {
"use strict";
@@ -1486,7 +1485,7 @@
exports.AbsBaseSelect = AbsBaseSelect;
/***/ },
-/* 17 */
+/* 16 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -1500,9 +1499,9 @@
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
- var _AbsBaseSelect2 = __webpack_require__(16);
+ var _AbsBaseSelect2 = __webpack_require__(15);
- var _DataTree = __webpack_require__(11);
+ var _DataTree = __webpack_require__(10);
var _DataTree2 = _interopRequireDefault(_DataTree);
@@ -1611,7 +1610,7 @@
exports.default = TreeSelect;
/***/ },
-/* 18 */
+/* 17 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -1623,9 +1622,9 @@
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- var _AbsBaseSelect = __webpack_require__(16);
+ var _AbsBaseSelect = __webpack_require__(15);
- var _TreeSelect2 = __webpack_require__(17);
+ var _TreeSelect2 = __webpack_require__(16);
var _TreeSelect3 = _interopRequireDefault(_TreeSelect2);
@@ -1706,7 +1705,7 @@
exports.default = SingleTreeSelect;
/***/ },
-/* 19 */
+/* 18 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -1720,9 +1719,9 @@
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
- var _AbsBaseSelect2 = __webpack_require__(16);
+ var _AbsBaseSelect2 = __webpack_require__(15);
- var _NoTreeData = __webpack_require__(12);
+ var _NoTreeData = __webpack_require__(11);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
diff --git a/assets/lib/proekton-components/js/src/SelectedContainerCreate.js b/assets/lib/proekton-components/js/src/SelectedContainerCreate.js
index 46834e0..20b11fc 100644
--- a/assets/lib/proekton-components/js/src/SelectedContainerCreate.js
+++ b/assets/lib/proekton-components/js/src/SelectedContainerCreate.js
@@ -14,7 +14,7 @@ export default class SelectedContainerCreate extends SelectedContainer {
this._removeById(this.elements_id[0]);
this.elements_id = [0];
this.$input_id = this.$self.find('input[type="hidden"].-id');
- this.$input_id.val();
+ this.$input_id.val("");
this.$input_name = this.$self.find('input[type="hidden"].-name');
this.$input_name.val(_id.text);
this.$self.append(SelectedContainer.getTemplate("", _id.text, 0));
diff --git a/projects/migrations/0050_auto_20161207_1637.py b/projects/migrations/0050_auto_20161207_1637.py
new file mode 100644
index 0000000..b2e73d5
--- /dev/null
+++ b/projects/migrations/0050_auto_20161207_1637.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-12-07 13:37
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('projects', '0049_auto_20161201_2157'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='project',
+ name='budget',
+ field=models.DecimalField(blank=True, decimal_places=0, default=0, max_digits=10),
+ ),
+ ]
diff --git a/projects/models.py b/projects/models.py
index beeeb40..de09cf5 100644
--- a/projects/models.py
+++ b/projects/models.py
@@ -105,7 +105,7 @@ class Project(models.Model, HitCountMixin):
state = models.CharField(default='active', max_length=20, choices=STATES)
specialization = TreeForeignKey(Specialization, related_name='projects')
- budget = models.DecimalField(max_digits=10, decimal_places=0)
+ budget = models.DecimalField(max_digits=10, decimal_places=0, default=0, blank=True)
budget_by_agreement = models.BooleanField(default=False)
currency = models.CharField(max_length=20, default='rur', choices=CURRENCIES)
diff --git a/projects/templates/customer_project_create.html b/projects/templates/customer_project_create.html
index 2132e97..1d5921e 100644
--- a/projects/templates/customer_project_create.html
+++ b/projects/templates/customer_project_create.html
@@ -90,8 +90,9 @@
Обязательно
-