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:
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)
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):
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
# 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
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')
}
s = PendingSlice(
slice_name = slice_name,
+ user_email = email
authority_hrn = authority_hrn,
number_of_nodes = number_of_nodes,
purpose = purpose
height: 100%;
}
+table {
+ color:white;
+}
+
.container h1, .container h2 {
color: #fff !important;
}
feel free to add to this collection
*/
-label.error {
+.error {
float: none;
color: red;
padding-left: .5em;
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
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
# 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']