Source code for dash.contrib.plugins.image.forms
from django import forms
from django.utils.translation import ugettext_lazy as _
from ....base import DashboardPluginFormBase
from ....widgets import BooleanRadioSelect
from .helpers import handle_uploaded_file
from .settings import FIT_METHODS_CHOICES, DEFAULT_FIT_METHOD
__title__ = 'dash.contrib.plugins.image.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2013-2018 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'
__all__ = ('ImageForm',)
[docs]class ImageForm(forms.Form, DashboardPluginFormBase):
"""Image form for `ImagePlugin` plugin."""
plugin_data_fields = [
("title", ""),
("image", ""),
("fit_method", DEFAULT_FIT_METHOD),
("show_link", True)
]
title = forms.CharField(label=_("Title"), required=True)
image = forms.ImageField(label=_("Image"), required=True)
fit_method = forms.ChoiceField(label=_("Fit method"),
required=False,
initial=DEFAULT_FIT_METHOD,
choices=FIT_METHODS_CHOICES)
show_link = forms.BooleanField(label=_("Show link?"),
required=False,
initial=True,
widget=BooleanRadioSelect)
[docs] def save_plugin_data(self, request=None):
"""Saving the plugin data and moving the file."""
image = self.cleaned_data.get('image', None)
if image:
saved_image = handle_uploaded_file(image)
self.cleaned_data['image'] = saved_image