هذا هو البرنامج المساعد لإدارة web2py بسيط.
إنه يستخدم بشكل كبير الميزات التي يوفرها web2py SQLFORM.smartgrid الذي يتميز بالبحث الشامل والإجراءات والسجل وروابط التنقل المخصصة وترقيم الصفحات والتخصيصات المتنوعة.
إنه يأخذ الأمان على محمل الجد ويستخدم كلا من المجموعات والأذونات للتحكم الدقيق في الوصول.
هنا يمكنك العثور على تسجيل رقمي للشاشة لعملية التثبيت.
ملاحظة: أصبح التثبيت أسهل كثيرًا، بعد التثبيت، يتم تلقائيًا وضع أول مستخدم قام بتسجيل الدخول في w2a_root، لذا فقط قم بتثبيت البرنامج الإضافي والوصول إلى /yourapp/web2admin.
أو
سيحتوي الفرع الرئيسي دائمًا على أحدث إصدار ثابت (سيتم التطوير على فرع آخر).
ما عليك سوى استخدام أي من إجراءات التثبيت والكتابة فوق محتوى البرنامج المساعد في تطبيق web2py الخاص بك.
تثبيت البرنامج المساعد ;)
إذا كان المستخدم موجودًا في مجموعة w2a_root، فإنه يتمتع بالحقوق الكاملة بما في ذلك إضافة الأذونات أو تغيير مجموعات المستخدمين الآخرين.
إذا كان المستخدم موجودًا في مجموعة w2a_manager، فسيكون لديه جميع الأذونات لجميع الجداول باستثناء جداول المصادقة (لا توجد أذونات متغيرة للمستخدمين الآخرين).
سيتم تلقائيًا وضع أول مستخدم قام بتسجيل الدخول والذي ينفذ كود web2admin في مجموعة w2a_root.
منح أذونات دقيقة لمستخدمين محددين لجداول محددة:
الوصول إلى http://localhost:8000/yourapp/web2admin أو http://localhost:8000/yourapp/plugin_web2admin
الصق أسطر التكوين التالية في ملف النموذج الخاص بك (على سبيل المثال db.py) لتغيير سلوك web2admin:
تغيير الشعار (العلامة التجارية) لتطبيق المسؤول plugins.web2admin.logo = 'SuperApp'
plugins.web2admin.logo = IMG(_src=URL('static', 'images/google-buzz.png')) + 'SupperApp'
تكوين عدد العناصر لكل صفحة:
plugins.web2admin.items_per_page = 5 (default 20)
أضف روابط إضافية في الشريط الجانبي:
plugins.web2admin.custom_sidebar_title = "My Links"
plugins.web2admin.custom_sidebar_links = [
A('External link', _href='http://www.youhe.ro', _target='_blank'),
A('Back to homepage', _href=URL('default', 'index', args=0)),
]
plugins.web2admin.headers هو قاموس يقوم بتعيين 'tablename.fieldname' في تسمية الرأس المقابلة على سبيل المثال:
plugins.web2admin.headers = {'student.last_name': T('Surname')}
plugins.web2admin.orderby هو قاموس يُستخدم لتعيين الترتيب الافتراضي لصفوف الجدول:
plugins.web2admin.orderby = {'student': db.student.last_name}
plugins.web2admin.groupby هو قاموس يستخدم لتعيين تجميع صفوف الجدول. يمكنك تجميع السجلات بنفس القيمة للحقل المحدد (هذا خاص بالواجهة الخلفية، وليس موجودًا في Google NoSQL):
plugins.web2admin.groupby = {'student': db.student.last_name}
يقوم plugins.web2admin.maxtextlength بتعيين الحد الأقصى لطول النص الذي سيتم عرضه لكل قيمة حقل، في عرض الشبكة (الافتراضي 20). يمكن الكتابة فوق هذه القيمة لكل حقل باستخدام plugins.web2admin.maxtextlengths، وهو قاموس "tablename.fieldname": length. إذا كان يجب اقتطاع النص، فسيتم طرح len('...') = 3 إضافي من length.fiel المحدد
plugins.web2admin.maxtextlength ={'student': 10}
plugins.web2admin.maxtextlengths ={'test.name': 5}
plugins.web2admin.field_id عبارة عن إملاء يحدد حقل الجدول الذي سيتم استخدامه كمعرف، على سبيل المثال:
plugins.web2admin.field_id = {'student', db.stuident.id}
plugins.web2admin.showbuttontext التبديل المنطقي لإظهار/إخفاء نص الزر:
plugins.web2admin.showbuttontext = False
إذا كان هناك العديد من كائنات قاعدة البيانات المحددة، فكل ما عليك فعله هو إضافة معلمة plugins.web2admin.dbs التي تمثل مجموعة من كائنات قواعد البيانات. بشكل افتراضي، تحتوي القائمة على عنصر واحد فقط يسمى db، لذلك إذا تم تسمية الكائن الوحيد بشكل مختلف لأي سبب من الأسباب، فيرجى إضافته وتحديده على النحو التالي: plugins.web2admin.dbs = (my_special_db,) <-- ضع في اعتبارك الفاصلة.
plugins.web2admin.dbs = (db, other_db, session_db)
يجب أن تظهر قائمة قواعد البيانات في شريط التنقل العلوي لتمكين اختيار قاعدة البيانات.
يمكنك تقييد الحقول التي سيتم عرضها لجداول معينة عن طريق تعيين plugins.web2admin.fields إلى قاموس أسماء الجداول وقائمة الحقول من تلك الجداول:
plugins.web2admin.fields={
'test': [db.test.id, db.test.name],
'student':[db.student.id, db.student.first_name]
}
يمكن تنفيذ الإجراءات على عناصر متعددة عن طريق التحقق منها واختيار إجراء من الرأس.
افتراضيًا، هناك إجراءان محددان: الحذف والاستنساخ.
لتحديد إجراء جديد، يجب عليك إنشاء دالة تأخذ اسم جدول وقائمة من المعرفات كوسائط، وتعيين معلمة plugins.web2admin.actions plugin إلى قاموس يحتوي على أسماء الإجراءات كمفاتيح وقيم وظائف الإجراء:
def hello_action(table, ids):
if table != 'student':
session.flash = 'Not available'
else:
session.flash = '%s, %s' %(table, ids)
plugins.web2admin.actions = {'hello': hello_action}
إذا كنت تريد تعطيل الإجراءات الافتراضية أو كنت لا تريد أي إجراءات على الإطلاق (إذا لم تقم بإنشاء أي منها)، فيمكنك تعيين المعلمة plugins.web2admin.default_actions إلى قاموس فارغ.
plugins.web2admin.default_actions={}
يتم استخدام plugins.web2admin.links لعرض الأعمدة الجديدة التي يمكن أن تكون روابط لصفحات أخرى. يجب أن تكون وسيطة الروابط عبارة عن قاموس يربط اسم الجدول بقائمة dict(header='name',body=lambda Row: A(...)) حيث الرأس هو رأس العمود الجديد والنص هو دالة تأخذ صف وإرجاع قيمة. في المثال، القيمة هي مساعد A(...).
plugins.web2admin.links = {'student':[
dict(header=T('hello'), body=lambda row: A('click me', _href=URL('default', 'hello', args=row.id))),
dict(header=T('foo'), body=lambda row: A('bar', _href=URL('default', 'foo', args=row.id))),
]}
plugins.web2admin.left عبارة عن تعبيرات ربط يسرى اختيارية تُستخدم لإنشاء ...select(left=...). وله قيمة قاموس يربط بين اسم الجدول وتعبير الانضمام، على سبيل المثال:
plugins.web2admin.left = {'student': db.student.on(db.test.id)}
plugins.web2admin.filters هي قائمة الحقول التي سيتم من خلالها إنشاء مرشح سريع في شريط القائمة الأيمن، على سبيل المثال:
plugins.web2admin.filters = (db.test.date, db.test.passed, db.test.mark, db.test.name, db.student.last_name)
بالنسبة للحقول الرقمية، يتم الحصول على القيم الدنيا والقصوى ويتم تقسيم الفاصل الزمني إلى أربع فترات فرعية. أنواع الحقول المدعومة: التاريخ، التاريخ، السلسلة، النص، عدد صحيح، مزدوج، منطقي.