diff --git a/core/__pycache__/admin.cpython-311.pyc b/core/__pycache__/admin.cpython-311.pyc index 8577f3a..5fb3aff 100644 Binary files a/core/__pycache__/admin.cpython-311.pyc and b/core/__pycache__/admin.cpython-311.pyc differ diff --git a/core/admin.py b/core/admin.py index 53798df..833de05 100644 --- a/core/admin.py +++ b/core/admin.py @@ -1,5 +1,11 @@ from django.contrib import admin +from django.urls import path +from django.shortcuts import render +from django.http import HttpResponseRedirect +from django.contrib import messages +from django.utils.translation import gettext_lazy as _ from .models import Profile, Truck, Shipment, Bid, Message, WhatsAppConfig, Country +from .whatsapp import send_whatsapp_message @admin.register(Country) class CountryAdmin(admin.ModelAdmin): @@ -43,3 +49,29 @@ class WhatsAppConfigAdmin(admin.ModelAdmin): if self.model.objects.exists(): return False return super().has_add_permission(request) + + def get_urls(self): + urls = super().get_urls() + custom_urls = [ + path('send-test/', self.admin_site.admin_view(self.send_test_message), name='send_test_whatsapp'), + ] + return custom_urls + urls + + def send_test_message(self, request): + if request.method == 'POST': + phone = request.POST.get('phone') + message = request.POST.get('message') + if phone and message: + success = send_whatsapp_message(phone, message) + if success: + self.message_user(request, _("Test message sent successfully!")) + else: + self.message_user(request, _("Failed to send test message. Check your API credentials and logs."), level=messages.ERROR) + return HttpResponseRedirect("../") + + context = dict( + self.admin_site.each_context(request), + title=_("Send Test WhatsApp Message"), + opts=self.model._meta, + ) + return render(request, "admin/core/whatsapp_test.html", context) \ No newline at end of file diff --git a/core/templates/admin/core/whatsapp_test.html b/core/templates/admin/core/whatsapp_test.html new file mode 100644 index 0000000..c7b4092 --- /dev/null +++ b/core/templates/admin/core/whatsapp_test.html @@ -0,0 +1,40 @@ +{% extends "admin/base_site.html" %} +{% load i18n admin_modify %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +
+
+ {% csrf_token %} +
+
+
+
+ + +
{% trans 'Enter the phone number in international format without the + sign.' %}
+
+
+
+
+ + +
+
+
+ +
+
+
+{% endblock %} diff --git a/core/templates/admin/core/whatsappconfig/change_form.html b/core/templates/admin/core/whatsappconfig/change_form.html new file mode 100644 index 0000000..0dc7536 --- /dev/null +++ b/core/templates/admin/core/whatsappconfig/change_form.html @@ -0,0 +1,9 @@ +{% extends "admin/change_form.html" %} +{% load i18n admin_urls %} + +{% block object-tools-items %} +
  • + {% trans "Send Test Message" %} +
  • + {{ block.super }} +{% endblock %}