# 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.db import models
+import datetime
+import hashlib
+import random
+import re
+
+from django.conf import settings
+from django.db import models
+from django.db import transaction
+from django.utils.translation import ugettext_lazy as _
+from django.template.loader import render_to_string
+
+#from django.core.validators import validate_email
+
+#try:
+# from django.contrib.auth import get_user_model
+# User = get_user_model()
+#except ImportError:
+# from django.contrib.auth.models import User
+
+try:
+ from django.utils.timezone import now as datetime_now
+except ImportError:
+ datetime_now = datetime.datetime.now
+
+SHA1_RE = re.compile('^[a-f0-9]{40}$')
# Create your models here.
class PendingUser(models.Model):
# NOTE We might consider migrating the fields to CharField, which would
# simplify form creation in forms.py
- first_name = models.TextField()
- last_name = models.TextField()
- email = models.TextField()
- password = models.TextField()
- keypair = models.TextField()
- # institution
+ first_name = models.TextField()
+ last_name = models.TextField()
+ email = models.EmailField() #validators=[validate_email])
+ password = models.TextField()
+ user_hrn = models.TextField()
+ public_key = models.TextField()
+ private_key = models.TextField()
+ authority_hrn = models.TextField()
+ login = models.TextField()
+ pi = models.TextField()
+ email_hash = models.TextField()
+ status = models.TextField()
+ 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()
+ # parent authority of the requested authority
+ authority_hrn = models.TextField()
+ created = models.DateTimeField(auto_now_add = True)
+
class PendingSlice(models.Model):
- slice_name = models.TextField()
+ slice_name = models.TextField()
+ user_hrn = models.TextField()
+ authority_hrn = models.TextField(null=True)
+ number_of_nodes = models.TextField(default=0)
+ type_of_nodes = models.TextField(default='NA')
+ purpose = models.TextField(default='NA')
+ created = models.DateTimeField(auto_now_add = True)
+
+class PendingProject(models.Model):
+ project_name = models.TextField()
+ user_hrn = models.TextField()
+ email = models.TextField()
+ authority_hrn = models.TextField(null=True)
+ purpose = models.TextField(default='NA')
+ created = models.DateTimeField(auto_now_add = True)
+
+class PendingJoin(models.Model):
+ user_hrn = models.TextField()
+ email = models.TextField()
+ project_name = models.TextField(null=True)
+ authority_hrn = models.TextField()
+ created = models.DateTimeField(auto_now_add = True)