summaryrefslogtreecommitdiff
path: root/website/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'website/models.py')
-rw-r--r--website/models.py149
1 files changed, 149 insertions, 0 deletions
diff --git a/website/models.py b/website/models.py
new file mode 100644
index 0000000..e714f7c
--- /dev/null
+++ b/website/models.py
@@ -0,0 +1,149 @@
+from django.db import models
+from django.contrib.auth.models import User
+
+from social.apps.django_app.default.models import UserSocialAuth
+from Scipy2019 import settings
+from django.core.validators import RegexValidator
+import os
+from datetime import datetime
+
+position_choices = (
+ ("student", "Student"),
+ ("faculty", "Faculty"),
+ ("industry_people", "Industry People"),
+)
+
+gender = (
+ ('Male', 'Male'),
+ ('Female', 'Female'),
+ ('Other', 'Other'),
+)
+
+source = (
+ ("Poster", "Poster"),
+ ("FOSSEE website", "FOSSEE website"),
+ ("Google", "Google"),
+ ("Social Media", "Social Media"),
+ ("From other College", "From other College"),
+)
+
+title = (
+ ("Mr", "Mr."),
+ ("Miss", "Ms."),
+ ("Professor", "Prof."),
+ ("Doctor", "Dr."),
+)
+
+attending_job_fair = (
+ ("Yes", 1),
+ ("No", 0),
+)
+
+req_accomodation = (
+ ("Yes", 1),
+ ("No", 0),
+)
+
+t_shirt_size = (
+ ("M", "M"),
+ ("L", "L"),
+ ("XL", "XL"),
+ ("XXL", "XXL"),
+)
+
+attendee_type_choices = (
+ ("Student-750", "Student (Rs 750)"),
+ ("Faculty-1000", "Faculty (Rs 1,000)"),
+ ("Industry participant-2000", "Industry participant (Rs 2,000)"),
+)
+
+ticket_type = (
+
+ ("Regular registration", "Regular registration"),
+ ("Late registration", "Late registration")
+
+)
+
+want_tshirt = (
+ ("No", "No"),
+ ("Yes", "Yes"),
+)
+
+reg_purpose = (
+ ("scipy-2018", 1),
+)
+
+
+def get_document_dir(instance, filename):
+ # ename, eext = instance.user.email.split("@")
+ fname, fext = os.path.splitext(filename)
+ # print "----------------->",instance.user
+ return '%s/attachment/%s/%s.%s' % (instance.user, instance.proposal_type, fname+'_'+str(instance.user), fext)
+
+
+class Proposal(models.Model):
+ user = models.ForeignKey(User, on_delete=models.CASCADE,)
+ name_of_author1 = models.CharField(max_length=200, default='None')
+ name_of_author2 = models.CharField(max_length=200, default='None')
+ about_the_authors = models.TextField(max_length=500)
+ email = models.CharField(max_length=128)
+ phone = models.CharField(max_length=20)
+ title = models.CharField(max_length=250)
+ abstract = models.TextField(max_length=700)
+ prerequisite = models.CharField(max_length=750)
+ duration = models.CharField(max_length=100)
+ attachment = models.FileField(upload_to=get_document_dir)
+ date_created = models.DateTimeField(auto_now_add=True)
+ date_modified = models.DateTimeField(auto_now=True)
+ status = models.CharField(max_length=100, default='Pending', editable=True)
+ proposal_type = models.CharField(max_length=100)
+ tags = models.CharField(max_length=250)
+ open_to_share = models.CharField(max_length=2, default=1)
+ terms_and_conditions = models.BooleanField(default= 'True')
+
+
+class Ratings(models.Model):
+ proposal = models.ForeignKey(Proposal, on_delete=models.CASCADE,)
+ user = models.ForeignKey(User, on_delete=models.CASCADE,)
+ rating = models.CharField(max_length=700)
+
+
+class Comments(models.Model):
+ proposal = models.ForeignKey(Proposal, on_delete=models.CASCADE,)
+ user = models.ForeignKey(User, on_delete=models.CASCADE,)
+ comment = models.CharField(max_length=700)
+ # rate = models.CharField(max_length =100)
+
+# profile module
+
+
+class Profile(models.Model):
+ """Profile for users"""
+
+ user = models.OneToOneField(User, on_delete=models.CASCADE)
+ title = models.CharField(max_length=32, blank=True, choices=title)
+ institute = models.CharField(max_length=150)
+ phone_number = models.CharField(
+ max_length=10,
+ validators=[RegexValidator(
+ regex=r'^.{10}$', message=(
+ "Phone number must be entered \
+ in the format: '9999999999'.\
+ Up to 10 digits allowed.")
+ )], null=False)
+ position = models.CharField(max_length=32, choices=position_choices,
+ default='student',
+ help_text='Selected catagoery ID shold be required')
+ how_did_you_hear_about_us = models.CharField(
+ max_length=255, blank=True, choices=source)
+ is_email_verified = models.BooleanField(default=False)
+ activation_key = models.CharField(max_length=255, blank=True, null=True)
+ key_expiry_time = models.DateTimeField(blank=True, null=True)
+
+ def __str__(self):
+ return u"id: {0}| {1} {2} | {3} ".format(
+ self.user.id,
+ self.user.first_name,
+ self.user.last_name,
+ self.user.email
+ )