dem14
This commit is contained in:
parent
53e281bd22
commit
3a9d3da108
Binary file not shown.
@ -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)
|
||||
40
core/templates/admin/core/whatsapp_test.html
Normal file
40
core/templates/admin/core/whatsapp_test.html
Normal 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>
|
||||
› <a href="{% url 'admin:app_list' app_label='core' %}">Core</a>
|
||||
› <a href="{% url 'admin:core_whatsappconfig_changelist' %}">WhatsApp Configurations</a>
|
||||
› {% 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 %}
|
||||
@ -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 %}
|
||||
Loading…
x
Reference in New Issue
Block a user