| 
        
  
  
    
       
        Mar 10, 2014
       
    
    
      
    
       | 
    
В этой версии делался упор на кастомизацию интерфейса.
Что нового?
sacrud_detail_col где можно задать отображаемые поля в форме редактированияsacrud_list_col где можно задать отображаемые поля в списке записейverbose_name для полей и таблицsacrud_css_class, назначает CSS стили полямsacrud_position: “inline” (см. реализацию horizontal_fields)horizontal_fieldsexttype.GUIDbase.html создан шаблон redefineme.htmlsesion_factoryForeignKey.jinja2sa_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 %}
Результат:
Пример кастомного CRUD интерфейса для SQLAlchemy
Демо приложение: https://github.com/uralbash/pyramid_sacrud_example