README.rst 1.78 KB

Yaform

Ini untuk menata form HTML yang lebih ringkas dengan berbekal file YAML. Pola yang sudah ditetapkan adalah:

+-------------------------------------+
|             Judul Panel 1           |
+-------------------------------------+
| Label-1 Widget-1   Label-2 Widget-2 |
| Label-3 Widget-3   Label-4 Widget-4 |
+-------------------------------------+

+--------------------------------------------------------+
|                      Judul Panel 2                     |
+--------------------------------------------------------+
| Label-1 Widget-1   Label-2 Widget-2   Label-3 Widget-3 |
| Label-4 Widget-4   Label-5 Widget-5                    |
+--------------------------------------------------------+

Buatlah file views/templates/user/edit.yml yang berisi:

%YAML 1.2
---
No Title:
- user_name
- email
- groups

Bio Data:
- tempat_lahir
- tgl_lahir

Alamat:
- alamat
- rt col-md-2
- rw col-md-2
- kelurahan
- kecamatan
- kabupaten
- provinsi

col-md-2 adalah contoh class. Bila tidak disebutkan maka digunakan col-md-6. Lalu beritahu lokasinya, misalnya di views/user.py:

import os
from yaform import Form

here = os.path.abspath(os.path.dirname(__file__))
my_templates = os.path.join(here, 'templates', 'user')
Form.default_renderer.loader.search_path.insert(0, my_templates)

@view_config(route_name='user-add', template='templates/user/add.pt')
def my_view(request):
    ...
    form = Form(schema, buttons=buttons)
    html = form.render(yml_template='edit')
    return dict(form=html)

Kata edit berarti akan dicari file bernama edit.yml di direktori yang disebutkan oleh my_templates. Contoh lengkapnya bisa lihat di Web Starter