Django: Mezzanine + Grappelli

Foto os

Django adalah web framework yang ditulis dengan Python. Sedangkan Mezzanine merupakan CMS yang menggunakan Djanggo. Grappelli melengkapi Django khususnya pada menu admin. Kelengkapan yang dimaksud seperti text editor WYSIWYG, pengaturan menggunakan AJAX, dsb.

Contoh pada tulisan ini merupakan kelanjutan dari Pemasangan Mezzanine. Sesuaikanlah dengan lingkungan Django Anda.

Unduh Grappelli:

$ cd
$ git clone https://github.com/stephenmcd/grappelli-safe.git
$ cp -r grappelli-safe/grappelli_safe wsgi/

Ubah settings.py, sisipkan STATIC_URL (kalau belum ada) sebelum ADMIN_MEDIA_PREFIX:

STATIC_URL = "/static/"
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"

Kemudian buat symlink:

$ cd
$ cd wsgi/static
$ ln -s ../grappelli_safe/media grappelli
$ cd
$ cd wsgi/grappelli_safe/media/js
$ ln -s ../../../django/contrib/admin/media/js/jquery.min.js 
$ ln -s ../../../django/contrib/admin/media/js/jquery.init.js 
$ ln -s ../../../django/contrib/admin/media/js/actions.min.js
$ ln -s ../../../django/contrib/admin/media/js/collapse.min.js

Sebelum ke browser, pantau log-nya untuk memastikan tidak ada "File does not exist":

$ cd
$ tail -f logs/error_log

Selanjutnya ujilah di browser ke path /admin. Seharusnya tampil seperti gambar berikut ini:

Jelajahi menu lainnya, sambil memperhatikan log. Jika ada file yang tidak ditemukan seperti berikut ini:

File does not exist: /home/reymanx/wsgi/static/grappelli/js/jquery.min.js,

carilah file yang dimaksud dengan perintah find:
$ cd
$ find wsgi/ | grep jquery.min.js

Hasil temuannya:

wsgi/django/contrib/admin/media/js/jquery.min.js

Lalu buatlah symlink seperti langkah sebelumnya. Atau bisa juga dengan penyalinan:

$ cp wsgi/django/contrib/admin/media/js/jquery.min.js wsgi/static/grappelli/js/jquery.min.js

Filebrowser
Mezzanine + Grappelli tidak lengkap tanpa Filebrowser. Aplikasi ini memudahkan unggah file. Lakukanlah langkah berikut ini:

$ cd
$ git clone https://github.com/stephenmcd/filebrowser-safe.git
$ cp -r filebrowser-safe/filebrowser_safe wsgi/

Edit urls.py dan tambah baris berikut ini sebelum ^admin:
("^admin/filebrowser/", include("filebrowser_safe.urls")),

Sehingga menjadi seperti ini:
urlpatterns = patterns("",
    ("^admin/filebrowser/", include("filebrowser_safe.urls")),
    ("^admin/", include(admin.site.urls)),
    url("^$", direct_to_template, {"template": "index.html"}, name="home"),
    ("^", include("mezzanine.urls")),
)

Lalu cobalah membuat sebuah blog melalui path /admin/blog/blogpost/add/. Pada bagian Content klik gambar pohon untuk menambahkan gambar (Insert / edit image).

Selamat mencoba. Semoga berhasil.