add update torb web hock to admin
This commit is contained in:
@@ -414,7 +414,7 @@ class ProductModelAdmin(ProductAdminPermission, ModelAdmin, ImportExportModelAdm
|
|||||||
# compressed_fields = True
|
# compressed_fields = True
|
||||||
warn_unsaved_form = True
|
warn_unsaved_form = True
|
||||||
# list_per_page = 2
|
# list_per_page = 2
|
||||||
actions_list = ['redirect_to_learn', 'update_products_price']
|
actions_list = ['redirect_to_learn', 'update_products_price', 'resync_all_torob']
|
||||||
list_display = ['display_image', 'shop__shop_name', 'view', 'rating', 'category', 'created_at' ,'show_in_website', ]
|
list_display = ['display_image', 'shop__shop_name', 'view', 'rating', 'category', 'created_at' ,'show_in_website', ]
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
('فیلد های اصلی', {'fields': ('name', 'description', 'category', 'image', 'related_products','show_in_trends', 'show_in_most_viewed', 'show_in_lot_of_discount', 'show_in_top_seller', 'shop', 'show_in_bot', 'bot_banner'), "classes": ["tab"],}),
|
('فیلد های اصلی', {'fields': ('name', 'description', 'category', 'image', 'related_products','show_in_trends', 'show_in_most_viewed', 'show_in_lot_of_discount', 'show_in_top_seller', 'shop', 'show_in_bot', 'bot_banner'), "classes": ["tab"],}),
|
||||||
@@ -497,6 +497,57 @@ class ProductModelAdmin(ProductAdminPermission, ModelAdmin, ImportExportModelAdm
|
|||||||
messages.success(request, f"قیمت {ProductVariant.objects.all().count()} تنوع محصول اپدیت شد")
|
messages.success(request, f"قیمت {ProductVariant.objects.all().count()} تنوع محصول اپدیت شد")
|
||||||
return redirect("admin:product_productmodel_changelist")
|
return redirect("admin:product_productmodel_changelist")
|
||||||
|
|
||||||
|
@action(description="ارسال مجدد همه محصولات به ترب")
|
||||||
|
def resync_all_torob(self, request):
|
||||||
|
from django.conf import settings
|
||||||
|
from product.tasks import send_torob_product_webhook
|
||||||
|
|
||||||
|
if not getattr(settings, "TOROB_PRODUCT_WEBHOOK_TOKEN", None):
|
||||||
|
messages.error(request, "توکن وبهوک ترب در تنظیمات وجود ندارد")
|
||||||
|
return redirect("admin:product_productmodel_changelist")
|
||||||
|
|
||||||
|
product_ids = list(
|
||||||
|
ProductModel.objects.exclude(slug__isnull=True).exclude(slug="").values_list("id", flat=True)
|
||||||
|
)
|
||||||
|
if not product_ids:
|
||||||
|
messages.warning(request, "محصولی برای ارسال یافت نشد")
|
||||||
|
return redirect("admin:product_productmodel_changelist")
|
||||||
|
|
||||||
|
chunk_size = 50
|
||||||
|
queued = 0
|
||||||
|
for start in range(0, len(product_ids), chunk_size):
|
||||||
|
send_torob_product_webhook.delay(product_ids[start:start + chunk_size])
|
||||||
|
queued += 1
|
||||||
|
|
||||||
|
messages.success(
|
||||||
|
request,
|
||||||
|
f"{len(product_ids)} محصول در {queued} بسته برای ارسال به ترب در صف قرار گرفت",
|
||||||
|
)
|
||||||
|
return redirect("admin:product_productmodel_changelist")
|
||||||
|
|
||||||
|
def resync_selected_torob(self, request, queryset):
|
||||||
|
from django.conf import settings
|
||||||
|
from product.tasks import send_torob_product_webhook
|
||||||
|
|
||||||
|
if not getattr(settings, "TOROB_PRODUCT_WEBHOOK_TOKEN", None):
|
||||||
|
messages.error(request, "توکن وبهوک ترب در تنظیمات وجود ندارد")
|
||||||
|
return
|
||||||
|
|
||||||
|
product_ids = list(
|
||||||
|
queryset.exclude(slug__isnull=True).exclude(slug="").values_list("id", flat=True)
|
||||||
|
)
|
||||||
|
if not product_ids:
|
||||||
|
messages.warning(request, "محصول معتبری انتخاب نشد")
|
||||||
|
return
|
||||||
|
|
||||||
|
chunk_size = 50
|
||||||
|
for start in range(0, len(product_ids), chunk_size):
|
||||||
|
send_torob_product_webhook.delay(product_ids[start:start + chunk_size])
|
||||||
|
|
||||||
|
messages.success(request, f"{len(product_ids)} محصول برای ارسال به ترب در صف قرار گرفت")
|
||||||
|
|
||||||
|
resync_selected_torob.short_description = "ارسال محصولات انتخاب شده به ترب"
|
||||||
|
|
||||||
def bulk_update_subcategory_action(self, request, queryset):
|
def bulk_update_subcategory_action(self, request, queryset):
|
||||||
"""اکشن برای تغییر دستهبندی چند محصول همزمان"""
|
"""اکشن برای تغییر دستهبندی چند محصول همزمان"""
|
||||||
|
|
||||||
@@ -535,7 +586,7 @@ class ProductModelAdmin(ProductAdminPermission, ModelAdmin, ImportExportModelAdm
|
|||||||
)
|
)
|
||||||
|
|
||||||
bulk_update_subcategory_action.short_description = "تغییر دستهبندی محصولات انتخاب شده"
|
bulk_update_subcategory_action.short_description = "تغییر دستهبندی محصولات انتخاب شده"
|
||||||
actions = ['bulk_update_subcategory_action']
|
actions = ['bulk_update_subcategory_action', 'resync_selected_torob']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user