fixed draw and draw-results notification logics
This commit is contained in:
@@ -12,6 +12,7 @@ from .forms import AddParticipantsForm
|
|||||||
from webapp.models import Invoice, Client, BindingRequest
|
from webapp.models import Invoice, Client, BindingRequest
|
||||||
from bot.notifications import NotificationService
|
from bot.notifications import NotificationService
|
||||||
from bot.utils import create_bot_instance
|
from bot.utils import create_bot_instance
|
||||||
|
from .views import view_draw_results
|
||||||
|
|
||||||
# Настройка логгера
|
# Настройка логгера
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -173,8 +174,6 @@ def confirm_draw_result(request, result_id):
|
|||||||
|
|
||||||
# Получаем клиента по счету участника
|
# Получаем клиента по счету участника
|
||||||
client = get_client_by_invoice(result.participant.invoice)
|
client = get_client_by_invoice(result.participant.invoice)
|
||||||
# Если уведомление вызывает ошибки, можно временно его отключить,
|
|
||||||
# чтобы проверить базовую функциональность подтверждения.
|
|
||||||
if client:
|
if client:
|
||||||
try:
|
try:
|
||||||
# Можно попробовать запуск уведомления в отдельном потоке или отключить его временно:
|
# Можно попробовать запуск уведомления в отдельном потоке или отключить его временно:
|
||||||
@@ -182,7 +181,7 @@ def confirm_draw_result(request, result_id):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Ошибка отправки уведомления о статусе приза пользователю {client.telegram_id}: {e}")
|
logger.error(f"Ошибка отправки уведомления о статусе приза пользователю {client.telegram_id}: {e}")
|
||||||
|
|
||||||
return HttpResponseRedirect(reverse("admin:start_draw", args=[result.lottery.id]))
|
return HttpResponseRedirect(reverse("admin:view_draw_results", args=[result.lottery.id]))
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Lottery)
|
@admin.register(Lottery)
|
||||||
@@ -195,6 +194,8 @@ class LotteryAdmin(admin.ModelAdmin):
|
|||||||
custom_urls = [
|
custom_urls = [
|
||||||
path('<int:lottery_id>/start-draw/', self.admin_site.admin_view(start_draw), name='start_draw'),
|
path('<int:lottery_id>/start-draw/', self.admin_site.admin_view(start_draw), name='start_draw'),
|
||||||
path('confirm-draw-result/<int:result_id>/', self.admin_site.admin_view(confirm_draw_result), name='confirm_draw_result'),
|
path('confirm-draw-result/<int:result_id>/', self.admin_site.admin_view(confirm_draw_result), name='confirm_draw_result'),
|
||||||
|
path('<int:lottery_id>/view-draw-results/', self.admin_site.admin_view(view_draw_results), name='view_draw_results'),
|
||||||
|
|
||||||
]
|
]
|
||||||
return custom_urls + urls
|
return custom_urls + urls
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,12 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from django.shortcuts import get_object_or_404
|
||||||
|
from .models import Lottery, DrawResult
|
||||||
|
|
||||||
# Create your views here.
|
|
||||||
|
def view_draw_results(request, lottery_id):
|
||||||
|
lottery = get_object_or_404(Lottery, id=lottery_id)
|
||||||
|
draw_results = lottery.draw_results.all()
|
||||||
|
return render(request, "admin/draw_result.html", {
|
||||||
|
"lottery": lottery,
|
||||||
|
"draw_results": draw_results
|
||||||
|
})
|
||||||
BIN
lottery/static/upload_image/photo_2025-07-10_09-33-33.jpg
Normal file
BIN
lottery/static/upload_image/photo_2025-07-10_09-33-33.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
Reference in New Issue
Block a user