예제 #1
0
 def object_fields(self, request):
     object_display = self.object_display
     headers, ld = self.pagination.header_info(request)
     if not object_display:
         return ld
     else:
         d = []
         for head in object_display or ():
             head = table_header(head)
             d.append(headers.get(head.code, head))
         return tuple(d)
예제 #2
0
파일: table.py 프로젝트: pombredanne/djpcms
 def get_heads(self, fields):
     headers = list(fields or ())
     dfields = self.form_class.base_fields
     self.hidden_fields = []
     for field in dfields:
         if field not in headers:
             headers.append(field)
     for name in headers:
         field = dfields.get(name)
         if field:
             label = field.label or nicename(name)
             cn = ('required' if field.required else None,
                   field.widget.attr('type'))
             help_text = field.help_text
         else:
             label = nicename(name)
             help_text = None
             cn = None
         yield table_header(name, label, help_text, extraclass=cn)
     if self.delete_head is not None:
         yield table_header(classes.delete_row, self.delete_head)
예제 #3
0
class SiteMapApplication(views.Application):
    '''Application to use for admin sitemaps'''
    has_plugins = False
    form = HtmlPageForm
    description = 'Site-map'
    pagination = Pagination(
        ('url', 'view', 'layout', 'inner_template', 'in_navigation',
         table_header('doc_type', attrname='doctype'), 'soft_root'),
        bulk_actions=[views.bulk_delete])
    list_display_links = ('id', 'url', 'page')

    home = SiteMapView()
    pages = views.SearchView('pages/',
                             icon='th-list',
                             title=lambda r: 'Pages',
                             linkname=lambda r: 'pages')
    add = views.AddView(force_redirect=True, linkname=lambda r: 'add page')
    view = views.ViewView()
    change = PageChangeView(force_redirect=True,
                            title=lambda djp: 'editing',
                            linkname=lambda djp: 'edit page',
                            body_class='editable')
    delete = views.DeleteView()

    def on_bound(self):
        self.root.internals['Page'] = self.mapper

    def view_for_instance(self, request, instance):
        return self.views['change']

    def instance_field_value(self, request, page, field_name, val=''):
        if field_name == 'view':
            node = request.tree.get(page.url)
            view = node.view
            if not isinstance(view, pageview):
                return view.code
            else:
                return ''
        else:
            return escape(val)
예제 #4
0
파일: table.py 프로젝트: pombredanne/djpcms
 def __init__(self, headers, *children, **kwargs):
     # each row must have the same number of columns as the number of headers
     self.headers = [table_header(name) for name in headers]
     self.fields = tuple(h.code for h in self.headers)
     super(BaseTableElement, self).__init__(*children, **kwargs)
예제 #5
0
def data_table_header(splitter, base, *names, **params):
    '''Just a shortcut for adding live_data to the code'''
    code = splitter.join((n for n in names if n is not None)).lower()
    fullcode = splitter.join((base, code)).lower() if base else code
    name = params.pop('name', None) or nicename(code)
    return table_header(code, name, attrname=fullcode, **params)