أيوب قربان نشر 3 يوليو 2023 أرسل تقرير نشر 3 يوليو 2023 لدي مودل خاص حسب الموضح في الأسفل اريد عمل نموذج في portal في الواجهة الأمامية website بحيث عند تعبئة النموذج يتم التسجيل على maintenance.receipt لأن النموذج الحالي لا يقوم بالتسجيل إلا على module CRM للعملاء المحتملين class maintenance_receipt(models.Model): _name = 'maintenance.receipt' name = fields.Char(string='عنوان الطلب',required=True) partner_id = fields.Many2one('res.partner','اسم العميل',required=True) partner_mobile = fields.Char(string='رقم الجوال') partner_main = fields.Char(string='البريد الالكتروني') building_name = fields.Char(string='اسم المشروع',required=True) unit_name = fields.Char(string='رقم الوحدة',required=True) 1 اقتباس
0 Mustafa Suleiman نشر 3 يوليو 2023 أرسل تقرير نشر 3 يوليو 2023 أولاً عليك إنشاء قالب HTML لعرض النموذج على الواجهة الأمامية للموقع (website باستخدام قالب النموذج المدمج في Odoo أو تخصيص قالب خاص بك، وتصميم النموذج وتضمين الحقول اللازمة مثل name و partner_id و partner_mobile وما إلى ذلك، وتأكد من تعيين الأسماء الصحيحة للحقول وإضافة البيانات اللازمة للتحقق من صحة المدخلات. ثم بناء وحدة (module) مخصصة لإدارة عملية التسجيل على النموذج في الواجهة الأمامية، عن طريق إنشاء ملف Python جديد بالاسم الذي ترغب فيه، مثلاً controllers.py. وفي الملف controllers.py، قم بتعريف وحدة التحكم الخاصة بك واستيراد الوحدات اللازمة كالتالي: from odoo import http from odoo.http import request ولا تنسى تعريف المسار (route) الذي سيتم استخدامه لعرض النموذج ومعالجة بياناته، بواسطة الديكوريتور http.route لتحديد المسار وطريقة الوصول (GET أو POST) والوظائف المرتبطة به كالتالي: class MaintenanceReceiptController(http.Controller): @http.route('/maintenance/receipt', type='http', auth='public', website=True, methods=['GET', 'POST']) def maintenance_receipt_form(self, **kw): # عرض النموذج ومعالجة بياناته return http.request.render('your_module.template_name', {}) والآن تعريف دالة لمعالجة بيانات النموذج عند الإرسال واستخدامها لاستلام البيانات المرسلة من النموذج وإنشاء سجل جديد في نموذج maintenance.receipt: class MaintenanceReceiptController(http.Controller): @http.route('/maintenance/receipt', type='http', auth='public', website=True, methods=['GET', 'POST']) def maintenance_receipt_form(self, **kw): if request.httprequest.method == 'POST': # استلام البيانات من النموذج name = kw.get('name') partner_id = kw.get('partner_id') partner_mobile = kw.get('partner_mobile') partner_main = kw.get('partner_main') building_name = kw.get('building_name') unit_name = kw.get('unit_name') # إنشاء سجل جديد في maintenance.receipt receipt = request.env['maintenance.receipt'].sudo().create({ 'name': name, 'partner_id': partner_id, 'partner_mobile': partner_mobile, 'partner_main': partner_main, 'building_name': building_name, 'unit_name': unit_name, }) # يمكنك تنفيذ أي إجراءات إضافية هنا return http.request.render('your_module.template_name', {}) والآن نأتي لخطوة تعريف قالب (template) لعرض النموذج ورسالة تأكيد بعد تسجيل البيانات بنجاح، بالإعتماد على قالب HTML لإظهار رسالة تأكيد أو إعادة توجيه المستخدم إلى صفحة أخرى، وتستطيع استخدام الديكوريتور http.route لتحديد القالب المستخدم كما يلي: class MaintenanceReceiptController(http.Controller): @http.route('/maintenance/receipt', type='http', auth='public', website=True, methods=['GET', 'POST']) def maintenance_receipt_form(self, **kw): if request.httprequest.method == 'POST': # استلام البيانات من النموذج name = kw.get('name') partner_id = kw.get('partner_id') partner_mobile = kw.get('partner_mobile') partner_main = kw.get('partner_main') building_name = kw.get('building_name') unit_name = kw.get('unit_name') # إنشاء سجل جديد في maintenance.receipt receipt = request.env['maintenance.receipt'].sudo().create({ 'name': name, 'partner_id': partner_id, 'partner_mobile': partner_mobile, 'partner_main': partner_main, 'building_name': building_name, 'unit_name': unit_name, }) # رسالة تأكيد أو إعادة توجيه المستخدم إلى صفحة أخرى return http.request.render('your_module.template_success', {}) return http.request.render('your_module.template_name', {}) واستبدل 'your_module.template_name' باسم قالب النموذج لديك و'your_module.template_success' باسم قالب الرسالة التأكيدية. وأخيرًا تسجيل وحدة التحكم الخاصة في ملف __manifest__.py لتمكينها في Odoo بإضافة اسم الملف واسم الوحدة ومسار الملفات وأي تبعيات أخرى. 1 اقتباس
0 أيوب قربان نشر 4 يوليو 2023 الكاتب أرسل تقرير نشر 4 يوليو 2023 شكرا لك مهندس مصطفى على الشرح الكافي والوافي هل توجد دورات اوشروحات لنظام تطوير الويب في اودو ياليت بعض المصادر المفيدة تكرما،،، تحياتي اقتباس
0 Mustafa Suleiman نشر 5 يوليو 2023 أرسل تقرير نشر 5 يوليو 2023 بخصوص odoo ستجد ما تريده في المحتوى الأجنبي أرشح لك قناتي odoo mates و Odoo Discussions وأيضًا يوجد قائمة مفيدة باسم Odoo Website & E-Commerce في قناة Concept Solutions. أيضًا قناة odoo الرسمية بها شروحات مفيدة، ابحث مثلاً عن Build an ecommerce website with Odoo. أيضًا يوجد المستند الرسمي: https://www.odoo.com/documentation/16.0/developer/tutorials.html وتستطيع البحث في جوجل عن المزيد. 1 اقتباس
السؤال
أيوب قربان
لدي مودل خاص حسب الموضح في الأسفل
اريد عمل نموذج في portal في الواجهة الأمامية website
بحيث عند تعبئة النموذج يتم التسجيل على maintenance.receipt
لأن النموذج الحالي لا يقوم بالتسجيل إلا على module CRM للعملاء المحتملين
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.