البرمجة

تصفية الشقق المتاحة في ActiveAdmin

بدايةً، يتطلب تحقيق هذا الهدف في ActiveAdmin استخدام مجموعة من المفاهيم والأدوات المتوفرة في الإطار. يبدو أنك تريد إضافة عملية تصفية إلى الواجهة الإدارية (ActiveAdmin) لعرض الشقق المتاحة خلال فترة زمنية معينة.

أولاً، يمكنك إنشاء نموذج لتصفية البيانات باستخدام فورم في ActiveAdmin. يمكنك فعل ذلك باستخدام خيارات مثل filter أو sidebar. هذا يسمح للمسؤولين بإدخال تواريخ البحث وإرسالها باستخدام الفورم.

لإنشاء نموذج لتصفية البيانات، يمكنك استخدام الكود التالي في ملف الـ app/admin/apartment.rb:

ruby
ActiveAdmin.register Apartment do filter :available_during, label: 'Available during', as: :date_range end

هذا الكود يخلق حقلًا في الواجهة الإدارية يتيح للمسؤولين اختيار فترة زمنية. إذا كانت تواريخ البحث متوفرة في params[:q] (وهي الطريقة التي يقوم فيها ActiveAdmin بمعالجة تصفية البيانات)، يمكن استخدامها لتصفية البيانات.

الآن، بالنسبة لتطبيق الفلترة باستخدام الدالة available_during التي أنشأتها في نموذج الـ Apartment، يمكنك استخدام مثيلات النماذج (Model Scopes). لنفترض أن لديك نموذجًا لـ Apartment وأن لديك مجموعة من الحقول مثل start_date و end_date. يمكنك إنشاء نموذج الفلترة باستخدام الكود التالي:

ruby
class Apartment < ApplicationRecord has_many :occupancies def self.available_during(start_date, end_date) where.not(id: Occupancy.where("start_date <= ? AND end_date >= ?", end_date, start_date).pluck(:apartment_id)) end end

هذا النموذج يقوم بإرجاع جميع الشقق التي لا تحتوي على حجوزات خلال الفترة الزمنية المحددة. تأكد من تعديل الشروط وفقًا لهويتك الداخلية للشقق والحجوزات.

ثم، يمكنك استخدام هذا النموذج في ActiveAdmin كما يلي:

ruby
ActiveAdmin.register Apartment do filter :available_during, label: 'Available during', as: :date_range controller do def scoped_collection super.available_during(params[:q][:available_during_start], params[:q][:available_during_end]) end end end

هذا الكود يستخدم المجال المناسب لتنفيذ نموذج الفلترة الخاص بك. يمكنك التحكم في كيفية تنفيذ الفلترة بواسطة دالة scoped_collection في ActiveAdmin.

بهذه الطريقة، يمكن للمسؤولين استخدام الفورم لتحديد فترة البحث وتصفية الشقق المتاحة وفقًا لتلك الفترة.

المزيد من المعلومات

بالطبع، لنواصل إكمال المقال:

مع وجود الكود السابق، يمكن للمسؤولين الآن استخدام واجهة ActiveAdmin بكفاءة للبحث وتصفية الشقق المتاحة خلال فترة زمنية معينة.

يمكن للمسؤولين الآن الوصول إلى واجهة إدارة الشقق في ActiveAdmin واستخدام حقل “Available during” المضاف حديثًا في نموذج الفلترة. يمكنهم تحديد تاريخ البداية وتاريخ الانتهاء للبحث عن الشقق المتاحة خلال تلك الفترة.

عند البحث، يتم استخدام الدالة available_during التي تم تعريفها في نموذج Apartment لاستعادة الشقق التي لا تحتوي على حجوزات خلال الفترة الزمنية المحددة. يتم عرض النتائج المناسبة للمسؤولين مباشرةً في واجهة ActiveAdmin.

باستخدام هذا النهج، يمكن للمسؤولين الآن إدارة وعرض الشقق المتاحة بسهولة خلال أوقات محددة، مما يتيح لهم اتخاذ القرارات الأكثر فاعلية بناءً على البيانات الفعلية والمحدثة.

إن تنفيذ هذه الميزة يسمح لفريق الإدارة بتحسين عملية اتخاذ القرارات وتحسين تجربة المستخدم النهائية. كما أنه يضيف قيمة عملية للمنصة بتوفير وسيلة سهلة وفعالة للبحث وتصفية البيانات وفقًا لمعايير مخصصة.

باستخدام ميزات ActiveAdmin مثل الفلاتر المخصصة والنماذج الخاصة، يمكن للمطورين تعزيز وتخصيص واجهة الإدارة لتناسب احتياجات التطبيقات الخاصة بهم بشكل أفضل، مما يسهل على فرق الإدارة عملياتهم ويحسن من تجربة المستخدم النهائية.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر