Commit Graph

346 Commits

Author SHA1 Message Date
Mohamed Eltayar 88d1ad7a40
Revert "enhance_am_sar_symbol" 2025-08-31 23:55:42 +03:00
Mohamed Eltayar 95e03c2d89
Revert "إصلاح خطأ Service already defined - إضافة حماية من التكرار والأخطاء" 2025-08-31 23:55:06 +03:00
Mohamed Eltayar c537eb836d
Revert "enhance_sar_symbol" 2025-08-31 23:54:18 +03:00
Mohamed Eltayar 470a617833 إضافة دعم عرض رمز العملة السعودية في حقول الإعدادات والقوائم 2025-08-31 23:23:11 +03:00
Mohamed Eltayar cfb84df794 إصلاح تضارب الفونتات - الحفاظ على فونت الثيم الحالي وإضافة sar-symbol فقط 2025-08-31 23:19:49 +03:00
Mohamed Eltayar 04fb1fb957 تحديث تعليمات الاستخدام لتوضيح رمز العملة السعودية المطلوب نسخه 2025-08-31 23:15:35 +03:00
Mohamed Eltayar dfceebcc71 إصلاح عرض رمز العملة السعودية - تطبيق انتقائي للفونت على الحقول النقدية فقط 2025-08-31 23:15:25 +03:00
Mohamed Eltayar 678fb4ea64 إصلاح خطأ Service already defined - إضافة حماية من التكرار والأخطاء 2025-08-31 23:00:49 +03:00
Mohamed Eltayar 0209de60d0 تحديث ملف assets.xml لتضمين JavaScript لكشف رمز العملة السعودية 2025-08-31 22:51:13 +03:00
Mohamed Eltayar 75ca11657b إضافة نظام JavaScript لكشف وتطبيق فونت رمز العملة السعودية تلقائياً 2025-08-31 22:50:44 +03:00
Mohamed Eltayar 84f14bc4fe حل مشكلة تغيير فونت النظام - تطبيق انتقائي لفونت العملة السعودية فقط 2025-08-31 22:49:56 +03:00
Mohamed Eltayar 885750af73
Revert "Add SAR Symbol Font Integration to Expert Backend Theme" 2025-08-31 22:33:26 +03:00
Mohamed Eltayar 1b3ede7472 Add SAR symbol font integration to web.scss - keep original bukra font as base 2025-08-31 22:11:22 +03:00
Mohamed Eltayar a93ac38229 Add SAR symbol WOFF font 2025-08-31 22:04:14 +03:00
Mohamed Eltayar 394ecb8223 Fix SAR symbol TTF font file 2025-08-31 22:04:06 +03:00
Mohamed Eltayar 0f5465ad57 Add SAR symbol fonts to expert theme 2025-08-31 22:03:39 +03:00
Mohamed Eltayar 085366fca0 Update SAR symbol font (TTF) to expert theme 2025-08-31 22:03:20 +03:00
Mohamed Eltayar a58762c5b6 Add SAR symbol font (TTF) to expert theme 2025-08-31 22:03:12 +03:00
Mohamed Eltayar b080aefcaf
Merge pull request #4473 from expsa/younes_dev_odex25_base
Add Saudi Riyal (SAR) symbol
2025-08-31 21:29:11 +03:00
Mohamed Eltayar 6ab2f8256b
new_module_msr_sar_symbol 2025-08-31 21:15:47 +03:00
younes 37afbe7965 Add Saudi Riyal (SAR) symbol 2025-08-31 16:22:28 +01:00
Mohamed Eltayar 16feb538cf
add_focus_enhance 2025-08-31 17:06:13 +03:00
Mohamed Eltayar 24f105d8ec
Revert "Enhanced search functionality to work in both standalone and embedded…" 2025-08-31 16:32:32 +03:00
Mohamed Eltayar 888503204b Enhanced search functionality to work in both standalone and embedded list views
- Modified _shouldAddSearchBox() to allow search in all list views
- Added _applyEmbeddedSearch() for local filtering in embedded lists
- Added _getEmbeddedData() to retrieve embedded list data
- Added _updateEmbeddedView() to show/hide filtered rows
- Enhanced _clearCustomSearch() to handle both view types
- Added originalData storage for embedded lists
- Improved field value handling for different field types
- Local search implementation for embedded many2many/one2many fields
2025-08-31 16:27:33 +03:00
Mohamed Eltayar 90126f353f
Revert "enhance" 2025-08-31 14:50:56 +03:00
Mohamed Eltayar f997a24dbc
enhance 2025-08-31 13:45:56 +03:00
Mohamed Eltayar 87a8c01e85 Fix: Prevent search box in Many2Many/One2Many fields by checking parentID 2025-08-30 21:01:30 +03:00
Mohamed Eltayar 2331f74a23 🎯 [FIX] Exclude search box from Many2Many/One2Many fields within forms
- Enhanced _shouldAddSearchBox logic to detect relational field contexts
- Added comprehensive DOM traversal to identify form-embedded lists
- Prevents search box appearance in o_field_widget, o_field_many2many, o_field_one2many
- Maintains search functionality for standalone list views only
- Added size-based filtering for small embedded lists
- Preserves all existing functionality for main list views
2025-08-30 20:33:23 +03:00
Mohamed Eltayar 36cde35237
enhance_trans 2025-08-30 20:29:48 +03:00
Mohamed Eltayar 465c84dad6
Revert "🚀 [FEATURE] Enhanced Search Support for Many2Many/One2Many Fields in fims_general_search_tree_view" 2025-08-30 20:24:32 +03:00
Mohamed Eltayar 9a9b45764b 🚀 [ENHANCE] Add Many2Many/One2Many search support to fims_general_search_tree_view
- Add relational_fields support for FieldOne2Many and FieldMany2Many
- Implement dedicated search functionality for form embedded lists
- Add proper DOM detection for relational field contexts
- Maintain backward compatibility with existing ListRenderer functionality
- Support Arabic search with normalization for both contexts
- Add specialized styling for relational field search boxes
2025-08-30 20:15:05 +03:00
Mohamed Eltayar aff17a0043
enhance_translate 2025-08-30 20:02:56 +03:00
Mohamed Eltayar e903d3ef97
edit_translation 2025-08-30 19:50:46 +03:00
Mohamed Eltayar c8314c5a5c
Revert "Complete Arabic translation implementation with frontend registration for fims_general_search_tree_view" 2025-08-30 19:46:11 +03:00
Mohamed Eltayar 7c2e2e8269 Fix Arabic translation file with correct JavaScript code references 2025-08-30 19:30:53 +03:00
Mohamed Eltayar 464dcee27a Update models/__init__.py to import ir_http model 2025-08-30 19:30:39 +03:00
Mohamed Eltayar 8b244211bd Add ir_http model to register module for frontend JavaScript translations 2025-08-30 19:30:30 +03:00
Mohamed Eltayar ec38dcf00f Remove all dependencies except 'base' from base_odex module 2025-08-30 19:10:50 +03:00
Mohamed Eltayar be0af980e0 Update list_search.js: Change records count format from 'Found: X records' to 'Records: X' for better translation support 2025-08-30 18:52:21 +03:00
Mohamed Eltayar 715323d88e Add Arabic translation file for fims_general_search_tree_view 2025-08-30 18:50:50 +03:00
Mohamed Eltayar faca92f817 Simplify index.html: Clean and minimal description page 2025-08-30 15:43:03 +03:00
Mohamed Eltayar 13633b200b Simplify manifest: Reduce description to 2 lines, clean metadata 2025-08-30 15:42:10 +03:00
Mohamed Eltayar e11bc7d65f Simplify CSS: Remove RTL specific styles, let Odoo handle direction automatically 2025-08-30 15:41:49 +03:00
Mohamed Eltayar 8aba15b064 Optimize and clean code: Remove RTL/language specific logic, simplify search implementation 2025-08-30 15:41:23 +03:00
Mohamed Eltayar 2f15cd53b5 تحسينات نهائية للموديول - دعم كامل للعربية وإصلاحات أداء
التحسينات:
1. وضع مؤشر الكتابة في نهاية النص بعد الـ reload
2. ترجمة كاملة للواجهة العربية:
   - placeholder: البحث في جميع الأعمدة المرئية...
   - زر Clear: مسح
   - عداد السجلات: عدد السجلات: X
3. دعم RTL للغة العربية تلقائياً
4. إصلاح مشكلة الـ reload مع حركة الأسهم:
   - تجاهل مفاتيح التنقل (أسهم، Home، End، Page Up/Down)
   - تجاهل مفاتيح التعديل (Ctrl، Alt، Shift، Cmd)
   - تجاهل مفاتيح F1-F12
   - البحث فقط عند تغيير المحتوى الفعلي
2025-08-30 15:06:19 +03:00
Mohamed Eltayar 052761c7b2 إصلاح مشكلة فقدان قيمة حقل البحث عند الـ reload
المشكلة: كان حقل البحث يفقد قيمته وعداد السجلات يختفي بعد تنفيذ البحث
الحل: 
- حفظ حالة البحث في الـ Controller
- استعادة القيمة والعداد عند إعادة رسم الـ Renderer
- إضافة دالة _restoreSearchState للحفاظ على القيم
- تعديل _addCustomSearchBox لاستخدام القيم المحفوظة
- منع فقدان البيانات عند reload
2025-08-30 14:45:46 +03:00
Mohamed Eltayar 349b144467 تحسين وإصلاح موديول البحث العام في List Views - نسخة محسنة بالكامل
التحسينات والإصلاحات:
- إصلاح استخدام reload method بالطريقة الصحيحة لـ Odoo 14
- تحسين معالجة حقول Many2one للبحث الصحيح
- إضافة دعم أفضل للحصول على الحقول المرئية من fieldsInfo
- تحسين الأداء مع debouncing محسن (300ms)
- إضافة معالجة أفضل للأخطاء والحالات الاستثنائية
- دعم محسن للغة العربية مع تطبيع شامل للنصوص
- إضافة دعم مفاتيح Enter و Escape للتحكم السريع
- تحسين واجهة المستخدم مع عرض حالة التحميل
- إصلاح مشاكل التزامن والبحث المتكرر
- معالجة صحيحة للـ domains المعقدة
2025-08-30 14:32:03 +03:00
Mohamed Eltayar 7c1890e349 🎯 FUNDAMENTAL REDESIGN: Move logic to ListController - The ONLY correct way
💡 BREAKTHROUGH DISCOVERY:
After deep analysis, I found the fundamental issue: I was trying to work from ListRenderer (display layer) instead of ListController (data layer). This is why all previous attempts failed.

 CORRECT APPROACH IMPLEMENTED:
1. **ListController**: Handles all data operations (search, reload, domain management)
2. **ListRenderer**: Only handles UI events and delegates to controller
3. **Direct reload()**: Uses controller's native reload({domain}) method
4. **Proper state management**: All search state managed in controller
5. **Correct event delegation**: UI events properly forwarded to controller

🔧 KEY ARCHITECTURAL CHANGES:
- **Controller._handleCustomSearch()**: Main search logic in correct place
- **Controller._applyCustomSearch()**: Uses this.reload({domain}) directly  
- **Controller.reload({domain})**: Native Odoo method for data refresh
- **Renderer delegates**: All UI events forwarded to controller methods
- **State in Controller**: Search state managed where data operations happen

🎯 WHY THIS WILL WORK:
- **Controller has data access**: Direct access to model and reload methods
- **Native reload method**: Uses Odoo's built-in domain filtering system
- **Proper separation**: UI in renderer, logic in controller
- **Standard pattern**: Follows exact same pattern as Odoo's native search

This is the definitive solution - working at the correct architectural level.
2025-08-30 14:15:23 +03:00
Mohamed Eltayar d5b40acead 🔧 FINAL FIX: Using trigger_up('reload') - The CORRECT Odoo way to filter records
💡 ROOT CAUSE DISCOVERED:
After deep research, the real issue was trying to trigger search from ListRenderer. The correct Odoo approach is:
- ListRenderer is for DISPLAY only, not data updates
- The proper way is trigger_up('reload') with domain parameter
- This is exactly how Odoo's own search functionality works internally

 CORRECTED IMPLEMENTATION:
- Changed from trigger_up('search') to trigger_up('reload')  
- Added proper domain parameter passing
- Added keepSelection: false for proper filtering behavior
- Maintained all other enhancements (count, Arabic support, etc.)

🎯 HOW IT WORKS (Standard Odoo Pattern):
1. ListRenderer triggers 'reload' event with new domain
2. Controller receives reload event and updates state.domain
3. Controller calls reload() which refetches data with new domain
4. View re-renders with filtered records

🚀 EXPECTED RESULT:
- Search count continues to work (RPC call)
- Records will now be properly filtered using Odoo's standard reload mechanism
- Clear function restores all records using original domain
- Perfect integration with Odoo's data loading system

This follows the exact same pattern used by Odoo's native search and filter functionality.
2025-08-30 14:06:33 +03:00
Mohamed Eltayar 4459479e4d 🔧 CRITICAL FIX: Replaced 'do_search' with correct 'search' event for proper record filtering
 IDENTIFIED ROOT CAUSE:
- The main issue was using trigger_up('do_search') instead of trigger_up('search')
- 'do_search' event doesn't exist or isn't handled properly in ListRenderer context
- This caused the count to work (RPC calls succeeded) but records weren't filtered

 APPLIED CORRECT FIX:
- Changed trigger_up('do_search') to trigger_up('search') - the standard Odoo way
- Updated both search and clear methods to use the correct event
- Maintained all other enhancements (RPC count, domain logic, Arabic support)
- Kept proper error handling and fallbacks

🎯 TECHNICAL EXPLANATION:
- In Odoo, ListRenderer should trigger 'search' events upward to the controller
- The controller then handles the domain filtering and reloads the view
- 'do_search' is used in different contexts (like SearchView), not ListRenderer
- This fix ensures records are properly filtered while maintaining accurate count

🚀 EXPECTED RESULT:
- Search count will continue to work (RPC call succeeds)  
- Records will now be properly filtered in the list view
- Clear function will restore all records
- All other features remain intact (Arabic support, field detection, etc.)

This is the standard Odoo methodology for triggering search from rendered components.
2025-08-30 13:54:16 +03:00