[باگ] مشکل مهم در قسمت دسته بندی های محصولات! همونطور که در ویدئو مشاهده میکنید…
-
نویسندهنوشتهها
-
تیر 27, 1405 در 1:57 #584تیم محتوا و پشتیبانیمدیرکل
منبع: گروه بله — حسابیکس گفتگو
فرستنده: Pasargad PC (@pasargad_pc)
تاریخ: 1405-04-27 01:57
هشتگ: #باگ
مشکل مهم در قسمت دسته بندی های محصولات!
همونطور که در ویدئو مشاهده میکنید، بعد از انتخاب یک دسته بندی به جای اینکه محصولات همون دسته بندی نمایش داده بشن، محصولاتی دیگه از دسته بندی های دیگه نمایش داده میشن😖
شناسه پیام بله: 5652324902/810 — user: 1393607541
تیر 27, 1405 در 2:17 #586تیم محتوا و پشتیبانیمدیرکلعلت اصلی (محتملترین): نمایش سلسلهمراتبی + UX گمراهکننده
وقتی کاربر یک دستهٔ والد را انتخاب میکند، کالاهای همهٔ زیردستهها هم نمایش داده میشوند. این رفتار عمدی است و در صفحهٔ لیست کالاها و فیلترهای دیگر هم همینطور پیاده شده.مشکل UX: در هدر فقط نام دستهٔ انتخابشده دیده میشود (مثلاً «ابزار»)، اما روی هر کارت کالا، چیپ category_name نشان میدهد دستهٔ مستقیم همان کالا (مثلاً «دستکش»). کاربر فکر میکند کالا در دستهٔ اشتباه است، در حالی که کالا واقعاً زیردستهٔ همان دستهٔ والد است.
category_tree_dialog.dart Lines 867-871 if (categoryNameProduct != null && categoryNameProduct.isNotEmpty) _ProductMetaChip( icon: Icons.category_outlined, label: categoryNameProduct, ),متن رابط هم این را شفاف نمیکند:
دکمه: «نمایش کالاهای این دسته»
پیام خالی: «کالایی در این دسته وجود ندارد»
هیچ اشارهای به «شامل زیردستهها» نیست
مدل داده
هر کالا فقط یک category_id دارد (رابطهٔ یکبهچند، نه many-to-many).
فیلتر بکاند دقیقاً روی همان فیلد است:product_repository.py Lines 198-210 if field == "category_id": if operator == "in" and isinstance(value, (list, tuple)): category_ids = [] for v in value: if v: try: category_ids.append(int(v)) except (ValueError, TypeError): pass if category_ids: stmt = stmt.where(Product.category_id.in_(category_ids))اگر کاربر یک برگ (دسته بدون فرزند) را انتخاب کند، فقط کالاهای با category_id همان دسته باید بیایند.
سناریوهای دیگر (کماحتمالتر)
موضوع توضیح شدت
دادهٔ نادرست
در create/update کالا، بررسی نمیشود category_id متعلق به همان کسبوکار باشد (فقط در import اکسل چک میشود). دادهٔ خراب میتواند category_name عجیب بدهد.
متوسط
کش Redis
برای فیلتر چنددستهای فقط اولین category_id برای tag کش استفاده میشود. احتمال دادهٔ کهنه کم است (TTL ~۳۰ ثانیه + invalidation گسترده).
پایین
سایهاندازی متغیر category_ids
در repository، پارامتر تابع با متغیر محلی فیلتر overlap دارد؛ در سناریوی خاص فیلتر دسته حذف شود. دیالوگ فعلی فقط از filters استفاده میکند و معمولاً تحت تأثیر نیست.
پایین
سقف ۱۰۰۰ کالا
لیست ناقص میشود، نه اشتباه.
پایین
جمعبندی
سوال پاسخ
آیا باگ فیلتر وجود دارد؟
در مسیر عادی دیالوگ، خیر — منطق فیلتر درست است.
چرا کاربران گزارش میدهند؟
احتمال زیاد: انتخاب دستهٔ والد + نمایش category_name زیردسته + متن «این دسته» بدون توضیح سلسلهمراتب.
آیا ممکن است کالای واقعاً اشتباه باشد؟
بله، ولی نادر: دادهٔ خراب در DB یا انتخاب دستهٔ برگ با category_id اشتباه.تیر 27, 1405 در 2:18 #587تیم محتوا و پشتیبانیمدیرکلتغییرات انجامشده
در دیالوگ دستهبندیها (category_tree_dialog.dart) این موارد اضافه شد:۱. سوئیچ محدودهٔ نمایش
برای دستههایی که زیردسته دارند، یک SegmentedButton با دو گزینه نمایش داده میشود:شامل زیردستهها (پیشفرض — رفتار قبلی)
فقط اعضای مستقیم
با تغییر گزینه، لیست کالاها دوباره بارگذاری میشود.۲. توضیح در هدر
زیر نام دسته، متن وضعیت فعلی نشان داده میشود:«شامل کالاهای زیردستهها»
«فقط کالاهای این دسته»
برای دستههای بدون زیردسته فقط همان متن دوم نمایش داده میشود و سوئیچ نشان داده نمیشود.تیر 27, 1405 در 13:30 #596تیم محتوا و پشتیبانیمدیرکلپیام از گروه بله
- منبع
- گروه بله — حسابیکس گفتگو
- فرستنده
- Pasargad PC (@pasargad_pc)
- تاریخ
- 1405-04-27 13:30
- هشتگ
- #quote
این باگ برطرف میشه؟
متوجه توضیحات تون نشدم، و الانم که چک کردم همچنان باگ وجود دارد -
نویسندهنوشتهها