diff --git a/webApp/interfaces/__pycache__/pagesController.cpython-38.pyc b/webApp/interfaces/__pycache__/pagesController.cpython-38.pyc index 8143ca6..5481c36 100644 Binary files a/webApp/interfaces/__pycache__/pagesController.cpython-38.pyc and b/webApp/interfaces/__pycache__/pagesController.cpython-38.pyc differ diff --git a/webApp/interfaces/pagesController.py b/webApp/interfaces/pagesController.py index dc7e58b..b7d90d6 100644 --- a/webApp/interfaces/pagesController.py +++ b/webApp/interfaces/pagesController.py @@ -26,9 +26,11 @@ def find_patients(data): """ sheet = authorize_google().open("Пациенты клиники").sheet1 records = sheet.get_all_records() # Получаем все строки таблицы - + print(data) for i, record in enumerate(records, start=2): # Нумерация строк Google Таблицы начинается с 2 try: + print(str(record.get("Telegram ID", "")).strip(), str(record.get("ФИО", "")).strip().lower(), str(record.get("Дата рождения", "")).strip(), str(record.get("Номер телефона", "")).strip()) + print(str(data.get("user_id", "")).strip(), str(data.get("fio", "")).strip().lower(), str(data.get("dob", "")).strip(), str(data.get("tel", "")).strip()) if ( str(record.get("Telegram ID", "")).strip() == str(data.get("user_id", "")).strip() and str(record.get("ФИО", "")).strip().lower() == str(data.get("fio", "")).strip().lower() and @@ -165,15 +167,28 @@ def send_registration_request(): if json_data and json_data["status"] == "OK": verification_code = json_data.get("code") - # Записываем данные и код верификации в таблицу - sheet.append_row([ - fio, - raw_phone, - dob, - raw_data.get("user_id"), # Telegram ID пользователя - current_time, # Время отправки данных - verification_code # Код верификации - ]) + # Поиск пациента + row_number, patient_row = find_patients(raw_data) + print(row_number, patient_row) + if patient_row: + # Обновление записи в таблице + sheet = authorize_google().open("Пациенты клиники").sheet1 + + # Определяем динамический столбец по заголовкам + headers = sheet.row_values(1) + verification_col = headers.index("Верификация") + 1 # Столбцы нумеруются с 1 + sheet.update_cell(row_number, verification_col, verification_code) + + else: + # Записываем данные и код верификации в таблицу + sheet.append_row([ + fio, + raw_phone, + dob, + raw_data.get("user_id"), # Telegram ID пользователя + current_time, # Время отправки данных + verification_code # Код верификации + ]) print(f"Код верификации, отправленный пользователю: {verification_code}") return jsonify({'success': True}) diff --git a/webApp/templates/2.0/main_page.pug b/webApp/templates/2.0/main_page.pug index 9dc6925..f1edea1 100644 --- a/webApp/templates/2.0/main_page.pug +++ b/webApp/templates/2.0/main_page.pug @@ -51,6 +51,11 @@ script(type="text/javascript", src="/js/2.0.dashboard.js?q="~randomString()) span="Подтвердить" .my-3.mx-4.primary-field.verification(style="display: none;") + p.mx-auto.text-center#repeat_call(href="#", style="cursor: pointer; text-decoration: underline dotted;")="Заказать повторный звонок" button.btn.btn-success.float-end.mb-3#code_submit span.spinner-border.spinner-border-sm.me-1.d-none(role="status" aria-hidden="true") - span="Отправить код" \ No newline at end of file + span="Отправить код" + + .my-3.mx-4.primary-field.success_window(style="display: none;") + h3="Успех" + p="Ура! Ваша регистрация прошла успешно! 🥳 Пожалуйста вернитесь обратно в телеграм" \ No newline at end of file diff --git a/webApp/templates/static/js/2.0.dashboard.js b/webApp/templates/static/js/2.0.dashboard.js index 0b70c26..4097c6a 100644 --- a/webApp/templates/static/js/2.0.dashboard.js +++ b/webApp/templates/static/js/2.0.dashboard.js @@ -99,10 +99,9 @@ $(document).ready(function(){ } }); - $("#form_submit").click(function(){ - - $(this).children(".spinner-border").removeClass('d-none'); - $(this).attr("disabled", true); + function verification(){ + $("#form_submit").children(".spinner-border").removeClass('d-none'); + $("#form_submit").attr("disabled", true); message = {} @@ -110,30 +109,30 @@ $(document).ready(function(){ if(!(validate_length($('#fio').val(), 3))) { show_error('Введите ФИО', false); - $(this).children(".spinner-border").addClass('d-none'); - $(this).removeAttr("disabled"); + $("#form_submit").children(".spinner-border").addClass('d-none'); + $("#form_submit").removeAttr("disabled"); return; } if(!(validate_length($('#tel').val(), 16))) { show_error('Введите Телефон', false); - $(this).children(".spinner-border").addClass('d-none'); - $(this).removeAttr("disabled"); + $("#form_submit").children(".spinner-border").addClass('d-none'); + $("#form_submit").removeAttr("disabled"); return; } if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) { show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false); - $(this).children(".spinner-border").addClass('d-none'); - $(this).removeAttr("disabled"); + $("#form_submit").children(".spinner-border").addClass('d-none'); + $("#form_submit").removeAttr("disabled"); return; } if ($('#dob').val().length !== 10 || new Date().getFullYear() < new Date($('#dob').val()).getFullYear()) { show_error('Проверьте дату ввода, вы указали дату больше чем сегодняшняя дата', false); - $(this).children(".spinner-border").addClass('d-none'); - $(this).removeAttr("disabled"); + $("#form_submit").children(".spinner-border").addClass('d-none'); + $("#form_submit").removeAttr("disabled"); return; } @@ -155,16 +154,21 @@ $(document).ready(function(){ } else{ show_error(data.error); - $(this).children(".spinner-border").addClass('d-none'); - $(this).removeAttr("disabled"); + $("#form_submit").children(".spinner-border").addClass('d-none'); + $("#form_submit").removeAttr("disabled"); } }, error:function (jqXHR, exception) { - $(this).children(".spinner-border").addClass('d-none'); - $(this).removeAttr("disabled"); + $("#form_submit").children(".spinner-border").addClass('d-none'); + $("#form_submit").removeAttr("disabled"); show_error('Что-то пошло не так', false) } }); + } + + $("#form_submit").click(function(){ + + verification(); }); $("#code_submit").click(function(){ @@ -221,7 +225,8 @@ $(document).ready(function(){ success: (data) => { if(data.success==true){ $('.primary-field').hide(); - $('.verification').show(); + $('.verification').hide(); + $('.success_window').show(); } else{ show_error(data.error); @@ -237,6 +242,10 @@ $(document).ready(function(){ }); }); + $("#repeat_call").click(function(){ + verification(); + }); + $('#clear_tel').click(function(){ phoneStr = ''; phoneInput.value = formatPhoneString();