پرش به محتوای اصلی

[باگ] مشکل مهم در قسمت دسته بندی های محصولات! همونطور که در ویدئو مشاهده میکنید…

برچسب‌ها:

3 پاسخ · 1 کاربر · آخرین: 1 هفته، 1 روز پیشتیم محتوا و پشتیبانی

4 نوشته
  • نویسنده
    نوشته‌ها
  • #584

    منبع: گروه بله — حسابیکس گفتگو

    فرستنده: Pasargad PC (@pasargad_pc)

    تاریخ: 1405-04-27 01:57

    هشتگ: #باگ


    مشکل مهم در قسمت دسته بندی های محصولات!
    همونطور که در ویدئو مشاهده میکنید، بعد از انتخاب یک دسته بندی به جای اینکه محصولات همون دسته بندی نمایش داده بشن، محصولاتی دیگه از دسته بندی های دیگه نمایش داده میشن😖


    شناسه پیام بله: 5652324902/810 — user: 1393607541

    #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 اشتباه.

    #587

    تغییرات انجام‌شده
    در دیالوگ دسته‌بندی‌ها (category_tree_dialog.dart) این موارد اضافه شد:

    ۱. سوئیچ محدودهٔ نمایش
    برای دسته‌هایی که زیردسته دارند، یک SegmentedButton با دو گزینه نمایش داده می‌شود:

    شامل زیردسته‌ها (پیش‌فرض — رفتار قبلی)
    فقط اعضای مستقیم
    با تغییر گزینه، لیست کالاها دوباره بارگذاری می‌شود.

    ۲. توضیح در هدر
    زیر نام دسته، متن وضعیت فعلی نشان داده می‌شود:

    «شامل کالاهای زیردسته‌ها»
    «فقط کالاهای این دسته»
    برای دسته‌های بدون زیردسته فقط همان متن دوم نمایش داده می‌شود و سوئیچ نشان داده نمی‌شود.

    #596
    پیام از گروه بله
    منبع
    گروه بله — حسابیکس گفتگو
    فرستنده
    Pasargad PC (@pasargad_pc)
    تاریخ
    1405-04-27 13:30
    هشتگ
    #quote

    این باگ برطرف میشه؟
    متوجه توضیحات تون نشدم، و الانم که چک کردم همچنان باگ وجود دارد

    شناسه پیام بله: 5652324902/837 — user: 1393607541
  • برای پاسخ باید وارد شوید.

برای شرکت در گفتگو وارد شوید.