Compare commits
10 Commits
5f2a00ba4a
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 95195c2749 | |||
| 9979937113 | |||
| be80c4044b | |||
| 6549c3d70b | |||
| cc520caef5 | |||
| 51eebcc165 | |||
| ffe5e2e938 | |||
| 77a00d7623 | |||
| 369bd7a6e1 | |||
| 8604774741 |
@@ -4,6 +4,7 @@ from aiogram.fsm.state import State, StatesGroup
|
|||||||
class SearchForm(StatesGroup):
|
class SearchForm(StatesGroup):
|
||||||
search_option = State()
|
search_option = State()
|
||||||
data_to_search = State()
|
data_to_search = State()
|
||||||
|
sent_messages = State()
|
||||||
search_result = State()
|
search_result = State()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import os
|
import os
|
||||||
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
|
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine, session
|
||||||
|
|
||||||
|
|
||||||
DATABASE_URL = (f"postgresql+asyncpg://{os.getenv('DB_USER')}:{os.getenv('DB_PASSWORD')}@"
|
DATABASE_URL = (f"postgresql+asyncpg://{os.getenv('DB_USER')}:{os.getenv('DB_PASSWORD')}@"
|
||||||
f"{os.getenv('DB_HOST')}/{os.getenv('DATABASE')}")
|
f"{os.getenv('DB_HOST')}/{os.getenv('DATABASE')}")
|
||||||
|
|
||||||
engine = create_async_engine(DATABASE_URL, echo=True)
|
engine = create_async_engine(DATABASE_URL, echo=True)
|
||||||
async_session_ = async_sessionmaker(bind=engine, expire_on_commit=False)
|
async_session_ = async_sessionmaker(bind=engine, expire_on_commit=False)
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ orders_router = Router()
|
|||||||
order_operation_base = {"add_order_photo": "Добавить фото",
|
order_operation_base = {"add_order_photo": "Добавить фото",
|
||||||
"get_order_photo": "Получить фото",
|
"get_order_photo": "Получить фото",
|
||||||
"get_order_components": "Получить список комплектующих",
|
"get_order_components": "Получить список комплектующих",
|
||||||
"get_order_documentation": "Получить документацию"
|
"get_order_documentation": "Получить документацию",
|
||||||
|
"finish_work_on_order": "❌ Закрыть"
|
||||||
}
|
}
|
||||||
order_operation_update = {"add_order_documentation": "Добавить документацию"}
|
order_operation_update = {"add_order_documentation": "Добавить документацию"}
|
||||||
|
|
||||||
@@ -132,15 +133,7 @@ async def search_by_item(message: Message, state: FSMContext):
|
|||||||
async def show_order(callback: CallbackQuery, state: FSMContext, bot: Bot):
|
async def show_order(callback: CallbackQuery, state: FSMContext, bot: Bot):
|
||||||
order_id = int(re.search(r"(\d+)", callback.data).group())
|
order_id = int(re.search(r"(\d+)", callback.data).group())
|
||||||
|
|
||||||
try:
|
order = next(filter(lambda item: order_id == item.id, await state.get_value("selected_orders")), None)
|
||||||
async with async_session_() as local_session:
|
|
||||||
result = await local_session.execute(select(Order).filter(Order.id == order_id))
|
|
||||||
order = result.scalars().first()
|
|
||||||
|
|
||||||
except Exception as err:
|
|
||||||
logger.warning(err)
|
|
||||||
|
|
||||||
order = next(filter(lambda item: order_id == item.id, await state.get_value("search_result")), None)
|
|
||||||
|
|
||||||
if order:
|
if order:
|
||||||
await callback.message.answer(text=f"Номер заказа: {order.id}\n"
|
await callback.message.answer(text=f"Номер заказа: {order.id}\n"
|
||||||
@@ -150,11 +143,11 @@ async def show_order(callback: CallbackQuery, state: FSMContext, bot: Bot):
|
|||||||
f"Дата отгрузки: {order.end_work}\n"
|
f"Дата отгрузки: {order.end_work}\n"
|
||||||
f"Дата создания: {order.created_at}\n"
|
f"Дата создания: {order.created_at}\n"
|
||||||
f"Описание: {order.description}",
|
f"Описание: {order.description}",
|
||||||
reply_markup=create_inline_kb(width=2, **dict(
|
reply_markup=create_inline_kb(width=1, **dict(
|
||||||
(f"{clbk}_{order.id}", text) for clbk, text in order_operation_base.items()))
|
(f"{clbk}_{order.id}", text) for clbk, text in order_operation_base.items()))
|
||||||
)
|
)
|
||||||
|
|
||||||
for message in SearchForm.sent_messages:
|
for message in await state.get_value("sent_messages"):
|
||||||
await bot.delete_message(chat_id=callback.message.chat.id, message_id=message.message_id)
|
await bot.delete_message(chat_id=callback.message.chat.id, message_id=message.message_id)
|
||||||
await state.clear()
|
await state.clear()
|
||||||
|
|
||||||
@@ -185,7 +178,7 @@ async def send_order_photos(callback: CallbackQuery, bot: Bot):
|
|||||||
|
|
||||||
media_item = next(media_path, None)
|
media_item = next(media_path, None)
|
||||||
try:
|
try:
|
||||||
await callback.message.delete()
|
pass
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -222,3 +215,8 @@ async def add_order_photo(message: Message, bot: Bot):
|
|||||||
await bot.delete_message(chat_id=message.chat.id, message_id=message.reply_to_message.message_id)
|
await bot.delete_message(chat_id=message.chat.id, message_id=message.reply_to_message.message_id)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@orders_router.callback_query(F.data.startswith("finish_work_on_order"))
|
||||||
|
async def finish_work_on_order(callback: CallbackQuery):
|
||||||
|
await callback.message.delete()
|
||||||
@@ -1,12 +1,14 @@
|
|||||||
import os
|
import os
|
||||||
import asyncio
|
import asyncio
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
load_dotenv(".env")
|
||||||
|
|
||||||
from aiogram import Dispatcher, Bot
|
from aiogram import Dispatcher, Bot
|
||||||
from handlers import *
|
from handlers import *
|
||||||
from keyboards import set_main_menu
|
from keyboards import set_main_menu
|
||||||
from middlewares import SessionMiddleware
|
from middlewares import SessionMiddleware
|
||||||
|
|
||||||
load_dotenv(".env")
|
|
||||||
bot = Bot(token=os.getenv("TOKEN"))
|
bot = Bot(token=os.getenv("TOKEN"))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ steps:
|
|||||||
- name: dockersock
|
- name: dockersock
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
commands:
|
commands:
|
||||||
- docker build -t myapp:${DRONE_COMMIT_BRANCH} .
|
- docker build -t myapp:${DRONE_COMMIT_SHA} .
|
||||||
|
|
||||||
- name: deploy
|
- name: deploy
|
||||||
image: docker
|
image: docker
|
||||||
@@ -42,8 +42,7 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- docker stop myapp || true
|
- docker stop myapp || true
|
||||||
- docker rm myapp || true
|
- docker rm myapp || true
|
||||||
- docker run --name=myapp --network=prod_net -v /srv/prod/telegram_bot/photos:/app/photos/ \
|
- docker run --name=myapp -d --network=prod_net -v /srv/prod/telegram_bot/photos:/app/photos/ -v /srv/prod/telegram_bot/.env:/app/.env:ro myapp:${DRONE_COMMIT_SHA}
|
||||||
-v /srv/prod/telegram_bot/.env:/app/.env:ro myapp:${DRONE_COMMIT_BRANCH}
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
Reference in New Issue
Block a user