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, )
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
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
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)
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'
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']
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)
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
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
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}>'
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
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'
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
class Meta: model = User nid = models.CharField(unique=True) fields = [ 'username', 'email', 'nid', 'phone', 'password1', 'password2', ]
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'
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
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})'
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)
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)
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)
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)
class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) sms = models.CharField(max_length=100)
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()
from django.contrib.auth.models import Group, models Group.add_to_class( 'description', models.CharField(max_length=180, null=True, blank=True, verbose_name='Описание'))