From c39f2eb068091834a4b3aa034af22c39f226eb99 Mon Sep 17 00:00:00 2001 From: ismail Date: Thu, 18 Sep 2025 14:33:22 +0300 Subject: [PATCH] update 1 --- .gitignore | 5 +++- car_inventory/asgi.py | 16 +------------ car_inventory/urls.py | 6 +++-- inventory/signals.py | 8 +++---- inventory/views.py | 54 +++++++++++++++++++++++++------------------ 5 files changed, 45 insertions(+), 44 deletions(-) diff --git a/.gitignore b/.gitignore index a70c6b99..558db3ef 100644 --- a/.gitignore +++ b/.gitignore @@ -163,8 +163,11 @@ GitHub.sublime-settings .history +static-copy static +static/* staticfiles media tmp -logs \ No newline at end of file +logs +static/testdir \ No newline at end of file diff --git a/car_inventory/asgi.py b/car_inventory/asgi.py index 1a8723dc..f92da1b1 100644 --- a/car_inventory/asgi.py +++ b/car_inventory/asgi.py @@ -17,31 +17,17 @@ import django django.setup() - from django.urls import path from channels.routing import ProtocolTypeRouter, URLRouter -from whitenoise import WhiteNoise from channels.auth import AuthMiddlewareStack -from api import routing from inventory.notifications.sse import NotificationSSEApp from django.urls import re_path from django.core.asgi import get_asgi_application -from django.contrib.staticfiles.handlers import ASGIStaticFilesHandler -from pathlib import Path -# application = ProtocolTypeRouter( -# { -# "http": get_asgi_application(), -# # "websocket": AuthMiddlewareStack(URLRouter(routing.websocket_urlpatterns)), -# } -# ) -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "car_inventory.settings") -# django.setup() + # BASE_DIR = Path(__file__).resolve().parent.parent app = get_asgi_application() -# app = WhiteNoise(app, root=str(BASE_DIR / 'staticfiles')) - application = ProtocolTypeRouter( { "http": AuthMiddlewareStack( diff --git a/car_inventory/urls.py b/car_inventory/urls.py index 118d92a3..c2b4849b 100644 --- a/car_inventory/urls.py +++ b/car_inventory/urls.py @@ -33,5 +33,7 @@ urlpatterns += i18n_patterns( # path('', include(tf_urls)), ) -# if not settings.DEBUG: -urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +if settings.DEBUG: + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT) + diff --git a/inventory/signals.py b/inventory/signals.py index 7d38be84..e19327cf 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -1003,10 +1003,10 @@ def create_po_item_upload(sender, instance, created, **kwargs): if instance.po_status == "fulfilled" or instance.po_status == 'approved': for item in instance.get_itemtxs_data()[0]: dealer = models.Dealer.objects.get(entity=instance.entity) - if item.bill_model.is_paid(): - models.PoItemsUploaded.objects.get_or_create( - dealer=dealer, po=instance, item=item, status=instance.po_status - ) + if item.bill_model and item.bill_model.is_paid(): + models.PoItemsUploaded.objects.get_or_create( + dealer=dealer, po=instance, item=item, status=instance.po_status + ) # @receiver(post_save, sender=models.Staff) diff --git a/inventory/views.py b/inventory/views.py index 01b08977..aecbc742 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -10879,19 +10879,23 @@ def InventoryItemCreateView(request, dealer_slug): serie = request.POST.get("serie") trim = request.POST.get("trim") year = request.POST.get("year") - exterior = models.ExteriorColors.objects.get( - pk=request.POST.get("exterior") - ) - interior = models.InteriorColors.objects.get( - pk=request.POST.get("interior") - ) + exterior = request.POST.get("exterior") + interior = request.POST.get("interior") make_name = models.CarMake.objects.get(pk=make) model_name = models.CarModel.objects.get(pk=model) serie_name = models.CarSerie.objects.get(pk=serie) trim_name = models.CarTrim.objects.get(pk=trim) + exterior_name = models.ExteriorColors.objects.get( + pk=request.POST.get("exterior") + ) + interior_name = models.InteriorColors.objects.get( + pk=request.POST.get("interior") + ) + + inventory_name = f"{make_name.name} || {model_name.name} || {serie_name.name} || {trim_name.name} || {year} || {exterior_name.name} || {interior_name.name}" + display_name = f"{make_name.name} {model_name.name} {serie_name.name} {trim_name.name} {year} {exterior_name.name}" - inventory_name = f"{make_name.name} || {model_name.name} || {serie_name.name} || {trim_name.name} || {year} || {exterior.name} || {interior.name}" if ( inventory := entity.get_items_inventory() .filter(name=inventory_name) @@ -10899,17 +10903,27 @@ def InventoryItemCreateView(request, dealer_slug): ): messages.error(request, _("Inventory item already exists")) return response - uom = entity.get_uom_all().filter(name="Unit").first() if not uom: uom = entity.create_uom(name="Unit", unit_abbr="unit") - entity.create_item_inventory( - name=inventory_name, + item = entity.create_item_inventory( + name=display_name, uom_model=uom, item_type=ItemModel.ITEM_TYPE_MATERIAL, inventory_account=account, coa_model=coa, ) + item.additional_info.update( + { + "make": make, + "model": model, + "serie": serie, + "trim": trim, + "year": year, + "exterior": exterior, + "interior": interior, + }) + item.save() messages.success(request, _("Inventory item created successfully")) return response @@ -11224,18 +11238,14 @@ def upload_cars(request, dealer_slug, pk=None): ) try: if item: - data = [x.strip() for x in item.item_model.name.split("||")] - make = models.CarMake.objects.filter(is_sa_import=True).get( - name=data[0] - ) - model = make.carmodel_set.get(name=data[1]) - trim = models.CarTrim.objects.filter( - name=data[3], id_car_serie__id_car_model=model.id_car_model - ).first() - serie = trim.id_car_serie - year = data[4] - exterior = models.ExteriorColors.objects.get(name=data[5]) - interior = models.InteriorColors.objects.get(name=data[6]) + # data = [x.strip() for x in item.item_model.name.split("||")] + make = models.CarMake.objects.get(pk=item.addition_info.get("make")) + model = models.CarModel.objects.get(pk=item.addition_info.get("model")) + trim = models.CarTrim.objects.get(pk=item.addition_info.get("trim")) + serie = models.CarSerie.objects.get(pk=item.addition_info.get("serie")) + year = item.addition_info.get("year") + exterior = models.ExteriorColors.objects.get(pk=item.addition_info.get("exterior")) + interior = models.InteriorColors.objects.get(pk=item.addition_info.get("interior")) receiving_date = timezone.now() vendor_model = item.bill_model.vendor vendor = models.Vendor.objects.get(vendor_model=vendor_model)