AccountView isolated in portal.accountview.py
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Thu, 5 Sep 2013 11:20:01 +0000 (13:20 +0200)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Thu, 5 Sep 2013 11:20:01 +0000 (13:20 +0200)
portal/accountview.py [new file with mode: 0644]
portal/urls.py
portal/views.py

diff --git a/portal/accountview.py b/portal/accountview.py
new file mode 100644 (file)
index 0000000..1b66830
--- /dev/null
@@ -0,0 +1,82 @@
+from portal.templateviews            import LoginRequiredAutoLogoutView
+#
+from manifold.core.query             import Query
+#
+from myslice.viewutils               import topmenu_items, the_user
+#
+
+# requires login
+class AccountView(LoginRequiredAutoLogoutView):
+    template_name = "my_account.html"
+    
+    def dispatch(self, *args, **kwargs):
+        return super(AccountView, self).dispatch(*args, **kwargs)
+
+
+    def get_context_data(self, **kwargs):
+
+        user_query  = Query().get('local:user').select('config','email')
+        user_details = execute_query(self.request, user_query)
+        
+        # not always found in user_details...
+        config={}
+        for user_detail in user_details:
+            #email = user_detail['email']
+            if user_detail['config']:
+                config = json.loads(user_detail['config'])
+
+        platform_query  = Query().get('local:platform').select('platform_id','platform')
+        account_query  = Query().get('local:account').select('user_id','platform_id','auth_type','config')
+        platform_details = execute_query(self.request, platform_query)
+        account_details = execute_query(self.request, account_query)
+       
+        # initial assignment needed for users having no account  
+        platform_name = ''
+        account_type = ''
+        account_usr_hrn = ''
+        account_pub_key = ''
+        platform_name_list = []
+        account_type_list = []
+        usr_hrn_list = []
+        pub_key_list = []          
+        for account_detail in account_details:
+            for platform_detail in platform_details:
+                if platform_detail['platform_id'] == account_detail['platform_id']:
+                    platform_name = platform_detail['platform']
+                    account_type = account_detail['auth_type']
+                    account_config = json.loads(account_detail['config'])
+                    # a bit more pythonic
+                    account_usr_hrn = account_config.get('user_hrn','N/A')
+                    account_pub_key = account_config.get('user_public_key','N/A')
+                    
+                    platform_name_list.append(platform_name)
+                    account_type_list.append(account_type)
+                    usr_hrn_list.append(account_usr_hrn)
+                    pub_key_list.append(account_pub_key)
+        
+        # combining 4 lists into 1 [to render in the template] 
+        lst = [{'platform_name': t[0], 'account_type': t[1], 'usr_hrn':t[2], 'usr_pubkey':t[3]} 
+               for t in zip(platform_name_list, account_type_list, usr_hrn_list, pub_key_list)]
+        #print "test"
+        #print lst
+
+        context = super(AccountView, self).get_context_data(**kwargs)
+        context['data'] = lst
+        context['person']   = self.request.user
+        context ['firstname'] = config.get('firstname',"?")
+        context ['lastname'] = config.get('lastname',"?")
+        context ['fullname'] = context['firstname'] +' '+ context['lastname']
+        context ['authority'] = config.get('authority',"Unknown Authority")
+        #context['users'] = userlist.render(self.request)
+        
+        # XXX This is repeated in all pages
+        # more general variables expected in the template
+        context['title'] = 'Platforms connected to MySlice'
+        # the menu items on the top
+        context['topmenu_items'] = topmenu_items('My Account', self.request)
+        # so we can sho who is logged
+        context['username'] = the_user(self.request)
+#        context ['firstname'] = config['firstname']
+        #context.update(page.prelude_env())
+        return context
+
index c7135ec..b23e0a2 100644 (file)
 # this program; see the file COPYING.  If not, write to the Free Software
 # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
+from django.views.generic.base   import TemplateView
 from django.conf.urls           import patterns, include, url
-from portal                     import views
-from portal.views               import PresViewView, ValidatePendingView, AccountView # UserRegisterView, UserValidateView
+
+from portal.views               import PresViewView, ValidatePendingView
+from portal.views               import account_process, contact, slice_request, register_4m_f4f
 from portal.platformsview       import PlatformsView
 from portal.platformview        import PlatformView
 from portal.dashboardview       import DashboardView
-from portal.util                import TemplateView
+from portal.accountview         import AccountView
+
 
 # DEPRECATED #named_register_forms = (
 # DEPRECATED #    ("step1", RegisterUserForm),
@@ -49,12 +52,11 @@ urlpatterns = patterns('',
     url(r'^account/?$', AccountView.as_view(), name='account'),
     url(r'^platforms/?$', PlatformsView.as_view(), name='platforms'),
     url(r'^platform/(?P<platformname>[\w\.]+)/?$', PlatformView.as_view(), name='platform'),
-    url(r'^account/account_process/?$', views.account_process),
-    url(r'^register/?$', views.register_4m_f4f),
-    #url(r'^reg_process/?$', views.reg_4m_f4f_process),
-    url(r'^contact/?$', views.contact),
+    url(r'^account/account_process/?$', account_process),
+    url(r'^register/?$', register_4m_f4f),
+    url(r'^contact/?$', contact),
     # Slice request
-    url(r'^slice_request/?$', views.slice_request),
+    url(r'^slice_request/?$', slice_request),
     # Validate pending requests
     url(r'^validate/?$', ValidatePendingView.as_view()),
     # http://stackoverflow.com/questions/2360179/django-urls-how-to-pass-a-list-of-items-via-clean-urls
index f72f6ce..e554f1b 100644 (file)
@@ -49,82 +49,6 @@ from myslice.viewutils           import topmenu_items, the_user
 from django.http                 import HttpResponseRedirect, HttpResponse
 
 #class for my_account
-class AccountView(TemplateView):
-    template_name = "my_account.html"
-    
-    #This view requires login 
-    @method_decorator(login_required)
-    def dispatch(self, *args, **kwargs):
-        return super(AccountView, self).dispatch(*args, **kwargs)
-
-
-    def get_context_data(self, **kwargs):
-        #page = Page(self.request)
-
-        user_query  = Query().get('local:user').select('config','email')
-        user_details = execute_query(self.request, user_query)
-        
-        # not always found in user_details...
-        config={}
-        for user_detail in user_details:
-            #email = user_detail['email']
-            if user_detail['config']:
-                config = json.loads(user_detail['config'])
-
-        platform_query  = Query().get('local:platform').select('platform_id','platform')
-        account_query  = Query().get('local:account').select('user_id','platform_id','auth_type','config')
-        platform_details = execute_query(self.request, platform_query)
-        account_details = execute_query(self.request, account_query)
-       
-        # initial assignment needed for users having no account  
-        platform_name = ''
-        account_type = ''
-        account_usr_hrn = ''
-        account_pub_key = ''
-        platform_name_list = []
-        account_type_list = []
-        usr_hrn_list = []
-        pub_key_list = []          
-        for account_detail in account_details:
-            for platform_detail in platform_details:
-                if platform_detail['platform_id'] == account_detail['platform_id']:
-                    platform_name = platform_detail['platform']
-                    account_type = account_detail['auth_type']
-                    account_config = json.loads(account_detail['config'])
-                    # a bit more pythonic
-                    account_usr_hrn = account_config.get('user_hrn','N/A')
-                    account_pub_key = account_config.get('user_public_key','N/A')
-                    
-                    platform_name_list.append(platform_name)
-                    account_type_list.append(account_type)
-                    usr_hrn_list.append(account_usr_hrn)
-                    pub_key_list.append(account_pub_key)
-        
-        # combining 4 lists into 1 [to render in the template] 
-        lst = [{'platform_name': t[0], 'account_type': t[1], 'usr_hrn':t[2], 'usr_pubkey':t[3]} for t in zip(platform_name_list, account_type_list, usr_hrn_list, pub_key_list)]    
-        #print "test"
-        #print lst
-
-        context = super(AccountView, self).get_context_data(**kwargs)
-        context['data'] = lst
-        context['person']   = self.request.user
-        context ['firstname'] = config.get('firstname',"?")
-        context ['lastname'] = config.get('lastname',"?")
-        context ['fullname'] = context['firstname'] +' '+ context['lastname']
-        context ['authority'] = config.get('authority',"Unknown Authority")
-        #context['users'] = userlist.render(self.request)
-        
-        # XXX This is repeated in all pages
-        # more general variables expected in the template
-        context['title'] = 'Platforms connected to MySlice'
-        # the menu items on the top
-        context['topmenu_items'] = topmenu_items('My Account', self.request)
-        # so we can sho who is logged
-        context['username'] = the_user(self.request)
-#        context ['firstname'] = config['firstname']
-        #context.update(page.prelude_env())
-        return context
-
 @login_required
 #my_acc form value processing
 def account_process(request):