Added Join the OneLab federation page, allows to add an authority, validation of...
authorLoic Baron <loic.baron@lip6.fr>
Mon, 27 Jan 2014 17:33:15 +0000 (18:33 +0100)
committerLoic Baron <loic.baron@lip6.fr>
Mon, 27 Jan 2014 17:33:15 +0000 (18:33 +0100)
README
portal/actions.py
portal/models.py
portal/slicerequestview.py
portal/static/css/onelab_marko.css
portal/static/css/registration.css
portal/urls.py
ui/topmenu.py

diff --git a/README b/README
index 5807846..900d8b4 100644 (file)
--- a/README
+++ b/README
@@ -228,6 +228,12 @@ $python manage.py loaddata temp_data.json
 
 If your changes break your old schema this won't work - in which case tools like south or django evolution are great.
 
+
+Add a new model to the DB
+
+$python manage.py schemamigration <your_app> --auto
+$python manage.py migrate
+
 ======== update django database to reflect changes in existing models with migration system (e.g., south) =========
 
 As south is already installed , you just have to do:
index c373a30..962fe42 100644 (file)
@@ -48,7 +48,6 @@ def sfa_update_user(request, user_hrn, user_params):
     results = execute_query(request,query)
     return results
 
-
 def sfa_add_slice(request, slice_params):
     query = Query.create('slice').set(slice_params).select('slice_hrn')
     results = execute_query(request, query)
@@ -56,6 +55,13 @@ def sfa_add_slice(request, slice_params):
         raise Exception, "Could not create %s. Already exists ?" % slice_params['hrn']
     return results
 
+def sfa_add_user_to_slice(request, user_hrn, slice_params):
+    query = Query.update('slice').filter_by('user_hrn', '==', user_hrn).set(slice_params).select('slice_hrn')
+    results = execute_query(request, query)
+    if not results:
+        raise Exception, "Could not create %s. Already exists ?" % slice_params['hrn']
+    return results
+
 # Propose hrn
 
 def manifold_add_user(request, user_params):
@@ -131,6 +137,7 @@ def make_request_slice(slice):
     request = {}
     request['type'] = 'slice'
     request['id'] = slice.id
+    request['user_email'] = slice.user_email
     request['timestamp'] = slice.created
     request['authority_hrn'] = slice.authority_hrn
     request['slice_name'] = slice.slice_name
@@ -260,6 +267,7 @@ def portal_validate_request(wsgi_request, request_ids):
                 # ignored in request: id, timestamp,  number_of_nodes, type_of_nodes, purpose
 
                 sfa_add_slice(wsgi_request, sfa_slice_params)
+                #sfa_add_slice(wsgi_request, user_hrn, sfa_slice_params)
 
                 # XXX Remove from database
 
index 1569146..0de4ce0 100644 (file)
@@ -66,8 +66,25 @@ class PendingUser(models.Model):
     created       = models.DateTimeField(auto_now_add = True)
     # models.ForeignKey(Institution)
 
+class PendingAuthority(models.Model):
+    site_name             = models.TextField()
+    site_authority        = models.TextField() 
+    site_abbreviated_name = models.TextField()
+    site_url              = models.TextField()
+    site_latitude         = models.TextField()
+    site_longitude        = models.TextField()
+    address_line1         = models.TextField()
+    address_line2         = models.TextField()
+    address_line3         = models.TextField()
+    address_city          = models.TextField()
+    address_postalcode    = models.TextField()
+    address_state         = models.TextField()
+    address_country       = models.TextField()
+    created               = models.DateTimeField(auto_now_add = True)
 class PendingSlice(models.Model):
     slice_name      = models.TextField()
+    user_email      = models.TextField()
     authority_hrn   = models.TextField(null=True)
     number_of_nodes = models.TextField(default=0)
     type_of_nodes   = models.TextField(default='NA')
index 5b49607..cd40a96 100644 (file)
@@ -70,6 +70,7 @@ class SliceRequestView (LoginRequiredAutoLogoutView):
                 }            
                 s = PendingSlice(
                     slice_name      = slice_name,
+                    user_email      = email
                     authority_hrn   = authority_hrn,
                     number_of_nodes = number_of_nodes,
                     purpose         = purpose
index f08e8bf..be647a3 100644 (file)
     height: 100%;
 }
 
+table {
+   color:white;
+}
+
 .container h1, .container h2 {
     color: #fff !important;
 }
index 5fe8321..3f83359 100644 (file)
@@ -5,7 +5,7 @@ I've started to move over such stuff in onelab.css
 feel free to add to this collection
 */
    
-label.error { 
+.error { 
     float: none;
     color: red;
     padding-left: .5em;
index d1e088c..569bdcb 100644 (file)
@@ -31,6 +31,7 @@ from portal.accountview         import AccountView, account_process
 from portal.contactview         import ContactView
 from portal.slicerequestview    import SliceRequestView
 from portal.registrationview    import RegistrationView
+from portal.joinview            import JoinView
 from portal.sliceview           import SliceView
 
 # hopefully these should move in dedicated source files too
@@ -64,6 +65,7 @@ urlpatterns = patterns('',
     url(r'^slice/(?P<slicename>[\w\.]+)/?$', SliceView.as_view(),name='slice'),
     url(r'^account/account_process/?$', account_process),
     url(r'^register/?$', RegistrationView.as_view(), name='registration'),
+    url(r'^join/?$', JoinView.as_view(), name='join'),
     url(r'^contact/?$', ContactView.as_view(), name='contact'),
     #url(r'^pass_reset/?$', PassResetView.as_view(), name='pass_rest'),
     # Slice request
index 69a8dd3..b0ff707 100644 (file)
@@ -39,6 +39,7 @@ def topmenu_items_static (current, request):
         # looks like this is accessible to non-logged users
         result.append({'label':'Platforms', 'href': '/portal/platforms/'})
         result.append({'label':'Register', 'href': '/portal/register/'})
+        result.append({'label':'Join us', 'href': '/portal/join/'})
         result.append({'label':'Contact Support', 'href': '/portal/contact/'})
 
     # mark active if the provided 'current', even if shorter, matches the beginning of d['label']