PR-54 ajax на форму готовых проектов

Работа формы переделана на ajax
remotes/origin/PR-58
booblegum 9 years ago
parent 8ec740939a
commit ff28f84c0e
  1. 78
      assets/js/build/create_worksell.js
  2. 4
      assets/js/build/home_page.js
  3. 59
      assets/js/build/init_create_worksell.js
  4. 59
      assets/js/build/init_customer_project_create.js
  5. 6
      assets/js/src/create_worksell.js
  6. 49
      assets/js/src/seeds/ajax_send_form_data.js
  7. 17
      work_sell/templates/worksell_create.html
  8. 18
      work_sell/views.py

@ -56,6 +56,8 @@
var _ajax_registration = __webpack_require__(9); var _ajax_registration = __webpack_require__(9);
var _ajax_send_form_data = __webpack_require__(12);
$(function () { $(function () {
// fileUploadInit(); // fileUploadInit();
// previewImg(); // previewImg();
@ -64,6 +66,8 @@
(0, _popups.showPopupsInit)(); (0, _popups.showPopupsInit)();
(0, _ajax_registration.ajaxRegistrationInit)('contractor'); (0, _ajax_registration.ajaxRegistrationInit)('contractor');
window.addMessage = _popups.addMessage; window.addMessage = _popups.addMessage;
window.sendFormData = _ajax_send_form_data.sendFormData;
window.scrollOnRequiredInit = _scroll_on_required.scrollOnRequiredInit;
}); });
/***/ }, /***/ },
@ -412,5 +416,79 @@
exports.imageUploadInit = imageUploadInit; exports.imageUploadInit = imageUploadInit;
// export {imageUploadInit, previewImg} // export {imageUploadInit, previewImg}
/***/ },
/* 12 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.sendFormData = undefined;
var _utils = __webpack_require__(2);
function sendFormData(e) {
e.preventDefault();
// console.log("send dat later");
var $target = $(e.target);
var $form = $target.closest("form");
// console.log("actions = ", $form.attr("action"));
// let url = $form.attr("action");
// let formData = $form.serializeArray();
var formData = new FormData($form[0]);
$.ajax({
url: $form.attr("action"),
data: formData,
async: false,
method: $form.attr("method"),
beforeSend: function beforeSend(xhr) {
xhr.setRequestHeader("X-CSRFToken", (0, _utils.getCookie)('csrftoken'));
},
success: function success(data) {
// console.log("success xhr -->", xhr);
// let data = xhr.responseJSON;
// console.log('success data -->', data);
// console.log('success data -->', data.redirect_to);
window.location.href = data.redirect_to;
},
cache: false,
contentType: false,
processData: false,
error: function error(xhr, ajaxOptions, thrownError) {
var status = xhr.status;
$('.error').removeClass('error');
// console.log('error data -->', xhr.responseJSON);
if (status == 400) {
// let data = JSON.parse(xhr.responseText);
var data = xhr.responseJSON;
$.each(data, function (key, value) {
// let ul = $("<ul class='errorlist'></ul>");
// for (let error of value) {
// ul.append(`<li>${error}</li>`)
// }
// console.log("key = ", key, "value =", value);
var $header = $form.find("[name=" + key + "]").siblings('.required');
// console.log("$header = ", $header);
if ($header.length > 0) {
$header.addClass("error");
}
});
window.scrollOnRequiredInit();
// console.log('captcha error = ', data.captcha);
// console.log('data type = ', typeof data);
} else {
console.log('xhr = ', xhr);
}
}
});
// $.post(url, formData).done(function (data) {
// alert(data);
// });
}
exports.sendFormData = sendFormData;
/***/ } /***/ }
/******/ ]); /******/ ]);

@ -47,7 +47,7 @@
'use strict'; 'use strict';
var _popupYoutube = __webpack_require__(12); var _popupYoutube = __webpack_require__(13);
$(function () { $(function () {
(0, _popupYoutube.popupYoutubeInit)(); (0, _popupYoutube.popupYoutubeInit)();
@ -55,7 +55,7 @@
/***/ }, /***/ },
/***/ 12: /***/ 13:
/***/ function(module, exports) { /***/ function(module, exports) {
'use strict'; 'use strict';

@ -46,27 +46,27 @@
'use strict'; 'use strict';
var _SelectedContainer = __webpack_require__(13); var _SelectedContainer = __webpack_require__(14);
var _SelectedContainer2 = _interopRequireDefault(_SelectedContainer); var _SelectedContainer2 = _interopRequireDefault(_SelectedContainer);
var _SelectedContainerCreate = __webpack_require__(17); var _SelectedContainerCreate = __webpack_require__(18);
var _SelectedContainerCreate2 = _interopRequireDefault(_SelectedContainerCreate); var _SelectedContainerCreate2 = _interopRequireDefault(_SelectedContainerCreate);
var _NoTreeSelect = __webpack_require__(18); var _NoTreeSelect = __webpack_require__(19);
var _NoTreeSelect2 = _interopRequireDefault(_NoTreeSelect); var _NoTreeSelect2 = _interopRequireDefault(_NoTreeSelect);
var _TreeSelect = __webpack_require__(20); var _TreeSelect = __webpack_require__(21);
var _TreeSelect2 = _interopRequireDefault(_TreeSelect); var _TreeSelect2 = _interopRequireDefault(_TreeSelect);
var _SingleTreeSelect = __webpack_require__(21); var _SingleTreeSelect = __webpack_require__(22);
var _SingleTreeSelect2 = _interopRequireDefault(_SingleTreeSelect); var _SingleTreeSelect2 = _interopRequireDefault(_SingleTreeSelect);
var _SelectOrCreate = __webpack_require__(22); var _SelectOrCreate = __webpack_require__(23);
var _SelectOrCreate2 = _interopRequireDefault(_SelectOrCreate); var _SelectOrCreate2 = _interopRequireDefault(_SelectOrCreate);
@ -179,7 +179,8 @@
/* 10 */, /* 10 */,
/* 11 */, /* 11 */,
/* 12 */, /* 12 */,
/* 13 */ /* 13 */,
/* 14 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -194,15 +195,15 @@
var _desc, _value, _class; // ` var _desc, _value, _class; // `
var _DataTree = __webpack_require__(14); var _DataTree = __webpack_require__(15);
var _DataTree2 = _interopRequireDefault(_DataTree); var _DataTree2 = _interopRequireDefault(_DataTree);
var _NoTreeData = __webpack_require__(15); var _NoTreeData = __webpack_require__(16);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData); var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
var _decorators = __webpack_require__(16); var _decorators = __webpack_require__(17);
var _decorators2 = _interopRequireDefault(_decorators); var _decorators2 = _interopRequireDefault(_decorators);
@ -433,7 +434,7 @@
exports.default = SelectedContainer; exports.default = SelectedContainer;
/***/ }, /***/ },
/* 14 */ /* 15 */
/***/ function(module, exports) { /***/ function(module, exports) {
"use strict"; "use strict";
@ -588,7 +589,7 @@
exports.default = DataTree; exports.default = DataTree;
/***/ }, /***/ },
/* 15 */ /* 16 */
/***/ function(module, exports) { /***/ function(module, exports) {
"use strict"; "use strict";
@ -644,7 +645,7 @@
exports.default = NoTreeData; exports.default = NoTreeData;
/***/ }, /***/ },
/* 16 */ /* 17 */
/***/ function(module, exports) { /***/ function(module, exports) {
"use strict"; "use strict";
@ -728,7 +729,7 @@
// export {onBind}; // export {onBind};
/***/ }, /***/ },
/* 17 */ /* 18 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -744,11 +745,11 @@
var _desc, _value, _class; var _desc, _value, _class;
var _SelectedContainer2 = __webpack_require__(13); var _SelectedContainer2 = __webpack_require__(14);
var _SelectedContainer3 = _interopRequireDefault(_SelectedContainer2); var _SelectedContainer3 = _interopRequireDefault(_SelectedContainer2);
var _decorators = __webpack_require__(16); var _decorators = __webpack_require__(17);
var _decorators2 = _interopRequireDefault(_decorators); var _decorators2 = _interopRequireDefault(_decorators);
@ -829,7 +830,7 @@
exports.default = SelectedContainerCreate; exports.default = SelectedContainerCreate;
/***/ }, /***/ },
/* 18 */ /* 19 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -843,9 +844,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 _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__(19); var _AbsBaseSelect2 = __webpack_require__(20);
var _NoTreeData = __webpack_require__(15); var _NoTreeData = __webpack_require__(16);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData); var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
@ -912,7 +913,7 @@
exports.default = NoTreeSelect; exports.default = NoTreeSelect;
/***/ }, /***/ },
/* 19 */ /* 20 */
/***/ function(module, exports) { /***/ function(module, exports) {
"use strict"; "use strict";
@ -1456,7 +1457,7 @@
exports.AbsBaseSelect = AbsBaseSelect; exports.AbsBaseSelect = AbsBaseSelect;
/***/ }, /***/ },
/* 20 */ /* 21 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -1470,9 +1471,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 _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__(19); var _AbsBaseSelect2 = __webpack_require__(20);
var _DataTree = __webpack_require__(14); var _DataTree = __webpack_require__(15);
var _DataTree2 = _interopRequireDefault(_DataTree); var _DataTree2 = _interopRequireDefault(_DataTree);
@ -1581,7 +1582,7 @@
exports.default = TreeSelect; exports.default = TreeSelect;
/***/ }, /***/ },
/* 21 */ /* 22 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -1593,9 +1594,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 _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__(19); var _AbsBaseSelect = __webpack_require__(20);
var _TreeSelect2 = __webpack_require__(20); var _TreeSelect2 = __webpack_require__(21);
var _TreeSelect3 = _interopRequireDefault(_TreeSelect2); var _TreeSelect3 = _interopRequireDefault(_TreeSelect2);
@ -1676,7 +1677,7 @@
exports.default = SingleTreeSelect; exports.default = SingleTreeSelect;
/***/ }, /***/ },
/* 22 */ /* 23 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -1690,9 +1691,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 _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__(19); var _AbsBaseSelect2 = __webpack_require__(20);
var _NoTreeData = __webpack_require__(15); var _NoTreeData = __webpack_require__(16);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData); var _NoTreeData2 = _interopRequireDefault(_NoTreeData);

@ -46,27 +46,27 @@
'use strict'; 'use strict';
var _SelectedContainer = __webpack_require__(13); var _SelectedContainer = __webpack_require__(14);
var _SelectedContainer2 = _interopRequireDefault(_SelectedContainer); var _SelectedContainer2 = _interopRequireDefault(_SelectedContainer);
var _SelectedContainerCreate = __webpack_require__(17); var _SelectedContainerCreate = __webpack_require__(18);
var _SelectedContainerCreate2 = _interopRequireDefault(_SelectedContainerCreate); var _SelectedContainerCreate2 = _interopRequireDefault(_SelectedContainerCreate);
var _NoTreeSelect = __webpack_require__(18); var _NoTreeSelect = __webpack_require__(19);
var _NoTreeSelect2 = _interopRequireDefault(_NoTreeSelect); var _NoTreeSelect2 = _interopRequireDefault(_NoTreeSelect);
var _TreeSelect = __webpack_require__(20); var _TreeSelect = __webpack_require__(21);
var _TreeSelect2 = _interopRequireDefault(_TreeSelect); var _TreeSelect2 = _interopRequireDefault(_TreeSelect);
var _SingleTreeSelect = __webpack_require__(21); var _SingleTreeSelect = __webpack_require__(22);
var _SingleTreeSelect2 = _interopRequireDefault(_SingleTreeSelect); var _SingleTreeSelect2 = _interopRequireDefault(_SingleTreeSelect);
var _SelectOrCreate = __webpack_require__(22); var _SelectOrCreate = __webpack_require__(23);
var _SelectOrCreate2 = _interopRequireDefault(_SelectOrCreate); var _SelectOrCreate2 = _interopRequireDefault(_SelectOrCreate);
@ -214,7 +214,8 @@
/* 10 */, /* 10 */,
/* 11 */, /* 11 */,
/* 12 */, /* 12 */,
/* 13 */ /* 13 */,
/* 14 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -229,15 +230,15 @@
var _desc, _value, _class; // ` var _desc, _value, _class; // `
var _DataTree = __webpack_require__(14); var _DataTree = __webpack_require__(15);
var _DataTree2 = _interopRequireDefault(_DataTree); var _DataTree2 = _interopRequireDefault(_DataTree);
var _NoTreeData = __webpack_require__(15); var _NoTreeData = __webpack_require__(16);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData); var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
var _decorators = __webpack_require__(16); var _decorators = __webpack_require__(17);
var _decorators2 = _interopRequireDefault(_decorators); var _decorators2 = _interopRequireDefault(_decorators);
@ -468,7 +469,7 @@
exports.default = SelectedContainer; exports.default = SelectedContainer;
/***/ }, /***/ },
/* 14 */ /* 15 */
/***/ function(module, exports) { /***/ function(module, exports) {
"use strict"; "use strict";
@ -623,7 +624,7 @@
exports.default = DataTree; exports.default = DataTree;
/***/ }, /***/ },
/* 15 */ /* 16 */
/***/ function(module, exports) { /***/ function(module, exports) {
"use strict"; "use strict";
@ -679,7 +680,7 @@
exports.default = NoTreeData; exports.default = NoTreeData;
/***/ }, /***/ },
/* 16 */ /* 17 */
/***/ function(module, exports) { /***/ function(module, exports) {
"use strict"; "use strict";
@ -763,7 +764,7 @@
// export {onBind}; // export {onBind};
/***/ }, /***/ },
/* 17 */ /* 18 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -779,11 +780,11 @@
var _desc, _value, _class; var _desc, _value, _class;
var _SelectedContainer2 = __webpack_require__(13); var _SelectedContainer2 = __webpack_require__(14);
var _SelectedContainer3 = _interopRequireDefault(_SelectedContainer2); var _SelectedContainer3 = _interopRequireDefault(_SelectedContainer2);
var _decorators = __webpack_require__(16); var _decorators = __webpack_require__(17);
var _decorators2 = _interopRequireDefault(_decorators); var _decorators2 = _interopRequireDefault(_decorators);
@ -864,7 +865,7 @@
exports.default = SelectedContainerCreate; exports.default = SelectedContainerCreate;
/***/ }, /***/ },
/* 18 */ /* 19 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -878,9 +879,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 _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__(19); var _AbsBaseSelect2 = __webpack_require__(20);
var _NoTreeData = __webpack_require__(15); var _NoTreeData = __webpack_require__(16);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData); var _NoTreeData2 = _interopRequireDefault(_NoTreeData);
@ -947,7 +948,7 @@
exports.default = NoTreeSelect; exports.default = NoTreeSelect;
/***/ }, /***/ },
/* 19 */ /* 20 */
/***/ function(module, exports) { /***/ function(module, exports) {
"use strict"; "use strict";
@ -1491,7 +1492,7 @@
exports.AbsBaseSelect = AbsBaseSelect; exports.AbsBaseSelect = AbsBaseSelect;
/***/ }, /***/ },
/* 20 */ /* 21 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -1505,9 +1506,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 _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__(19); var _AbsBaseSelect2 = __webpack_require__(20);
var _DataTree = __webpack_require__(14); var _DataTree = __webpack_require__(15);
var _DataTree2 = _interopRequireDefault(_DataTree); var _DataTree2 = _interopRequireDefault(_DataTree);
@ -1616,7 +1617,7 @@
exports.default = TreeSelect; exports.default = TreeSelect;
/***/ }, /***/ },
/* 21 */ /* 22 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -1628,9 +1629,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 _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__(19); var _AbsBaseSelect = __webpack_require__(20);
var _TreeSelect2 = __webpack_require__(20); var _TreeSelect2 = __webpack_require__(21);
var _TreeSelect3 = _interopRequireDefault(_TreeSelect2); var _TreeSelect3 = _interopRequireDefault(_TreeSelect2);
@ -1711,7 +1712,7 @@
exports.default = SingleTreeSelect; exports.default = SingleTreeSelect;
/***/ }, /***/ },
/* 22 */ /* 23 */
/***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
'use strict'; 'use strict';
@ -1725,9 +1726,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 _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__(19); var _AbsBaseSelect2 = __webpack_require__(20);
var _NoTreeData = __webpack_require__(15); var _NoTreeData = __webpack_require__(16);
var _NoTreeData2 = _interopRequireDefault(_NoTreeData); var _NoTreeData2 = _interopRequireDefault(_NoTreeData);

@ -1,15 +1,15 @@
import {fileUploadInit} from './seeds/file_upload'
import {imageUploadInit} from './seeds/image_upload' import {imageUploadInit} from './seeds/image_upload'
import {scrollOnRequiredInit} from './seeds/scroll_on_required' import {scrollOnRequiredInit} from './seeds/scroll_on_required'
import {showPopupsInit, addMessage} from './seeds/popups' import {showPopupsInit, addMessage} from './seeds/popups'
import {ajaxRegistrationInit} from './seeds/ajax_registration' import {ajaxRegistrationInit} from './seeds/ajax_registration'
import {sendFormData} from './seeds/ajax_send_form_data'
$(function () { $(function () {
// fileUploadInit();
// previewImg();
imageUploadInit(); imageUploadInit();
scrollOnRequiredInit(); scrollOnRequiredInit();
showPopupsInit(); showPopupsInit();
ajaxRegistrationInit('contractor'); ajaxRegistrationInit('contractor');
window.addMessage = addMessage; window.addMessage = addMessage;
window.sendFormData = sendFormData;
window.scrollOnRequiredInit = scrollOnRequiredInit;
}); });

@ -0,0 +1,49 @@
import {getCookie} from '../utils'
function sendFormData(e) {
e.preventDefault();
let $target = $(e.target);
let $form = $target.closest("form");
// let formData = $form.serializeArray();
let formData = new FormData($form[0]);
$.ajax({
url: $form.attr("action"),
data: formData,
async: false,
method: $form.attr("method"),
beforeSend: function (xhr) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'))
},
success: function (data) {
// let data = xhr.responseJSON;
// console.log('success data -->', data);
window.location.href = data.redirect_to;
},
cache: false,
contentType: false,
processData: false,
error: function (xhr, ajaxOptions, thrownError) {
let status = xhr.status;
$('.error').removeClass('error');
if (status == 400) {
let data = xhr.responseJSON;
$.each(data, function (key, value) {
let $header = $form.find(`[name=${key}]`).siblings('.required');
if ($header.length > 0) {
$header.addClass("error");
}
});
window.scrollOnRequiredInit();
}else{
console.log('xhr = ', xhr);
}
}
});
// $.post(url, formData).done(function (data) {
// alert(data);
// });
}
export {sendFormData}

@ -58,6 +58,8 @@
<div class="header">Тип готовой работы</div> <div class="header">Тип готовой работы</div>
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="fa fa-question-circle-o" aria-hidden="true"></i>
<span class="required {% if form.specializations.errors %}error{% endif %}">Обязательно</span> <span class="required {% if form.specializations.errors %}error{% endif %}">Обязательно</span>
{# Для поиска заголовка обязательного поля по name= #}
<div hidden name="specializations"></div>
<div class="" id="select-box-1"></div> <div class="" id="select-box-1"></div>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
@ -102,7 +104,7 @@
</div> </div>
<i class="fa fa-question-circle-o" aria-hidden="true" title=""></i> <i class="fa fa-question-circle-o" aria-hidden="true" title=""></i>
<span class="required {% if form.description.errors %}error{% endif %}">Обязательно</span> <span class="required {% if form.description.errors %}error{% endif %}">Обязательно</span>
<textarea name="{{ form.description.html_name }}" class="description" <textarea name="description" class="description"
rows="8">{{ form.description.value }}</textarea> rows="8">{{ form.description.value }}</textarea>
</div> </div>
@ -191,6 +193,7 @@
<div class="col-lg-3" style="text-align: center"> <div class="col-lg-3" style="text-align: center">
<input style="width: 100%" type="submit" class="btn btn-simple" <input style="width: 100%" type="submit" class="btn btn-simple"
onclick="sendFormData(event)"
value="РАЗМЕСТИТЬ ЗАКАЗ"> value="РАЗМЕСТИТЬ ЗАКАЗ">
</div> </div>
<div class="col-lg-3 col-lg-offset-6" style="text-align: center"> <div class="col-lg-3 col-lg-offset-6" style="text-align: center">
@ -216,18 +219,6 @@
</div> </div>
</div> </div>
<input type="hidden" name="not_auth_user_id"> <input type="hidden" name="not_auth_user_id">
{# <div class="row top-line">#}
{# <div class="col-lg-3" style="text-align: center">#}
{# <div class="header">&nbsp;</div>#}
{# <input style="width: 100%" type="submit" class="btn btn-simple"#}
{# value="РАЗМЕСТИТЬ ЗАКАЗ">#}
{# </div>#}
{# <div class="col-lg-3 col-lg-offset-6" style="text-align: center">#}
{# <div class="header">&nbsp;</div>#}
{# <input style="width: 100%" type="button" class="btn btn-simple"#}
{# onclick="addMessage('Функционал временно не работает', 'info')"#}
{# value="ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР">#}
{# </div>#}
</div> </div>
</form> </form>
</div> </div>

@ -29,7 +29,6 @@ from .serialize import serialize
from .response import JSONResponse, response_mimetype from .response import JSONResponse, response_mimetype
class PictureCreateView(CreateView): class PictureCreateView(CreateView):
model = Picture model = Picture
fields = '__all__' fields = '__all__'
@ -203,10 +202,12 @@ class WorkSellCreateView(BaseMixin, View):
return render(request, self.template_name, context) return render(request, self.template_name, context)
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
form = self.form_class(request.POST, request=request) # Passing `request.FILES` seems unnecessary here. Files are added manually below # print("request.POST = ", request.POST)
# TODO: fix it on front # print("files = ", request.FILES.getlist('new_files'))
request.POST = request.POST.copy()
# Если фронт не будет возвращать пустую строку при незаполненных данных, то if'ы будут не нужны # Если фронт не будет возвращать пустую строку при незаполненных данных, то if'ы будут не нужны
if request.POST.get('specializations') == "": if request.POST.get('specializations') == "":
print("POP")
request.POST.pop('specializations') request.POST.pop('specializations')
else: else:
request.POST.setlist('specializations', request.POST.get('specializations', "").split(',')) request.POST.setlist('specializations', request.POST.get('specializations', "").split(','))
@ -215,8 +216,7 @@ class WorkSellCreateView(BaseMixin, View):
request.POST.pop('el_format') request.POST.pop('el_format')
else: else:
request.POST.setlist('el_format', request.POST.get('el_format', "").split(',')) request.POST.setlist('el_format', request.POST.get('el_format', "").split(','))
form = self.form_class(request.POST, request=request)
# print("POST before = ", request.POST)
if form.is_valid(): if form.is_valid():
work_sell = form.save(commit=False) work_sell = form.save(commit=False)
unregister_user = request.POST.get('not_auth_user_id') unregister_user = request.POST.get('not_auth_user_id')
@ -231,8 +231,10 @@ class WorkSellCreateView(BaseMixin, View):
for file, desc in zip(request.FILES.getlist('new_files'), request.POST.getlist('img_description')): for file, desc in zip(request.FILES.getlist('new_files'), request.POST.getlist('img_description')):
WorkSellPhoto.objects.create(img=file, description=desc, worksell=work_sell) WorkSellPhoto.objects.create(img=file, description=desc, worksell=work_sell)
messages.info(request, 'Работа успешно создана')
redirect_to = reverse('work_sell:detail', kwargs={'pk': work_sell.pk}) redirect_to = reverse('work_sell:detail', kwargs={'pk': work_sell.pk})
if request.is_ajax():
return JsonResponse({'redirect_to': redirect_to}, status=200)
messages.info(request, 'Работа успешно создана')
return redirect(redirect_to) return redirect(redirect_to)
else: else:
if form.errors: if form.errors:
@ -243,7 +245,9 @@ class WorkSellCreateView(BaseMixin, View):
context = self.get_context_data(**kwargs) context = self.get_context_data(**kwargs)
context.update({'form': form}) context.update({'form': form})
# context.update({'photos': WorkSellPhoto.objects.filter(worksell__id=)}) if request.is_ajax():
data = json.dumps(form.errors)
return HttpResponse(content=data, status=400, content_type='application/json')
return render(request, self.template_name, context) return render(request, self.template_name, context)

Loading…
Cancel
Save