示例#1
0
class Advertiser(models.Model):
    name = models.CharField(_("Organization"), max_length=128)

    address_1 = models.CharField(_("Address"), max_length=128)
    address_2 = models.CharField(_("Address continued"), max_length=128, null=True, blank=True)

    city = models.CharField(_("City"), max_length=64)
    state = USStateField(_("State"), max_length=2)
    zip_code = models.CharField(_("ZIP code"), max_length=5)

    contact = models.CharField(_("Contact"), max_length=128, help_text="""
    Please enter your name or the contact person for the company.""""")
    position = models.CharField(_("Position"), max_length=128)
    telephone = PhoneNumberField(_("Phone"), max_length=10, help_text="Use the format: 800-555-1212")
    email = models.EmailField(_("Email"))

    approved = models.BooleanField(_("Approved"), default=False, help_text="""
    This advertiser has been verified by Lampoon staff.""")

    salesperson = models.ForeignKey(User, blank=True, null=True, limit_choices_to={'is_staff': True}, help_text="""
    This is the contact person on The Lampoon responsible for the client.""")


    def __unicode__(self):
        return self.name

    def address(self):
        if self.address_2:
            return "%s %s, %s, %s %s" % (self.address_1, self.address_2, self.city, self.state, self.zip_code)
        else:
            return "%s, %s, %s %s" % (self.address_1, self.city, self.state, self.zip_code)

    address.short_description = _("Mailing Address")


    @staticmethod
    def autocomplete_search_fields():
        return ("id__iexact", "name__icontains",)

    def has_add_permission(self, request):
        return True

    def has_delete_permission(self, request, obj=None):
        return request.user.is_superuser

    def has_change_permission(self, request, obj=None):
        if not request.user.is_superuser and \
                        obj is not None and \
                obj.approved and obj.salesperson != request.user:
            return False
        else:
            return True
示例#2
0
class FieldTripSite(models.Model):
    """ These sites are those that are great for field trips for 4th graders
    (and presumably other ages as well). Internally, this is known as the FICOR
    list. """

    # List of management agencies.
    AGENCY_CHOICES = (('USACE', 'US Army Corps of Engineers'),
                      ('BLM',
                       'Bureau of Land Management'), ('USBR',
                                                      'Bureau of Reclamation'),
                      ('NOAA',
                       'National Oceanic and Atmospheric Administration'),
                      ('NPS', 'National Park Service'),
                      ('FWS', 'U.S. Fish and Wildlife Service'),
                      ('FS', 'U.S. Forest Service'))

    name = models.CharField(max_length=256)
    agency = models.CharField(max_length=5, choices=AGENCY_CHOICES)
    phone = PhoneNumberField(null=True)
    phone_extension = models.IntegerField(null=True)
    city = models.CharField(max_length=128, null=True)
    state = USStateField(blank=False, null=False, db_index=True)
    website = models.URLField(max_length=512)
    slug = models.SlugField(unique=True, null=True)
    address_line_1 = models.CharField(max_length=256, null=True)
    zipcode = USZipCodeField(null=True)

    advance_reservation = models.BooleanField(
        default=False,
        help_text="If advance reservation for large groups is required.")

    update_timestamp = models.DateTimeField(auto_now=True)

    larger_groups = models.BooleanField(
        default=True,
        help_text="If the site can accomodate more than 35 4th graders.")

    best_visit_times = models.ManyToManyField(BestVisitTime)
    facilities = models.ManyToManyField(YouthFacility)

    def save(self, *args, **kwargs):
        """ Generate and save a slug when this object is saved for the first
        time. """

        if not self.id:
            name = self.name
            name = name.replace('National Wildlife Refuge', 'NWR')
            self.slug = slugify(self.agency + name)[:50]
        super(FieldTripSite, self).save(*args, **kwargs)

    class Meta:
        unique_together = ('name', 'agency')
示例#3
0
class ParentProfile(ModelSaveMixin, models.Model):
    user = models.OneToOneField(User, verbose_name=_("Parent's Name"))
    cell_phone = PhoneNumberField(verbose_name=_('Cell Phone'))
    home_phone = PhoneNumberField(verbose_name=_('Home Phone'),
                                  blank=True,
                                  null=True)
    work_phone = PhoneNumberField(verbose_name=_('Work Phone'),
                                  blank=True,
                                  null=True)
    is_membership_paid = models.BooleanField(verbose_name=_('Membership Paid'),
                                             default=False)
    gets_free_meal = models.BooleanField(verbose_name=_('Receives Free Meal'),
                                         default=False)
    gets_reduced_price_meal = models.BooleanField(
        verbose_name=_('Receives Reduced Price Meal'), default=False)

    def __str__(self):
        return "%s, %s" % (self.user.last_name, self.user.first_name)

    class Meta:
        verbose_name = _("Parent Profile")
        verbose_name_plural = _("Parent Profiles")
示例#4
0
class Buyer(models.Model):
    """
    Model representing the buyer of the mattress
    """
    full_name = models.CharField(max_length=128)
    email = models.EmailField()
    phone = PhoneNumberField()
    address = models.ForeignKey(
        'UsAddress', on_delete=models.SET_NULL, null=True)

    def __str__(self):
        """
        """
        return self.full_name
示例#5
0
class Recipient(Address):
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    phone_number = PhoneNumberField(blank=True, null=True)
    needs = models.ManyToManyField('needs.Need',
                                   through='needs.RecipientNeed',
                                   through_fields=('recipient', 'need'),
                                   related_name='recipients')

    def get_full_name(self):
        return '{} {}'.format(self.first_name, self.last_name)

    def __unicode__(self):
        return self.get_full_name()
示例#6
0
class UserProfile(models.Model):
    user = models.OneToOneField(User)
    role = models.CharField(max_length=120, choices=ROLES, default='customer')
    first_name = models.CharField(max_length=120, blank=True, null=True)
    last_name = models.CharField(max_length=120, blank=True, null=True)
    street_address = models.CharField(max_length=120, blank=True, null=True)
    city = models.CharField(max_length=120, blank=True, null=True)
    state = USStateField(blank=True, null=True)
    zipcode = USZipCodeField(blank=True, null=True)
    phone = PhoneNumberField(blank=True, null=True)
    email = models.EmailField(max_length=120, blank=True, null=True)

    def __unicode__(self):
        return str(self.user)
class EventParticipant(models.Model):
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255, blank=True)
    email = models.EmailField(blank=True)
    street_one = models.CharField(max_length=255, blank=True)
    street_two = models.CharField(max_length=255, blank=True)
    city = models.CharField(max_length=255, blank=True)
    state = USStateField(blank=True)
    zip_code = USZipCodeField(blank=True)
    telephone_number = PhoneNumberField(blank=True)
    event = models.ForeignKey(Event, null=True)

    def __str__(self):
        return f'{self.first_name} {self.last_name or ""} ({self.email or "[No Email Given]"})'
class Phone(models.Model):
    """
    Phone numbers of type.
    Attached to people and organizations.
    """
    number = PhoneNumberField(
        _('number'),
        null=False,
        blank=False
    )
    TYPES_CHOICES = (
        ('Mobile', _('Mobile')),
        ('Home', _('Home')),
        ('Work', _('Work')),
        ('Fax', _('Fax')),
    )
    type = models.CharField(
        _('type'),
        max_length=20,
        choices=TYPES_CHOICES,
        default=TYPES_CHOICES[0][0]
    )
    organization = models.ForeignKey(
        'Organization',
        verbose_name='organization',
        null=True,
        blank=True
    )
    person = models.ForeignKey(
        'Person',
        verbose_name='person',
        null=True,
        blank=True
    )
    date_added = models.DateTimeField(
        _('date added'),
        auto_now_add=True
    )
    date_modified = models.DateTimeField(
        _('date modified'),
        auto_now=True
    )

    def __unicode__(self):
        return u"%s | %s" % (self.number, self.type)

    class Meta:
        verbose_name = 'phone number'
        verbose_name_plural = 'phone numbers'
        app_label = 'resources'
示例#9
0
class Judge(models.Model):
    name = models.CharField(max_length=30, unique = True)
    rank = models.DecimalField(max_digits=4, decimal_places=2)
    schools = models.ManyToManyField(School)
    phone = PhoneNumberField(blank=True)
    provider = models.CharField(max_length=40, blank=True)
    def __unicode__(self):
        return self.name

    def delete(self):
        checkins = CheckIn.objects.filter(judge=self)
        for c in checkins:
            c.delete()
        super(Judge, self).delete()
示例#10
0
文件: models.py 项目: jMyles/WHAT
class TempContactInfo(models.Model):
    name = models.CharField(max_length=80, default="Full Name")
    organization = models.CharField(max_length=80,
                                    default="Organization (if any)",
                                    blank=True,
                                    null=True)
    email = models.EmailField(default="Email")
    phone = PhoneNumberField(default="Phone XXX-XXX-XXXX",
                             blank=True,
                             null=True)
    note = models.TextField(default="Notes", blank=True, null=True)

    def get_absolute_url(self):
        return '/mesh_summit_contact'
示例#11
0
class Profile(models.Model):
	user = models.OneToOneField(settings.AUTH_USER_MODEL)
	phone_number = PhoneNumberField(blank=True)
	phone_carrier = models.CharField(max_length=32, blank=True, choices=[(k, k) for k in sorted(CARRIERS.keys())])
	subscribe_death_notifications = models.BooleanField(default=False)
	subscribe_chatter_listhost = models.BooleanField(default=True)
	subscribe_zombies_listhost = models.BooleanField(default=True)

	def __unicode__(self):
		return self.user.get_full_name()

	@models.permalink
	def get_absolute_url(self):
		return ("users|profile",)
示例#12
0
class OSBUAdvisor(models.Model):
    objects = OSBUAdvisorManager()

    name = models.CharField(max_length=200, blank=True, null=True)
    email = models.EmailField(max_length=200, blank=True, null=True)
    phone = PhoneNumberField(blank=True, null=True)

    def natural_key(self):
        return (self.name, self.email, self.phone)

    def __str__(self):
        return "%s (%s, %s)" % (self.name, self.email, self.phone)

    class Meta:
        verbose_name = "OSBU Advisor"
示例#13
0
class Household(models.Model):
	survey = models.ForeignKey(Survey)
	address_1 = models.CharField(max_length=128, verbose_name=_('Address'), help_text=_(''))
	city = models.CharField(max_length=64, verbose_name=_('City'), help_text=_(''))
	county = models.CharField(max_length=100, verbose_name=_('County'), help_text=_(''))
	state = USStateField(max_length=100, verbose_name=_('State'), help_text=_(''))
	zip_code = USZipCodeField(max_length=5, verbose_name=_('Zip Code'), help_text=_(''))
	home_phone = PhoneNumberField(max_length=100, blank=True, verbose_name=_('Home Phone'), help_text=_('')) #blank ok only if head of household mobile_phone is not blank	
	type_of_household = models.CharField(max_length=20, choices=HOUSEHOLD_TYPES, verbose_name=_('Type of Household'), help_text=_(''))
	#type_of_household_other = models.CharField(max_length=40, verbose_name=_('Other'), help_text=_('')) #required if type_of_household = 'other'
	housing_type = models.CharField(max_length=20, choices=HOUSING_TYPES, verbose_name=_('Housing Type'), help_text=_(''))
	#housing_other = models.CharField(max_length=40, blank=True, verbose_name=_('Housing Other'), help_text=_('Other')) #required if housing = 'other' 
	assistance_snap = models.BooleanField(verbose_name=_('Household receives SNAP'), help_text=_(''))
	assistance_caa = models.BooleanField(verbose_name=_('Household receives assistance from other community agencies'), help_text=_(''))
	assistance_child_support = models.BooleanField(verbose_name=_('Household receives assistance for child support'), help_text=_(''))
示例#14
0
class Mountain(models.Model):

    # the important stuff
    name = models.CharField(max_length=50)
    abbr = models.CharField(max_length=5)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=25)
    state = USStateField(blank=False, default='NY')
    zip_code = models.CharField(max_length=5)

    phone = PhoneNumberField()

    # optional useless factoids
    vertical = models.PositiveIntegerField(null=True, blank=True)
    num_lifts = models.PositiveIntegerField(null=True, blank=True)
    num_trails = models.PositiveIntegerField(null=True, blank=True)
    ski_acre = models.PositiveIntegerField(null=True, blank=True)

    # bookkeeping timestamps
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)

    def is_open(self):
        slots = MountainScheduleSlot.objects.filter(mountain=self)
        #print 'slots:', slots
        if slots:
            """
            print "Are they open?"
            for slot in slots:
                #print slot
                print slot.is_free()
            any_open = [slot.is_free() for slot in slots]
            print any_open
            return sum(any_open) # if any are true, they will sum to true
            """
            return True
        else:
            return True

    def todays_checkins(self):
        checkins = MountainCheckin.objects.filter(mountain=self)
        todays = [
            checkin for checkin in checkins if checkin.is_on_day(date.today())
        ]
        return todays

    def __unicode__(self):
        return self.name
示例#15
0
class ContactRequest(models.Model):
    first_name = models.CharField('First Name', max_length=500)
    last_name = models.CharField('Last Name', max_length=500)
    email = models.EmailField('Email')
    phone = PhoneNumberField()
    company_name = models.CharField('Company Name', max_length=500,
                                    blank=True, null=True)
    title = models.CharField('Title', max_length=500, blank=True, null=True)
    date = models.DateTimeField(auto_now=True)

    class Meta:
        verbose_name = 'Contact Request'
        verbose_name_plural = 'Contact Requests'

    def __unicode__(self):
        return self.email
示例#16
0
class Customer(models.Model):
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=20)
    email = models.CharField(max_length=254)
    phone_number = PhoneNumberField()
    address_line_1 = models.CharField(max_length=200)
    address_line_2 = models.CharField(max_length=200, blank=True)
    city = models.CharField(max_length=200)
    state = USStateField()
    zipcode = USZipCodeField()
    subscribed = models.BooleanField(
        default=True, help_text="Click to Subscribe to Our Monthly Newsletter")
    special_notes = models.TextField(default='', blank=True)

    def __unicode__(self):
        return self.phone_number
示例#17
0
class NonMemberContact(CompanyContact):
    """ Subclass of CompanyContact. Overrides the instance methods to work
    without MemberProfiles.
    """

    name = models.CharField(max_length=256, verbose_name='Full name')
    email = models.EmailField(max_length=254, blank=True, null=True)
    phone = PhoneNumberField(blank=True, null=True)
    short_bio = models.TextField(blank=True, null=True)
    initiating_chapter = models.ForeignKey('mig_main.TBPChapter',
                                           blank=True,
                                           null=True)

    def get_email(self):
        """ Returns the email for the contact """
        return self.email

    def get_phone(self):
        """ Returns the phone number for the contact """
        return self.phone

    def get_name(self):
        """ Returns the name (first last) for the contact """
        return self.name

    def get_bio(self):
        """ Returns the bio for the contact or None if empty """
        return self.short_bio

    def is_member(self):
        """Returns True if the contact is a MI-G member."""
        if self.initiating_chapter:
            return (self.initiating_chapter.state == 'MI'
                    and self.initiating_chapter.letter == 'G')
        return False

    def is_member_other_chapter(self):
        """Returns True if the contact is a TBP but not a MI-G member."""
        if self.is_member():
            return False
        if self.initiating_chapter:
            return True
        return False

    def get_init_chapter(self):
        """Returns the contact's initiating TBP chapter, if any."""
        return self.initiating_chapter
示例#18
0
class Profile(models.Model):
    about = models.TextField(
        blank=True
    )
    town_city = models.CharField(
        max_length=50,
        blank=True,
        verbose_name='Town/City'
    )
    state = USStateField(
        blank=True
    )
    phone_number = PhoneNumberField(
        blank=True
    )
    profile_image = models.ImageField(
        blank=True,
        upload_to='users/profile_images'
    )
    gender = models.CharField(
        max_length=20,
        blank=True,
        choices=(
            ('male', 'Male'),
            ('female', 'Female'),
        )
    )

    # relationships
    user = models.OneToOneField(User)

    # timestamps
    created = models.DateTimeField(
        auto_now_add=True
    )
    updated = models.DateTimeField(
        auto_now=True
    )

    def get_location(self):
        return ', '.join([self.town_city, self.state])

    def get_about_as_html(self):
        return bleach.clean(
            markdown.markdown(self.about),
            tags=bleach.ALLOWED_TAGS + ['p']
    )
示例#19
0
class Resource(models.Model):
    title = models.CharField(max_length=512)
    short_description = models.CharField(max_length=2048,
                                         blank=True,
                                         null=True)
    description = models.TextField(blank=True, null=True)
    link = models.URLField(max_length=512, blank=True, null=True)
    phone_number = PhoneNumberField(blank=True, null=True)
    email = models.EmailField(blank=True, null=True)
    position = models.IntegerField(null=True, blank=True)

    class Meta:
        verbose_name = "Mental Health Resource"
        verbose_name_plural = "Mental Health Resources"

    def __str__(self):
        return self.title
示例#20
0
class PhoneNumber(models.Model):
    number = PhoneNumberField()
    ext = models.CharField(max_length=10, blank=True, null=True)
    type = models.CharField(max_length=2,
                            choices=(('H', 'Home'), ('C', 'Cell'),
                                     ('W', 'Work'), ('O', 'Other')),
                            blank=True)
    note = models.CharField(max_length=255, blank=True)

    class Meta:
        abstract = True

    def full_number(self):
        if self.ext:
            return self.number + " x" + self.ext
        else:
            return self.number
示例#21
0
class HouseholdMember(models.Model):
    household = models.ForeignKey(Household)
    first_name = models.CharField(
        error_messages={'required': 'Please let us know what to call you!'},
        max_length=100,
        verbose_name=_('First Name'),
        help_text=_(''))
    last_name = models.CharField(max_length=100,
                                 verbose_name=_('Last Name'),
                                 help_text=_(''))
    ssn = USSocialSecurityNumberField(verbose_name=_('Social Security Number'),
                                      help_text=_(''))
    mobile_phone = PhoneNumberField(
        max_length=100,
        blank=True,
        verbose_name=_('Mobile Phone'),
        help_text=_(''))  #blank ok only if household home_phone is not blank
示例#22
0
class User(AbstractUser):
    photo = models.ImageField(upload_to='photos',
                              default='photos/no-image.jpg',
                              blank=True,
                              null=True)
    date_of_birth = models.DateField(blank=True, null=True)
    phone_number = PhoneNumberField(blank=True, null=True)

    def __unicode__(self):
        return self.get_full_name()

    @property
    def photo_url(self):
        try:
            return self.photo.url
        except ValueError:
            return None
示例#23
0
class Order(models.Model):
    recipient_name = models.CharField(max_length=100)
    address = models.CharField(max_length=100)
    city = models.CharField(max_length=100)
    state = USStateField()
    zip = USZipCodeField()
    phone = PhoneNumberField()

    product = models.ForeignKey(Product)
    quantity = models.IntegerField()

    @property
    def total(self):
        return self.quantity * self.product.value

    def __unicode__(self):
        return "{} ordered by {}".format(self.product.name,
                                         self.recipient_name)
示例#24
0
class OnlineRetailer(models.Model):
    """
    Model representing online retailer such as https://casper.com/
    """
    name = models.CharField(max_length=128,
                            help_text="Enter name of the retailer such as Casper")
    web = models.CharField(max_length=128,
                           help_text="Enter web address of the retailer such as casper.com")
    description = models.TextField(
        max_length=1024, help_text="Enter a brief description of the retailer")
    email = models.EmailField()
    phone = PhoneNumberField()

    def __str__(self):
        """
        String for representing the Model object (in Admin site etc.)
        """
        return self.name
示例#25
0
class SupplierCompany(models.Model):
    name = models.CharField(max_length=60, unique=True, verbose_name="nombre")
    supplier_type = models.ForeignKey(SupplierType,
                                      verbose_name="tipo de suplidor")
    address = models.CharField(max_length=100, verbose_name="dirección")
    country = models.ForeignKey(Country, default=1, verbose_name="país")
    region = models.ForeignKey(Region, verbose_name="región", default=1)
    province = ChainedForeignKey(Province,
                                 chained_field="region",
                                 chained_model_field="region",
                                 verbose_name="provincia",
                                 default=29)
    town = ChainedForeignKey(Town,
                             chained_field="province",
                             chained_model_field="province",
                             verbose_name="municipio",
                             default=203)
    phone_number = PhoneNumberField(verbose_name="número de teléfono",
                                    help_text='999-999-9999')
    email = models.EmailField(null=True, blank=True, verbose_name="e-mail")
    company_logo = ImageField(upload_to='suppliers_logos',
                              null=True,
                              blank=True,
                              verbose_name="logo de la empresa")

    class Meta:
        verbose_name = "Empresa Suplidora"
        verbose_name_plural = "Empresas Suplidoras"
        db_table = "suppliers_company"
        ordering = ['name']

    def __str__(self):
        return self.name

    def image_tag(self):
        if self.company_logo:
            return u'<img src="%s" width="100" height="75" />' \
                % self.company_logo.url
        else:
            return ' '

    image_tag.short_description = 'Logo'
    image_tag.allow_tags = True
    image_tag.admin_order_field = 'name'
示例#26
0
class ProjectReport(models.Model):
    name = models.CharField(max_length=128, verbose_name='Project Name')
    term = models.ForeignKey('mig_main.AcademicTerm')
    relation_to_TBP_objectives = models.TextField()

    is_new_event = models.BooleanField(default=False)

    organizing_hours = models.PositiveSmallIntegerField()
    planning_start_date = models.DateField()
    TARGET_AUDIENCE_CHOICES = [('COMM', 'Community'), ('UNIV', 'University'),
                               ('PROF', 'Profession'), ('CHAP', 'Chapter'),
                               ('HON', 'Honors/Awards')]
    target_audience = models.CharField(max_length=4,
                                       choices=TARGET_AUDIENCE_CHOICES,
                                       default='COMM')

    #Contact info:
    contact_name = models.CharField(max_length=75, blank=True)
    contact_email = models.EmailField(max_length=254, blank=True)
    contact_phone_number = PhoneNumberField(blank=True)
    contact_title = models.CharField(max_length=75, blank=True)
    other_info = models.CharField(max_length=150, blank=True)
    other_group = models.CharField(max_length=60, blank=True)

    general_comments = models.TextField()

    items = models.TextField()

    cost = models.PositiveIntegerField()

    problems_encountered = models.TextField()

    recommendations = models.TextField()
    evaluations_and_results = models.TextField()

    one_to_five = [('1', '1:Best'), ('2', '2'), ('3', '3'), ('4', '4'),
                   ('5', '5: Worst')]
    rating = models.CharField(max_length=1, choices=one_to_five, default='3')
    best_part = models.TextField()
    opportunity_to_improve = models.TextField()
    recommend_continuing = models.BooleanField()

    def __unicode__(self):
        return self.name
示例#27
0
class company_contact(models.Model):
    company = models.ForeignKey('title_company', on_delete=models.CASCADE)
    title = models.CharField(blank=True, max_length=255)
    first_name = models.CharField(blank=False, max_length=255)
    last_name = models.CharField(blank=False, max_length=255)
    phone_number = PhoneNumberField()
    email_address = models.CharField(max_length=254)
    address = models.ForeignKey('mailing_address',
                                blank=True,
                                null=True,
                                on_delete=models.CASCADE)

    class Meta:
        verbose_name = "company contacts"
        verbose_name_plural = "company contacts"

    def __str__(self):
        return '{0} {1} ({2})'.format(self.last_name, self.first_name,
                                      self.company)
示例#28
0
class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete = models.CASCADE, related_name="profile", unique=True)
    email = models.EmailField()
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    phone_number = PhoneNumberField(null=True)

    #Address
    address1 = models.CharField(max_length=100, null=True)
    address2 = models.CharField(max_length=100, blank=True, null=True)
    city = models.CharField(max_length=50, null=True)
    state = models.CharField(max_length=50, null=True)
    zip_code = USZipCodeField(null=True)

    #Confidential
    ssn = USSocialSecurityNumberField(null=True)

    def __unicode__(self):
        return str(self.email)
示例#29
0
class Contact(models.Model):
    """The contact information added to a search so that Agengies
    get an email.
    """
    created_at = models.DateTimeField(
        auto_now_add=True, verbose_name=_('Contact Date and Time'))
    full_name = models.CharField(max_length=255,
                                 verbose_name=_('Full Name'))
    phone_number = PhoneNumberField(verbose_name=_('Phone Number'))
    email = models.EmailField(verbose_name=_('Email'))
    address = models.CharField(max_length=255,
                               verbose_name=_('Postal Address'))
    city = models.CharField(max_length=255,
                            verbose_name=_('City / Town'))
    state = USStateField(verbose_name=_('State or Province'))
    postal_code = USZipCodeField(verbose_name=_('Postal Code'))
    incorporated = models.BooleanField(
        verbose_name=_('Are You Incorporated?'),
        choices=YES_NO,
        blank=False,
        default=False,
    )
    company = models.CharField(max_length=255,
                               verbose_name=_('Legal Business Name'))
    company_municipality = models.CharField(
                            max_length=255,
                            verbose_name=_('Company Municipality')
                        )
    company_state = USStateField(verbose_name=_('Company State or Province'))
    company_postal_code = USZipCodeField(verbose_name=_('Company Postal Code'))
    search = models.ForeignKey(OpportunitySearch,
                               verbose_name=_('Related Search'))
    opportunities = models.ManyToManyField(
                                Opportunity,
                                verbose_name=_('Related Opportunities')
                                )

    def __str__(self):
        return self.full_name

    class Meta:
        verbose_name = _('Search Contact')
        verbose_name_plural = _('Search Contacts')
示例#30
0
class TextReminder(Reminder):
    """Text Reminder Class"""
    TEXT_CARRIERS = (
        ('att', 'AT&T'),
        ('sprint', 'Sprint'),
        ('tmobile', 'T-Mobile'),
        ('verizon', 'Verizon'),
        ('mobi', 'Mobi PCS'),
        ('virgin', 'Virgin Mobile'),
        ('alltel', "AllTel"),
    )
    TEXT_EMAILS = {
        "att": "txt.att.net",
        "verizon": "vtext.com",
        "tmobile": "tmomail.net",
        "sprint": "messaging.sprintpcs.com",
        "mobi": "mobipcs.net",
        "virgin": "vmobl.com",
        "alltel": "message.alltel.com",
    }
    text_number = PhoneNumberField(help_text="The phone number.")
    text_carrier = models.CharField(max_length=50,
                                    choices=TEXT_CARRIERS,
                                    null=True,
                                    blank=True,
                                    help_text="The phone carrier.")

    def send(self):
        """
        Sends a reminder text to the user via an email.
        """
        number = self.text_number.replace("-", "")
        email = number + "@" + self.TEXT_EMAILS[self.text_carrier]
        if not self.sent:
            message = render_to_string("email/activity_text_reminder.txt", {
                "activity": self.action,
                "user": self.user,
            })

            UserNotification.create_email_notification(email, "", message)
            self.sent = True
            self.save()