From b5c3c3e05dd4c775fef822eecb997b35081d5a0a Mon Sep 17 00:00:00 2001 From: Amine Date: Fri, 21 Dec 2012 14:40:42 +0100 Subject: [PATCH] first attempt of quickfilter plugin --- engine/views.py | 7 +++++-- myslice/viewutils.py | 3 +++ plugins/quickfilter.py | 30 ++++++++++++++++++++++++++++++ plugins/templates/quickfilter.html | 28 ++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 plugins/quickfilter.py create mode 100644 plugins/templates/quickfilter.html diff --git a/engine/views.py b/engine/views.py index 8f4ea8ca..4a26b667 100644 --- a/engine/views.py +++ b/engine/views.py @@ -11,10 +11,11 @@ from plugins.verticallayout import VerticalLayout from plugins.tabs import Tabs from plugins.simplelist import SimpleList from plugins.slicelist import SliceList +from plugins.quickfilter import QuickFilter from plugins.raw import Raw from myslice.viewutils import topmenu_items, the_user -from myslice.viewutils import hard_wired_slice_names, hard_wired_list, lorem_p, lorem +from myslice.viewutils import hard_wired_slice_names, hard_wired_list, lorem_p, lorem, quickfilter_criterias @login_required def test_plugin_view (request): @@ -43,7 +44,9 @@ def test_plugin_view (request): togglable=False,html=lorem) ]), SimpleList (title='SimpleList with slice names', list=hard_wired_slice_names, - ) ] ) + ), + QuickFilter (list=quickfilter_criterias, + title='QuickFilter in main content') ] ) # define 'content_main' to the template engine template_env [ 'content_main' ] = main_plugin.render(request) diff --git a/myslice/viewutils.py b/myslice/viewutils.py index 80b4f788..030e0d9d 100644 --- a/myslice/viewutils.py +++ b/myslice/viewutils.py @@ -57,3 +57,6 @@ hard_wired_list.append("just like a standard plugin can be set as visible or not hard_wired_list.append("") hard_wired_list.append("OTOH and IMHO, there should be two separate and explicit subclasses of SimpleList for slices or testbeds") +quickfilter_criterias = [{'key': 'Slice', 'values': ['slice1','slice2']}, \ + {'key': 'Type', 'values': ['type1','type2']}, \ + {'key': 'Network', 'values': ['net1','net2']}] diff --git a/plugins/quickfilter.py b/plugins/quickfilter.py new file mode 100644 index 00000000..4da314b2 --- /dev/null +++ b/plugins/quickfilter.py @@ -0,0 +1,30 @@ +from engine.plugin import Plugin + +class QuickFilter (Plugin) : + + def __init__ (self, list=[], with_datatables=False, **settings): + Plugin.__init__ (self, **settings) + self.list=[{'key': 'Slice', 'values': ['slice1','slice2']}, \ + {'key': 'Type', 'values': ['type1','type2']}, \ + {'key': 'Network', 'values': ['net1','net2']}] + self.add_to_settings ('list') + self.with_datatables = with_datatables + self.add_to_settings ('with_datatables') + self.criterias = [{'key': 'Slice', 'values': ['slice1','slice2']}, \ + {'key': 'Type', 'values': ['type1','type2']}, \ + {'key': 'Network', 'values': ['net1','net2']}] + + def title (self) : return "Title for Quick " + + def template_file (self): return "quickfilter.html" + + def requirements (self): + reqs = { 'js_files' : [ "js/quickfilter.js" ], + 'css_files': [ "css/quickfilter.css" ], + } + if self.with_datatables: + reqs['js_files'].append ("datatables/js/dataTables.js") + reqs['js_files'].append ("js/with-datatables.js") + print self.classname(),reqs + return reqs + diff --git a/plugins/templates/quickfilter.html b/plugins/templates/quickfilter.html new file mode 100644 index 00000000..736830e9 --- /dev/null +++ b/plugins/templates/quickfilter.html @@ -0,0 +1,28 @@ + +
+ + + {% for criteria in list %} + + {% endfor %} + + + + {% for criteria in list %} + + {% endfor %} + + +
{{criteria.key}}Extra fields
+ + + +
+
\ No newline at end of file -- 2.43.0