This commit is contained in:
Flatlogic Bot 2026-01-23 12:32:34 +00:00
parent 53e281bd22
commit 3a9d3da108
4 changed files with 81 additions and 0 deletions

View File

@ -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)

View File

@ -0,0 +1,40 @@
{% extends "admin/base_site.html" %}
{% load i18n admin_modify %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
&rsaquo; <a href="{% url 'admin:app_list' app_label='core' %}">Core</a>
&rsaquo; <a href="{% url 'admin:core_whatsappconfig_changelist' %}">WhatsApp Configurations</a>
&rsaquo; {% trans 'Send Test Message' %}
</div>
{% endblock %}
{% block content %}
<div id="content-main">
<form method="post">
{% csrf_token %}
<div>
<fieldset class="module aligned">
<div class="form-row">
<div>
<label class="required" for="id_phone">{% trans 'Test Phone Number' %}:</label>
<input type="text" name="phone" id="id_phone" class="vTextField" required placeholder="e.g. 966500000000">
<div class="help">{% trans 'Enter the phone number in international format without the + sign.' %}</div>
</div>
</div>
<div class="form-row">
<div>
<label class="required" for="id_message">{% trans 'Message' %}:</label>
<textarea name="message" id="id_message" class="vLargeTextField" required cols="40" rows="10">{% trans 'This is a test message from your Logistics App.' %}</textarea>
</div>
</div>
</fieldset>
<div class="submit-row">
<input type="submit" value="{% trans 'Send Message' %}" class="default">
<a href="{% url 'admin:core_whatsappconfig_changelist' %}" class="closelink">{% trans 'Cancel' %}</a>
</div>
</div>
</form>
</div>
{% endblock %}

View File

@ -0,0 +1,9 @@
{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}
{% block object-tools-items %}
<li>
<a href="{% url 'admin:send_test_whatsapp' %}" class="viewsitelink">{% trans "Send Test Message" %}</a>
</li>
{{ block.super }}
{% endblock %}