Example #1
0
class Attorney(models.Model):
    date_created = models.DateTimeField(
        help_text="The time when this item was created",
        auto_now_add=True,
        db_index=True,
    )
    date_modified = models.DateTimeField(
        help_text="The last moment when the item was modified.",
        auto_now=True,
        db_index=True,
    )
    date_sourced = models.DateField(
        help_text="The latest date on the source docket that populated this "
                  "information. When information is in conflict use the "
                  "latest data.",
        db_index=True,
    )
    organizations = models.ManyToManyField(
        'AttorneyOrganization',
        help_text="The organizations that the attorney is affiliated with",
        related_name="attorneys",
        through="AttorneyOrganizationAssociation",
    )
    name = models.TextField(
        help_text="The name of the attorney.",
        db_index=True,
    )
    contact_raw = models.TextField(
        help_text="The raw contents of the contact field",
        db_index=True,
    )
    phone = local_models.PhoneNumberField(
        help_text="The phone number of the attorney.",
    )
    fax = local_models.PhoneNumberField(
        help_text="The fax number of the attorney.",
    )
    email = models.EmailField(
        help_text="The email address of the attorney.",
    )

    class Meta:
        unique_together = ('name', 'contact_raw')
        permissions = (
            ("has_recap_api_access", "Can work with RECAP API"),
        )

    def __unicode__(self):
        return u'%s: %s' % (self.pk, self.name)
Example #2
0
class Student(Contact):
    parent = models.ForeignKey(Parent,
                               on_delete=models.CASCADE,
                               null=True,
                               blank=True)
    hostHome = models.ForeignKey(HostHome,
                                 on_delete=models.CASCADE,
                                 null=True,
                                 blank=True)
    friendName = models.CharField(max_length=80, default='')
    grade = models.CharField(max_length=2, choices=GRADE_CHOICES, default='?')
    gender = models.CharField(max_length=2,
                              choices=(('M', 'Male'), ('F', 'Female')),
                              default='M')
    dateRegistered = models.DateField(null=True, blank=True)
    amountPaid = models.DecimalField(max_digits=4,
                                     decimal_places=2,
                                     default=0.00)
    churchMember = models.BooleanField(default=False)
    medicalForm = models.BooleanField(default=False)
    tshirtSize = models.CharField(max_length=16,
                                  choices=SHIRT_SIZES,
                                  default='M')
    parentPhone = usmodels.PhoneNumberField(default='')
    parentEmail = models.EmailField(default='')
    allergy = models.CharField(max_length=80, default='')

    def __str__(self):
        return '%s %s, %s %s' % (self.firstName, self.lastName, self.grade,
                                 self.gender)
Example #3
0
class User(User):
    class Meta:
        app_label = 'toolshare'

    REMAINDER_FREQ_TYPE = (
        ('D', 'Every day'),
        ('W', 'Once a week'),
        ('M', 'Once a month'),
        ('N', 'Never')
    )
    address_line = models.CharField(max_length=100, null=False)
    city = models.CharField(max_length=20, null=False)
    state = us_models.USStateField(null=False)
    zipcode = models.IntegerField(max_length=5, null=False)
    phone = us_models.PhoneNumberField(null=True, blank=True)
    email_remainder_freq = models.CharField(max_length=1, choices=REMAINDER_FREQ_TYPE, default='D')
    pickup_location = models.CharField(max_length=100, null=False)
    share_zone = models.ForeignKey(ShareZone)

    def __str__(self):
        return '{first} {last}'.format(first=self.first_name,
                                       last=self.last_name)

    def _pending_requests(self):
        reservation = Reservation.objects.filter(lender_id=self.id, status__in=['RP','P'])
        return reservation.count()

    pending_requests = property(_pending_requests)
Example #4
0
class UserProfile(models.Model):
    """Profile for a regular user."""
    user = models.OneToOneField(User, primary_key=True)
    date_of_birth = models.DateField(verbose_name='Date of Birth',
                                     blank=True,
                                     null=True)
    profile_picture = models.URLField(max_length=1000, blank=True, null=True)

    phone = us_models.PhoneNumberField(verbose_name='Phone',
                                       blank=True,
                                       null=True)
    country = models.CharField(max_length=255, blank=True, null=True)
    region = models.CharField(max_length=255, blank=True, null=True)
Example #5
0
class Contact(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    firstName = models.CharField(max_length=30, default='')
    lastName = models.CharField(max_length=30, default='')
    phone = usmodels.PhoneNumberField(default='')
    email = models.EmailField(default='')
    street = models.CharField(max_length=255, default='')
    city = models.CharField(max_length=90, default='Fairview')
    state = usmodels.USStateField(default='TX')
    zipCode = usmodels.USZipCodeField(default='75069')
    '''
    This model will then not be used to create any database table.
    Instead, when it is used as a base class for other models, its
    fields will be added to those of the child class.
    '''
    class Meta:
        abstract = True

    def __unicode__(self):
        return '%s, %s' % (self.lastName, self.firstName)
Example #6
0
class LadderProfile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name='_profile')
    phone_number = us_models.PhoneNumberField("Phone Number", max_length=255,
                                              help_text=u"US Phone Number (XXX-XXX-XXXX)",
                                              unique=True)

    max_allowed_matches = models.PositiveIntegerField(blank=True, default=2)

    #
    #  Permission Shortcuts
    #
    @property
    def can_offer_ticket(self):
        if self.user.ticket_requests.is_active().exists():
            return False
        elif self.user.ticket_requests.is_reserved().exists():
            return False
        elif self.has_reached_max_allowed_matches:
            return False
        return True

    @property
    def has_reached_max_allowed_matches(self):
        active_offer_count = self.user.ticket_offers.is_active().count()
        reserved_offer_count = self.user.ticket_offers.is_reserved().count()
        fulfilled_offer_count = self.user.ticket_offers.is_fulfilled().count()

        total_matches = active_offer_count + reserved_offer_count + fulfilled_offer_count
        return total_matches >= self.max_allowed_matches

    @property
    def can_request_ticket(self):
        if self.user.ticket_requests.is_active().exists():
            return False
        elif self.user.ticket_requests.is_reserved().exists():
            return False
        elif self.user.ticket_offers.is_active().exists():
            return False
        elif self.user.ticket_offers.is_reserved().exists():
            return False
        return True
Example #7
0
 class PhoneNumberModel(Model):
     nl_phone_number = nl_models.NLPhoneNumberField()
     au_phone_number = au_models.AUPhoneNumberField()
     us_phone_number = us_models.PhoneNumberField()
     pk_phone_number = pk_models.PKPhoneNumberField()
Example #8
0
class Account(AbstractBaseUser):
    """Returns a new Account object inherited from AbstractBaseUser.

    AbstractBaseUser: The parent class of users

    Note: email, businessname, zipcode, city, state, phone
          are required
    """

    email = models.EmailField(max_length=255, unique=True)
    businessname = models.CharField(max_length=35,
                                    blank=False,
                                    default='buname')
    spaceId = models.CharField(max_length=10,
                               unique=True,
                               blank=True,
                               null=True)
    zipcode = usmodels.USZipCodeField(blank=False, default='00000')
    city = models.CharField(max_length=50, blank=False, default='--------')
    state = usmodels.USStateField(choices=US_STATES,
                                  blank=False,
                                  default='--------')
    phone = usmodels.PhoneNumberField(blank=False, default='000-000-0000')

    SHIRT_SIZES = (
        ('1', 'Silver'),
        ('2', 'Gold'),
        ('3', 'Platinum'),
    )
    tierlist = models.CharField(blank=True,
                                null=True,
                                max_length=1,
                                choices=SHIRT_SIZES)

    is_admin = models.BooleanField(default=False)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    is_active = models.BooleanField(default=False)

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    objects = AccountManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['businessname', 'zipcode', 'city', 'state', 'phone']

    def __unicode__(self):
        return self.email

    def get_full_name(self):
        return ' '.join([self.email, self.businessname])

    def get_short_name(self):
        return self.email

    def has_module_perms(self, app_label):
        return self.is_admin

    def has_perm(self, perm, obj=None):
        return self.is_admin
Example #9
0
class User(AbstractBaseUser, PermissionsMixin):
    """
    An email based user model
    """
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=30, blank=True)
    email = models.EmailField(_('email address'), unique=True)
    title = models.CharField(max_length=100, blank=True, null=True)
    is_staff = models.BooleanField(
        _('staff status'),
        default=False,
        help_text=_('Designates whether the user can log into this admin '
                    'site.'))
    is_active = models.BooleanField(
        _('active'),
        default=True,
        help_text=_('Designates whether this user should be treated as '
                    'active. Unselect this instead of deleting accounts.'))
    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)

    # Profile data
    primary_phone = localflavor_models.PhoneNumberField(_('Primary Phone'),
                                                        max_length=160,
                                                        blank=True)
    other_phone = localflavor_models.PhoneNumberField(_('Other Phone'),
                                                      max_length=160,
                                                      blank=True)
    fax = localflavor_models.PhoneNumberField(_('Fax'),
                                              max_length=160,
                                              blank=True)
    company_name = models.CharField(_('Company Name'),
                                    max_length=160,
                                    blank=True)
    address = models.CharField(_('Address'), max_length=160, blank=True)
    address2 = models.CharField(_('Address 2'), max_length=160, blank=True)
    city = models.CharField(_('City'), max_length=160, blank=True)
    state = localflavor_models.USStateField(_('State/Province'),
                                            max_length=160,
                                            blank=True)
    code = localflavor_models.USZipCodeField(_('Zip Code'),
                                             max_length=160,
                                             blank=True)

    objects = UserManager()

    USERNAME_FIELD = 'email'

    class Meta:
        verbose_name = _('user')
        verbose_name_plural = _('users')

    def __unicode__(self):
        full_name = self.get_full_name()
        return full_name if full_name else self.email

    def save(self, *args, **kwargs):
        """
        Always save the email as lowercase. Helps identifying unique email
        addresses.
        The de jure standard is that the local component of email addresses is
        case sensitive however the de facto standard is that they are not. In
        practice what happens is user confusion over why an email address
        entered with camel casing one day does not match an email address
        entered in different casing another day.
        """
        self.email = self.email.lower()
        return super(User, self).save(*args, **kwargs)

    def get_username(self):
        """
        Returns the email address
        Satisifies API needs of other libraries.
        """
        return self.email

    def get_full_name(self):
        """
        Returns the first_name plus the last_name, with a space in between.
        """
        full_name = '%s %s' % (self.first_name, self.last_name)
        return full_name.strip()

    def get_short_name(self):
        """Returns the short name for the user."""
        return self.first_name

    def email_user(self, subject, message, from_email=None, **kwargs):
        """Sends an email to this User."""
        send_mail(subject, message, from_email, [self.email], **kwargs)