Merged Air51/dokumentor.ru into master

02d89b8
Air51 9 years ago
commit 063c6f8a61
  1. 3
      .gitignore
  2. 0
      manage.py
  3. 29
      project/customer/forms.py
  4. 3
      project/customer/views/clients.py
  5. 2
      project/customer/views/profile.py
  6. 4
      project/settings.py
  7. 83
      project/static/css/style.css
  8. 189
      project/static/css/suggestions.css
  9. 6
      project/static/js/client.commons.js
  10. 129
      project/static/js/client/search-external-api.js
  11. 11
      project/static/js/customer/profile.edit.js
  12. 93
      project/static/js/dialogs.js
  13. 4608
      project/static/js/lib/handlebars-v4.0.5.js
  14. 2
      project/static/js/lib/jquery.suggestions.min.js
  15. 36
      project/static/js/profile/search-bank-external-api.js
  16. 158
      project/static/js/profile/search-main-external-api.js
  17. 8
      project/templates/base.html
  18. 41
      project/templates/customer/clients/form.html
  19. 7
      project/templates/customer/clients/list.html
  20. 60
      project/templates/customer/profile/edit.html
  21. 28
      project/templates/hbs/bank-tpl.html

3
.gitignore vendored

@ -13,6 +13,3 @@ distribute-*.tar.gz
_public_html/
celerybeat-schedule
yandex_money.log
/tmp_emails/
/tmp/
/celerybeat-schedule.db

@ -175,26 +175,17 @@ class UserProfileAdminForm(UserProfileForm):
class BankAccountForm(forms.ModelForm):
"""Форма редактирования расчетных счетов."""
# search_bank = forms.CharField(label=u'Поиск банка', required=False, initial='')
class Meta:
model = models.BankAccount
# fields = ('search_bank', 'bik', 'name', 'short_name', 'korr_account', 'account', 'is_main', 'company')
fields = ('bik', 'name', 'short_name', 'korr_account', 'account', 'is_main', 'company')
_textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3})
widgets = {
'bik': forms.HiddenInput(),
'name': forms.HiddenInput(),
'short_name': forms.HiddenInput(),
'korr_account': forms.HiddenInput(),
'company': forms.HiddenInput(),
}
widgets = {'name': _textarea, 'short_name': _textarea, 'company': forms.HiddenInput()}
def __init__(self, *args, **kwargs):
super(BankAccountForm, self).__init__(*args, **kwargs)
# self.fields['bik'].widget.attrs.update(_numeric(self.fields['bik']))
# self.fields['korr_account'].widget.attrs.update(_numeric(self.fields['korr_account']))
self.fields['bik'].widget.attrs.update(_numeric(self.fields['bik']))
self.fields['korr_account'].widget.attrs.update(_numeric(self.fields['korr_account']))
self.fields['account'].widget.attrs.update(_numeric(self.fields['account']))
# self.fields['search_bank'].widget.attrs['class'] = 'search-bank'
class BankAccountAdminForm(BankAccountForm):
@ -228,10 +219,10 @@ class ClientForm(forms.ModelForm):
)
_textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3})
widgets = {
'bank_bik': forms.HiddenInput(),
'bank_name': forms.HiddenInput(),
'short_name': forms.HiddenInput(),
'bank_korr_account': forms.HiddenInput(),
#'name': _textarea,
#'address': _textarea,
'bank_name': _textarea,
#'contact_other': _textarea,
}
def __init__(self, *args, **kwargs):
@ -240,9 +231,9 @@ class ClientForm(forms.ModelForm):
self.fields['kpp'].widget.attrs.update(_numeric(self.fields['kpp']))
self.fields['ogrn'].widget.attrs.update(_numeric(self.fields['ogrn']))
self.fields['okpo'].widget.attrs.update(_numeric(self.fields['okpo']))
# self.fields['bank_bik'].widget.attrs.update(_numeric(self.fields['bank_bik']))
# self.fields['bank_korr_account'].widget.attrs.update(_numeric(self.fields['bank_korr_account']))
# self.fields['bank_account'].widget.attrs.update(_numeric(self.fields['bank_account']))
self.fields['bank_bik'].widget.attrs.update(_numeric(self.fields['bank_bik']))
self.fields['bank_korr_account'].widget.attrs.update(_numeric(self.fields['bank_korr_account']))
self.fields['bank_account'].widget.attrs.update(_numeric(self.fields['bank_account']))
class ClientAdminForm(ClientForm):

@ -8,7 +8,6 @@ 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
@ -25,13 +24,11 @@ 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)

@ -87,7 +87,6 @@ def profile_edit(request):
accounts = models.BankAccount.objects.get_all(profile)
bank_account_form = forms.BankAccountForm(initial={'company': profile})
dadata_api_key = settings.DADATA_API_KEY
if request.method == 'POST':
form = form_class(data=request.POST, files=request.FILES, instance=profile)
@ -114,7 +113,6 @@ def profile_edit(request):
'profile': profile,
'accounts': accounts,
'bank_account_form': bank_account_form,
'dadata_api_key': dadata_api_key
}
return render(request, template_name, dictionary)

@ -369,7 +369,3 @@ try:
from project.local_settings import *
except ImportError:
pass
DADATA_API_KEY = 'e4232c46f82c0b2e8c5f9bd583d6224ce9c934e0'
DADATA_SECRET_KEY = '9c5c3fdfba74af122730db650346b3e91586abc7'

@ -258,11 +258,10 @@ h2 {font-weight: normal;font-size:24px;font-family:"Arial Narrow", Arial, sans-s
.client-edit-form_dlg .ui-dialog-buttonpane {
background:none!important;
border:0;
/*position:absolute;*/
/*bottom:0;*/
/*right:100px;*/
/*padding:15px 0;*/
margin-top: -56px;
position:absolute;
bottom:0;
right:100px;
padding:15px 0;
}
ul.messagelist { padding: 0 0 5px 0; margin: 0; }
@ -423,7 +422,7 @@ a.delete { vertical-align: top; }
#nds_value {margin-top:15px;}
#id_nds_value{padding-left: 2px;margin-left: 0;height: 36px;font-size: 25px;}
#id_doc_num, #id_doc_date {padding-left: 2px;margin-left: 0;height: 36px;font-size: 25px;width: 155px;}
.doc-form #doc_date,
.doc-form #doc_date,
.doc-form #doc_mesto, .doc-form #end_date,
.doc-form #doc_expire_date, .doc-form #dover_doc_date, .doc-form #dover_passport_num, .doc-form #plat_doc_date
{ margin-left: 10px; }
@ -623,7 +622,7 @@ tr.doc-row:hover {cursor:pointer;}
.white_bg {background:#fff!important;}
#req-avail-form {display:none;}
#req-avail-form {display:none;}
.close-message {display:inline-block;float:right;}
.profile_title {font-size:16px;height:33px;width:790px;border-bottom:solid 1px #fed13e;margin: 10px 0 25px 0;}
.profile_label {float:left;width:285px;font-size:13px;height:36px;line-height:36px;color: #797979;}
@ -676,7 +675,7 @@ tr.doc-row:hover {cursor:pointer;}
.license-ways .col {width:290px;}
.license-ways .mr-5 {margin-right:5px;}
.license-ways .col-last {width:185px;}
#cabinet-popup {display:none;position:absolute;top:0;left:50%;z-index:99999;margin-top:30px;margin-left:250px;box-sizing:border-box;padding:40px 25px 25px 25px;width:300px;height:410px;background:url(../img/popup-cabinet.png) center center no-repeat;}
#cabinet-popup {display:none;position:absolute;top:0;left:50%;z-index:99999;margin-top:30px;margin-left:250px;box-sizing:border-box;padding:40px 25px 25px 25px;width:300px;height:410px;background:url(../img/popup-cabinet.png) center center no-repeat;}
#cabinet-popup h2 {font-size:16px;border-bottom:1px solid #fed13e;padding:0;margin:10px 0;}
.yellow_round {padding: 10px;border-radius:100px;background:#fed13e;text-align:center;font-size:40px;font-weight:bold;display:inline-block;}
.grey {color:#7d8084;}
@ -693,71 +692,3 @@ a.popup-unreg {background:url(../img/popup-trash.png) no-repeat 3px center;}
.rm_profile .list-col2 {border-left:none;}
.yourlabs-autocomplete { overflow: auto !important; }
/* profile */
.search-property {
padding: 15px;
background: rgba(128, 128, 128, 0.1);
}
.form__label {
font-style: italic;
}
.form__label_search {
width: 110px;
display: inline-block;
}
.form__input {
padding-left: 10px;
margin-left: 2px;
}
.form__input_search {
width: 450px;
}
.search__container {
margin: 0 -13px;
padding: 15px 0;
background: rgba(128, 128, 128, 0.1);
}
.form__label_search {
padding-left:15px;
}
.form__bank label {
display: inline-block;
width: 110px;
}
.bank-short-name {
font-size: 10px;
color: grey;
}
.bank-account-label {
padding: 0 15px 0 40px;
}
.search__label {
padding-left: 13px;
}
.search__input_long,
#searchClientInput,
#searchClientBankInput {
width: 556px;
height: 32px;
}
#client-edit-form #address .field {
}
#client-edit-form #id_address {
width: 550px;
}

File diff suppressed because one or more lines are too long

@ -39,6 +39,7 @@ function setup_client_edit_links(form, reload_on_success) {
$('table#clients td a.client.edit-link').each(function() {
$(this).on('click', function() {
var link = $(this);
var form_action = link.attr('href') + 'ajax/'; // url to post form
if (typeof(reload_on_success)!=='undefined' && reload_on_success)
form_action += '?reload_on_success';
@ -47,10 +48,12 @@ function setup_client_edit_links(form, reload_on_success) {
form.clearForm();
clear_form_errors(form);
var get_url = link.attr('href').replace('edit/', 'get/ajax/'); // url to fetch client fields
var obj_values = fetch_data(get_url);
update_form_fields(form, obj_values);
fillResultSearchBankTemplate(obj_values);
form.dialog('open');
return false;
});
@ -95,7 +98,6 @@ function setup_client_add_link(form, reload_on_success) {
form.clearForm();
clear_form_errors(form);
clearResultSearchDiv($("#searchBankResult"));
form.dialog('open');
return false;

@ -1,129 +0,0 @@
$(document).ready(function() {
var clientForm = $("#client-edit-form"),
clientSearch = $("#searchClientInput", clientForm),
clientName = $("#id_name", clientForm),
clientInn = $("#id_inn", clientForm),
clientKpp = $("#id_kpp", clientForm),
clientOqrn = $("#id_ogrn", clientForm),
clientAddress = $("#id_address", clientForm),
bankSearch = $("#searchClientBankInput", clientForm),
bankBic = $("#id_bank_bik", clientForm),
bankFullName = $("#id_bank_name", clientForm),
bankCorrespondentAccount = $("#id_bank_korr_account", clientForm),
clientInputs = [clientName, clientInn, clientOqrn, clientAddress];
function confirmChangeDataPromise(inputArray) {
var dlg_msg = $('#dialog-message');
var emptyInput = true;
var defer = $.Deferred();
for (var i = inputArray.length - 1; i >= 0; --i) {
if (inputArray[i].val()) {
emptyInput = false;
break;
}
}
if (!emptyInput) {
dlg_msg.dialog({
title: 'Изменить данные',
buttons:
{'Да':
function(){
defer.resolve(true);
$(this).dialog('close');
}, 'Нет':
function(){
defer.resolve(false);
$(this).dialog('close');
}
}
}).html('Имеются уже заполненные данные, они будут изменены, продолжить?');
dlg_msg.dialog('open');
} else {
defer.resolve(true);
}
return defer.promise();
}
function cleanSearchInput() {
clientSearch.val('');
}
function changeDataInInputs(data) {
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 {
if (data.name && data.name.full || "") {
bankFullName.val(data.name && data.name.full || "");
}
if (data.name && data.name.payment || "") {
bankFullName.val(data.name && data.name.payment || "");
}
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
var advancedObj = expandObject(data, 118, "right");
fillResultSearchBankTemplate(advancedObj);
}
}
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
if (data.type === "LEGAL"|| data.type === "INDIVIDUAL" ) {
confirmChangeDataPromise(clientInputs).then(function (answer) {
if (answer) {
changeDataInInputs(data)
}
cleanSearchInput();
}) ;
} else {
changeDataInInputs(data)
}
}
function fillInput(input, type, count) {
input.suggestions({
token: daDataExternalApiKey,
type: type,
count: count,
onSelect: showSuggestion
});
}
bankSearch.on('keyup',(function () {
if (bankSearch.val().length === 0) {
clearResultSearchDiv($("#searchBankResult"));
clearSearchInputs([bankFullName, bankBic, bankCorrespondentAccount]);
}
}));
clientSearch.on('keyup',(function () {
if (clientSearch.val().length === 0) {
clearSearchInputs([clientName, clientInn, clientKpp, clientOqrn, clientAddress]);
} else {
}
}));
fillInput(clientSearch, "PARTY", 5);
fillInput(bankSearch, "BANK", 1);
});

@ -12,13 +12,11 @@ $(document).ready(function() {
bank_form.dialog({
modal: true,
autoOpen: false,
width: 600
autoOpen: false
});
$('button[name=close-form]', bank_form).click(function() {
bank_form.dialog('close');
clearResultSearchDiv($("#searchBankResult"));
return false;
});
@ -53,18 +51,11 @@ function setup_bank_account_edit_links(form) {
form.clearForm();
clear_form_errors(form);
// console.log("----",'edit');
var get_url = link.attr('href').replace('edit/', 'get/ajax/'); // url to fetch account fields
// console.log("----",get_url);
var obj_values = fetch_data(get_url);
// console.log("----",obj_values);
update_form_fields(form, obj_values);
fillResultSearchBankTemplate(obj_values);
form.one('dialogbeforeclose', update_bank_acoounts_list);
form.dialog('open');

@ -34,9 +34,6 @@ $(document).ready(function() {
}
form.dialog('close');
form.clearForm();
clearResultSearchDiv($("#searchBankResult"));
if (data.message) {
if (dlg_msg) {
dlg_msg.dialog({title: data.message['title']}).html(data.message['msg']);
@ -142,94 +139,10 @@ function update_form_fields(form, obj_values) {
var input = $(':input[name="' + key + '"]', form);
if (input) {
var input_type = input.attr('type');
if (input_type == 'checkbox' || input_type == 'radio') {
input.prop('checked', value);
} else {
if (input_type == 'checkbox' || input_type == 'radio')
input.attr('checked', value);
else
input.val(value);
}
}
}
}
//-------------------------------------------------------
function getType() {
return isOrg ? "LEGAL" : "INDIVIDUAL";
}
function getPartOfPersonName(fullName, part) {
if (!fullName) return;
return fullName.split(' ')[part];
}
function expandObject(obj, width, align) {
obj["templateColWidth"] = width;
obj["templateColAlign"] = align;
return obj
}
function clearResultSearchDiv(div) {
if ($(div).html().trim() !== '') {
div.html('');
}
}
function clearSearchInputs(input) {
if (input instanceof Array) {
var index, len;
for (index = 0, len = input.length; index < len; ++index) {
var item = input[index];
item.val('');
}
} else {
input.val('');
}
}
function join(arr) {
var separator = arguments.length > 1 ? arguments[1] : ", ";
return arr.filter(function(n){return n}).join(separator);
}
function fillResultSearchBankTemplate(obj) {
var bankResultDiv = $("#searchBankResult");
var templateBank = $("#resultSearchBankTemplate").html();
var template = Handlebars.compile(templateBank);
var newObj = {};
newObj['name'] = {};
if (obj.hasOwnProperty('bik')) {
newObj["bic"] = obj.bik;
newObj["name"]["full"] = obj.name;
newObj["name"]["payment"] = obj.short_name;
newObj["correspondent_account"] = obj.korr_account;
obj = newObj;
}
if (obj.hasOwnProperty('bank_bik')) {
newObj["bic"] = obj.bank_bik;
newObj["name"]["full"] = obj.bank_name;
newObj["name"]["payment"] = obj.bank_name;
newObj["correspondent_account"] = obj.bank_korr_account;
obj = newObj;
}
bankResultDiv.html(template(obj));
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,36 +0,0 @@
$(document).ready(function() {
var bankForm = $("#bank-account-edit-form"),
bankSearch = $("#searchBankAPI"),
bankBic = $("#id_bik", bankForm),
bankShortName = $("#id_short_name", bankForm),
bankFullName = $("#id_name", bankForm),
bankCorrespondentAccount = $("#id_korr_account", bankForm);
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
bankShortName.val(data.name && data.name.payment || "");
bankFullName.val(data.name && data.name.full && data.name.payment || "");
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
var advancedObj = expandObject(data, 110, "left");
fillResultSearchBankTemplate(advancedObj);
}
bankSearch.suggestions({
token: daDataExternalApiKey,
type: "BANK",
count: 2,
onSelect: showSuggestion
});
bankSearch.on('keyup',(function () {
if (bankSearch.val().length === 0) {
clearResultSearchDiv($("#searchBankResult"));
clearSearchInputs([bankFullName, bankShortName, bankBic, bankCorrespondentAccount]);
}
}));
});

@ -1,158 +0,0 @@
$(document).ready(function() {
var paramsType,
profileForm = $("#profile-form"),
profileSearch = $("#searchAPI"),
profileBossName = $("#id_boss_name", profileForm),
profileBossSurname =$("#id_boss_surname", profileForm),
profileBossMiddleName =$("#id_boss_midname", profileForm),
profileInn = $("#id_inn", profileForm),
profileKpp = $("#id_kpp", profileForm),
profileOqrn = $("#id_ogrn", profileForm),
profileAddress = $("#id_address", profileForm),
profileLegalAddress = $("#id_jur_address", profileForm),
profilePostalAddress = $("#id_real_address", profileForm),
profileInputs = [];
function confirmChangeDataPromise(inputArray) {
var dlg_msg = $('#dialog-message');
var emptyInput = true;
var defer = $.Deferred();
for (var i = inputArray.length - 1; i >= 0; --i) {
if (inputArray[i].val()) {
emptyInput = false;
break;
}
}
if (!emptyInput) {
dlg_msg.dialog({
title: 'Изменить данные',
buttons:
{'Да':
function(){
defer.resolve(true);
$(this).dialog('close');
}, 'Нет':
function(){
defer.resolve(false);
$(this).dialog('close');
}
}
}).html('Имеются уже заполненные данные, они будут изменены, продолжить?');
dlg_msg.dialog('open');
} else {
defer.resolve(true);
}
return defer.promise();
}
function cleanSearchInput() {
profileSearch.val('');
}
function changeDataInInputs(data) {
if (paramsType ==="LEGAL") {
if (data.name)
profileOrgName.val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " "));
if (data.name && data.name.full)
profileOrgFullName.val(join([data.opf && data.opf.full || "", data.name.full], " "));
if (data.address) {
profileAddress.val(data.address.value);
profileLegalAddress.val(data.address.value);
}
if (data.management) {
var management = data.management;
if (management.post) {profileBossTitle.val(data.management.post)}
if (management.name) {
var fullName = management.name;
profileBossSurname.val(getPartOfPersonName(fullName, 0));
profileBossName.val(getPartOfPersonName(fullName, 1));
profileBossMiddleName.val(getPartOfPersonName(fullName, 2));
}
}
} else {
if (data.name && data.name.full) {
var profileFullName = data.name.full;
profileBossSurname.val(getPartOfPersonName(profileFullName, 0));
profileBossName.val(getPartOfPersonName(profileFullName, 1));
profileBossMiddleName.val(getPartOfPersonName(profileFullName, 2));
}
if (data.address) {
var address = data.address.value;
profileAddress.val(address);
profileLegalAddress.val(address);
profilePostalAddress.val(address);
}
if (data.state && data.state.registration_date) {
profileRegDate.val((new Date(data.state.registration_date)).toLocaleDateString())
}
}
profileInn.val(data.inn);
profileKpp.val(data.kpp);
profileOqrn.val(data.ogrn);
}
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
confirmChangeDataPromise(profileInputs).then(function (answer) {
if (answer) {
changeDataInInputs(data)
}
cleanSearchInput();
}) ;
}
paramsType = getType();
if (paramsType === "LEGAL") {
var profileOrgName = $('#id_name', profileForm),
profileOrgFullName = $('#id_full_name', profileForm),
profileBossTitle = $('#id_boss_title', profileForm);
profileInputs = [
profileOrgName, profileOrgFullName, profileInn, profileKpp,
profileOqrn, profileBossName, profileBossSurname, profileBossMiddleName,
profileAddress, profileLegalAddress
];
} else {
var profileRegDate = $('#id_ip_reg_date', profileForm);
profileInputs = [
profileBossName, profileBossSurname, profileBossMiddleName,
profileInn, profileKpp, profileOqrn, profileRegDate,
profileAddress, profileLegalAddress, profilePostalAddress
];
}
profileSearch.suggestions({
token: daDataExternalApiKey,
type: "PARTY",
params: {
type: paramsType
},
count: 5,
onSelect: showSuggestion
});
});

@ -9,9 +9,9 @@
<title>{% block title %}{% endblock %} | Документор</title>
<link rel="shortcut icon" href="{{ STATIC_URL }}favicon.ico" />
<link rel="stylesheet" href="{{ STATIC_URL }}css/ui-lightness/jquery-ui-1.10.3.custom.css" />
<link rel="stylesheet" href="{{ STATIC_URL }}css/suggestions.css" />
<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css?t=1489695907" />
{% render_block "css" %}
</head>
<body>
<!-- Yandex.Metrika counter -->
@ -157,7 +157,6 @@
<script src="{{ STATIC_URL }}js/lib/jquery.blockUI.js"></script>
<script src="{{ STATIC_URL }}js/lib/entertotab.js"></script>
<script src="{{ STATIC_URL }}js/lib/jquery.cookie.js"></script>
<script src="{{ STATIC_URL }}js/lib/handlebars-v4.0.5.js"></script>
<script src="{{ STATIC_URL }}js/csrf.js"></script>
@ -165,11 +164,6 @@
<script src="{{ STATIC_URL }}js/dialogs.js"></script>
<script src="{{ STATIC_URL }}js/callback.js"></script>
{% include 'autocomplete_light/static.html' %}
<script>
$(document).ready(function() {
window.daDataExternalApiKey = "{{ dadata_api_key }}";
});
</script>
{% endblock %}
{% block js %}{% endblock %}

@ -7,17 +7,6 @@
<form id="client-edit-form" class="client-form{% if is_ajax %} ajax-form{% endif %}" action="" method="post"{% if is_ajax %} title="Добавить / редактировать контрагента"{% endif %}>
{% csrf_token %}
<div class="search__container">
<div class="field">
<div class="left label search__label">
Поиск реквизитов:
</div>
<div class="form-field">
<input id="searchClientInput" class="search__input search__input_long" maxlength="256" autocomplete="off" name="searchClientInput" type="text" placeholder="Введите название в свободной форме, адрес, ИНН или ОГРН">
</div>
<div class="clear"></div>
</div>
</div>
{% for hidden in form.hidden_fields %}
{{ hidden }}
@ -82,31 +71,20 @@
<div class="clear"></div>
</div>
<div id="address" class="field" style="width: 700px;margin-bottom: 5px;">
<div id="address" class="field">
<div class="left label">
Юр. адрес{% if form.address.field.required %}<span class="required">*</span>{% endif %}:
</div>
<div class="form-field ">
<div class="form-field">
{{ form.address }}
{% if not is_ajax %}{{ form.address.errors }}{% endif %}
</div>
<div class="clear"></div>
</div>
<div class="search-bank" style="width: 803px;">
<div class="search__container">
<div class="left label search__label">
Поиск банка:
</div>
<div class="form-field">
<input class="search__input search__input_long" id="searchClientBankInput" placeholder="Введите название, БИК или SWIFT" type="text">
</div>
</div>
<div id="searchBankResult"></div>
</div>
{% if not form.bank_bik.is_hidden %}
<div id="bank_bik" class="field">
<div class="bank-header">Банковские реквизиты</div>
<div id="bank_bik" class="field">
<div class="left label">
БИК{% if form.bank_bik.field.required %}<span class="required">*</span>{% endif %}:
</div>
@ -116,8 +94,7 @@
</div>
<div class="clear"></div>
</div>
{% endif %}
{% if not form.bank_name.is_hidden %}
<div id="bank_name" class="field">
<div class="left label">
Наименование банка{% if form.bank_name.field.required %}<span class="required">*</span>{% endif %}:
@ -128,7 +105,7 @@
</div>
<div class="clear"></div>
</div>
{% endif %}
{% comment %}
<div id="bank_address" class="field">
<div class="left label">
@ -141,20 +118,18 @@
<div class="clear"></div>
</div>
{% endcomment %}
{% if not form.bank_korr_account.is_hidden %}
<div id="bank_korr_account" class="field">
<div id="bank_korr_account" class="field">
<div class="left label">
К/сч.{% if form.bank_korr_account.field.required %}<span class="required">*</span>{% endif %}:
</div>
<div class="form-field">
{{ form.bank_korr_account }}
{% if not is_ajax %}{{ form.bank_korr_account.errors }}{% endif %}
</div>
<div class="clear"></div>
</div>
{% endif %}
<div id="bank_account" class="field">
<div class="left label">
Р/сч.{% if form.bank_account.field.required %}<span class="required">*</span>{% endif %}:

@ -47,11 +47,6 @@
{% block js %}
<script src="{{ STATIC_URL }}js/client.commons.js"></script>
<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 src="{{ STATIC_URL }}js/client/search-external-api.js"></script>
{% include 'hbs/bank-tpl.html' %}
<script src="{{ STATIC_URL }}js/paginator.js"></script>
{% endblock %}

@ -5,18 +5,6 @@
{% block content %}
<h2>Редактирование реквизитов{% if profile.is_ip %} ИП{% elif profile.is_org %} организации{% endif %}</h2>
<div class="search-property">
<div id="searchProperty" class="field">
<div class='profile_label'>
Поиск реквизитов:
</div>
<div class='long-input profile_field'>
<input id="searchAPI" maxlength="256" name="searchAPI" type="text" placeholder="Введите название в свободной форме, адрес, ИНН или ОГРН">
</div>
<div class="clear"></div>
</div>
</div>
<div class="profile-form content-white rel">
<div id="blackbox">
<div class='bb-triangle'></div>
@ -285,7 +273,7 @@
<div id="address" class="field">
<div class="profile_label">
Фактический адрес{% if form.address.field.required %} <span class="required">*</span>{% endif %}
Файтический адрес{% if form.address.field.required %} <span class="required">*</span>{% endif %}
</div>
<div class="long-input profile_field">
{{ form.address }}
@ -452,22 +440,13 @@
{% endblock %}
{% block dialogs %}
<form id="bank-account-edit-form" class="form__bank" action="" method="post" title="Добавить / редактировать расчётный счёт">
{% csrf_token %}
<div class="search-bank">
<div class="search__container">
<label class="form__label form__label_search" for="searchBankAPI">Поиск банка:</label>
<input class="form__input form__input_search" id="searchBankAPI" placeholder="Введите название, БИК или SWIFT">
</div>
<div id="searchBankResult"></div>
</div>
<div class="errors-layout"></div>
{{ bank_account_form.as_p }}
<button type="submit" role="button" name="submit">Сохранить</button>
<button class="close-form" type="button" role="close" name="close-form">Отмена</button>
</form>
<form id="bank-account-edit-form" action="" method="post" title="Добавить / редактировать расчётный счёт">
{% csrf_token %}
<div class="errors-layout"></div>
{{ bank_account_form.as_p }}
<button type="submit" role="button" name="submit">Сохранить</button>
<button class="close-form" type="button" role="close" name="close-form">Отмена</button>
</form>
<form id="bank-account-delete-form" action="" method="post" title="Удалить расчётный счёт">
{% csrf_token %}
@ -479,7 +458,6 @@
{% endblock %}
{% block js %}
<script type="text/javascript">
var BANK_ACCOUNT = {
'list_url': "{% url 'customer_bank_accounts_list_ajax' %}",
@ -515,7 +493,7 @@
}
}).html('Нажмите "Да", чтобы удалить изображение');
dlg_msg.dialog('open');
});
})
var getPic = function(data){
var elm_id = '#' + data['elm_id'].substring(3);
@ -523,12 +501,12 @@
$(elm_id + ' img').attr('src', data['pic'])
$(tmb_id).val(data['full_pic']);
$(elm_id + ' .del_image').show();
};
}
$('.img_load input[type=file]').on('change', function(e){
e.preventDefault();
var this_id = $(this).attr('id').substring(3);
// console.log($('#' + this_id + ' img'));
console.log($('#' + this_id + ' img'));
$('#' + this_id + ' img').attr('src', '{{ STATIC_URL }}/img/spinner.gif');
var formData = new FormData();
formData.append($(this).val(), $(this)[0].files[0]);
@ -548,18 +526,4 @@
</script>
<script src="{{ STATIC_URL }}js/customer/profile.edit.js"></script>
<script src="{{ STATIC_URL }}js/lib/jquery.suggestions.min.js"></script>
<script>
$(document).ready(function() {
var False = false,
True = true;
window.isOrg = {{ profile.is_org }};
});
</script>
<script src="{{ STATIC_URL }}js/profile/search-main-external-api.js"></script>
<script src="{{ STATIC_URL }}js/profile/search-bank-external-api.js"></script>
{% include 'hbs/bank-tpl.html' %}
{% endblock js %}
{% endblock %}

@ -1,28 +0,0 @@
{% verbatim %}
<script id="resultSearchBankTemplate" type="text/x-handlebars-template">
<table>
<tbody>
<tr>
<td width="{{ templateColWidth }}" align="{{ templateColAlign }}">Наименование:</td>
{{#if name.full}}
<td>{{ name.full }}</td>
{{else}}
<td>{{ name.payment }}</td>
{{/if}}
</tr>
<tr>
<td></td>
<td><span class="bank-short-name">{{ name.payment }}</span></td>
</tr>
<tr>
<td width="{{ templateColWidth }}" align="{{ templateColAlign }}">БИК:</td>
<td>
<span class="bank-bic">{{ bic }}</span>
<span class="bank-account-label">К/сч:</span>
<span class="bank-account">{{ correspondent_account }}</span>
</td>
</tr>
</tbody>
</table>
</script>
{% endverbatim %}
Loading…
Cancel
Save