Advertisement
Guest User

Untitled

a guest
Oct 14th, 2017
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.39 KB | None | 0 0
  1. {% load account socialaccount %}
  2. {% load i18n %}
  3. {% load static %}
  4. {% load staticfiles %}
  5.  
  6. <form id="register-form" role="form" method="POST" action="{% url 'student-register' %}">
  7. {% csrf_token %}
  8.  
  9. <br>
  10.  
  11. <div class="form-group">
  12. <img src="{% static 'img/logo_dark_100.png' %}"/>
  13. </div>
  14.  
  15. <div class="form-group">
  16. <label class="control-label">First Name:</label>
  17. <input type="text" id="register-name" name="first_name" class="form-control">
  18. </div>
  19. <div class="form-group">
  20. <label class="control-label">Surname:</label>
  21. <input type="text" id="register-last_name" name="last_name" class="form-control">
  22. </div>
  23.  
  24. <div class="form-group">
  25. <label class="control-label">Email:</label>
  26. <input type="email" id="register-email" name="email" class="form-control">
  27. </div>
  28.  
  29. <div class="form-group">
  30. <label class="control-label">{% trans "Password:" %}</label>
  31. <input type="password" id="register-password" name="password1" class="form-control">
  32. </div>
  33.  
  34. <div class="form-group">
  35. <label class="control-label">{% trans "Repeat Password: " %}</label>
  36. <input type="password" id="register-password2" name="password2" class="form-control">
  37. </div>
  38.  
  39. <p class="text-muted text-danger" id="register-passwd-error" style="display: none;">{% trans "The passwords are not equal" %}</p>
  40.  
  41. <div class="form-group">
  42. <label class="checkbox-inline"><input type="checkbox" name="remember" checked>{% trans "Remember me" %}</label>
  43. </div>
  44.  
  45. <div class="form-group">
  46. <button type="submit" id="register-submit-button" class="btn btn-primary">{% trans "Register" %}</button>
  47. </div>
  48.  
  49. </form>
  50.  
  51. class RegisterFormStudent(SignupForm):
  52. def custom_signup(self, request, user):
  53. user.save()
  54. # Adding user to students group
  55. if Group.objects.all().filter(name='students').exists():
  56. group_student = Group.objects.get(name='students')
  57. print(group_student)
  58. group_student.user_set.add(user)
  59.  
  60. # Creating a Student profile
  61. student = ProfileStudent()
  62. student.user = user
  63. student.first_name = user.first_name
  64. student.last_name = user.last_name
  65. student.email = user.email
  66. student.is_new = True
  67. student.save()
  68.  
  69. # Creating a Student Wallet:
  70. wallet = Wallet()
  71. wallet.student = student
  72. wallet.credits = 0
  73. wallet.save()
  74.  
  75. # Madrill
  76. user_student_sign_up.send(sender=self.__class__, user=user)
  77. # Send Welcome Email Using Mandrill
  78. return user
  79.  
  80. class RegisterStudentView(SignupView):
  81. template_name = 'landing_page/_register_form.html'
  82. form_class = RegisterFormStudent
  83. redirect_field_name = 'Submit'
  84. view_name = 'student_register'
  85. success_url = None
  86.  
  87. def get_context_data(self, **kwargs):
  88. ret = super(RegisterStudentView, self).get_context_data(**kwargs)
  89. ret.update(self.kwargs)
  90. return ret
  91.  
  92. register_student = RegisterStudentView.as_view()
  93.  
  94. class ProfileStudent(models.Model):
  95. user = models.OneToOneField(app_settings.USER_MODEL,)
  96. created = models.DateTimeField(auto_now=False, auto_now_add=True, blank = False, null = False, verbose_name = 'Creation Date')
  97. email = models.EmailField(max_length=254, blank=True, null=True)
  98. first_name = models.CharField(max_length = 400, null=True, blank = True, verbose_name = 'First Name')
  99. last_name = models.CharField(max_length = 400, null=True, blank = True, verbose_name = 'Last Name')
  100. phone_number = models.CharField(max_length = 12, null=True, blank = True, verbose_name = 'Phone Number')
  101. city = models.ForeignKey(City, null=True, blank = True, verbose_name = 'City')
  102. adress = models.CharField(max_length = 400, null=True, blank = True, verbose_name = 'Address')
  103. date_of_birth = models.DateField(auto_now=False, auto_now_add=False, blank = True, null = True, verbose_name='Date of birth')
  104. GENDER = (
  105. ('male','Male'),
  106. ('female','Female'),
  107. )
  108. gender = models.CharField(max_length=20, choices=GENDER, blank = True, null=True, verbose_name = 'Gender' )
  109. language = models.ManyToManyField(Language)
  110. student_type = models.ForeignKey(StudentType, null = True, blank = True, verbose_name='Type')
  111. profile_image = models.ImageField(upload_to=st_profile, blank = True, null = True, default='/perfil.png')
  112. is_embassador = models.BooleanField(default=False)
  113. is_new = models.BooleanField(default=True)
  114. # True if user from the old web:
  115. legacy = models.BooleanField(default=False, blank=True)
  116. legacy_id = models.IntegerField(default=0, null=True, blank=True)
  117. # Used to invite other users: created at signup
  118. invite_code = models.ForeignKey(PromotionalCode, default=None, blank=True, null=True)
  119.  
  120. class Meta:
  121. verbose_name_plural = 'Students'
  122. verbose_name = 'Student'
  123.  
  124. def __unicode__(self):
  125. return "%s" % (self.user.email)
  126.  
  127.  
  128. def save(self, *args, **kwargs):
  129. if not self.pk:
  130. invite_code = PromotionalCode()
  131. invite_code.code = uuid.uuid4().hex[:6].upper()
  132. try:
  133. invite_code.pc_type = PromotionalCodeType.objects.all().filter(pk=1).get()
  134. except:
  135. invite_code.pc_type = None
  136. invite_code.save()
  137. self.invite_code = invite_code
  138. super(ProfileStudent, self).save(*args, **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement