Exemple #1
0
    class Organization(models.Model):
        """
    Organizations handle contained sets of setups (user, group, connectors...).

    An external user create an account and gets attached to its single user organization and becomes its admin. The organization can
    be later converted to a multi user organization (if the domain name is owned by the first user).

    An organization admin is not a Hue admin. The later is the true super user and has access to the server logs and metrics.
    """
        name = models.CharField(max_length=200,
                                help_text=_t("The name of the organization"),
                                unique=True)
        uuid = models.CharField(default=uuid_default,
                                max_length=36,
                                unique=True)
        domain = models.CharField(
            max_length=200,
            help_text=_t(
                "The domain name of the organization, e.g. gethue.com"),
            unique=True)
        customer_id = models.CharField(_t('Customer id'),
                                       max_length=128,
                                       default=None,
                                       null=True)
        is_active = models.BooleanField(default=True)
        is_multi_user = models.BooleanField(default=True)

        objects = OrganizationManager()

        def __str__(self):
            return self.name or self.domain

        def natural_key(self):
            return (self.name, )
Exemple #2
0
class OrganizationUser(AbstractUser):
    """User model in a multi tenant setup."""

    username = None
    email = models.EmailField(_t('Email address'), unique=True)
    token = models.CharField(_t('Token'), max_length=128, default=None, null=True)
    customer_id = models.CharField(_t('Customer id'), max_length=128, default=None, null=True)
    organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
    is_admin = models.BooleanField(default=False)
    # settings are in UserProfile

    groups = models.ManyToManyField(
        OrganizationGroup,
        verbose_name=_t('groups'),
        blank=True,
        help_text=_t(
            'The groups this user belongs to. A user will get all permissions '
            'granted to each of their groups.'
        ),
        related_name="user_set",
        related_query_name="user",
    )

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    objects = UserManager()

    @property
    def username(self):
      return self.email

    @username.setter
    def username(self, value):
      pass
Exemple #3
0
class Organization(models.Model):
  name = models.CharField(max_length=200, help_text=_t("The name of the organization"))
  uuid = models.CharField(default=uuid_default, max_length=36, db_index=True)
  domain = models.CharField(max_length=200, help_text=_t("The domain name of the organization, e.g. gethue.com"))
  is_active = models.BooleanField(default=True)

  objects = OrganizationManager()

  def __str__(self):
    return self.name
Exemple #4
0
class Profile(models.Model):
    user = models.OneToOneField(User, related_name='profile')
    location = models.CharField(max_length=20, blank=True, null=True)
    contact = models.CharField(max_length=12, blank=True, null=True)
    picture = models.ImageField(upload_to='profile-pictures/',
                                blank=True,
                                null=True)

    def __str__(self):
        return '%s' % (self.user)
Exemple #5
0
class Person(models.Model):
    first_name = models.CharField(max_length=100)
    second_name = models.CharField(max_length=100, null=True, blank=True)
    last_name = models.CharField(max_length=100)
    second_last_name = models.CharField(max_length=100, null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True, null=True)
    updated_at = models.DateTimeField(auto_now=True, null=True)

    class Meta:
        default_permissions = ()
        db_table = "users_person"
        verbose_name = 'Persona'
        verbose_name_plural = 'Personas'
Exemple #6
0
class Image(TimeStampedModel):
    file = models.ImageField()
    location = models.CharField(max_length=140)
    caption = models.TextField()
    creator = models.ForeignKey(
        user_model.User,
        on_delete=models.CASCADE,
        null=True,
        related_name='images'
    )
    tags = TaggableManager()

    @property
    def like_count(self):
        return self.likes.all().count()

    @property
    def comment_count(self):
        return self.comments.all().count()

    @property
    def natural_time(self):
        return naturaltime(self.created_at)

    def __str__(self):
        return "{location} - {caption}".format(
            location=self.location, caption=self.caption
        )

    class Meta:
        ordering = ['-created_at']
Exemple #7
0
    class OrganizationGroup(models.Model):
        name = models.CharField(_t('name'), max_length=80, unique=False)
        organization = models.ForeignKey(Organization)

        permissions = models.ManyToManyField(
            'HuePermission',
            verbose_name=_t('permissions'),
            blank=True,
        )
        # Could also have a set of Roles at some point.

        objects = OrganizationGroupManager()

        def __init__(self, *args, **kwargs):
            if not kwargs.get('organization'):
                kwargs['organization'] = get_user_request_organization()

            super(OrganizationGroup, self).__init__(*args, **kwargs)

        class Meta:
            verbose_name = _t('organization group')
            verbose_name_plural = _t('organization groups')
            unique_together = (
                'name',
                'organization',
            )

        def __str__(self):
            return '%s @ %s' % (self.name, self.organization)
Exemple #8
0
class Post(models.Model):
    title = models.CharField(max_length=100, default='sample title')
    content = models.TextField()
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    date_posted = models.DateTimeField(default=datetime.now)

    def __str__(self):
        return self.title
Exemple #9
0
class FriendsGroup(models.Model):
    name = models.CharField(max_length=255, blank=True, null=True)
    host = models.ForeignKey(User,
                             related_name='hosts',
                             on_delete=models.CASCADE)
    users = models.ManyToManyField(User, null=True, blank=True)

    def __str__(self):
        return self.name
Exemple #10
0
class UserAddress(AnonymizerModel):
    street = models.TextField(max_length=128, null=True, blank=True)
    city = models.CharField(max_length=64, null=True, blank=True)

    class AnonymizerMeta:
        anonymizer_fields = ['street']

    def __str__(self):
        return f'<UserAddress PK:{self.pk} | Street: {self.street} | City: {self.city}>'
Exemple #11
0
class Category(models.Model):
    title = models.CharField(max_length=100, blank=True, default='')

    class Meta:
        verbose_name_plural = "categories"
        ordering = ('title',)

    def __str__(self):
        return self.title
Exemple #12
0
class Professor(AbstractBaseUser):
    nome = models.CharField(max_length=120)
    ra = models.IntegerField(unique=True)
    password = models.TextField()
    status = models.BooleanField(default=True)
    email = models.CharField(max_length=80, blank=True, null=True)
    perfil = models.CharField(max_length=1, blank=True, default='P')
    celular = models.CharField(max_length=11, blank=True, null=True)

    USERNAME_FIELD = 'ra'
    REQUIRED_FIELDS = ['nome', 'email']

    def __str__(self):
        return self.nome + '(' + str(self.ra) + ')'

    class Meta:
        managed = False
        db_table = 'professor'
Exemple #13
0
class Organization(models.Model):
    name = models.CharField(max_length=200,
                            help_text=_t("The name of the organization"),
                            unique=True)
    uuid = models.CharField(default=uuid_default, max_length=36, unique=True)
    domain = models.CharField(
        max_length=200,
        help_text=_t("The domain name of the organization, e.g. gethue.com"),
        unique=True)
    customer_id = models.CharField(_t('Customer id'),
                                   max_length=128,
                                   default=None,
                                   null=True)
    is_active = models.BooleanField(default=True)
    is_multi_user = models.BooleanField(default=True)

    objects = OrganizationManager()

    def __str__(self):
        return self.name
Exemple #14
0
 class Meta:
     model = User
     nid = models.CharField(unique=True)
     fields = [
         'username',
         'email',
         'nid',
         'phone',
         'password1',
         'password2',
     ]
Exemple #15
0
class Usuario(AbstractBaseUser):
    ra = models.IntegerField('RA', unique=True)
    nome = models.CharField(max_length=120)
    email = models.CharField(max_length=80)
    password = models.TextField()
    status = models.BooleanField('Status', default=True)
    perfil = models.CharField('Perfil', max_length=1, default='C')

    # criando qual o campo de identificação do 'USUARIO'
    USERNAME_FIELD = 'ra'

    #colocando com campo de inserção obrigatorio no 'BANCO'
    REQUIRED_FIELDS = [
        'nome',
        'email',
    ]

    objects = UsuarioManager()

    # criando a função de apresentação do 'USUARIO'
    def __str__(self):
        return self.nome

    # criando as funcoes de como ira mostra o nome do 'USUARIO' nos Templates

    #  Funções 'OBRIGATORIAS pelo DJANGO
    def get_full_name(self):
        return self.nome

    def get_short_name(self):
        return self.nome

    def has_perm(self, perm, obj=None):
        return True

    def has_module_perms(self, app_label):
        return True

    @property
    def is_staff(self):
        return self.perfil == 'C'
Exemple #16
0
class Customer(models.Model):
    first_name = models.CharField(max_length=32)
    last_name = models.CharField(max_length=32)
    email = models.EmailField(null=True, blank=True)
    phone = models.CharField(max_length=32, null=True, blank=True)
    profile_key = models.CharField(max_length=32, null=True, blank=True)
    address = models.CharField(max_length=32, null=True, blank=True)
    rewards_points = models.IntegerField(null=True, blank=True)
    account_number = models.CharField(max_length=64, blank=True)
    notes = models.TextField(null=True, blank=True)
    archived = models.BooleanField(default=False)
    created = models.DateTimeField(editable=False)
    city = models.CharField(verbose_name=_('City'),
                            max_length=58,
                            null=True,
                            blank=True)
    state = models.CharField(verbose_name=_('State'),
                             max_length=2,
                             choices=STATE_CHOICES,
                             null=True,
                             blank=True)
    zipcode = models.CharField(verbose_name=_('Zip code'),
                               max_length=8,
                               null=True,
                               blank=True)
    group = models.ForeignKey(CustomerGroup,
                              blank=True,
                              null=True,
                              related_name='taskin_group')

    def __unicode__(self):
        return u'%s %s' % (self.first_name, self.last_name)

    def save(self, *args, **kwargs):
        """
        On save, update timestamps
        """
        if not self.id:
            self.created = datetime.today()
        return super(Customer, self).save(*args, **kwargs)

    def get_full_name(self):
        return self.first_name + ' ' + self.last_name
Exemple #17
0
class Article(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    title = models.CharField(max_length=100, blank=False, default='')
    content = models.TextField()

    category_id = models.ForeignKey(Category, related_name='article_cat', on_delete=models.CASCADE)
    created_by_user_id = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='created_by_user_id',
                                           on_delete=models.SET_NULL, blank=True, null=True)

    class Meta:
        ordering = ('-updated_at', )

    def __str__(self):
        return self.title
class Doctor(
        CreatedDateMixin,
        UpdatedDateMixin,
        models.Model,
):
    GENDER_CHOICES = (
        (1, "Male"),
        (2, "Female"),
    )

    user = models.OneToOneField(User, on_delete=models.CASCADE)
    surname = models.CharField(max_length=50)
    gender = models.PositiveSmallIntegerField(choices=GENDER_CHOICES)

    def __str__(self):
        return f'Doctor(id={self.id}, surname={self.surname}, email={self.user.email})'
class Patient(models.Model):
    GENDER_CHOICES = (
        (1, "Male"),
        (2, "Female"),
    )

    user = models.OneToOneField(User, on_delete=models.CASCADE)
    surname = models.CharField(max_length=50)
    age = models.PositiveIntegerField(
        validators=[MinValueValidator(0), MaxValueValidator(100)]
    )
    gender = models.PositiveSmallIntegerField(choices=GENDER_CHOICES)
    number_of_teeth = models.PositiveIntegerField(
        validators=[MinValueValidator(0), MaxValueValidator(32)]
    )
    number_of_surgeries = models.PositiveIntegerField()

    def __str__(self):
        return f'Patient(id={self.id}, email={self.email})'
Exemple #20
0
class OrganizationGroup(models.Model):
  name = models.CharField(_t('name'), max_length=80, unique=False)
  organization = models.ForeignKey(Organization)

  permissions = models.ManyToManyField(
      'HuePermission',
      verbose_name=_t('permissions'),
      blank=True,
  )

  objects = OrganizationGroupManager()

  class Meta:
    verbose_name = _t('organization group')
    verbose_name_plural = _t('organization groups')
    unique_together = ('name', 'organization',)

  def __str__(self):
    return '%s %s' % (self.organization, self.name)
Exemple #21
0
class PersonalInformation(models.Model):
    user = models.OneToOneField(User,
                                related_name='personal_information',
                                on_delete=models.CASCADE)
    place_birth = models.CharField(max_length=255, null=True, blank=True)
    birth_date = models.DateField(null=True, blank=True)
    has_children = models.BooleanField(null=True, blank=True, default=None)
    number_of_children = models.IntegerField(null=True,
                                             blank=True,
                                             default=None)
    gender = models.ForeignKey(Gender,
                               related_name='gender',
                               null=True,
                               blank=True,
                               on_delete=models.CASCADE)
    marital_status = models.ForeignKey(MaritalStatus, on_delete=models.CASCADE)
    marital_status_description = models.TextField(null=True, blank=True)
    height = models.FloatField(null=True, blank=True)
    weight = models.FloatField(null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True, null=True)
    updated_at = models.DateTimeField(auto_now=True, null=True)
Exemple #22
0
class Supplier(models.Model):
    supplier = models.CharField(verbose_name=_('Supplier Name'), max_length=32)
    default_markup = models.PositiveIntegerField(
        verbose_name=_('Default Markup'), default=0, max_length=255)
    description = models.TextField(blank=True, verbose_name=_('Description'))
    company = models.CharField(verbose_name=_('Company'), max_length=32)
    first_name = models.CharField(verbose_name=_('First Name'), max_length=32)
    last_name = models.CharField(verbose_name=_('Last Name'), max_length=32)
    archived = models.BooleanField(default=False)
    created = models.DateTimeField(editable=False)
    phone = models.CharField(verbose_name=_('Phone'),
                             max_length=60,
                             null=True,
                             blank=True)
    mobile = models.CharField(verbose_name=_('Mobile Phone'),
                              max_length=60,
                              null=True,
                              blank=True)
    fax = models.CharField(verbose_name=_('Fax'),
                           max_length=60,
                           null=True,
                           blank=True)
    email = models.EmailField(unique=True,
                              verbose_name=_('Email'),
                              null=False,
                              blank=False)
    website = models.URLField(verbose_name=_('Website'), null=True, blank=True)
    street = models.CharField(verbose_name=_('Street'),
                              max_length=32,
                              null=True,
                              blank=True)
    suburb = models.CharField(verbose_name=_('Suburb'),
                              max_length=32,
                              null=True,
                              blank=True)
    city = models.CharField(verbose_name=_('City'),
                            max_length=32,
                            null=True,
                            blank=True)
    postcode = models.CharField(verbose_name=_('Post Code'),
                                max_length=8,
                                null=True,
                                blank=True)
    state = models.CharField(verbose_name=_('State'),
                             max_length=2,
                             choices=STATE_CHOICES,
                             null=True,
                             blank=True)
    country = CountryField(blank_label='(select a country)')

    def __unicode__(self):
        return u'%s %s' % (self.first_name, self.last_name)

    def save(self, *args, **kwargs):
        """
        On save, update timestamps
        """
        if not self.id:
            self.created = datetime.today()
        return super(Supplier, self).save(*args, **kwargs)
Exemple #23
0
class Employee(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(unique=True,
                              verbose_name=_('Email'),
                              null=False,
                              blank=False)
    photo = models.ImageField(upload_to='employee_photo/',
                              verbose_name=_('P'),
                              blank=True,
                              default='employee_photo/def.jpg')
    name = models.CharField(verbose_name=_('Name'), max_length=32)
    address = models.CharField(verbose_name=_('Address'),
                               max_length=32,
                               null=True,
                               blank=True)
    address2 = models.CharField(verbose_name=_("Address2"),
                                null=True,
                                blank=True,
                                max_length=32)
    city = models.CharField(verbose_name=_('City'),
                            max_length=32,
                            null=True,
                            blank=True)
    state = models.CharField(verbose_name=_('State'),
                             max_length=2,
                             choices=STATE_CHOICES,
                             null=True,
                             blank=True)
    zipcode = models.CharField(verbose_name=_('Zip code'),
                               max_length=8,
                               null=True,
                               blank=True)
    phone = models.CharField(verbose_name=_('Phone'),
                             max_length=60,
                             null=True,
                             blank=True)
    pin = models.IntegerField(verbose_name=_('Pin'), unique=True, null=True)
    role = models.IntegerField(verbose_name=_('Role'), choices=ROLES)
    vein_string = models.TextField(blank=True, verbose_name=_('Vein String'))
    hourly_rate = models.DecimalField(blank=True,
                                      null=True,
                                      verbose_name=_('Hourly Rate'),
                                      decimal_places=2,
                                      max_digits=5)
    archived = models.BooleanField(default=False)
    store = models.ForeignKey(Store,
                              verbose_name='Store',
                              blank=True,
                              null=True)

    USERNAME_FIELD = 'email'

    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=False)
    created = models.DateTimeField(editable=False)

    objects = EmployeeManager()

    def __unicode__(self):
        return u"%s" % self.name

    def get_full_name(self):
        return self.name

    def get_short_name(self):
        return self.name

    def check_is_owner(self):
        return self.role == ROLES[0][0]

    def return_id(self):
        return self.id

    def save(self, *args, **kwargs):
        ''' On save, update timestamps '''
        if self.photo:
            try:
                self.photo = resize_image(self.photo,
                                          newsize=EMPLOYEE_PHOTO_SIZE)
            except:
                logger.exception("Error resizing image for product %s" %
                                 self.pk)
                pass
        if not self.id:
            self.created = datetime.today()
        return super(Employee, self).save(*args, **kwargs)
Exemple #24
0
class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    sms = models.CharField(max_length=100)
Exemple #25
0
class Organization(models.Model):
    name = models.CharField(max_length=200,
                            help_text=_t("The name of the organization"))
    is_active = models.BooleanField(default=True)

    objects = OrganizationManager()
Exemple #26
0
from django.contrib.auth.models import Group, models

Group.add_to_class(
    'description',
    models.CharField(max_length=180,
                     null=True,
                     blank=True,
                     verbose_name='Описание'))