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.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 .models import Profile, Truck, Shipment, Bid, Message, WhatsAppConfig, Country
|
||||||
|
from .whatsapp import send_whatsapp_message
|
||||||
|
|
||||||
@admin.register(Country)
|
@admin.register(Country)
|
||||||
class CountryAdmin(admin.ModelAdmin):
|
class CountryAdmin(admin.ModelAdmin):
|
||||||
@ -43,3 +49,29 @@ class WhatsAppConfigAdmin(admin.ModelAdmin):
|
|||||||
if self.model.objects.exists():
|
if self.model.objects.exists():
|
||||||
return False
|
return False
|
||||||
return super().has_add_permission(request)
|
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