[ English | 中文 (简体, 中国) | русский | português (Brasil) | नेपाली | 한국어 (대한민국) | Indonesia | français | español | esperanto | English (United Kingdom) | Deutsch ]

Horizon Tabs dan TabGroups

Horizon mencakup satu set komponen yang dapat digunakan kembali untuk membangun antarmuka tab yang diprogram dengan fitur-fitur mewah seperti pemuatan AJAX yang dinamis dan templating dan styling yang hampir tanpa usaha.

Tab Groups

Untuk antarmuka tab mana pun, elemen mendasar Anda adalah grup tab yang berisi semua tab Anda. Kelas ini menyediakan API sederhana untuk membangun grup tab dan merangkum semua logika yang diperlukan di belakang layar.

class horizon.tabs.TabGroup(request, **kwargs)[sumber]

Kelas kontainer yang tahu cara mengelola dan merender objek Tab.

slug

URL slug dan pseudo-unique identifier untuk grup tab ini.

tabs

Daftar kelas Tab. Tab yang ditentukan di sini ditampilkan dalam urutan daftar.

template_name

Nama template yang akan digunakan untuk merender grup tab ini. Default: "horizon/common/_tab_group.html"

sticky

Boolean untuk mengontrol apakah keadaan tab aktif harus disimpan di seluruh permintaan untuk pengguna tertentu. (Penyimpanan status semua dilakukan sisi klien.)

show_single_tab

Boolean untuk mengontrol apakah bilah tab ditampilkan ketika grup tab hanya memiliki satu tab. Default: False

param_name

Nama parameter permintaan GET yang akan digunakan saat meminta data tab tertentu. Default: tab.

classes

Daftar kelas CSS yang harus ditampilkan pada grup tab ini.

attrs

Kamus atribut HTML yang harus dirender ke dalam markup untuk grup tab ini.

selected

Properti hanya baca yang disetel ke instance tab yang saat ini dipilih jika ada, jika tidak None.

active

Properti hanya baca yang disetel ke nilai tab aktif saat ini. Ini mungkin tidak sama dengan nilai selected jika tidak ada tab tertentu yang diminta melalui parameter GET.

get_default_classes()[sumber]

Mengembalikan daftar kelas default untuk grup tab.

Defaults ke ["nav", "nav-tabs", "ajax-tabs"].

get_id()[sumber]

Mengembalikan id untuk grup tab ini.

Nilai default untuk nilai grup tab horizon.tabs.Tab.slug.

get_selected_tab()[sumber]

Mengembalikan tab yang spesifik dengan parameter permintaan GET.

Jika tidak ada parameter permintaan GET, nilai parameter kueri tidak valid, atau tab tidak allowed/enabled, nilai balik fungsi ini adalah None.

get_tab(tab_name, allow_disabled=False)[sumber]

Mengembalikan tab tertentu dari grup tab ini.

Jika tab tidak diizinkan atau tidak diaktifkan, metode ini kembali None.

Jika tab dinonaktifkan tetapi Anda tetap ingin mengembalikannya, Anda dapat meneruskan True ke argumen allow_disabled.

get_tabs()[sumber]

Mengembalikan daftar tab yang diizinkan untuk grup tab ini.

load_tab_data()[sumber]

Preload semua data untuk tab yang akan ditampilkan.

render()[sumber]

Merender output HTML untuk grup tab ini.

tabs_not_available()[sumber]

Penangan fallback jika tidak ada tab yang diizinkan atau diaktifkan.

Jika tidak ada tab yang diizinkan atau diaktifkan, metode ini adalah penangan mundur (fallback handler). Secara default itu adalah no-op, tetapi itu ada untuk membuat pengalihan atau meningkatkan pengecualian mungkin untuk subclass.

Tabs

Tab itu sendiri adalah unit diskrit untuk grup tab, mewakili satu tampilan data.

class horizon.tabs.Tab(tab_group, request=None, policy_rules=None)[sumber]

Antarmuka yang dapat digunakan kembali untuk membuat tab di dalam TabGroup.

name

Nama tampilan untuk tab yang akan dirender sebagai teks untuk elemen tab dalam HTML. Wajib.

slug

URL slug dan id attribute untuk tab. Ini harus unik untuk grup tab tertentu. Wajib.

preload

Menentukan apakah konten tab harus dirender ke dalam HTML halaman saat grup tab diberikan, atau apakah konten harus dimuat secara dinamis saat tab dipilih. Default: True.

classes

Daftar kelas CSS yang harus ditampilkan pada tab ini.

attrs

Kamus atribut HTML yang harus dirender ke dalam markup untuk tab ini.

load

Akses read-only untuk menentukan apakah data tab ini harus segera dimuat.

permissions

Daftar nama izin yang diperlukan tab ini untuk ditampilkan. Default ke daftar kosong ([]).

allowed(request)[sumber]

Menentukan apakah tab ditampilkan atau tidak.

Tab instance dapat menimpa metode ini untuk menentukan kondisi di mana tab ini tidak boleh ditampilkan sama sekali dengan mengembalikan False.

enabled(request)[sumber]

Menentukan apakah tab harus dapat diakses atau tidak.

Misalnya, tab harus dirender ke dalam HTML saat memuat dan merespons acara klik.

Jika sebuah tab mengembalikan False dari enabled maka akan mengabaikan nilai preload dan hanya merender HTML dari tab setelah diklik.

Perilaku default adalah mengembalikan True untuk semua kasus.

get_context_data(request, **kwargs)[sumber]

Kembalikan kamus data konteks yang digunakan untuk merender tab.

Wajib.

get_default_classes()[sumber]

Mengembalikan daftar kelas default untuk tab.

Default ke dan kosongkan daftar ([]), however namun kelas tambahan dapat ditambahkan tergantung pada kondisi tab sebagai berikut:

Jika tab adalah tab aktif untuk grup tab, di mana kelas "active" akan ditambahkan.

Jika tab tidak diaktifkan, kelas yang kelasnya akan "disabled" akan ditambahkan.

get_id()[sumber]

Mengembalikan id untuk tab ini.

Defaults ke "{{ tab_group.slug }}__{{ tab.slug }}".

get_template_name(request)[sumber]

Mengembalikan nama template yang akan digunakan untuk merender tab ini.

Secara default ia mengembalikan nilai atribut template_name pada kelas Tab.

is_active()[sumber]

Metode untuk mengakses apakah tab ini adalah tab aktif atau tidak.

post(request, *args, **kwargs)[sumber]

Menangani data POST yang dikirim ke sebuah tab.

Tab instance dapat menimpa metode ini untuk memiliki logika POST tab-specific tanpa mencemari kode TabView.

Perilaku default adalah mengabaikan data POST.

render()[sumber]

Merender tab ke HTML.

Metodee get_context_data() dan metode get_template_name() dipanggil.

Jika preload adalah False dan force_load bukan True, atau :met:`~horizon.tabs.Tab.allowed` atau enabled() mengembalikan False metode ini akan mengembalikan string kosong.

class horizon.tabs.TableTab(tab_group, request)[sumber]

Kelas Tab yang tahu bagaimana menangani kelas DataTable di dalamnya.

Kelas yang berbeda ini diperlukan karena kompleksitas yang terlibat dalam penanganan pemuatan tab dinamis, pemutakhiran tabel dinamis, dan tindakan tabel semua dalam satu tampilan.

table_classes

Iterable berisi kelas :class: ~ horizon.tables.DataTable yang akan berisi tab ini. Setara dengan atribut :attr: ~ horizon.tables.MultiTableView.table_classes pada MultiTableView. Untuk setiap kelas tabel, Anda perlu mendefinisikan metode ``get _ {{table_name}} yang sesuai seperti MultiTableView.

get_context_data(request, **kwargs)[sumber]

Menambahkan item {{ table_name }}_table ke konteks untuk setiap tabel.

Tabel target ditentukan oleh attribute table_classes attribute.

Jika hanya satu kelas tabel disediakan, variabel konteks table shortcut juga ditambahkan yang berisi tabel tunggal.

load_table_data()[sumber]

Memanggil metode get {{name table}} data untuk setiap kelas tabel.

Saat kembali, data yang dimuat diatur pada tabel.

TabView

Ada juga tampilan berbasis kelas generik yang berguna dan sederhana untuk menangani tampilan dari kelas TabGroup .

class horizon.tabs.TabView[sumber]

Tampilan umum untuk menampilkan horizon.tabs.TabGroup.

Tampilan ini menangani memilih tab tertentu dan menangani permintaan AJAX dengan anggun.

tab_group_class

Satu-satunya atribut yang diperlukan untuk TabView. Itu harus kelas yang mewarisi dari horizon.tabs.TabGroup.

get_context_data(**kwargs)[sumber]

Menambahkan variabel tab_group ke data konteks.

get_tabs(request, **kwargs)[sumber]

Mengembalikan grup tab yang diinisialisasi untuk tampilan ini.

handle_tabbed_response(tab_group, context)[sumber]

Mengirim kembali respons yang sesuai AJAX untuk grup tab jika diperlukan.

Kalau tidak, responsnya seperti biasa.

class horizon.tabs.TabbedTableView(*args, **kwargs)[sumber]
get_tables()[sumber]

No-op di kelas ini. Tabel ditangani di tingkat tab.

handle_table(table_dict)[sumber]

Memuat data tabel berdasarkan table_dict yang diberikan dan menanganinya.

Untuk dict (pustaka) yang diberikan yang berisi DataTable dan instance TableTab, ia memuat data tabel untuk tab itu dan memanggil metode tabel ini maybe_handle(). Nilai pengembalian akan menjadi hasil dari maybe_handle.

load_tabs()[sumber]

Memuat grup tab.

Ini mengkompilasi instance tabel untuk setiap tabel yang dilampirkan ke instance :class: horizon.tabs.TableTab pada grup tab. Langkah ini diperlukan sebelum memproses tindakan tab atau tabel apa pun.