Пример #1
0
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
Пример #2
0
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
Пример #3
0
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}'
Пример #4
0
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)
Пример #5
0
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"
Пример #6
0
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)




    
Пример #7
0
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)
Пример #8
0
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, )
Пример #9
0
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}"
Пример #10
0
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')
    ]
Пример #11
0
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
Пример #12
0
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
Пример #13
0
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)
Пример #14
0
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
Пример #15
0
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)
Пример #16
0
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'),
        # ),
    ]
Пример #17
0
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()
Пример #18
0
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
Пример #19
0
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
Пример #20
0
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})
Пример #21
0
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']
Пример #22
0
 class Meta(UserCreationForm):
     address = AddressField()
     model = CustomUser
     fields = (
         'church_name',
         'address',
         'phone_number',
         'email',
         'password1',
         'password2',
     )
Пример #23
0
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",
            )
        ]
Пример #24
0
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
Пример #25
0
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)
Пример #26
0
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
Пример #27
0
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()
Пример #28
0
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
Пример #29
0
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)
Пример #30
0
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