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)
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)
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
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
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)
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)
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)
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="_"))
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='_'))
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'
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
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
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')
def get_layout_templates(bfield): if bfield.request: root = bfield.request.view.root for name in root._page_layout_registry: yield name, nicename(name)
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)
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')
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)
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())
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):