class Person(models.Model): name = models.CharField(max_length=100) address1 = AddressField() address2 = AddressField(related_name='+', blank=True, null=True) email = models.EmailField() verified = models.BooleanField(default=False) phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.") phone_number = models.CharField(validators=[phone_regex], blank=True, max_length=15) # validators should be a list class Meta: abstract = True
class Profile(models.Model): """Profile data for experts and non-experts.""" GENDER = ( ('m', 'male'), ('f', 'female'), ) EMPTY_SPACE = '' DEFAULT_DATE = datetime.now() # personal details # user = models.OneToOneField('auth.User', primary_key=True) first_name = models.CharField("person's first name", max_length=30, default=EMPTY_SPACE) middle_name = models.CharField("person's middle name", max_length=30, blank=True) family_name = models.CharField("person's family name", max_length=30, default=EMPTY_SPACE) gender = models.CharField(max_length=1, choices=GENDER, default='m') title = models.CharField(max_length=64, blank=True) date_of_birth = models.DateField( default=EMPTY_SPACE, help_text="Please use the following format: <em>YYYY-MM-DD</em>.") city_of_birth = models.CharField(max_length=30, default=EMPTY_SPACE) country_of_birth = models.CharField(max_length=30, default=EMPTY_SPACE) citizenship = models.CharField(max_length=256, default=EMPTY_SPACE) passport_number = models.SlugField(max_length=9, unique=True, default=EMPTY_SPACE) # contact details # mail_address = models.EmailField() phone_number = models.CharField(max_length=30, unique=True, default=EMPTY_SPACE) work_phone_number = models.CharField(max_length=30, default=EMPTY_SPACE) home_phone_number = models.CharField(max_length=30, blank=True) current_address = AddressField(default='') permanent_address = AddressField(related_name='+', blank=True) last_modified = models.DateTimeField(auto_now=True) member_since = models.DateField("date of registration", auto_now_add=True) def __str__(self): return self.first_name + self.middle_name + self.family_name
class Location(models.Model): """Model definition for Location.""" SCHOOL = 'S' CLASS = 'C' HOME = 'H' WORK = 'W' TYPE_CHOICES = ( (SCHOOL, 'School'), (CLASS, 'Class'), (HOME, 'Home'), (WORK, 'Work'), ) address = AddressField(on_delete=models.CASCADE, ) location_type = models.CharField( db_column="type", choices=TYPE_CHOICES, default=HOME, max_length=1, ) class Meta: """Meta definition for Location.""" verbose_name = 'Location' verbose_name_plural = 'Locations' def __str__(self): """Unicode representation of Location.""" location_type = dict(self.TYPE_CHOICES).get(self.location_type) return f'({location_type}) {self.address}'
class Business(models.Model): name = models.CharField(max_length=250) address = AddressField(null=True) business_image = models.CharField(max_length=1000, blank=True) def __unicode__(self): return self.name + ' | ' + str(self.address)
class CarpetaFamiliar(models.Model): OPCIONES_TIPO_FAMILIA = Choices( ('nuclear', 'Nuclear'), ('nuclear_ampliada', 'Nuclear Ampliada'), ('binuclear', 'Binuclear'), ('monoparental', 'Monoparental'), ('extensa','Extensa'), ('unipersonal','Unipersonal'), ('equivalentes', 'Equivalentes Familiares') ) direccion = AddressField(null=True, on_delete=models.SET_NULL) tipo_familia = models.CharField(max_length=50, choices=OPCIONES_TIPO_FAMILIA) apellido_principal = models.CharField(max_length=100) def __str__(self): return 'Familia {0.apellido_principal} ({0.direccion})'.format(self) @property def jefe_familia(self): try: return self.miembros.filter(jefe_familia=True)[0] except IndexError: return None class Meta: verbose_name = "Carpeta familiar" verbose_name_plural = "Carpetas familiares"
class Profile (models.Model): StdImage=models.ImageField(upload_to='profile/',blank=True,null=True) FirstName=models.CharField(max_length=50) LastName=models.CharField(max_length=50) StdID=models.AutoField() DateOfBirth=models.DateField(auto_now=False) currentAge=models.DecimalField(max_digits=5,decimal_places=2) Gender=GenderField() contry=contryFiled() cityStreet=models.CharField(max_length=50) PastalCode=models.DecimalField(max_digits=5,decimal_places=2) Eimal=models.CharField(max_length=50) PhonNum=models.DecimalField(max_digits=5,decimal_places=2) SecondaryRate=models.DecimalField(max_digits=5,decimal_places=2) MotherTongue=models.CharField(max_length=50) PaymentMethod=models.CharField(max_length=50) JoinDate=models.DateTimeField(auto_now=False) Massge=models.TextField(max_length=1000) address1=AdressField() address2=AddressField(related_name='+',blank=True,null=True)
class Topic(models.Model): SCOPE_CHOICES = [ (u'local', u'Local'), (u'national', u'National'), (u'worldwide', u'Worldwide'), ] title = models.CharField(max_length=512) article_link = models.TextField(validators=[URLValidator()]) created_by = models.ForeignKey(CustomUser) created_on = models.DateTimeField(auto_now_add=True) rating = RatingField(can_change_vote=True) tags = TaggableManager() image = models.ImageField(upload_to='static', max_length=512, blank=True, null=True) image_url = models.URLField(max_length=512) scope = models.CharField( choices=SCOPE_CHOICES, max_length=9, ) address = AddressField(null=True) def __str__(self): return str(self.title)
class Hub(models.Model): date_created = models.DateTimeField(auto_now_add=True) name = models.CharField(max_length=100, default='') address = AddressField() def __str__(self): return "Adress id %s" % (self.id, )
class Listing(models.Model): """ listing model """ # meta info user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, null=True) address = AddressField(null=True) price_per_hour = models.IntegerField(validators=[MinValueValidator(0)]) price_per_day = models.IntegerField(validators=[MinValueValidator(0)]) price_per_month = models.IntegerField(validators=[MinValueValidator(0)]) # django storages, images_url = models.CharField(max_length=250) description = models.TextField() max_guests = models.IntegerField(validators=[MinValueValidator(0)]) rating = models.IntegerField( validators=[MinValueValidator(0), MaxValueValidator(5)], default=5) title = models.CharField(max_length=200) location = models.CharField(max_length=100, null=False) listing_type = models.CharField(max_length=20, choices=TYPE_CHOICES, null=False, default="backyard") created_date = models.DateTimeField(default=timezone.now) def is_available(self, start, end): """ filter out dates before timezone.now check if start,end overlaps with any booking for listing return Boolean """ overlap_bookings = self.booking_set.filter( date_time_range__overlap=DateTimeTZRange(start, end)) return len(overlap_bookings) == 0 def __str__(self): return f"Listing {self.id}: {self.title} in {self.location}"
class Contact_Card(models.Model): """ This represents a person or organization that could be contacted. The `details` property is meant as a freeform data structure to hold information that can't fit into the model. It might sometimes have redundant information, or it could have additional phone numbers. """ details = models.JSONField(verbose_name="Contact Card", null=True) first_name = models.CharField(_("First name"), max_length=255) last_name = models.CharField(_("Last name"), max_length=255) email = models.EmailField(null=True) office_phone = PhoneNumberField(null=True) cell_phone = PhoneNumberField(null=True) address = AddressField(null=True) account = models.ForeignKey(User, related_name="account", on_delete=models.SET_NULL, null=True) panels = [ MultiFieldPanel([ FieldRowPanel([FieldPanel('first_name'), FieldPanel('last_name')]) ], heading="Personal Details"), MultiFieldPanel([ FieldPanel('email'), FieldRowPanel( [FieldPanel('office_phone'), FieldPanel('cell_phone')]), MapFieldPanel('address') ], heading="Contact"), FieldPanel('account') ]
class Farm(models.Model): """A farm where plants are grown hydroponically. Contains all hydroponic systems and plants that are controlled by an on-site coordinator""" id = models.UUIDField( primary_key=True, default=uuid.uuid4, editable=False, help_text="The UUID to identify the hydroponic system.", ) name = models.CharField(max_length=30, help_text="The name of the farm.") owner = models.ForeignKey( User, on_delete=models.SET_NULL, null=True, help_text="The user that owns the farm.", ) address = AddressField( on_delete=models.SET_NULL, null=True, help_text="The postal address and the coordinates of the farm", ) created_at = models.DateTimeField( auto_now_add=True, help_text="The date and time when the farm was first created.", ) modified_at = models.DateTimeField( auto_now=True, help_text="The date and time when the farm was last updated.") def __str__(self): return self.name
class AccountModel(AbstractBaseUser): email = models.EmailField(verbose_name='email', max_length=254, unique=True) password = models.CharField(max_length=254) date_joined = models.DateTimeField(verbose_name='Date Joined', auto_now_add=True) last_login = models.DateTimeField(verbose_name='Last Active', auto_now=True) is_admin = models.BooleanField(default=False) is_staff = models.BooleanField(default=False) is_active = models.BooleanField(default=True) objects = AccountManagerModel() first_name = models.CharField(max_length=30, default='') last_name = models.CharField(max_length=30, default='') phone_number = models.CharField(max_length=10, blank=True, null=True) date_of_birth = models.DateField(blank=True, null=True) address = AddressField(on_delete=models.CASCADE, blank=True, null=True) USERNAME_FIELD = 'email' EMAIL_FIELD = 'email' REQUIRED_FIELDS = [''] def __str__(self): return f'{self.email}' def formatted_phone(self): return "(%s%s%s) %s%s%s-%s%s%s%s" % tuple(self.phone_number) def has_perm(self, perm, obj=None): return self.is_admin def has_module_perms(self, app_label): return True
class Doctor(models.Model): # User contains first name, last name, email, pw user = models.ForeignKey(User) phone_number = PhoneNumberField() address = AddressField() def __str__(self): return "{} {}".format(self.user.first_name, self.user.last_name)
class Location(General): def __str__(self): return str(self.address) address = AddressField(blank=True, null=True, on_delete=models.CASCADE) def get_cname(self): class_name = 'Location' return class_name
class Venue(models.Model): name = models.CharField(max_length=120) description = models.TextField(null=True, blank=True) capacity = models.IntegerField(null=True, blank=True) address = AddressField() def __str__(self): return "{} {}".format(self.name, self.description)
class Migration(migrations.Migration): dependencies = [ ('whereabouts', '0000_initial'), ] operations = [ migrations.CreateModel( name='Place', fields=[ ('id', model_utils.fields.UUIDField(default=uuid4, editable=False, primary_key=True, serialize=False)), ('created', model_utils.fields.AutoCreatedField( default=django.utils.timezone.now, editable=False, verbose_name='created')), ('modified', model_utils.fields.AutoLastModifiedField( default=django.utils.timezone.now, editable=False, verbose_name='modified')), ('is_removed', models.BooleanField(default=False)), ('address', AddressField(blank=True, null=True, on_delete=models.deletion.SET_NULL, related_name='place', to='address.Address')), # ('content_type', models.ForeignKey(on_delete=models.CASCADE, to='contenttypes.ContentType', null=False, blank=False)), ('display_order', models.SmallIntegerField(blank=False, default=0, null=False)), # ('object_id', models.CharField(max_length=36, null=False, blank=False)), # ('address_type', models.CharField(max_length=20, default='street', blank=True, null=True, help_text='mailing, remote or street address')), # ('address_extra', models.CharField(max_length=50, blank=True, null=True, help_text='i.e. Apartment number')), # ('start', models.DateField(blank=True, null=True, help_text='optional, moved in date')), # ('finish', models.DateField(blank=True, null=True, help_text='optional, moved out date')), # ('display_name', models.CharField(db_index=True, max_length=50, default='main', blank=False, null=False, help_text='main, resident, etc (main will be displayed first)')), # ('infos', JSONField(blank=True, default=Utility.default_infos, help_text="please keep {} here even there's no data", null=True)), ], options={ 'db_table': 'whereabouts_places', # 'ordering': ('content_type', 'object_id', 'display_order',), }, bases=(models.Model, attendees.persons.models.utility.Utility), ), # migrations.AddConstraint( # model_name='place', # constraint=models.UniqueConstraint(fields=('content_type', 'object_id', 'address', 'address_extra'), condition=models.Q(is_removed=False), name='address_object'), # ), # migrations.AddIndex( # model_name='place', # index=GinIndex(fields=['infos'], name='place_infos_gin'), # ), ]
class Coop(models.Model): objects = CoopManager() name = models.CharField(max_length=250, null=False) types = models.ManyToManyField(CoopType) address = AddressField(on_delete=models.CASCADE) enabled = models.BooleanField(default=True, null=False) phone = PhoneNumberField(null=True) email = models.EmailField(null=True) web_site = models.TextField()
class Volunteer(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) picture = models.ImageField(blank=True) intro = models.TextField(max_length=300, blank=True) phone = PhoneField(help_text='Phone Number') address = AddressField(on_delete=models.CASCADE, ) def __str__(self): return self.user.email
class Guest(models.Model): event = models.ForeignKey(Event, on_delete=models.CASCADE, null=True) name = models.CharField(max_length=60, blank=False) age = models.IntegerField(default=0) address = AddressField() phone = models.CharField(max_length=60) # change to phone field def __str__(self): return self.name
class User(AbstractUser): # First Name and Last Name do not cover name patterns # around the globe. name = CharField(_("Name of User"), blank=True, max_length=255) address = AddressField(on_delete=SET_NULL, null=True) def get_absolute_url(self): return reverse("users:detail", kwargs={"username": self.username})
class Course(models.Model): name = models.CharField(max_length=200) location = AddressField(null=True) par = models.IntegerField(default=56) slope = models.IntegerField(default=0) holes = models.IntegerField(default=18) def __str__(self): return self.name class Meta: ordering = ['name']
class Meta(UserCreationForm): address = AddressField() model = CustomUser fields = ( 'church_name', 'address', 'phone_number', 'email', 'password1', 'password2', )
class CentroDeSalud(models.Model): nombre = models.CharField(max_length=290) institucion = models.ForeignKey( Institucion, on_delete=models.SET_NULL, null=True, blank=True, related_name='centros' ) codigo_hpgd = models.CharField( max_length=30, null=True, blank=True, help_text=( 'Código de Hospital Público de Gestión Descentralizada. ' 'Requerido para recupero' ) ) descripcion = HTMLField(null=True, blank=True) horario_de_atencion = models.TextField(null=True, blank=True) direccion = AddressField(null=True, blank=True, on_delete=models.SET_NULL) telefonos = models.TextField(null=True, blank=True) ubicacion = models.PointField(null=True, blank=True) def __str__(self): return self.nombre def as_json(self): return { 'nombre': self.nombre, 'descripcion': self.descripcion, 'direccion': str(self.direccion), } def as_anexo2_json(self): """ devuelve el JSON compatible con la librería Anexo2 https://github.com/cluster311/Anexo2 Ejemplo: hospital = {'nombre': 'HOSPITAL SAN ROQUE', 'codigo_hpgd': '4321323'} """ ret = {'nombre': self.nombre, 'codigo_hpgd': self.codigo_hpgd} return ret class Meta: verbose_name = 'Centro de Salud' verbose_name_plural = 'Centros de Salud' permissions = [ ( "can_view_tablero", "Ver tableros de comandos", ) ]
class Shop(models.Model): business_id = models.ForeignKey('Business', null=True) name = models.CharField(max_length=250) address = AddressField(null=True) style = models.CharField(max_length=100) shop_image = models.CharField(max_length=1000) walk_ins = models.BooleanField(default=False) bookings = models.BooleanField(default=False) closed_on_public_holidays = models.BooleanField(default=True, blank=True) def __unicode__(self): return 'Shop: ' + str(self.id) + ' | ' + self.name
class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) name = models.CharField(max_length=100) surname = models.CharField(max_length=50) image = models.ImageField(default='default.jpg', upload_to='profile_pics') cellphone = models.CharField(max_length=10) address1 = AddressField() address2 = AddressField(related_name='+', blank=True, null=True) ratings = Rating() def __str__(self): return f'{self.user.username} Profile' return f'{self.user.name} Profile' return f'{self.user.surname} Profile' # from django.contrib.auth.models import AbstractUser # class User(AbstractUser): # otp1 = models.IntegerField(null=True) # phoneno1 = models.CharField(max_length=10)
class Restaurant(models.Model): name = models.CharField(max_length=200) address = AddressField(on_delete=models.CASCADE) outlet_type = models.ForeignKey(OutletType, on_delete=models.CASCADE) cuisine_type = models.ForeignKey(CuisineType, on_delete=models.CASCADE) affordability = models.ForeignKey(Affordability, on_delete=models.CASCADE) opening_times = models.ManyToManyField(OpeningTime) vegan_friendly = models.BooleanField() halal = models.BooleanField() def __str__(self): return self.name
class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) picture = models.ImageField(upload_to=profileFilePath, default='/static/images/no_user.png') MALE = 'M' FEMALE = 'F' UNDEF = 'U' GENRES = ( (MALE, 'Masculino'), (FEMALE, 'Femenino'), (UNDEF, 'No definido'), ) genre = models.CharField( max_length=1, choices=GENRES, default=UNDEF, ) CEDULA_CIUDADANIA = 'CC' CEDULA_EXTRANJERIA = 'CE' PASAPORTE = 'PS' DOCUMENT_TYPES = ( (CEDULA_CIUDADANIA, 'Cedula de ciudadania'), (CEDULA_EXTRANJERIA, 'Cedula de extranjeria'), (PASAPORTE, 'Pasaporte'), ) personalDocumentType = models.CharField( 'Tipo de documento', max_length=2, choices=DOCUMENT_TYPES, default=CEDULA_CIUDADANIA, ) personalDocumentNumber = models.BigIntegerField('Numero de documento', null=True) personalDocumentFile = models.ImageField(upload_to=profileFilePath, null=True) professionalCardNumber = models.CharField(max_length=25, null=True) professionalCardFile = models.ImageField(upload_to=profileFilePath, null=True) city = models.CharField(max_length=25, null=True) address = AddressField(blank=True, null=True) location = GeopositionField() cost = MoneyField( decimal_places=2, default=0, default_currency='COP', max_digits=11, ) def __unicode__(self): return self.user.get_username()
class Person(models.Model): name = models.CharField(max_length=200) email = models.CharField(max_length=200) address = AddressField(blank=True) created = models.DateTimeField(auto_now_add=True) tags = TaggableManager() def __unicode__(self): ret = self.name.strip() if len(ret) == 0: return self.email return ret
class Parent(models.Model): # User contains first name, last name, email, pw user = models.ForeignKey(User) phone_number = PhoneNumberField() address = AddressField() doctors = models.ForeignKey('Doctor', related_name='Patients', related_query_name='patient', blank=True, null=True) def __str__(self): return "{} {}".format(self.user.first_name, self.user.last_name)
class Event(TimeStampModel): title = models.CharField(max_length=255) cover_image = models.ImageField(null=True) start_date = models.DateTimeField() end_date = models.DateTimeField() venue = AddressField(on_delete=models.DO_NOTHING) od = models.BooleanField(default=False) description = models.TextField(null=True) club = models.ForeignKey(Club, on_delete=models.CASCADE) def __str__(self): return self.title