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
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')
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")
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
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()
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'
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()
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'
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",)
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"
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=_(''))
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
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
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
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
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'] )
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
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
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
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
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)
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
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'
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
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)
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)
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')
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()