feat: Add A-Z filter for clients/suppliers in Telegram bot
- Add A-Z alphabetical filter keyboard for clients and suppliers lists (same pattern as company selection, without emoji) - Increase clients/suppliers list pagination from 10 to 20 items per page - Remove emoji from company A-Z filter button for consistency - Add 6 new callback handlers: clients_alpha_menu, clients_alpha:LETTER, clients_alpha_page:PAGE:LETTER, and supplier equivalents - Dashboard service and models updates - Telegram bot: email handlers, auth, DB operations, internal API improvements - Frontend: dashboard cards updates (CashFlow, Clienti, Furnizori, Treasury) - Frontend: SolduriCompactCard and CollapsibleCard improvements - DashboardView enhancements - start.sh and run-with-restart.sh script updates - IIS web.config and service worker updates Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -101,12 +101,13 @@ def is_valid_email_format(email: str) -> bool:
|
||||
return bool(re.match(pattern, email))
|
||||
|
||||
|
||||
async def verify_email_in_oracle(email: str) -> Optional[str]:
|
||||
async def verify_email_in_oracle(email: str, server_id: Optional[str] = None) -> Optional[str]:
|
||||
"""
|
||||
Verify email exists in Oracle UTILIZATORI table via backend API
|
||||
|
||||
Args:
|
||||
email: Email address to check
|
||||
server_id: Optional Oracle server ID (for multi-server mode)
|
||||
|
||||
Returns:
|
||||
Oracle username if found and active, None otherwise
|
||||
@@ -118,8 +119,8 @@ async def verify_email_in_oracle(email: str) -> Optional[str]:
|
||||
|
||||
backend_client = get_backend_client()
|
||||
|
||||
# Call backend API to verify email
|
||||
response = await backend_client.verify_email(email)
|
||||
# Call backend API to verify email (on specific server if provided)
|
||||
response = await backend_client.verify_email(email, server_id=server_id)
|
||||
|
||||
if response.get('success'):
|
||||
username = response.get('username')
|
||||
|
||||
@@ -78,7 +78,8 @@ async def link_telegram_account(
|
||||
return None
|
||||
|
||||
oracle_username = code_data.get('oracle_username')
|
||||
logger.info(f"Auth code valid for Oracle user: {oracle_username}")
|
||||
server_id = code_data.get('server_id') # Extract server_id from the stored code
|
||||
logger.info(f"Auth code valid for Oracle user: {oracle_username} (server_id={server_id})")
|
||||
|
||||
# Step 2: Create/update Telegram user record (basic info)
|
||||
user_created = await create_or_update_user(
|
||||
@@ -97,7 +98,8 @@ async def link_telegram_account(
|
||||
async with backend_client:
|
||||
user_data = await backend_client.verify_user(
|
||||
oracle_username=oracle_username,
|
||||
linking_code=auth_code
|
||||
linking_code=auth_code,
|
||||
server_id=server_id
|
||||
)
|
||||
|
||||
if not user_data or not user_data.get('success'):
|
||||
|
||||
Reference in New Issue
Block a user