added fields from dadata on the customer form

remotes/origin/mitri4
Dmitriy Shesterkin 9 years ago
parent 6886fd8c58
commit 6ae7fb09fa
  1. 3
      project/customer/views/clients.py
  2. 2
      project/static/js/lib/jquery.suggestions.min.js
  3. 64
      project/templates/customer/clients/list.html
  4. 33
      project/templates/customer/profile/edit.html

@ -8,6 +8,7 @@ from project.commons.paginator import pagination, save_per_page_value
from .. import models, forms
from ..decorators import license_required
from ..utils import raise_if_no_profile
from django.conf import settings
@login_required
@ -24,11 +25,13 @@ def clients_list(request, page_num=None):
page, pagination_form = pagination(request, client_list, page_num)
client_form = forms.ClientForm()
dadata_api_key = settings.DADATA_API_KEY
dictionary = {
'page': page,
'pagination_form': pagination_form,
'client_form': client_form,
'dadata_api_key': dadata_api_key
}
return render(request, template_name, dictionary)

File diff suppressed because one or more lines are too long

@ -49,4 +49,68 @@
<script src="{{ STATIC_URL }}js/client.list.js"></script>
<script src="{{ STATIC_URL }}js/paginator.js"></script>
<script src="{{ STATIC_URL }}js/lib/jquery.suggestions.min.js"></script>
<script>
var index,
clientForm = $("#client-edit-form"),
clientName = $("#id_name", clientForm),
clientInn = $("#id_inn", clientForm),
clientKpp = $("#id_kpp", clientForm),
clientOqrn = $("#id_ogrn", clientForm),
clientAddress = $("#id_address", clientForm),
bankBic = $("#id_bank_bik", clientForm),
bankFullName = $("#id_bank_name", clientForm),
bankCorrespondentAccount = $("#id_bank_korr_account", clientForm),
bankInputs = [bankBic, bankFullName, bankCorrespondentAccount],
clientInputs = [clientName, clientInn, clientKpp, clientOqrn];
function join(arr) {
var separator = arguments.length > 1 ? arguments[1] : ", ";
return arr.filter(function(n){return n}).join(separator);
}
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
if (data.type === "LEGAL"|| data.type === "INDIVIDUAL" ) {
if (data.name)
clientName.val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " "));
if (data.name && data.name.full)
clientName.val(join([data.opf && data.opf.full || "", data.name.full], " "));
clientInn.val(data.inn);
clientKpp.val(data.kpp);
clientOqrn.val(data.ogrn);
if (data.address)
clientAddress.val(data.address.value);
} else {
bankFullName.val(data.name && data.name.full || "");
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
}
}
function fillInput(input, type) {
input.suggestions({
token: "{{ dadata_api_key }}",
type: type,
count: 5,
onSelect: showSuggestion
});
}
for (index = clientInputs.length - 1; index >= 0; --index) {
fillInput(clientInputs[index], "PARTY" );
}
for (index = bankInputs.length - 1; index >= 0; --index) {
fillInput(bankInputs[index], "BANK" );
}
</script>
{% endblock %}

@ -530,43 +530,32 @@
<script src="{{ STATIC_URL }}js/lib/jquery.suggestions.min.js"></script>
<script>
"use strict";
var index,
bankEditForm = $("#bank-account-edit-form"),
bankBicInput = $("#id_bik", bankEditForm),
bankShortNameInput = $("#id_short_name", bankEditForm),
bankFullNameInput = $("#id_name", bankEditForm),
BankCorrespondentAccountInput = $("#id_korr_account", bankEditForm),
formInputs = [bankBicInput, bankShortNameInput, bankFullNameInput, BankCorrespondentAccountInput];
var bankForm = $("#bank-account-edit-form"),
bankBic = $("#id_bik", bankForm),
bankShortName = $("#id_short_name", bankForm),
bankFullName = $("#id_name", bankForm),
bankCorrespondentAccount = $("#id_korr_account", bankForm),
formInputs = [bankBic, bankShortName, bankFullName, bankCorrespondentAccount];
function showSuggestion(suggestion) {
// console.log(suggestion);
var data = suggestion.data;
if (!data) return;
bankShortNameInput.val(data.name && data.name.payment || "");
bankFullNameInput.val(data.name && data.name.full || "");
bankBicInput.val(data.bic);
BankCorrespondentAccountInput.val(data.correspondent_account);
bankShortName.val(data.name && data.name.payment || "");
bankFullName.val(data.name && data.name.full || "");
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
}
for (index = formInputs.length - 1; index >= 0; --index) {
for (var index = formInputs.length - 1; index >= 0; --index) {
formInputs[index].suggestions({
token: "{{ dadata_api_key }}",
type: "BANK",
count: 5,
/* Вызывается, когда пользователь выбирает одну из подсказок */
onSelect: showSuggestion
});
}
</script>
{% endblock %}

Loading…
Cancel
Save