def clone_plugin_data(self, dashboard_entry): """ Clone plugin data, which means we make a copy of the original image. TODO: Perhaps rely more on data of `dashboard_entry`? """ cloned_image = clone_file(self.data.image, relative_path=True) return self.get_cloned_plugin_data(update={'image': cloned_image}) # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (3, 2), (3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (5, 4), (5, 5) ) plugin_factory(BaseImagePlugin, 'image', sizes)
# ***************************************************************************** class BaseChartPlugin(BaseDashboardPlugin): """ Base chart plugin. """ name = _("Chart") group = _("Charts") form = ChartForm html_classes = ['chartonic'] # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ((1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (3, 2), (3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (5, 4), (5, 5)) plugin_factory(BaseChartPlugin, 'chart', sizes) # ***************************************************************************** # ********************************* Registering widgets *********************** # ***************************************************************************** # Registering chart plugin widgets plugin_widget_factory(BaseChartWidget, 'android', 'main', 'chart', sizes) plugin_widget_factory(BaseChartWidget, 'windows8', 'main', 'chart', sizes) plugin_widget_factory(BaseChartWidget, 'bootstrap2_fluid', 'main', 'chart', sizes)
""" html_class = super(BaseURLPlugin, self).html_class if self.data.image: html_class += ' iconic-url' return html_class # ******************************************************************************** # ********** Generating and registering the URL plugins using factory ************ # ******************************************************************************** sizes = ( (1, 1), (2, 2) ) plugin_factory(BaseURLPlugin, 'url', sizes) # ******************************************************************************** # ********************************* Bookmark plugin ****************************** # ******************************************************************************** class BaseBookmarkPlugin(BaseDashboardPlugin): """ Base URL plugin. """ name = _("Bookmark") group = _("URLs") form = BookmarkForm @property
name = _("Sunburst partition chart") html_classes = ['chartonic', 'd3-sunburst-partition-chart-plugin'] # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ( (4, 4), (5, 5), (6, 6), (7, 7), ) plugin_factory(BaseBubbleChartPlugin, 'd3_bubble_chart', sizes) plugin_factory(BaseStackedToGroupedBarsChartPlugin, 'd3_stacked_to_grouped_bars_chart', sizes) plugin_factory(BaseSunburstPartitionChartPlugin, 'd3_sunburst_partition_chart', sizes) # ***************************************************************************** # ********************************* Registering widgets *********************** # ***************************************************************************** # Registering chart plugin widgets # Bubble Chart plugin_widget_factory(BaseBubbleChartWidget, 'android', 'main', 'd3_bubble_chart', sizes) plugin_widget_factory(BaseBubbleChartWidget, 'windows8', 'main',
form = TreeMapForm html_classes = ['chartonic', 'd3-tree-map-chart-plugin'] # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ( (4, 4), (5, 5), (6, 6), (7, 7), ) plugin_factory(BaseBarChartPlugin, 'd3_bar_chart', sizes) plugin_factory(BaseTimeSeriesPlugin, 'd3_time_series', sizes) plugin_factory(BaseMultiTimeSeriesPlugin, 'd3_multi_time_series', sizes) plugin_factory(BasePieChartPlugin, 'd3_pie_chart', sizes) plugin_factory(BaseLineChartPlugin, 'd3_line_chart', sizes) plugin_factory(BaseGroupedBarChartPlugin, 'd3_grouped_bar_chart', sizes) plugin_factory(BaseTreeMapPlugin, 'd3_tree_map_chart', sizes) # ***************************************************************************** # ********************************* Registering widgets *********************** # ***************************************************************************** # Registering chart plugin widgets plugin_widget_factory(BaseBarChartWidget, 'bootstrap_materialize', 'main', 'd3_bar_chart', sizes)
from dash.base import BaseDashboardPlugin from dash.factory import plugin_factory from dash.contrib.plugins.video.forms import VideoForm # ******************************************************************************** # ******************************* Base Video plugin ****************************** # ******************************************************************************** class BaseVideoPlugin(BaseDashboardPlugin): """ Base Video plugin. """ name = _("Video") group = _("Internet") form = VideoForm html_classes = ['video'] def post_processor(self): self.data.embed_code = render_video(self.data.url) # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ((1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)) plugin_factory(BaseVideoPlugin, 'video', sizes)
# ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6) ) plugin_factory(BaseMemoPlugin, 'memo', sizes) # ******************************************************************************** # ******************************* Base TinyMCE memo plugin *********************** # ******************************************************************************** class BaseTinyMCEMemoPlugin(BaseDashboardPlugin): """ Memo dashboard plugin. """ name = _("TinyMCE memo") group = _("Memo") form = TinyMCEMemoForm help_text = _("""TinyMCE tags are available here.""")
(3, 5), (4, 3), (4, 4), (4, 5), (5, 3), (5, 4), (5, 5), (6, 3), (7, 7), (7, 13), (8, 8), (9, 9), (13, 7), (7, 13), (6, 5), (12, 7), (12, 8), ) plugin_factory(BaseWidgetSwitcherPlugin, 'WidgetSwitcher', sizes) # ******************************************************************************** # ********************************* Registering widgets ************************** # ******************************************************************************** # Registering chart plugin widgets plugin_widget_factory(BaseWidgetSwitcherWidget, 'android', 'main', 'WidgetSwitcher', sizes) plugin_widget_factory(BaseWidgetSwitcherWidget, 'windows8', 'main', 'WidgetSwitcher', sizes) plugin_widget_factory(BaseWidgetSwitcherWidget, 'bootstrap2_fluid', 'main', 'WidgetSwitcher', sizes) plugin_widget_factory(BaseWidgetSwitcherWidget, 'testing', 'main', 'WidgetSwitcher', sizes)
weather = None if weather: self.data.temp_max_c = weather['tempMaxC'] self.data.temp_min_c = weather['tempMinC'] self.data.windspeed_kmph = weather['windspeedKmph'] self.data.wind_dir_16_point = weather['winddir16Point'] try: self.data.weather_desc = weather['weatherDesc'][0]['value'] except Exception as e: pass try: self.data.weather_icon_url = weather['weatherIconUrl'][0][ 'value'] except Exception as e: pass # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (2, 2), (3, 3), ) plugin_factory(BaseWeatherPlugin, 'weather', sizes)
from django.utils.translation import ugettext_lazy as _ from dash.base import BaseDashboardPlugin from dash.factory import plugin_factory, plugin_widget_factory from dash_widgets import BaseTwitterWidget from forms import TwitterForm class BaseTwitterPlugin(BaseDashboardPlugin): name = _("Twitter") group = _("Internet") form = TwitterForm # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (6, 3), ) plugin_factory(BaseTwitterPlugin, 'twitter', sizes) # ******************************************************************************** # ********************************* Registering widgets ************************** # ******************************************************************************** # Registering chart plugin widgets plugin_widget_factory(BaseTwitterWidget, 'android', 'main', 'twitter', sizes) plugin_widget_factory(BaseTwitterWidget, 'windows8', 'main', 'twitter', sizes) plugin_widget_factory(BaseTwitterWidget, 'bootstrap2_fluid', 'main', 'twitter', sizes) plugin_widget_factory(BaseTwitterWidget, 'testing', 'main', 'twitter', sizes)
""" results_kwargs = {} language = get_language_from_request(self.request) if language is not None: results_kwargs.update({'language': language}) self.data.news_items = NewsItem._default_manager.filter(**results_kwargs) \ .order_by('-date_published')[:self.data.max_items] # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ( (2, 5), (4, 5) ) plugin_factory(BaseNewsPlugin, 'news', sizes) # **************************************************************************** # ****************** Registering widgets for News plugin ********************* # **************************************************************************** main_sizes = ( (2, 5), (4, 5), ) plugin_widget_factory(BaseNewsWidget, 'android', 'main', 'news', main_sizes)
html_classes = ['chartonic'] # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ( # (4, 4), (5, 5), #(10, 10) # (6, 6), #(7, 7), ) plugin_factory(BaseChart1Plugin, 'Chart1', sizes) plugin_factory(BaseChart2Plugin, 'Chart2', sizes) plugin_factory(BaseChart3Plugin, 'Chart3', sizes) plugin_factory(BaseChart4Plugin, 'Chart4', sizes) plugin_factory(BaseChart5Plugin, 'Chart5', sizes) plugin_factory(BaseChart6Plugin, 'Chart6', sizes) plugin_factory(BaseChart7Plugin, 'Chart7', sizes) plugin_factory(BaseChart8Plugin, 'Chart8', sizes)
sizes = ( (1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (3, 2), (3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (5, 4), (5, 5), (6, 4), (6, 5), (6,3), ) plugin_factory(BaseLineGraphPlugin, 'line_graph', sizes) # ******************************************************************************** # ********************************* Registering widgets ************************** # ******************************************************************************** # Registering chart plugin widgets plugin_widget_factory(BaseLineGraphWidget, 'android', 'main', 'line_graph', sizes) plugin_widget_factory(BaseLineGraphWidget, 'windows8', 'main', 'line_graph', sizes) plugin_widget_factory(BaseLineGraphWidget, 'bootstrap2_fluid', 'main', 'line_graph', sizes) plugin_widget_factory(BaseLineGraphWidget, 'testing', 'main', 'line_graph', sizes)
""" name = _("pie_chart") group = _("charts") form = ChartForm html_classes = ['chartonic'] sizes = ( (1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (3, 2), (3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (5, 4), (5, 5) ) plugin_factory(BaseChartPlugin, 'pie_chart', sizes) plugin_widget_factory(PieChartWidget, 'android', 'main', 'pie_chart', sizes) plugin_widget_factory(PieChartWidget, 'windows8', 'main', 'pie_chart', sizes) plugin_widget_factory(PieChartWidget, 'bootstrap2_fluid', 'main', 'pie_chart', sizes)
# ******************************************************************************** class BaseDummyPlugin(BaseDashboardPlugin): """ Base dummy plugin. """ name = _("Dummy") form = DummyForm group = _("Dummy") def get_form(self): if "sidebar" == self.placeholder: return DummyShortcutsForm else: return DummyForm def post_processor(self): """ If no text available, use dummy. """ if not self.data.text: self.data.text = "Dummy content" # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ((1, 1), (1, 2), (2, 1), (2, 2), (3, 3), (4, 4), (5, 5)) plugin_factory(BaseDummyPlugin, "dummy", sizes)
""" Getting news items for the current active language. """ results_kwargs = {} language = get_language_from_request(self.request) if language is not None: results_kwargs.update({'language': language}) self.data.news_items = NewsItem._default_manager.filter(**results_kwargs) \ .order_by('-date_published')[:self.data.max_items] # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ((2, 5), (4, 5)) plugin_factory(BaseNewsPlugin, 'news', sizes) # **************************************************************************** # ****************** Registering widgets for News plugin ********************* # **************************************************************************** main_sizes = ( (2, 5), (4, 5), ) plugin_widget_factory(BaseNewsWidget, 'android', 'main', 'news', main_sizes)
(3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (5, 4), (5, 5), (6, 3), (7, 7), (7, 13), (8, 8), (9, 9), (13, 7), (7, 13), (6, 5), (12, 7), (12, 8), ) plugin_factory(BaseImageLocalPlugin, 'imageLocal', sizes) # ******************************************************************************** # ********************************* Registering widgets ************************** # ******************************************************************************** # Registering chart plugin widgets plugin_widget_factory(BaseImageLocalWidget, 'android', 'main', 'imageLocal', sizes) plugin_widget_factory(BaseImageLocalWidget, 'windows8', 'main', 'imageLocal', sizes) plugin_widget_factory(BaseImageLocalWidget, 'bootstrap2_fluid', 'main', 'imageLocal', sizes) plugin_widget_factory(BaseImageLocalWidget, 'testing', 'main', 'imageLocal', sizes)
# ******************************************************************************** # ******************************* Base Video plugin ****************************** # ******************************************************************************** class BaseVideoPlugin(BaseDashboardPlugin): """ Base Video plugin. """ name = _("Video") group = _("Internet") form = VideoForm html_classes = ['video'] def post_processor(self): self.data.embed_code = render_video(self.data.url) # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6) ) plugin_factory(BaseVideoPlugin, 'video', sizes)
(3, 5), (4, 3), (4, 4), (4, 5), (5, 3), (5, 4), (5, 5), (6, 3), (7, 7), (7, 13), (8, 8), (9, 9), (13, 7), (7, 13), (6, 5), (12, 7), (12, 8), ) plugin_factory(BaseImageURLPlugin, 'imageURL', sizes) # ******************************************************************************** # ********************************* Registering widgets ************************** # ******************************************************************************** # Registering chart plugin widgets plugin_widget_factory(BaseImageURLWidget, 'android', 'main', 'imageURL', sizes) plugin_widget_factory(BaseImageURLWidget, 'windows8', 'main', 'imageURL', sizes) plugin_widget_factory(BaseImageURLWidget, 'bootstrap2_fluid', 'main', 'imageURL', sizes) plugin_widget_factory(BaseImageURLWidget, 'testing', 'main', 'imageURL', sizes)
""" name = _("bar_chart") group = _("charts") form = ChartForm html_classes = ['chartonic'] sizes = ( (1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (3, 2), (3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (5, 4), (5, 5) ) plugin_factory(BaseChartPlugin, 'bar_chart', sizes) plugin_widget_factory(BarChartWidget, 'android', 'main', 'bar_chart', sizes) plugin_widget_factory(BarChartWidget, 'windows8', 'main', 'bar_chart', sizes) plugin_widget_factory(BarChartWidget, 'bootstrap2_fluid', 'main', 'bar_chart', sizes)
class BaseMapPlugin(BaseMapPlugin): """ Base Map plugin. """ name = _("Map Chart") html_classes = ['maps', 'openlayers3-map-plugin'] # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ( (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (11, 10) ) plugin_factory(BaseMapPlugin, 'openlayers3_map', sizes) # ***************************************************************************** # ********************************* Registering widgets *********************** # ***************************************************************************** # Registering map plugin widgets # Openlayers Map plugin_widget_factory(WmsMapWidget, 'bootstrap2_fluid', 'main', \ 'openlayers3_map', sizes)
class BaseMemoPlugin(BaseDashboardPlugin): """ Base memo plugin. """ name = _("Memo") group = _("Memo") form = MemoForm # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ((1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)) plugin_factory(BaseMemoPlugin, 'memo', sizes) # ******************************************************************************** # ******************************* Base TinyMCE memo plugin *********************** # ******************************************************************************** class BaseTinyMCEMemoPlugin(BaseDashboardPlugin): """ Memo dashboard plugin. """ name = _("TinyMCE memo") group = _("Memo") form = TinyMCEMemoForm help_text = _("""TinyMCE tags are available here.""")
form = DummyForm group = _("Dummy") def get_form(self): if 'sidebar' == self.placeholder: return DummyShortcutsForm else: return DummyForm def post_processor(self): """ If no text available, use dummy. """ if not self.data.text: self.data.text = 'Dummy content' # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (1, 1), (1, 2), (2, 1), (2, 2), (3, 3), (4, 4), (5, 5) ) plugin_factory(BaseDummyPlugin, 'dummy', sizes)
(1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (3, 2), (3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (4, 6), (5, 4), (5, 5), (6, 4), (6, 5), (6, 3), ) plugin_factory(BaseBarGraphPlugin, "bar_graph", sizes) # ******************************************************************************** # ********************************* Registering widgets ************************** # ******************************************************************************** # Registering chart plugin widgets plugin_widget_factory(BaseBarGraphWidget, "android", "main", "bar_graph", sizes) plugin_widget_factory(BaseBarGraphWidget, "windows8", "main", "bar_graph", sizes) plugin_widget_factory(BaseBarGraphWidget, "bootstrap2_fluid", "main", "bar_graph", sizes) plugin_widget_factory(BaseBarGraphWidget, "testing", "main", "bar_graph", sizes)
__license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('BaseReadRSSFeedPlugin',) from django.utils.translation import ugettext_lazy as _ from dash.base import BaseDashboardPlugin from dash.factory import plugin_factory from dash.contrib.plugins.rss_feed.forms import ReadRSSFeedForm # ******************************************************************************** # ********************************* Base Read RSS feed plugin ******************** # ******************************************************************************** class BaseReadRSSFeedPlugin(BaseDashboardPlugin): """ Base Read RSS feed into HTML plugin. """ name = _("Read RSS feed") form = ReadRSSFeedForm group = _("Internet") # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (2, 3), (3, 3), ) plugin_factory(BaseReadRSSFeedPlugin, 'read_rss_feed', sizes)
""" If plugin has an image, we add a class `iconic` to it. """ html_class = super(BaseURLPlugin, self).html_class if self.data.image: html_class += ' iconic-url' return html_class # ***************************************************************************** # ********** Generating and registering the URL plugins using factory ********* # ***************************************************************************** sizes = ((1, 1), (2, 2)) plugin_factory(BaseURLPlugin, 'url', sizes) # ***************************************************************************** # ********************************* Bookmark plugin *************************** # ***************************************************************************** class BaseBookmarkPlugin(BaseDashboardPlugin): """ Base URL plugin. """ name = _("Bookmark") group = _("URLs") form = BookmarkForm @property
class BaseOpenLayersPlugin(BaseDashboardPlugin): """ Base OpenLayers plugin. """ name = _("openlayers") group = _("mapping") form = MapForm html_classes = ['mapping'] # Generating and registering the plugins using factory sizes = ( (1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (3, 2), (3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (5, 4), (5, 5) ) plugin_factory(BaseOpenLayersPlugin, 'openlayers', sizes) plugin_widget_factory(BaseOpenLayersWidget, 'android', 'main', 'openlayers', sizes)
class BaseSunburstPartitionChartPlugin(BaseChartPlugin): """ Base sunburst partition chart plugin. """ name = _("Sunburst partition chart") html_classes = ["chartonic", "d3-sunburst-partition-chart-plugin"] # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ((2, 2), (2, 3), (3, 3), (3, 4), (4, 4), (5, 5), (6, 6), (7, 7)) plugin_factory(BaseBubbleChartPlugin, "d3_bubble_chart", sizes) plugin_factory(BaseStackedToGroupedBarsChartPlugin, "d3_stacked_to_grouped_bars_chart", sizes) plugin_factory(BaseSunburstPartitionChartPlugin, "d3_sunburst_partition_chart", sizes) # ***************************************************************************** # ********************************* Registering widgets *********************** # ***************************************************************************** # Registering chart plugin widgets # Bubble Chart plugin_widget_factory(BaseBubbleChartWidget, "android", "main", "d3_bubble_chart", sizes) plugin_widget_factory(BaseBubbleChartWidget, "windows8", "main", "d3_bubble_chart", sizes) plugin_widget_factory(BaseBubbleChartWidget, "bootstrap2_fluid", "main", "d3_bubble_chart", sizes) # Stacked-to-grouped bars chart
except: weather = None if weather: self.data.temp_max_c = weather['tempMaxC'] self.data.temp_min_c = weather['tempMinC'] self.data.windspeed_kmph = weather['windspeedKmph'] self.data.wind_dir_16_point = weather['winddir16Point'] try: self.data.weather_desc = weather['weatherDesc'][0]['value'] except Exception as e: pass try: self.data.weather_icon_url = weather['weatherIconUrl'][0]['value'] except Exception as e: pass # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (2, 2), (3, 3), ) plugin_factory(BaseWeatherPlugin, 'weather', sizes)
from django.utils.translation import ugettext_lazy as _ from dash.base import BaseDashboardPlugin from dash.factory import plugin_factory from dash.contrib.plugins.rss_feed.forms import ReadRSSFeedForm # ******************************************************************************** # ********************************* Base Read RSS feed plugin ******************** # ******************************************************************************** class BaseReadRSSFeedPlugin(BaseDashboardPlugin): """ Base Read RSS feed into HTML plugin. """ name = _("Read RSS feed") form = ReadRSSFeedForm group = _("Internet") # ******************************************************************************** # ********** Generating and registering the plugins using factory **************** # ******************************************************************************** sizes = ( (2, 3), (3, 3), ) plugin_factory(BaseReadRSSFeedPlugin, 'read_rss_feed', sizes)
Base image plugin. """ name = _("Image") group = _("Image") form = ImageForm html_classes = ['pictonic'] def delete_plugin_data(self): """ Deletes uploaded file. """ delete_file(self.data.image) def clone_plugin_data(self, dashboard_entry): """ Clone plugin data, which means we make a copy of the original image. TODO: Perhaps rely more on data of `dashboard_entry`? """ cloned_image = clone_file(self.data.image, relative_path=True) return self.get_cloned_plugin_data(update={'image': cloned_image}) # ***************************************************************************** # ********** Generating and registering the plugins using factory ************* # ***************************************************************************** sizes = ((1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (3, 2), (3, 3), (3, 4), (4, 3), (4, 4), (4, 5), (5, 4), (5, 5)) plugin_factory(BaseImagePlugin, 'image', sizes)