Mar 10, 2014
|
В этой версии делался упор на кастомизацию интерфейса.
Что нового?
sacrud_detail_col
где можно задать отображаемые поля в форме редактированияsacrud_list_col
где можно задать отображаемые поля в списке записейverbose_name
для полей и таблицsacrud_css_class
, назначает CSS
стили полямsacrud_position
: “inline” (см. реализацию horizontal_fields
)horizontal_fields
exttype.GUID
base.html
создан шаблон redefineme.html
sesion_factory
ForeignKey.jinja2
sa_create
, sa_read
, sa_update
, sa_delete
view вынесены в общий класс CRUD
Пример кастомизации:
class TestCustomizing(Base):
__tablename__ = "test_customizing"
id = Column(Integer, primary_key=True)
name = Column(String)
date = Column(Date, info={"verbose_name": 'date JQuery-ui'})
name_ru = Column(String, info={"verbose_name": u'Название', })
name_fr = Column(String, info={"verbose_name": u'nom', })
name_bg = Column(String, info={"verbose_name": u'Име', })
name_cze = Column(String, info={"verbose_name": u'název', })
description = Column(Text)
description2 = Column(Text)
visible = Column(Boolean)
in_menu = Column(Boolean, info={"verbose_name": u'menu?', })
in_banner = Column(Boolean, info={"verbose_name": u'on banner?', })
# SACRUD
verbose_name = u'Customizing table'
sacrud_css_class = {'tinymce': [description, description2],
'content': [description],
'name': [name], 'Date': [date]}
sacrud_list_col = [name, name_ru, name_cze]
sacrud_detail_col = [name,
hosrizontal_field(name_ru, name_bg, name_fr, name_cze,
sacrud_name=u"i18n names"),
description, date,
hosrizontal_field(in_menu, visible, in_banner,
sacrud_name=u"Расположение"),
description2]
{% extends "sacrud/base.jinja2" %}
{% block userspace %}
{{ super() }}
<!-- Date field -->
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css" rel="stylesheet"></link>
<style>
.content {
height: 550px;
}
.name {
width: 400px;
}
</style>
<script>
$(function() {
$(".Date").datepicker({ dateFormat: 'yy-mm-dd' });
});
</script>
<script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
<script>
tinymce.init({
selector:'textarea.tinymce',
plugins: "image link",
file_browser_callback: function(field_name, url, type, win) {
tinymce.activeEditor.windowManager.open({
title: "SACRUD file browser",
url: "/image/filebrowser",
width: 600,
height: 400,
}, {
oninsert: function(url) {
win.document.getElementById(field_name).value = url;
}
});
},
});
</script>
{% endblock %}
{% block sa_body %}
{{ super() }}
{% endblock %}
Результат:
Демо приложение: https://github.com/uralbash/pyramid_sacrud_example