list-templates: plugins-templates local-templates
-### #################### manage static contents (extract from all the modules into the single all-static location)
-### static run-static static-run: force
-### mkdir -p ./all-static/js all-static/css all-static/img
-### ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-js),../../$(x)) ./all-static/js
-### ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-css),../../$(x)) ./all-static/css
-### ln -sf $(foreach x,$(shell $(MAKE-SILENT) list-img),../../$(x)) ./all-static/img
-###
-### clean-static static-clean: force
-### rm -rf ./all-static
-###
-### all-static: clean-static run-static
-
#################### manage templates for the plugin area
templates: force
mkdir -p templates
# XXX this is very rough, was just pasted from the (wrong) web page
# and never tested, so feel free to rewrite completely if that sounds right
#
-#Alias /robots.txt /usr/share/myslice/all-static/robots.txt
-Alias /favicon.ico /usr/share/myslice/all-static/favicon.ico
+#Alias /robots.txt /usr/share/myslice/static/robots.txt
+Alias /favicon.ico /usr/share/myslice/static/favicon.ico
-#AliasMatch ^/([^/]*\.css) /usr/share/myslice/all-static/styles/$1
+#AliasMatch ^/([^/]*\.css) /usr/share/myslice/static/styles/$1
-Alias /all-static/ /usr/share/myslice/all-static/
+Alias /static/ /usr/share/myslice/static/
-<Directory /usr/share/myslice/all-static/>
+<Directory /usr/share/myslice/static/>
Order deny,allow
Allow from all
</Directory>
-usr/share/unfold/plugins
+usr/share/unfold/portal
-usr/share/unfold/all-static
-usr/share/unfold/all-templates
+usr/share/unfold/static
+usr/share/unfold/templates
usr/share/unfold/apache
usr/share/unfold/auth
usr/share/unfold/insert_above
URL: %{SCMURL}
Requires: python >= 2.7
-Requires: Django
+# in f14 this used to be called Django
+Requires: python-django
Requires: httpd
Requires: mod_wsgi
BuildRequires: python-setuptools make
{% for filter in filters %}
<div id='{{domid}}__filter__{{filter.key}}{{filter.op_str}}{{filter.value}}' class='filterButton' style='float:left;margin-bottom:10px;'>
<span>{{filter.key}}__{{filter.op}}__{{filter.value}}</span>
- <img src='/all-static/img/details_close.png' class='closeButton' style='padding-left:3px;'/>
+ <img src='/static/img/details_close.png' class='closeButton' style='padding-left:3px;'/>
</div>
{% endfor %}
+from unfold.plugin import Plugin
+
+# lists levels and sets them to enabled or not at startup
+default_levels = {'fatal': True, 'error': True, 'warning' : True, 'info' : True, 'debug' : False}
+
+# there are two implementations available here
+# one shows up in the main page like a regular part of the page,
+# while the other one relies on transient popups
+# by default we use the latter, but you can specify
+# transient=False if you want to use the former
+# xxx
+# also the pieces that go with this transient mode are
+# under views/templates, it would make sense to move them over here
+# however it turns out that views/templates/base.html unconditionnally
+# includes messages-transient-header.html
+class Messages (Plugin):
+
+ def __init__ (self, transient=True, levels=None, **settings):
+ Plugin.__init__ (self, **settings)
+ if levels is None: levels=default_levels
+ # shortcut: 'ALL' turn everything on
+ elif levels=='ALL': levels=dict( [ (k,True) for k in default_levels ] )
+ elif levels=='NONE': levels=dict( [ (k,False) for k in default_levels ] )
+ self.transient=transient
+ self.levels=levels
+
+ def template_file (self):
+ return "messages.html" if not self.transient else "messages-transient.html"
+
+ def requirements (self):
+ return {
+ 'js_files' : [ "js/messages.js", "js/manifold.js", ],
+ 'css_files' : "css/messages.css",
+ }
+
+ # although this has no query, we need a plugin instance to be created in the js output
+ def export_json_settings (self):
+ return True
+ # the js plugin expects a domid
+ def json_settings_list (self):
+ return [ 'plugin_uuid', 'levels' ]
+
+ # and we don't need a spin wheel
+ def start_with_spin (self):
+ return False
+++ /dev/null
-from unfold.plugin import Plugin
-
-# lists levels and sets them to enabled or not at startup
-default_levels = {'fatal': True, 'error': True, 'warning' : True, 'info' : True, 'debug' : False}
-
-# there are two implementations available here
-# one shows up in the main page like a regular part of the page,
-# while the other one relies on transient popups
-# by default we use the latter, but you can specify
-# transient=False if you want to use the former
-# xxx
-# also the pieces that go with this transient mode are
-# under views/templates, it would make sense to move them over here
-# however it turns out that views/templates/base.html unconditionnally
-# includes messages-transient-header.html
-class Messages (Plugin):
-
- def __init__ (self, transient=True, levels=None, **settings):
- Plugin.__init__ (self, **settings)
- if levels is None: levels=default_levels
- # shortcut: 'ALL' turn everything on
- elif levels=='ALL': levels=dict( [ (k,True) for k in default_levels ] )
- elif levels=='NONE': levels=dict( [ (k,False) for k in default_levels ] )
- self.transient=transient
- self.levels=levels
-
- def template_file (self):
- return "messages.html" if not self.transient else "messages-transient.html"
-
- def requirements (self):
- return {
- 'js_files' : [ "js/messages.js", "js/manifold.js", ],
- 'css_files' : "css/messages.css",
- }
-
- # although this has no query, we need a plugin instance to be created in the js output
- def export_json_settings (self):
- return True
- # the js plugin expects a domid
- def json_settings_list (self):
- return [ 'plugin_uuid', 'levels' ]
-
- # and we don't need a spin wheel
- def start_with_spin (self):
- return False
//initialisation no conflict et de la config APE
j = jQuery.noConflict();
- j.getScript('/all-static/js/config.js');
+ j.getScript('/static/js/config.js');
//fin
//APE + no conflit
j = jQuery.noConflict();
ape_initialize();
- j.getScript('/all-static/js/config.js');
+ j.getScript('/static/js/config.js');
// jquery:datepicker
j(".datepicker").datepicker({
+from unfold.plugin import Plugin
+
+class QueryCode (Plugin):
+
+ def __init__ (self, query, **settings):
+ Plugin.__init__ (self, **settings)
+ self.query=query
+
+ def template_file (self):
+ return "querycode.html"
+
+ def requirements (self):
+ return {
+ 'js_files' : [
+ "js/querycode.js",
+ "js/manifold.js", "js/manifold-query.js",
+ "js/spin.presets.js", "js/spin.min.js", "js/jquery.spin.js",
+ "js/shAutoloader.js","js/shCore.js","js/shBrushPython.js","js/shBrushRuby.js",
+ ] ,
+# thierry: see this file for details of why we turn this off for now
+ 'css_files': [
+ "css/querycode.css" ,
+ "css/shCore.css","css/shCoreDefault.css","css/shThemeDefault.css",
+ ],
+ }
+
+ def json_settings_list (self): return ['plugin_uuid','query_uuid']
+
+ # because we have a link to a query it looks like we need a spin, let's make this right
+ def start_with_spin (self): return False
+++ /dev/null
-from unfold.plugin import Plugin
-
-class QueryCode (Plugin):
-
- def __init__ (self, query, **settings):
- Plugin.__init__ (self, **settings)
- self.query=query
-
- def template_file (self):
- return "querycode.html"
-
- def requirements (self):
- return {
- 'js_files' : [
- "js/querycode.js",
- "js/manifold.js", "js/manifold-query.js",
- "js/spin.presets.js", "js/spin.min.js", "js/jquery.spin.js",
- "js/shAutoloader.js","js/shCore.js","js/shBrushPython.js","js/shBrushRuby.js",
- ] ,
-# thierry: see this file for details of why we turn this off for now
- 'css_files': [
- "css/querycode.css" ,
- "css/shCore.css","css/shCoreDefault.css","css/shThemeDefault.css",
- ],
- }
-
- def json_settings_list (self): return ['plugin_uuid','query_uuid']
-
- # because we have a link to a query it looks like we need a spin, let's make this right
- def start_with_spin (self): return False
+from unfold.plugin import Plugin
+
+class QuickFilter (Plugin) :
+
+ def __init__ (self, criterias, **settings):
+ Plugin.__init__ (self, **settings)
+ self.criterias=criterias
+ self.page.expose_js_metadata()
+
+ def template_file (self): return "quickfilter.html"
+
+ def requirements (self):
+ return {
+ 'js_files' : [ "js/quickfilter.js", "js/metadata.js",
+ ],
+ 'css_files': "css/quickfilter.css",
+ }
+
+ def json_settings_list (self):
+ return ['criterias','plugin_uuid']
+
+ def template_env (self,request):
+ return {'criterias':self.criterias}
+++ /dev/null
-from unfold.plugin import Plugin
-
-class QuickFilter (Plugin) :
-
- def __init__ (self, criterias, **settings):
- Plugin.__init__ (self, **settings)
- self.criterias=criterias
- self.page.expose_js_metadata()
-
- def template_file (self): return "quickfilter.html"
-
- def requirements (self):
- return {
- 'js_files' : [ "js/quickfilter.js", "js/metadata.js",
- ],
- 'css_files': "css/quickfilter.css",
- }
-
- def json_settings_list (self):
- return ['criterias','plugin_uuid']
-
- def template_env (self,request):
- return {'criterias':self.criterias}
+from unfold.plugin import Plugin
+
+# usage Raw (html="some html text")
+
+class Raw (Plugin):
+
+ def __init__ (self, html, **kwds):
+ Plugin.__init__ (self, **kwds)
+ self.html=html
+
+ def render_content (self, request):
+ return self.html
+++ /dev/null
-from unfold.plugin import Plugin
-
-# usage Raw (html="some html text")
-
-class Raw (Plugin):
-
- def __init__ (self, html, **kwds):
- Plugin.__init__ (self, **kwds)
- self.html=html
-
- def render_content (self, request):
- return self.html
+from django.template.loader import render_to_string
+
+from unfold.composite import Composite
+
+class Stack (Composite) :
+
+ def template_file (self): return "stack.html"
+ def template_env (self, request):
+ env = Composite.template_env (self, request)
+ env['domid'] = self.domid
+ return env
+++ /dev/null
-from django.template.loader import render_to_string
-
-from unfold.composite import Composite
-
-class Stack (Composite) :
-
- def template_file (self): return "stack.html"
- def template_env (self, request):
- env = Composite.template_env (self, request)
- env['domid'] = self.domid
- return env
+from unfold.composite import Composite
+
+class Tabs (Composite):
+
+ def requirements (self):
+ return { 'js_files' : ['js/tabs.js', 'js/bootstrap.js'],
+ 'css_files' : ['css/bootstrap.css', 'css/tabs.css', ]
+ }
+
+ def template_file (self):
+ return "tabs.html"
+
+ # see Composite.py for the details of template_env, that exposes global
+ # 'sons' as a list of sons with each a set of a few attributes
+ def json_settings_list (self):
+ return []
+
+ def export_json_settings(self):
+ return True
+++ /dev/null
-from unfold.composite import Composite
-
-class Tabs (Composite):
-
- def requirements (self):
- return { 'js_files' : ['js/tabs.js', 'js/bootstrap.js'],
- 'css_files' : ['css/bootstrap.css', 'css/tabs.css', ]
- }
-
- def template_file (self):
- return "tabs.html"
-
- # see Composite.py for the details of template_env, that exposes global
- # 'sons' as a list of sons with each a set of a few attributes
- def json_settings_list (self):
- return []
-
- def export_json_settings(self):
- return True
+++ /dev/null
-This plugin was an early attempt at implementing the widget that would
-. actually gather pending changes
-. and have an 'Update' button so as to post them
-However this work has been put on hold and is currently not used in real apps.
+++ /dev/null
-from unfold.plugin import Plugin
-
-class Updater (Plugin):
-
- def __init__ (self, query, label="Update", **settings):
- Plugin.__init__ (self, **settings)
- self.query=query
- if query.action != "get": print "Updater on non-get query: ",query.action
- self.label=label
-
- def template_file (self):
- return "updater.html"
-
- def requirements (self):
- return {
- 'js_files' : [ "js/updater.js" , "js/manifold.js", "js/manifold-query.js",
- "js/spin.presets.js", "js/spin.min.js", "js/jquery.spin.js",
- "js/Math.uuid.js",
- ],
- 'css_files' : "css/updater.css",
- }
-
- # although this has no query, we need a plugin instance to be created in the js output
- def export_json_settings (self): return True
- # the js plugin expects a domid
- def json_settings_list (self): return [ 'plugin_uuid', 'query_uuid', ]
-
- # and we don't need a spin wheel
- def start_with_spin (self): return False
-
- def default_togglable (self): return False
+++ /dev/null
-input.updater {
- margin: 10px;
-}
+++ /dev/null
-/**
- * Description: Manage query updates
- * Copyright (c) 2012-2013 UPMC Sorbonne Universite - INRIA
- * License: GPLv3
- */
-
-(function( $ ) {
-
- var debug=false;
-// debug=true
-
- var Updater = Plugin.extend({
-
- init: function(options, element)
- {
- this._super(options, element);
-
- this.listen_query(options.query_uuid);
- },
-
-
- /*************************** PLUGIN EVENTS ****************************/
-
- /***************************** GUI EVENTS *****************************/
-
- arm_button: function()
- {
- this.elmt('updater').click(this, this.submit_update_request);
- },
-
- submit_update_request: function (e)
- {
- var self = e.data;
-
- manifold.raise_event(self.options.query_uuid, RUN_UPDATE);
-
- },
-
- /************************** GUI MANIPULATION **************************/
-
- disable_update_button: function()
- {
- this.elmt('updater').attr('disabled', 'disabled');
- },
-
- /*************************** QUERY HANDLER ****************************/
-
- /*************************** RECORD HANDLER ***************************/
-
- /************************** PRIVATE METHODS ***************************/
-
- /******************************** TODO ********************************/
-
- /*
- query_failed: function (e, code, output)
- {
- var plugindiv=e.data;
- var updater=plugindiv.data('Updater');
- $('#updater-' + updater.options.plugin_uuid).removeAttr('disabled');
- // just as a means to deom how to retrieve the stuff passed on the channel
- if (debug)
- messages.debug("retrieved error code " + code + " and output " + output);
- },
-
- update_resources: function (e, resources, change)
- {
- data = e.data.instance.data().Slices;
-
- data.update_query.params['resource'] = resources
- $.publish('/update/' + data.options.query_uuid, [data.update_query, true]);
- },
-
- update_leases: function (e, leases, change)
- {
- data = e.data.instance.data().Slices;
-
- data.update_query.params['lease'] = leases
- $.publish('/update/' + data.options.query_uuid, [data.update_query, true]);
- },
-
- query_completed: function (e, rows, query)
- {
-
- // This function is called twice : get and update
- messages.info("updater.query_completed - not implemented yet");
- return;
-
- var data = e.data.instance.data().Slices;
-
- // Update placeholders and trigger subqueries updates
- if (rows.length == 0) {
- alert("no result");
- return;
- }
- var slice = rows[0];
-
- // for get
- if (data.update_query == null) {
- data.update_query = new Query('update','slice', 'now', query.filter, {"resource": null, "lease": null}, query.fields, 0, data.options.query_uuid);
- }
- // In case of update the list of resources and leases should be updated accordingly
-
- // only for get ?
- $.each(slice, function(key, value) {
- if (typeof value == 'string') {
- $('#myslice__' + key).html(value);
- }
- });
-
- // TODO avoid repetitions + made this code generic and plugin-independent
-
- if (query.method == 'update') {
- // XXX NON, les uuid doivent etre les memes que dans la query Get, cet appel devrait etre fait avant.
- query.analyzed_subqueries();
- }
-
- // NOTE: Dans le cadre d'un update, on n'a pas besoin de refaire tout
- // le query plan et obtenir toutes les infos, par contre on ne peut pas
- // savoir d'avance quels parametres ont été accordés, changés, etc.
- // Dans le cas général, ca pourrait affecter le query plan...
- // Par contre on n'a pas d'information sur toutes les resources, mais
- // uniquement celles dans la liste. Comment gérer ?
-
- // Inform child plugins about their respective parts of the results
- // Only for get
- var r_subq = query.analyzed_query.subqueries['resource'];
- var l_subq = query.analyzed_query.subqueries['lease'];
- $.publish('/results/' + r_subq.uuid + '/changed', [slice['resource'], r_subq]);
- $.publish('/results/' + l_subq.uuid + '/changed', [slice['lease'], l_subq]);
-
- // Subscribe to get notifications from child plugins
- if (!data.child_subscribe) {
- $.subscribe('/update-set/' + r_subq.uuid, {instance: e.data.instance}, update_resources);
- $.subscribe('/update-set/' + l_subq.uuid, {instance: e.data.instance}, update_leases);
- data.child_subscribe = true
- }
-
- }
- */
- });
-
- $.plugin('Updater', Updater);
-
-})( jQuery );
+++ /dev/null
-<input id="{{domid}}__updater" class="updater" type=button value="{{ label }}" />
+++ /dev/null
-<table align="center" border="0" cellpadding="0" cellspacing="0">
-
-
-<tr><td>
-
-
-<!-- Smart Wizard -->
-
-
- <div id="wizard_test" class="swMain">
-
-
- <ul class='anchor'>
-
-
- <li><a href="#step-1">
-
-
- <label class="stepNumber">1</label>
-
-
- <span class="stepDesc">
-
-
- Step 1<br />
-
-
- <small>Step 1 description</small>
-
-
- </span>
-
-
- </a></li>
-
-
- <li><a href="#step-2">
-
-
- <label class="stepNumber">2</label>
-
-
- <span class="stepDesc">
-
-
- Step 2<br />
-
-
- <small>Step 2 description</small>
-
-
- </span>
-
-
- </a></li>
-
-
- <li><a href="#step-3">
-
-
- <label class="stepNumber">3</label>
-
-
- <span class="stepDesc">
-
-
- Step 3<br />
-
-
- <small>Step 3 description</small>
-
-
- </span>
-
-
- </a></li>
-
-
- <li><a href="#step-4">
-
-
- <label class="stepNumber">4</label>
-
-
- <span class="stepDesc">
-
-
- Step 4<br />
-
-
- <small>Step 4 description</small>
-
-
- </span>
-
-
- </a></li>
-
-
- </ul>
-
-
- <div id="step-1">
-
-
- <h2 class="StepTitle">Step 1 Content</h2>
-
-
- <ul type="disk">
-
-
- <li>List 1</li>
-
-
- <li>List 2</li>
-
-
- </ul>
-
-
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- <p>
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- <p>
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- </div>
-
-
- <div id="step-2">
-
-
- <h2 class="StepTitle">Step 2 Content</h2>
-
-
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- <p>
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- <p>
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- <p>
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- </div>
-
-
- <div id="step-3">
-
-
- <h2 class="StepTitle">Step 3 Content</h2>
-
-
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- <p>
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- </div>
-
-
- <div id="step-4">
-
-
- <h2 class="StepTitle">Step 4 Content</h2>
-
-
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- <p>
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- <p>
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
-
-
- sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
-
-
- quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
-
-
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- </p>
-
-
- </div>
-
-
- </div>
-
-
-<!-- End SmartWizard Content -->
-
-
-
-
-
-</td></tr>
-
-
-</table>
-
-
-from portal.templateviews import LoginRequiredAutoLogoutView
+from views.loginrequired import LoginRequiredAutoLogoutView
#
from manifold.core.query import Query
from manifold.manifoldapi import execute_query
-from manifold.core.query import Query
-from unfold.page import Page
+from manifold.core.query import Query
+from unfold.page import Page
from plugins.lists.simplelist import SimpleList
-from portal.templateviews import LoginRequiredAutoLogoutView
+from views.loginrequired import LoginRequiredAutoLogoutView
from myslice.viewutils import topmenu_items, the_user
class HomeView (View):
+ # expose this so we can mention the backend URL on the welcome page
def default_env (self):
return {
'manifold_url':Config.manifold_url,
import os.path, re
-from django.core.mail import send_mail
+from django.core.mail import send_mail
from django.views.generic import View
from django.template.loader import render_to_string
from portal.models import PendingSlice
from portal.actions import authority_get_pi_emails
from portal.forms import SliceRequestForm
-from portal.templateviews import LoginRequiredAutoLogoutView
+from views.loginrequired import LoginRequiredAutoLogoutView
from myslice.viewutils import topmenu_items, the_user
class SliceRequestView (LoginRequiredAutoLogoutView):
from django.template import RequestContext
from django.shortcuts import render_to_response
-from portal.templateviews import LoginRequiredAutoLogoutView
+from views.loginrequired import LoginRequiredAutoLogoutView
from unfold.page import Page
from manifold.core.query import Query, AnalyzedQuery
from myslice.viewutils import topmenu_items, the_user
-from plugins.raw.raw import Raw
-from plugins.stack.stack import Stack
-from plugins.tabs.tabs import Tabs
+from plugins.raw import Raw
+from plugins.stack import Stack
+from plugins.tabs import Tabs
from plugins.hazelnut import Hazelnut
from plugins.resources_selected import ResourcesSelected
-from plugins.googlemap import GoogleMap
+from plugins.googlemap import GoogleMap
from plugins.senslabmap.senslabmap import SensLabMap
-from plugins.querycode.querycode import QueryCode
+from plugins.querycode import QueryCode
from plugins.query_editor import QueryEditor
from plugins.active_filters import ActiveFilters
-from plugins.quickfilter.quickfilter import QuickFilter
-from plugins.messages.messages import Messages
-#from plugins.updater import Updater
+from plugins.quickfilter import QuickFilter
+from plugins.messages import Messages
tmp_default_slice='ple.upmc.myslicedemo'
from manifold.core.query import Query
#from manifold.manifoldquery import ManifoldQuery
-from plugins.stack.stack import Stack
+from plugins.stack import Stack
from plugins.lists.slicelist import SliceList
-from plugins.querycode.querycode import QueryCode
-from plugins.quickfilter.quickfilter import QuickFilter
+from plugins.querycode import QueryCode
+from plugins.quickfilter import QuickFilter
from trash.trashutils import quickfilter_criterias
from unfold.page import Page
from manifold.core.query import Query
-from plugins.stack.stack import Stack
-from plugins.tabs.tabs import Tabs
+from plugins.stack import Stack
+from plugins.tabs import Tabs
from plugins.lists.staticlist import StaticList
-from plugins.quickfilter.quickfilter import QuickFilter
-from plugins.querycode.querycode import QueryCode
-from plugins.raw.raw import Raw
-from plugins.messages.messages import Messages
+from plugins.quickfilter import QuickFilter
+from plugins.querycode import QueryCode
+from plugins.raw import Raw
+from plugins.messages import Messages
from plugins.hazelnut import Hazelnut
-from plugins.updater import Updater
from myslice.viewutils import topmenu_items, the_user
from trash.trashutils import hard_wired_slice_names, hard_wired_list, lorem_p, lorem, quickfilter_criterias
togglable=True,
domid='stack',
sons=[ \
-# this updater thing never made it to production
-# Updater (
-# page=page,
-# title="Won't show up as non togglable",
-# query=main_query,
-# label="Update me",
-# domid="the-updater",
-# ),
# make sure the 2 things work together
Messages (
page=page,
),
Hazelnut (
page=page,
- title="Slice %s - checkboxes interacting w/ updater"%slicename,
+ title="Slice %s - checkboxes"%slicename,
query=main_query,
domid="hazelnut",
checkboxes=True,