Source code for dash.contrib.plugins.memo.forms
from django import forms
from django.utils.translation import gettext_lazy as _
from ....base import DashboardPluginFormBase
try:
from tinymce.widgets import TinyMCE
except ImportError:
from ....lib.tinymce.widgets import TinyMCE
__title__ = 'dash.contrib.plugins.memo.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2013-2021 Artur Barseghyan'
__license__ = 'GPL-2.0-only OR LGPL-2.1-or-later'
__all__ = (
'MCE_ATTRS',
'MemoForm',
'TinyMCEMemoForm',
)
[docs]class MemoForm(forms.Form, DashboardPluginFormBase):
"""Memo form (for ``Memo`` plugin)."""
plugin_data_fields = [
("title", ""),
("text", "")
]
title = forms.CharField(label=_("Title"), required=False)
text = forms.CharField(label=_("Text"), required=True,
widget=forms.widgets.Textarea)
# Basic TinyMCE config
MCE_ATTRS = {
'plugins': 'visualchars,paste',
'theme': 'advanced',
'theme_advanced_buttons1':
'formatselect,|,bold,italic,underline,|,bullist,numlist',
'theme_advanced_buttons2': 'link,unlink,|,code',
'width': '300',
'delta_height': '150',
'relative_urls': 0
}
[docs]class TinyMCEMemoForm(forms.Form, DashboardPluginFormBase):
"""TinyMCE memo form (for ``TinyMCEMemo`` plugin)."""
plugin_data_fields = [
("title", ""),
("text", "")
]
title = forms.CharField(label=_("Title"), required=False)
text = forms.CharField(label=_("HTML"), required=True,
widget=TinyMCE(mce_attrs=MCE_ATTRS))