diff options
Diffstat (limited to 'handlers/user')
| -rw-r--r-- | handlers/user/info.py | 4 | ||||
| -rw-r--r-- | handlers/user/invoices.py | 16 | ||||
| -rw-r--r-- | handlers/user/pay_invoice.py | 5 | ||||
| -rw-r--r-- | handlers/user/payments.py | 12 |
4 files changed, 18 insertions, 19 deletions
diff --git a/handlers/user/info.py b/handlers/user/info.py index 9776e7e..587925f 100644 --- a/handlers/user/info.py +++ b/handlers/user/info.py | |||
| @@ -47,8 +47,8 @@ ADMIN_COMMANDS = COMMANDS + [ | |||
| 47 | description="Создать новый счёт на оплату", | 47 | description="Создать новый счёт на оплату", |
| 48 | ), | 48 | ), |
| 49 | BotCommand( | 49 | BotCommand( |
| 50 | command="add_user", | 50 | command="users", |
| 51 | description="дть пользователя", | 51 | description="ра пользователями", |
| 52 | ), | 52 | ), |
| 53 | BotCommand( | 53 | BotCommand( |
| 54 | command="suggest_list", | 54 | command="suggest_list", |
diff --git a/handlers/user/invoices.py b/handlers/user/invoices.py index cc071bb..15785fb 100644 --- a/handlers/user/invoices.py +++ b/handlers/user/invoices.py | |||
| @@ -18,7 +18,7 @@ from libs.invoice import ( | |||
| 18 | get_payment_status, | 18 | get_payment_status, |
| 19 | ) | 19 | ) |
| 20 | from libs.msg import eclipse_text | 20 | from libs.msg import eclipse_text |
| 21 | from libs.user import mention | 21 | from libs.user import load_user_cache |
| 22 | from models import Invoice, PaymentStatus, User | 22 | from models import Invoice, PaymentStatus, User |
| 23 | from models.callback_data import InvoiceItemClb, InvoicePageClb, PayInvoiceClb | 23 | from models.callback_data import InvoiceItemClb, InvoicePageClb, PayInvoiceClb |
| 24 | 24 | ||
| @@ -166,14 +166,14 @@ async def item( | |||
| 166 | ] | 166 | ] |
| 167 | ) | 167 | ) |
| 168 | 168 | ||
| 169 | await clb.message.edit_text(text_template.format("..."), reply_markup=reply_markup) | ||
| 170 | user_status = [] | 169 | user_status = [] |
| 171 | for user_id, s in invoice_payments.user_status.items(): | 170 | for user_id, s in invoice_payments.user_status.items(): |
| 172 | chat = await bot.get_chat(user_id) | 171 | user_cache = await load_user_cache(bot, user_id) |
| 173 | user_status.append(f"{PAYMENT_STATUS[s]} - {mention(chat)}") | 172 | user_status.append(f"{PAYMENT_STATUS[s]} - {user_cache.mention}") |
| 174 | await clb.message.edit_text( | 173 | |
| 175 | text_template.format("\n".join(user_status)), | 174 | await clb.message.edit_text( |
| 176 | reply_markup=reply_markup, | 175 | text_template.format("\n".join(user_status)), |
| 177 | ) | 176 | reply_markup=reply_markup, |
| 177 | ) | ||
| 178 | 178 | ||
| 179 | await clb.answer() | 179 | await clb.answer() |
diff --git a/handlers/user/pay_invoice.py b/handlers/user/pay_invoice.py index db75f47..d7809cd 100644 --- a/handlers/user/pay_invoice.py +++ b/handlers/user/pay_invoice.py | |||
| @@ -19,7 +19,6 @@ from sqlalchemy import and_, select | |||
| 19 | from sqlalchemy.ext.asyncio import AsyncSession | 19 | from sqlalchemy.ext.asyncio import AsyncSession |
| 20 | 20 | ||
| 21 | from libs.fsm import get_data, set_data | 21 | from libs.fsm import get_data, set_data |
| 22 | from libs.user import mention | ||
| 23 | from models import ( | 22 | from models import ( |
| 24 | Invoice, | 23 | Invoice, |
| 25 | Payment, | 24 | Payment, |
| @@ -27,6 +26,7 @@ from models import ( | |||
| 27 | ReceiptFile, | 26 | ReceiptFile, |
| 28 | ReceiptFileType, | 27 | ReceiptFileType, |
| 29 | User, | 28 | User, |
| 29 | UserCache, | ||
| 30 | UserRole, | 30 | UserRole, |
| 31 | ) | 31 | ) |
| 32 | from models.callback_data import PayInvoiceClb, PaymentStatusClb | 32 | from models.callback_data import PayInvoiceClb, PaymentStatusClb |
| @@ -112,6 +112,7 @@ async def receipt( | |||
| 112 | bot: Bot, | 112 | bot: Bot, |
| 113 | state: FSMContext, | 113 | state: FSMContext, |
| 114 | session: AsyncSession, | 114 | session: AsyncSession, |
| 115 | user_cache: UserCache, | ||
| 115 | ) -> None: | 116 | ) -> None: |
| 116 | if msg.document is not None: | 117 | if msg.document is not None: |
| 117 | receipt_file = ReceiptFile( | 118 | receipt_file = ReceiptFile( |
| @@ -173,7 +174,7 @@ async def receipt( | |||
| 173 | try: | 174 | try: |
| 174 | await bot.send_message( | 175 | await bot.send_message( |
| 175 | admin_id, | 176 | admin_id, |
| 176 | f"Новое подтверждение оплаты:\nПользователь: {mention(msg.chat)}", | 177 | f"Новое подтверждение оплаты:\nПользователь: {user_cache.mention}", |
| 177 | ) | 178 | ) |
| 178 | await receipt_file.send(bot, admin_id, reply_markup=reply_markup) | 179 | await receipt_file.send(bot, admin_id, reply_markup=reply_markup) |
| 179 | except TelegramAPIError as e: | 180 | except TelegramAPIError as e: |
diff --git a/handlers/user/payments.py b/handlers/user/payments.py index 87ea236..e15a882 100644 --- a/handlers/user/payments.py +++ b/handlers/user/payments.py | |||
| @@ -15,13 +15,13 @@ from sqlalchemy.sql.functions import count | |||
| 15 | 15 | ||
| 16 | from libs.invoice import get_payment_status | 16 | from libs.invoice import get_payment_status |
| 17 | from libs.msg import eclipse_text | 17 | from libs.msg import eclipse_text |
| 18 | from libs.user import mention | 18 | from libs.user import load_user_cache |
| 19 | from models import Invoice, Payment, PaymentStatus, User | 19 | from models import Invoice, Payment, PaymentStatus, User |
| 20 | from models.callback_data import ( | 20 | from models.callback_data import ( |
| 21 | PayInvoiceClb, | ||
| 21 | PaymentItemClb, | 22 | PaymentItemClb, |
| 22 | PaymentPageClb, | 23 | PaymentPageClb, |
| 23 | PaymentStatusClb, | 24 | PaymentStatusClb, |
| 24 | PayInvoiceClb, | ||
| 25 | ) | 25 | ) |
| 26 | 26 | ||
| 27 | router = Router(name="payments") | 27 | router = Router(name="payments") |
| @@ -213,7 +213,7 @@ async def item( | |||
| 213 | 213 | ||
| 214 | invoice = await session.get(Invoice, payment.invoice_id) | 214 | invoice = await session.get(Invoice, payment.invoice_id) |
| 215 | assert invoice is not None | 215 | assert invoice is not None |
| 216 | chat = await bot.get_chat(payment.user_id) | 216 | user_cache = await load_user_cache(bot, payment.user_id) |
| 217 | 217 | ||
| 218 | status_buttons = [] | 218 | status_buttons = [] |
| 219 | if payment.status != PaymentStatus.ACCEPTED: | 219 | if payment.status != PaymentStatus.ACCEPTED: |
| @@ -242,12 +242,10 @@ async def item( | |||
| 242 | text="Назад к выбору", | 242 | text="Назад к выбору", |
| 243 | callback_data=PaymentPageClb(page=callback_data.page).pack(), | 243 | callback_data=PaymentPageClb(page=callback_data.page).pack(), |
| 244 | ) | 244 | ) |
| 245 | reply_markup = InlineKeyboardMarkup( | 245 | reply_markup = InlineKeyboardMarkup(inline_keyboard=[status_buttons, [back_button]]) |
| 246 | inline_keyboard=[status_buttons, [back_button]] | ||
| 247 | ) | ||
| 248 | 246 | ||
| 249 | caption = ( | 247 | caption = ( |
| 250 | f"Платёж от {mention(chat)}\n" | 248 | f"Платёж от {user_cache.mention}\n" |
| 251 | f"Счёт: {eclipse_text(invoice.message.text, 30)}\n" | 249 | f"Счёт: {eclipse_text(invoice.message.text, 30)}\n" |
| 252 | f"Дата: {payment.datetime.strftime('%d %b %y г.')}\n" | 250 | f"Дата: {payment.datetime.strftime('%d %b %y г.')}\n" |
| 253 | f"Статус: {PAYMENT_STATUS[payment.status]}" | 251 | f"Статус: {PAYMENT_STATUS[payment.status]}" |
