Beispiel #1
0
def table_header(code,
                 name=None,
                 description=None,
                 fields=None,
                 attrname=None,
                 sortable=True,
                 width=None,
                 extraclass=None,
                 hidden=False,
                 filter=None):
    '''Utility for creating an instance of a :class:`table_header_` namedtuple.

:param code: unique code for the header
:param attrname: optional attribute name, if not supplied the *code* will be
    used. The attrname is the actual attribute name in the object, and
    therefore the actual field in the database.
:param extraclass: additional classes for HTML rendering.
:param filter: to specify a filter type. This will render into a input
    element in the header or footer of the table.
'''
    if isinstance(code, table_header_):
        return code
    if name is None:
        name = nicename(code)
    attrname = attrname or slugify(code)
    fields = fields or attrname
    if not isinstance(fields, (list, tuple)):
        fields = (fields, )
    else:
        fields = tuple(fields)
    return table_header_(code, name, description, fields, attrname, sortable,
                         width, extraclass, hidden, filter)
Beispiel #2
0
def table_header(code, name=None, description=None, fields=None,
                 attrname=None, sortable=True, width=None,
                 extraclass=None, hidden=False, filter=None):
    '''Utility for creating an instance of a :class:`table_header_` namedtuple.

:param code: unique code for the header
:param attrname: optional attribute name, if not supplied the *code* will be
    used. The attrname is the actual attribute name in the object, and
    therefore the actual field in the database.
:param extraclass: additional classes for HTML rendering.
:param filter: to specify a filter type. This will render into a input
    element in the header or footer of the table.
'''
    if isinstance(code, table_header_):
        return code
    if name is None:
        name = nicename(code)
    attrname = attrname or slugify(code)
    fields = fields or attrname
    if not isinstance(fields, (list, tuple)):
        fields = (fields,)
    else:
        fields = tuple(fields)
    return table_header_(code, name, description, fields, attrname, sortable,
                         width, extraclass, hidden, filter)
Beispiel #3
0
 def __init__(self, view, name=None, description=None):
     global _plugin_dictionary
     self.view = view
     self.form = view.plugin_form
     name = name or view.code
     description = description or view.description or name
     self.name = name
     self.description = nicename(description)
     _plugin_dictionary[self.name] = self
Beispiel #4
0
 def __init__(self, app, name = None, description = None):
     global _plugin_dictionary
     self.app  = app
     self.form = app.plugin_form
     if not name:
         name = '%s-%s' % (app.appmodel.name,app.name)
     if not description:
         description = app.description or name
     self.name = name
     self.description = nicename(description)
     _plugin_dictionary[self.name] = self
Beispiel #5
0
 def __init__(self, data=None, proxy=None, **kwargs):
     if not self.id:
         raise ValueError('No id for Job Model')
     self.proxy = proxy
     if data:
         for head in data:
             val = data[head]
             if head == 'run_every' or head == 'next_run':
                 val = nicetimedelta(val)
             setattr(self, head, val)
     self.name = nicename(self.id)
Beispiel #6
0
 def __init__(self, data=None, proxy=None, **kwargs):
     if not self.id:
         raise ValueError('No id for Job Model')
     self.proxy = proxy
     if data:
         for head in data:
             val = data[head]
             if head == 'run_every' or head == 'next_run':
                 val = nicetimedelta(val)
             setattr(self, head, val)
     self.name = nicename(self.id)
Beispiel #7
0
 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)
Beispiel #8
0
 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)
Beispiel #9
0
def makename(self, name, description):
    name = name or self.name
    if not name:
        path = self.path
        if "<" not in path:
            name = path.replace("/", " ")
        else:
            name = self.__class__.__name__.lower()
            if len(name) > 4 and name.endswith("view"):
                name = name[:-4]
    name = name.replace(SPLITTER, "_").lower()
    self.description = description or self.description or nicename(name)
    self.name = str(slugify(name, rtx="_"))
Beispiel #10
0
def makename(self, name, description):
    name = name or self.name
    if not name:
        path = self.path
        if '<' not in path:
            name = path.replace('/', ' ')
        else:
            name = self.__class__.__name__.lower()
            if len(name) > 4 and name.endswith('view'):
                name = name[:-4]
    name = name.replace(SPLITTER, '_').lower()
    self.description = description or self.description or nicename(name)
    self.name = str(slugify(name, rtx='_'))
Beispiel #11
0
 def __init__(self, form, field, name, prefix):
     self.form = form
     self.field = field
     self.name = name
     self.for_name = '%s%s' % (prefix, name)
     self.html_name = field.html_name(self.for_name)
     self.value = None
     if field.label is None:
         self.label = nicename(name)
     else:
         self.label = field.label
     self.required = field.required
     self.help_text = field.help_text
     self.id = self.auto_id.format(self.__dict__)
     self.errors_id = self.id + '-errors'
Beispiel #12
0
 def __init__(self, form, field, name, prefix):
     self.form = form
     self.field = field
     self.name = name
     self.for_name = '%s%s' % (prefix, name)
     self.html_name = field.html_name(self.for_name)
     self.value = None
     if field.label is None:
         self.label = nicename(name)
     else:
         self.label = field.label
     self.required = field.required
     self.help_text = field.help_text
     self.id = self.auto_id.format(self.__dict__)
     self.errors_id = self.id + '-errors'
Beispiel #13
0
 def __new__(cls, name, bases, attrs):
     new_class = super(DJPpluginMetaBase, cls).__new__
     if 'form' in attrs:
         attrs['form'] = html_plugin_form(attrs['form'])
     if attrs.pop('virtual',None) or not attrs.pop('auto_register',True):
         return new_class(cls, name, bases, attrs)
     pname = attrs.get('name',None)
     if pname is None:
         pname = name
     pname = pname.lower()
     descr = attrs.get('description')
     if not descr:
         descr = nicename(pname)
     attrs['name'] = pname
     attrs['description'] = descr
     pcls = new_class(cls, name, bases, attrs)
     pcls()._register()
     return pcls
Beispiel #14
0
 def __new__(cls, name, bases, attrs):
     new_class = super(DJPpluginMetaBase, cls).__new__
     if attrs.pop('virtual',None) or not attrs.pop('auto_register',True):
         return new_class(cls, name, bases, attrs)
     pname = attrs.get('name',None)
     if pname is None:
         pname = name
     pname = pname.lower()
     descr = attrs.get('description',None)
     if not descr:
         descr = pname
     if pname != '':
         descr = nicename(descr) 
     attrs['name'] = pname
     attrs['description'] = descr
     pcls = new_class(cls, name, bases, attrs)
     pcls()._register()
     return pcls
Beispiel #15
0
 def testNiceName(self):
     self.assertEqual(nicename('ciao_bla'), 'Ciao bla')
     self.assertEqual(nicename('ciao-bla_foo'), 'Ciao bla foo')
     self.assertEqual(nicename('ciao bla-foo'), 'Ciao bla foo')
Beispiel #16
0
def get_layout_templates(bfield):
    if bfield.request:
        root = bfield.request.view.root
        for name in root._page_layout_registry:
            yield name, nicename(name)
Beispiel #17
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)
Beispiel #18
0
 def testNiceName(self):
     self.assertEqual(nicename('ciao_bla'),'Ciao bla')
     self.assertEqual(nicename('ciao-bla_foo'),'Ciao bla foo')
     self.assertEqual(nicename('ciao bla-foo'),'Ciao bla foo')
Beispiel #19
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)
Beispiel #20
0
def get_layout_templates(bfield):
    if bfield.request:
        root = bfield.request.view.root
        for name in root._page_layout_registry:
            yield name, nicename(name)
Beispiel #21
0
from djpcms.utils.text import nicename
from djpcms.html import html_choices, htmldefaultdoc
from djpcms.html.layout import grid_systems, grids
from djpcms.cms import plugins

__all__ = ['TemplateForm', 'PageForm', 'ContentBlockForm', 'EditContentForm']


def get_layout_templates(bfield):
    if bfield.request:
        root = bfield.request.view.root
        for name in root._page_layout_registry:
            yield name, nicename(name)


grid_choices = lambda bfield: ((name, nicename(name)) for name in grids())


def initial_layout(f):
    request = f.request
    if request:
        return request.view.settings.LAYOUT_GRID_SYSTEM
    else:
        return ''


class TemplateForm(forms.Form):
    name = forms.CharField()
    template = forms.CharField(widget=html.TextArea())

Beispiel #22
0
from djpcms.cms import plugins


__all__ = ['TemplateForm',
           'PageForm',
           'ContentBlockForm',
           'EditContentForm']


def get_layout_templates(bfield):
    if bfield.request:
        root = bfield.request.view.root
        for name in root._page_layout_registry:
            yield name, nicename(name)

grid_choices = lambda bfield: ((name, nicename(name)) for name in grids())

def initial_layout(f):
    request = f.request
    if request:
        return request.view.settings.LAYOUT_GRID_SYSTEM
    else:
        return ''


class TemplateForm(forms.Form):
    name = forms.CharField()
    template = forms.CharField(widget = html.TextArea())


class PageForm(forms.Form):