Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.db import models
  4. from django.contrib.auth.models import User
  5. from django.contrib.auth.models import AbstractBaseUser
  6. from django.contrib.auth.models import BaseUserManager, PermissionsMixin
  7.  
  8.  
  9. class UserIdeaManager(BaseUserManager):
  10.  
  11. def create_user(self, email, password=None, **kwargs):
  12. if not email:
  13. raise ValueError('Users must have a valid email address.')
  14.  
  15. useridea = self.model(
  16. email=self.normalize_email(email),
  17. )
  18.  
  19. useridea.set_password(password)
  20. useridea.save()
  21.  
  22. return useridea
  23.  
  24. def create_superuser(self, email, password, **kwargs):
  25. useridea = self.create_user(email, password, **kwargs)
  26. useridea.is_admin = True
  27. useridea.is_staff = True
  28. useridea.is_superuser = True
  29. useridea.save()
  30.  
  31. return useridea
  32.  
  33.  
  34. class UserIdea(AbstractBaseUser, PermissionsMixin):
  35. email = models.EmailField(unique=True)
  36. first_name = models.CharField(max_length=50, blank=True)
  37. last_name = models.CharField(max_length=50, blank=True)
  38. phone = models.CharField(max_length=50, blank=True)
  39. commune = models.CharField(max_length=50, blank=True)
  40. age = models.PositiveIntegerField(default=0, blank=True)
  41. is_student = models.BooleanField(default=False)
  42. career = models.CharField(max_length=60, blank=True)
  43. university = models.CharField(max_length=60, blank=True)
  44. is_active = models.BooleanField(default=True)
  45. is_admin = models.BooleanField(default=False)
  46. is_staff = models.BooleanField(default=False)
  47.  
  48. objects = UserIdeaManager()
  49.  
  50. USERNAME_FIELD = 'email'
  51. # REQUIRED_FIELDS = ['username']
  52.  
  53. def __unicode__(self):
  54. return self.email
  55.  
  56. def get_full_name(self):
  57. return ' '.join([self.first_name, self.last_name])
  58.  
  59. def get_short_name(self):
  60. return self.first_name
  61.  
  62.  
  63. class Category(models.Model):
  64. cat_name = models.TextField()
  65.  
  66. def __unicode__(self):
  67. return self.cat_name
  68.  
  69.  
  70. class Idea(models.Model):
  71. title = models.TextField(max_length=200)
  72. description = models.TextField(max_length=400)
  73. url_video = models.URLField(max_length=500, blank=False)
  74. num_vote = models.PositiveIntegerField(default=0)
  75. user = models.ForeignKey(UserIdea)
  76. category = models.ForeignKey(Category)
  77. main_image = models.ImageField(upload_to='imagenes_principales/',
  78. default='', blank=False)
  79.  
  80. def __unicode__(self):
  81. return self.title
  82.  
  83.  
  84. class Vote(models.Model):
  85. user = models.ForeignKey(UserIdea)
  86. idea = models.ForeignKey(Idea)
  87.  
  88. class Meta:
  89. unique_together = (('user', 'idea'), )
  90.  
  91. def __unicode__(self):
  92. return u'{} votó {}'.format(
  93. self.user.username, self.idea.titulo)
  94.  
  95.  
  96. class Commentary(models.Model):
  97. user = models.ForeignKey(UserIdea)
  98. idea = models.ForeignKey(Idea)
  99. commentary = models.TextField(max_length=500)
  100.  
  101. def __unicode__(self):
  102. return u'{} Comentó {}'.format(
  103. self.user.username, self.idea.titulo, self.commentary)
  104.  
  105.  
  106. class Image(models.Model):
  107. idea = models.ForeignKey(Idea)
  108. image = models.ImageField(upload_to='imagenes_ideas/',
  109. default='', blank=True)
  110.  
  111. def __unicode__(self):
  112. return u'{} Tiene {}'.format(
  113. self.idea.title, self.image)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement