Source code for dash.contrib.plugins.dummy.forms

__all__ = ('DummyForm', 'DummyShortcutsForm')

import logging
logger = logging.getLogger(__name__)

from six import PY2

if PY2:
    from lipsum import Generator
else:
    from transliterate.contrib.apps.translipsum.utils import Generator

from transliterate.contrib.apps.translipsum import TranslipsumGenerator

from django import forms
from django.utils.translation import ugettext_lazy as _
from django.utils.text import Truncator

from dash.base import DashboardPluginFormBase
from dash.contrib.plugins.dummy.defaults import LANGUAGE_CHOICES, LANGUAGE_CHOICES_KEYS, DEFAULT_MAX_CHARS
from dash.widgets import BooleanRadioSelect

[docs]class DummyForm(forms.Form, DashboardPluginFormBase): """ Dummy form (for main `placeholder`). """ plugin_data_fields = [ ("show_title", False), ("generate_lipsum", False), ("lipsum_language", ""), ("lipsum_max_chars", DEFAULT_MAX_CHARS), ("text", "") ] show_title = forms.BooleanField(label=_("Show title?"), required=False, initial=False, widget=BooleanRadioSelect) generate_lipsum = forms.BooleanField(label=_("Generate lorem ipsum?"), required=False, initial=False, widget=BooleanRadioSelect) lipsum_language = forms.ChoiceField(label=_("Language"), required=False, choices=LANGUAGE_CHOICES) lipsum_max_chars = forms.IntegerField(label=_("Max number of chars for generated text"), required=True, initial=DEFAULT_MAX_CHARS) text = forms.CharField(label=_("Generated lorem ipsum text"), required=False, widget=forms.widgets.HiddenInput)
[docs] def save_plugin_data(self): """ We want to save the generated lorem ipsum text for later use. Thus, although we don't show it to the user, in case when ``generate_lipsum`` field is set to True, we silently generate the text and save it into the plugin data. """ if self.cleaned_data.get('generate_lipsum', None): lipsum_language = self.cleaned_data.get('lipsum_language', None) try: if lipsum_language in LANGUAGE_CHOICES_KEYS: if 'en' == lipsum_language: g = Generator() else: g = TranslipsumGenerator(language_code=lipsum_language) text = g.generate_paragraph() truncator = Truncator(text) self.cleaned_data['text'] = truncator.chars( self.cleaned_data.get('lipsum_max_chars', DEFAULT_MAX_CHARS) ) except Exception as e: if DEBUG: logger.debug(e)
[docs]class DummyShortcutsForm(DummyForm): """ Dummy form for `shortucts` placeholder. """
Read the Docs v: 0.1.4
Versions
latest
0.3.2
0.3
0.2.4
0.1.4
Downloads
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.