5c861f7c989105514eaa59dc3b5099c310fbf912
[myslice.git] / trash / validatebuttonview.py
1 # just one instance of validator
2 from django.views.generic.base import TemplateView
3 from django.template import RequestContext
4 from django.shortcuts import render_to_response
5
6 from manifold.core.query import Query, AnalyzedQuery
7
8 from unfold.page import Page
9
10 from ui.topmenu import topmenu_items, the_user
11
12 from plugins.validatebutton import ValidateButton
13
14 class ValidateButtonView (TemplateView):
15
16     # mention a user name in the URL as .../trash/simplevalidatebutton/ple.inria.thierry_parmentelat
17     def get (self, request, username='ple.inria.thierry_parmentelat'):
18
19         if username=='logged': username='$user_hrn'
20
21         page=Page(request)
22
23         query_pi_auths = Query.get('ple:user').filter_by('user_hrn', '==', username ).select('pi_authorities')
24         page.enqueue_query(query_pi_auths)
25
26         # even though this plugin does not have any html materialization, the corresponding domid
27         # must exist because it is searched at init-time to create the JS plugin
28         # so we simply piggy-back the target button here
29         validatebutton = ValidateButton (page=page, 
30                                          # see above
31                                          domid='topmenu-validation',
32                                          query=query_pi_auths,
33                                          # this one is the target for enabling when the query comes back
34                                          button_domid="topmenu-validation")
35         # there is a need to call render() for exposing the query and creating the js plugin
36         # even though this returns an empty string
37         validatebutton.render(request)
38
39
40         # variables that will get passed to the view-unfold1.html template
41         template_env = {}
42         
43         # write something of our own instead
44         template_env ['unfold_main'] = '<h1>Some title </h1>'
45         
46         # more general variables expected in the template
47         template_env [ 'title' ] = 'simple validatebutton %(username)s'%locals()
48         # the menu items on the top
49         template_env [ 'topmenu_items' ] = topmenu_items('Slice', request) 
50         # so we can see who is logged
51         template_env [ 'username' ] = the_user (request) 
52     
53         # don't forget to run the requests
54         page.expose_queries ()
55
56         # the prelude object in page contains a summary of the requirements() for all plugins
57         # define {js,css}_{files,chunks}
58         prelude_env = page.prelude_env()
59
60 #        print prelude_env.keys()
61 #        for k in [ 'js_files' ] :
62 #            print 'prelude_env',prelude_env,k,prelude_env[k]
63
64         template_env.update(prelude_env)
65         result=render_to_response ('view-unfold1.html',template_env,
66                                    context_instance=RequestContext(request))
67         return result