price format

This commit is contained in:
Mamalizz-dev
2025-12-20 19:47:07 +03:30
parent 83368ad80d
commit 6219dcf7b0
2 changed files with 39 additions and 1 deletions
+20
View File
@@ -0,0 +1,20 @@
document.addEventListener("DOMContentLoaded", () => {
document.querySelectorAll(".price-input").forEach((input) => {
input.value = format(input.value);
input.addEventListener("input", () => {
const cursor = input.selectionStart;
const raw = input.value.replace(/,/g, "");
input.value = format(raw);
input.setSelectionRange(cursor, cursor);
});
input.form.addEventListener("submit", () => {
input.value = input.value.replace(/,/g, "");
});
});
});
const format = (value) => {
if (!value) return "";
return value.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");
};
+19 -1
View File
@@ -1,4 +1,5 @@
from django.contrib import admin, messages
from django import forms
# from product.tasks import update_prices
from .models import *
from unfold.admin import TabularInline, StackedInline
@@ -191,6 +192,18 @@ class DetailInLine(StackedInline):
min_num = 1
max_num = 4
# --- ProductVariantAdminForm for price formatting ---
class ProductVariantAdminForm(forms.ModelForm):
class Meta:
model = ProductVariant
fields = "__all__"
widgets = {
"input_price": forms.TextInput(attrs={"class": "price-input"}),
"min_price": forms.TextInput(attrs={"class": "price-input"}),
"profit": forms.TextInput(attrs={"class": "price-input"}),
}
@admin.register(ProductDetailModel)
class ProductDetailModel1Admin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
@@ -210,6 +223,7 @@ class ProductDetailModel1Admin(ModelAdmin, ImportExportModelAdmin):
class ProductVariantInLine(ProductVariantInlineAdminPermission, StackedInline):
model = ProductVariant
form = ProductVariantAdminForm
extra = 0
show_change_link = True
tab = True
@@ -224,11 +238,15 @@ class ProductVariantInLine(ProductVariantInlineAdminPermission, StackedInline):
if db_field.name == 'color':
kwargs['widget'] = UnfoldAdminColorInputWidget()
return super().formfield_for_dbfield(db_field, request, **kwargs)
from unfold.contrib.filters.admin import RelatedDropdownFilter
@admin.register(ProductVariant)
class ProductVariantAdmin(ProductVariantAdminPermission, ModelAdmin, ImportExportModelAdmin):
form = ProductVariantAdminForm
class Media:
js = ("price-format.js",)
import_form_class = ImportForm
export_form_class = ExportForm
autocomplete_fields = ['product_attributes', 'images', 'in_pack_items', 'details']