Files
hossein-por-shop/backend/utils/admin.py

52 lines
2.1 KiB
Python

from order.models import OrderModel
from product.models import DollorModel, CommentModel
from ticket.models import Ticket, ContactUsModel
from home.models import LearnVideoModel
from account.models import SecurityBreachAttemptModel
def admin_pending_count(request):
pending_count = OrderModel.objects.filter(status='ADMIN_PENDING').count()
return str(pending_count)
def dollor_price(request):
dollor_object, _ = DollorModel.objects.get_or_create(unique_filed='unique')
return str(dollor_object.price)[:3]
def comment_count(request):
return CommentModel.objects.filter(review_status='not_reviwed').count()
def new_ticket_count(request):
return Ticket.objects.filter(status__in=['open', 'in_progress']).count()
def new_learn_video_count(request):
return LearnVideoModel.objects.filter(viewd=False).count()
def new_attck_count(request):
return SecurityBreachAttemptModel.objects.filter(viewd=False).count()
def new_contact_us_count(request):
return ContactUsModel.objects.filter(is_reviewed=False).count()
from django.contrib import admin, messages
from unfold.admin import ModelAdmin
from home.models import LearnVideoModel
from import_export.admin import ImportExportModelAdmin
from unfold.contrib.import_export.forms import ExportForm, ImportForm, SelectableFieldsExportForm
from unfold.decorators import action, display
from django.shortcuts import redirect,reverse
from django.contrib.contenttypes.models import ContentType
class ModelAdmin(ModelAdmin):
actions_list = ['redirect_to_learn']
@action(description=f"چگونگی استفاده این بخش")
def redirect_to_learn(self, request):
content_type = ContentType.objects.get_for_model(self.model)
try:
learn_video = LearnVideoModel.objects.get(
content_type=content_type,
)
return redirect(reverse("admin:home_learnvideomodel_change", args=[learn_video.pk]))
except Exception as e:
messages.error(request, f"برای بخش {content_type} ویدیویی اپلود نشده است")
return redirect("admin:home_learnvideomodel_changelist")