# Generated by Django 2.2.7 on 2020-04-27 00:36

import datetime
from django.conf import settings
import django.contrib.auth.models
import django.contrib.auth.validators
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import phonenumber_field.modelfields
import private_storage.fields
import private_storage.storage.files
import spypp.models
import uuid


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0011_update_proxy_permissions'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
                ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
                ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
                ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),
                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
                ('tipo', models.CharField(choices=[('AL', 'Alumno'), ('CC', 'Comision Carrera'), ('CP', 'Comision PPS'), ('EM', 'Empresa')], default='AL', max_length=2)),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
            ],
            options={
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
                'abstract': False,
            },
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Alumno',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('numero_registro', models.PositiveIntegerField(unique=True, validators=[spypp.models.Alumno.validate_hash])),
                ('curriculum', private_storage.fields.PrivateFileField(storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.curriculum_upload_path, verbose_name='Curriculum (.pdf)')),
                ('plan_de_estudio', private_storage.fields.PrivateFileField(storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.plan_upload_path, verbose_name='Plan de Estudio (.pdf)')),
                ('historia_academica', private_storage.fields.PrivateFileField(storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.historia_upload_path, verbose_name='Historia Académica (.pdf)')),
                ('descripcion_intereses', models.TextField(blank=True, max_length=500, null=True)),
                ('descripcion_habilidades', models.TextField(blank=True, max_length=1000, null=True)),
                ('ultima_actualizacion_perfil', models.DateField(default=datetime.date.today)),
                ('ultima_postulacion', models.DateField(blank=True, null=True)),
                ('condicion_acreditacion', models.NullBooleanField(verbose_name='Está en condición de acreditación de práctica del plan de estudio?')),
                ('expedicion_acreditacion', models.TextField(blank=True, max_length=500, null=True, verbose_name='Justificación de acreditación o su negativa')),
                ('comentarios_comision_carrera', models.TextField(blank=True, max_length=1000, null=True)),
                ('comentarios_carrera_visibles', models.BooleanField(default=False, verbose_name='Comentarios visibles para las empresas')),
                ('comentarios_comision_pps', models.TextField(blank=True, max_length=1000, null=True)),
                ('perfil', private_storage.fields.PrivateFileField(blank=True, null=True, storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.perfil_upload_path, verbose_name='Foto de perfil')),
                ('progreso', models.SmallIntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)], verbose_name='Progreso en %')),
                ('telefono', phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, null=True, region=None)),
            ],
            options={
                'verbose_name': 'Alumno',
                'verbose_name_plural': 'Alumnos',
            },
        ),
        migrations.CreateModel(
            name='Carrera',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=100)),
                ('activa', models.BooleanField(default=True)),
            ],
            options={
                'verbose_name': 'Carrera',
                'verbose_name_plural': 'Carreras',
            },
        ),
        migrations.CreateModel(
            name='Departamento',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=50, unique=True)),
            ],
            options={
                'verbose_name': 'Departamento',
                'verbose_name_plural': 'Departamentos',
            },
        ),
        migrations.CreateModel(
            name='Docente',
            fields=[
                ('nombre', models.CharField(max_length=30)),
                ('apellido', models.CharField(max_length=20)),
                ('email', models.EmailField(max_length=254, primary_key=True, serialize=False)),
                ('box_oficina', models.CharField(max_length=30)),
                ('departamento', models.ForeignKey(null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Departamento')),
            ],
            options={
                'verbose_name': 'Docente',
                'verbose_name_plural': 'Docentes',
            },
        ),
        migrations.CreateModel(
            name='Empresa',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('descripcion', models.TextField(blank=True, max_length=1000, null=True)),
                ('url', models.URLField(blank=True, default='', null=True)),
                ('logo', private_storage.fields.PrivateFileField(blank=True, null=True, storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Empresa.logo_upload_path)),
                ('nombre_fantasia', models.CharField(max_length=200, verbose_name='Nombre de Fantasía')),
                ('activa', models.BooleanField(default=True)),
                ('departamento', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='spypp.Departamento')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='empresa_user', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Empresa',
                'verbose_name_plural': 'Empresas',
                'unique_together': {('departamento', 'nombre_fantasia')},
            },
        ),
        migrations.CreateModel(
            name='Entrevista',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fecha', models.DateTimeField()),
                ('lugar', models.CharField(max_length=200)),
                ('resultado', models.TextField(blank=True, max_length=1000, null=True)),
                ('pasantia_aceptada', models.BooleanField(blank=True, null=True)),
                ('comentarios_empresa', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Comentarios para la Comisión general de Pasantías')),
                ('comentarios_comision_pps', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Comentarios de la Comisión general de Pasantías')),
                ('status', models.CharField(choices=[('COA', 'Confirmada Alumno'), ('NOC', 'No Confirmada Alumno'), ('NOA', 'Notificada Alumno'), ('CAA', 'Cancelada Alumno'), ('REA', 'Realizada'), ('CAE', 'Cancelada Empresa')], default='NOA', max_length=3)),
                ('alumno', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Alumno')),
                ('empresa', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Empresa')),
            ],
            options={
                'verbose_name': 'Entrevista',
                'verbose_name_plural': 'Entrevistas',
                'unique_together': {('alumno', 'empresa', 'fecha')},
            },
        ),
        migrations.CreateModel(
            name='TutorEmpresa',
            fields=[
                ('nombre', models.CharField(max_length=30)),
                ('apellido', models.CharField(max_length=20)),
                ('cargo', models.CharField(max_length=30)),
                ('mail', models.EmailField(max_length=254, primary_key=True, serialize=False)),
                ('empresa', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Empresa')),
            ],
            options={
                'verbose_name': 'Tutor de Empresa',
                'verbose_name_plural': 'Tutores de Empresas',
            },
        ),
        migrations.CreateModel(
            name='SubcomisionPasantiasPPS',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('departamento', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='spypp.Departamento')),
                ('docentes', models.ManyToManyField(to='spypp.Docente', verbose_name='docentes')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='pps_user', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'SubcomisionPasantiasPPS',
                'verbose_name_plural': 'SubcomisionesPasantiasPPS',
            },
        ),
        migrations.CreateModel(
            name='SubcomisionCarrera',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('carrera', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='carrera_comision', to='spypp.Carrera')),
                ('docentes', models.ManyToManyField(related_name='comision_docente', to='spypp.Docente', verbose_name='docentes')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='carrera_user', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'SubcomisionCarrera',
                'verbose_name_plural': 'SubcomisionesCarreras',
            },
        ),
        migrations.CreateModel(
            name='Puesto',
            fields=[
                ('puesto_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('nombre', models.CharField(choices=[('BE', 'Back-end'), ('FE', 'Front-end'), ('QA', 'Quality Assurance'), ('MB', 'Mobile - iOS'), ('AND', 'Mobile - Android'), ('IND', 'Indistinto'), ('OTR', 'Otro')], default='IND', max_length=3, verbose_name='Área')),
                ('descripcion_actividades', models.TextField(max_length=1000)),
                ('conocimientos_requeridos', models.TextField(max_length=1000)),
                ('horario', models.CharField(max_length=100)),
                ('rentado', models.BooleanField(default=False)),
                ('fecha_inactivacion', models.DateField(default=datetime.datetime(2020, 5, 11, 21, 36, 18, 602393))),
                ('activo', models.BooleanField(default=True)),
                ('empresa', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='spypp.Empresa')),
            ],
            options={
                'verbose_name': 'Puesto',
                'verbose_name_plural': 'Puestos',
                'unique_together': {('empresa', 'nombre')},
            },
        ),
        migrations.CreateModel(
            name='Pasantia',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fecha_inicio', models.DateField()),
                ('fecha_fin', models.DateField()),
                ('informe', models.FileField(blank=True, null=True, upload_to='informes/')),
                ('numero_legajo', models.PositiveIntegerField(blank=True, null=True, unique=True)),
                ('comentarios_empresa', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Comentarios para la Comisión general de Pasantías')),
                ('comentarios_comision_pps', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Comentarios de la Comisión general de Pasantías')),
                ('numero_de_expediente', models.PositiveIntegerField(blank=True, null=True, unique=True)),
                ('practica_plan_de_estudio', models.BooleanField(default=False, verbose_name='Práctica del plan de estudio')),
                ('status', models.CharField(choices=[('FINALIZADA', 'Finalizada'), ('DOCUMENTACION PENDIENTE', 'Documentación pendiente'), ('EN CURSO', 'En curso'), ('SIN INICIAR', 'Sin iniciar')], default='SIN INICIAR', max_length=23)),
                ('entrevista', models.OneToOneField(on_delete=django.db.models.deletion.DO_NOTHING, related_name='entrevista_pasantia', to='spypp.Entrevista')),
                ('tutor_docente', models.ForeignKey(null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Docente')),
                ('tutor_empresa', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='spypp.TutorEmpresa')),
            ],
            options={
                'verbose_name': 'Pasantia',
                'verbose_name_plural': 'Pasantias',
            },
        ),
        migrations.AddField(
            model_name='carrera',
            name='departamento',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='spypp.Departamento'),
        ),
        migrations.AddField(
            model_name='alumno',
            name='carrera',
            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Carrera'),
        ),
        migrations.AddField(
            model_name='alumno',
            name='user',
            field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='alumno_user', to=settings.AUTH_USER_MODEL),
        ),
        migrations.CreateModel(
            name='Postulacion',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fecha', models.DateField(default=datetime.date.today)),
                ('fecha_desestimacion', models.DateField(blank=True, null=True)),
                ('activa', models.BooleanField(default=True)),
                ('alumno', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Alumno')),
                ('entrevista', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='entrevista_postulacion', to='spypp.Entrevista')),
                ('puesto', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Puesto')),
            ],
            options={
                'verbose_name': 'Postulacion',
                'verbose_name_plural': 'Postulaciones',
                'unique_together': {('puesto', 'alumno')},
            },
        ),
        migrations.CreateModel(
            name='DirectorDepartamento',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('departamento', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='spypp.Departamento')),
                ('docente', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='spypp.Docente')),
            ],
            options={
                'verbose_name': 'Director de Departamento',
                'verbose_name_plural': 'Directores de Departamento',
                'unique_together': {('departamento', 'docente')},
            },
        ),
        migrations.AlterUniqueTogether(
            name='carrera',
            unique_together={('departamento', 'nombre')},
        ),
    ]

377c8a9dfd231542f27bee7298b9c679c6ccfee2
<mask token>

<mask token>


class Migration(migrations.Migration):
    <mask token>
    <mask token>
    <mask token>

<mask token>


class Migration(migrations.Migration):
    initial = True
    dependencies = [('auth', '0011_update_proxy_permissions')]
    operations = [migrations.CreateModel(name='User', fields=[('id', models
        .AutoField(auto_created=True, primary_key=True, serialize=False,
        verbose_name='ID')), ('password', models.CharField(max_length=128,
        verbose_name='password')), ('last_login', models.DateTimeField(
        blank=True, null=True, verbose_name='last login')), ('is_superuser',
        models.BooleanField(default=False, help_text=
        'Designates that this user has all permissions without explicitly assigning them.'
        , verbose_name='superuser status')), ('username', models.CharField(
        error_messages={'unique':
        'A user with that username already exists.'}, help_text=
        'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'
        , max_length=150, unique=True, validators=[django.contrib.auth.
        validators.UnicodeUsernameValidator()], verbose_name='username')),
        ('first_name', models.CharField(blank=True, max_length=30,
        verbose_name='first name')), ('last_name', models.CharField(blank=
        True, max_length=150, verbose_name='last name')), ('email', models.
        EmailField(max_length=254, unique=True, verbose_name=
        'email address')), ('is_staff', models.BooleanField(default=False,
        help_text=
        'Designates whether the user can log into this admin site.',
        verbose_name='staff status')), ('is_active', models.BooleanField(
        default=True, help_text=
        'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.'
        , verbose_name='active')), ('date_joined', models.DateTimeField(
        default=django.utils.timezone.now, verbose_name='date joined')), (
        'tipo', models.CharField(choices=[('AL', 'Alumno'), ('CC',
        'Comision Carrera'), ('CP', 'Comision PPS'), ('EM', 'Empresa')],
        default='AL', max_length=2)), ('groups', models.ManyToManyField(
        blank=True, help_text=
        'The groups this user belongs to. A user will get all permissions granted to each of their groups.'
        , related_name='user_set', related_query_name='user', to=
        'auth.Group', verbose_name='groups')), ('user_permissions', models.
        ManyToManyField(blank=True, help_text=
        'Specific permissions for this user.', related_name='user_set',
        related_query_name='user', to='auth.Permission', verbose_name=
        'user permissions'))], options={'verbose_name': 'user',
        'verbose_name_plural': 'users', 'abstract': False}, managers=[(
        'objects', django.contrib.auth.models.UserManager())]), migrations.
        CreateModel(name='Alumno', fields=[('id', models.AutoField(
        auto_created=True, primary_key=True, serialize=False, verbose_name=
        'ID')), ('numero_registro', models.PositiveIntegerField(unique=True,
        validators=[spypp.models.Alumno.validate_hash])), ('curriculum',
        private_storage.fields.PrivateFileField(storage=private_storage.
        storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.
        Alumno.curriculum_upload_path, verbose_name='Curriculum (.pdf)')),
        ('plan_de_estudio', private_storage.fields.PrivateFileField(storage
        =private_storage.storage.files.PrivateFileSystemStorage(),
        upload_to=spypp.models.Alumno.plan_upload_path, verbose_name=
        'Plan de Estudio (.pdf)')), ('historia_academica', private_storage.
        fields.PrivateFileField(storage=private_storage.storage.files.
        PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.
        historia_upload_path, verbose_name='Historia Académica (.pdf)')), (
        'descripcion_intereses', models.TextField(blank=True, max_length=
        500, null=True)), ('descripcion_habilidades', models.TextField(
        blank=True, max_length=1000, null=True)), (
        'ultima_actualizacion_perfil', models.DateField(default=datetime.
        date.today)), ('ultima_postulacion', models.DateField(blank=True,
        null=True)), ('condicion_acreditacion', models.NullBooleanField(
        verbose_name=
        'Está en condición de acreditación de práctica del plan de estudio?'
        )), ('expedicion_acreditacion', models.TextField(blank=True,
        max_length=500, null=True, verbose_name=
        'Justificación de acreditación o su negativa')), (
        'comentarios_comision_carrera', models.TextField(blank=True,
        max_length=1000, null=True)), ('comentarios_carrera_visibles',
        models.BooleanField(default=False, verbose_name=
        'Comentarios visibles para las empresas')), (
        'comentarios_comision_pps', models.TextField(blank=True, max_length
        =1000, null=True)), ('perfil', private_storage.fields.
        PrivateFileField(blank=True, null=True, storage=private_storage.
        storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.
        Alumno.perfil_upload_path, verbose_name='Foto de perfil')), (
        'progreso', models.SmallIntegerField(default=0, validators=[django.
        core.validators.MinValueValidator(0), django.core.validators.
        MaxValueValidator(100)], verbose_name='Progreso en %')), (
        'telefono', phonenumber_field.modelfields.PhoneNumberField(blank=
        True, max_length=128, null=True, region=None))], options={
        'verbose_name': 'Alumno', 'verbose_name_plural': 'Alumnos'}),
        migrations.CreateModel(name='Carrera', fields=[('id', models.
        AutoField(auto_created=True, primary_key=True, serialize=False,
        verbose_name='ID')), ('nombre', models.CharField(max_length=100)),
        ('activa', models.BooleanField(default=True))], options={
        'verbose_name': 'Carrera', 'verbose_name_plural': 'Carreras'}),
        migrations.CreateModel(name='Departamento', fields=[('id', models.
        AutoField(auto_created=True, primary_key=True, serialize=False,
        verbose_name='ID')), ('nombre', models.CharField(max_length=50,
        unique=True))], options={'verbose_name': 'Departamento',
        'verbose_name_plural': 'Departamentos'}), migrations.CreateModel(
        name='Docente', fields=[('nombre', models.CharField(max_length=30)),
        ('apellido', models.CharField(max_length=20)), ('email', models.
        EmailField(max_length=254, primary_key=True, serialize=False)), (
        'box_oficina', models.CharField(max_length=30)), ('departamento',
        models.ForeignKey(null=True, on_delete=django.db.models.deletion.
        DO_NOTHING, to='spypp.Departamento'))], options={'verbose_name':
        'Docente', 'verbose_name_plural': 'Docentes'}), migrations.
        CreateModel(name='Empresa', fields=[('id', models.AutoField(
        auto_created=True, primary_key=True, serialize=False, verbose_name=
        'ID')), ('descripcion', models.TextField(blank=True, max_length=
        1000, null=True)), ('url', models.URLField(blank=True, default='',
        null=True)), ('logo', private_storage.fields.PrivateFileField(blank
        =True, null=True, storage=private_storage.storage.files.
        PrivateFileSystemStorage(), upload_to=spypp.models.Empresa.
        logo_upload_path)), ('nombre_fantasia', models.CharField(max_length
        =200, verbose_name='Nombre de Fantasía')), ('activa', models.
        BooleanField(default=True)), ('departamento', models.ForeignKey(
        on_delete=django.db.models.deletion.CASCADE, to=
        'spypp.Departamento')), ('user', models.OneToOneField(on_delete=
        django.db.models.deletion.CASCADE, related_name='empresa_user', to=
        settings.AUTH_USER_MODEL))], options={'verbose_name': 'Empresa',
        'verbose_name_plural': 'Empresas', 'unique_together': {(
        'departamento', 'nombre_fantasia')}}), migrations.CreateModel(name=
        'Entrevista', fields=[('id', models.AutoField(auto_created=True,
        primary_key=True, serialize=False, verbose_name='ID')), ('fecha',
        models.DateTimeField()), ('lugar', models.CharField(max_length=200)
        ), ('resultado', models.TextField(blank=True, max_length=1000, null
        =True)), ('pasantia_aceptada', models.BooleanField(blank=True, null
        =True)), ('comentarios_empresa', models.TextField(blank=True,
        max_length=1000, null=True, verbose_name=
        'Comentarios para la Comisión general de Pasantías')), (
        'comentarios_comision_pps', models.TextField(blank=True, max_length
        =1000, null=True, verbose_name=
        'Comentarios de la Comisión general de Pasantías')), ('status',
        models.CharField(choices=[('COA', 'Confirmada Alumno'), ('NOC',
        'No Confirmada Alumno'), ('NOA', 'Notificada Alumno'), ('CAA',
        'Cancelada Alumno'), ('REA', 'Realizada'), ('CAE',
        'Cancelada Empresa')], default='NOA', max_length=3)), ('alumno',
        models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING,
        to='spypp.Alumno')), ('empresa', models.ForeignKey(on_delete=django
        .db.models.deletion.DO_NOTHING, to='spypp.Empresa'))], options={
        'verbose_name': 'Entrevista', 'verbose_name_plural': 'Entrevistas',
        'unique_together': {('alumno', 'empresa', 'fecha')}}), migrations.
        CreateModel(name='TutorEmpresa', fields=[('nombre', models.
        CharField(max_length=30)), ('apellido', models.CharField(max_length
        =20)), ('cargo', models.CharField(max_length=30)), ('mail', models.
        EmailField(max_length=254, primary_key=True, serialize=False)), (
        'empresa', models.ForeignKey(on_delete=django.db.models.deletion.
        DO_NOTHING, to='spypp.Empresa'))], options={'verbose_name':
        'Tutor de Empresa', 'verbose_name_plural': 'Tutores de Empresas'}),
        migrations.CreateModel(name='SubcomisionPasantiasPPS', fields=[(
        'id', models.AutoField(auto_created=True, primary_key=True,
        serialize=False, verbose_name='ID')), ('departamento', models.
        OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=
        'spypp.Departamento')), ('docentes', models.ManyToManyField(to=
        'spypp.Docente', verbose_name='docentes')), ('user', models.
        OneToOneField(on_delete=django.db.models.deletion.CASCADE,
        related_name='pps_user', to=settings.AUTH_USER_MODEL))], options={
        'verbose_name': 'SubcomisionPasantiasPPS', 'verbose_name_plural':
        'SubcomisionesPasantiasPPS'}), migrations.CreateModel(name=
        'SubcomisionCarrera', fields=[('id', models.AutoField(auto_created=
        True, primary_key=True, serialize=False, verbose_name='ID')), (
        'carrera', models.OneToOneField(on_delete=django.db.models.deletion
        .CASCADE, related_name='carrera_comision', to='spypp.Carrera')), (
        'docentes', models.ManyToManyField(related_name='comision_docente',
        to='spypp.Docente', verbose_name='docentes')), ('user', models.
        OneToOneField(on_delete=django.db.models.deletion.CASCADE,
        related_name='carrera_user', to=settings.AUTH_USER_MODEL))],
        options={'verbose_name': 'SubcomisionCarrera',
        'verbose_name_plural': 'SubcomisionesCarreras'}), migrations.
        CreateModel(name='Puesto', fields=[('puesto_id', models.UUIDField(
        default=uuid.uuid4, editable=False, primary_key=True, serialize=
        False)), ('nombre', models.CharField(choices=[('BE', 'Back-end'), (
        'FE', 'Front-end'), ('QA', 'Quality Assurance'), ('MB',
        'Mobile - iOS'), ('AND', 'Mobile - Android'), ('IND', 'Indistinto'),
        ('OTR', 'Otro')], default='IND', max_length=3, verbose_name='Área')
        ), ('descripcion_actividades', models.TextField(max_length=1000)),
        ('conocimientos_requeridos', models.TextField(max_length=1000)), (
        'horario', models.CharField(max_length=100)), ('rentado', models.
        BooleanField(default=False)), ('fecha_inactivacion', models.
        DateField(default=datetime.datetime(2020, 5, 11, 21, 36, 18, 602393
        ))), ('activo', models.BooleanField(default=True)), ('empresa',
        models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=
        'spypp.Empresa'))], options={'verbose_name': 'Puesto',
        'verbose_name_plural': 'Puestos', 'unique_together': {('empresa',
        'nombre')}}), migrations.CreateModel(name='Pasantia', fields=[('id',
        models.AutoField(auto_created=True, primary_key=True, serialize=
        False, verbose_name='ID')), ('fecha_inicio', models.DateField()), (
        'fecha_fin', models.DateField()), ('informe', models.FileField(
        blank=True, null=True, upload_to='informes/')), ('numero_legajo',
        models.PositiveIntegerField(blank=True, null=True, unique=True)), (
        'comentarios_empresa', models.TextField(blank=True, max_length=1000,
        null=True, verbose_name=
        'Comentarios para la Comisión general de Pasantías')), (
        'comentarios_comision_pps', models.TextField(blank=True, max_length
        =1000, null=True, verbose_name=
        'Comentarios de la Comisión general de Pasantías')), (
        'numero_de_expediente', models.PositiveIntegerField(blank=True,
        null=True, unique=True)), ('practica_plan_de_estudio', models.
        BooleanField(default=False, verbose_name=
        'Práctica del plan de estudio')), ('status', models.CharField(
        choices=[('FINALIZADA', 'Finalizada'), ('DOCUMENTACION PENDIENTE',
        'Documentación pendiente'), ('EN CURSO', 'En curso'), (
        'SIN INICIAR', 'Sin iniciar')], default='SIN INICIAR', max_length=
        23)), ('entrevista', models.OneToOneField(on_delete=django.db.
        models.deletion.DO_NOTHING, related_name='entrevista_pasantia', to=
        'spypp.Entrevista')), ('tutor_docente', models.ForeignKey(null=True,
        on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Docente')
        ), ('tutor_empresa', models.ForeignKey(blank=True, null=True,
        on_delete=django.db.models.deletion.SET_NULL, to=
        'spypp.TutorEmpresa'))], options={'verbose_name': 'Pasantia',
        'verbose_name_plural': 'Pasantias'}), migrations.AddField(
        model_name='carrera', name='departamento', field=models.ForeignKey(
        on_delete=django.db.models.deletion.CASCADE, to=
        'spypp.Departamento')), migrations.AddField(model_name='alumno',
        name='carrera', field=models.ForeignKey(on_delete=django.db.models.
        deletion.DO_NOTHING, to='spypp.Carrera')), migrations.AddField(
        model_name='alumno', name='user', field=models.OneToOneField(
        on_delete=django.db.models.deletion.CASCADE, related_name=
        'alumno_user', to=settings.AUTH_USER_MODEL)), migrations.
        CreateModel(name='Postulacion', fields=[('id', models.AutoField(
        auto_created=True, primary_key=True, serialize=False, verbose_name=
        'ID')), ('fecha', models.DateField(default=datetime.date.today)), (
        'fecha_desestimacion', models.DateField(blank=True, null=True)), (
        'activa', models.BooleanField(default=True)), ('alumno', models.
        ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=
        'spypp.Alumno')), ('entrevista', models.OneToOneField(blank=True,
        null=True, on_delete=django.db.models.deletion.SET_NULL,
        related_name='entrevista_postulacion', to='spypp.Entrevista')), (
        'puesto', models.ForeignKey(on_delete=django.db.models.deletion.
        DO_NOTHING, to='spypp.Puesto'))], options={'verbose_name':
        'Postulacion', 'verbose_name_plural': 'Postulaciones',
        'unique_together': {('puesto', 'alumno')}}), migrations.CreateModel
        (name='DirectorDepartamento', fields=[('id', models.AutoField(
        auto_created=True, primary_key=True, serialize=False, verbose_name=
        'ID')), ('departamento', models.OneToOneField(on_delete=django.db.
        models.deletion.CASCADE, to='spypp.Departamento')), ('docente',
        models.OneToOneField(on_delete=django.db.models.deletion.CASCADE,
        to='spypp.Docente'))], options={'verbose_name':
        'Director de Departamento', 'verbose_name_plural':
        'Directores de Departamento', 'unique_together': {('departamento',
        'docente')}}), migrations.AlterUniqueTogether(name='carrera',
        unique_together={('departamento', 'nombre')})]

import datetime
from django.conf import settings
import django.contrib.auth.models
import django.contrib.auth.validators
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import phonenumber_field.modelfields
import private_storage.fields
import private_storage.storage.files
import spypp.models
import uuid


class Migration(migrations.Migration):
    initial = True
    dependencies = [('auth', '0011_update_proxy_permissions')]
    operations = [migrations.CreateModel(name='User', fields=[('id', models
        .AutoField(auto_created=True, primary_key=True, serialize=False,
        verbose_name='ID')), ('password', models.CharField(max_length=128,
        verbose_name='password')), ('last_login', models.DateTimeField(
        blank=True, null=True, verbose_name='last login')), ('is_superuser',
        models.BooleanField(default=False, help_text=
        'Designates that this user has all permissions without explicitly assigning them.'
        , verbose_name='superuser status')), ('username', models.CharField(
        error_messages={'unique':
        'A user with that username already exists.'}, help_text=
        'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'
        , max_length=150, unique=True, validators=[django.contrib.auth.
        validators.UnicodeUsernameValidator()], verbose_name='username')),
        ('first_name', models.CharField(blank=True, max_length=30,
        verbose_name='first name')), ('last_name', models.CharField(blank=
        True, max_length=150, verbose_name='last name')), ('email', models.
        EmailField(max_length=254, unique=True, verbose_name=
        'email address')), ('is_staff', models.BooleanField(default=False,
        help_text=
        'Designates whether the user can log into this admin site.',
        verbose_name='staff status')), ('is_active', models.BooleanField(
        default=True, help_text=
        'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.'
        , verbose_name='active')), ('date_joined', models.DateTimeField(
        default=django.utils.timezone.now, verbose_name='date joined')), (
        'tipo', models.CharField(choices=[('AL', 'Alumno'), ('CC',
        'Comision Carrera'), ('CP', 'Comision PPS'), ('EM', 'Empresa')],
        default='AL', max_length=2)), ('groups', models.ManyToManyField(
        blank=True, help_text=
        'The groups this user belongs to. A user will get all permissions granted to each of their groups.'
        , related_name='user_set', related_query_name='user', to=
        'auth.Group', verbose_name='groups')), ('user_permissions', models.
        ManyToManyField(blank=True, help_text=
        'Specific permissions for this user.', related_name='user_set',
        related_query_name='user', to='auth.Permission', verbose_name=
        'user permissions'))], options={'verbose_name': 'user',
        'verbose_name_plural': 'users', 'abstract': False}, managers=[(
        'objects', django.contrib.auth.models.UserManager())]), migrations.
        CreateModel(name='Alumno', fields=[('id', models.AutoField(
        auto_created=True, primary_key=True, serialize=False, verbose_name=
        'ID')), ('numero_registro', models.PositiveIntegerField(unique=True,
        validators=[spypp.models.Alumno.validate_hash])), ('curriculum',
        private_storage.fields.PrivateFileField(storage=private_storage.
        storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.
        Alumno.curriculum_upload_path, verbose_name='Curriculum (.pdf)')),
        ('plan_de_estudio', private_storage.fields.PrivateFileField(storage
        =private_storage.storage.files.PrivateFileSystemStorage(),
        upload_to=spypp.models.Alumno.plan_upload_path, verbose_name=
        'Plan de Estudio (.pdf)')), ('historia_academica', private_storage.
        fields.PrivateFileField(storage=private_storage.storage.files.
        PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.
        historia_upload_path, verbose_name='Historia Académica (.pdf)')), (
        'descripcion_intereses', models.TextField(blank=True, max_length=
        500, null=True)), ('descripcion_habilidades', models.TextField(
        blank=True, max_length=1000, null=True)), (
        'ultima_actualizacion_perfil', models.DateField(default=datetime.
        date.today)), ('ultima_postulacion', models.DateField(blank=True,
        null=True)), ('condicion_acreditacion', models.NullBooleanField(
        verbose_name=
        'Está en condición de acreditación de práctica del plan de estudio?'
        )), ('expedicion_acreditacion', models.TextField(blank=True,
        max_length=500, null=True, verbose_name=
        'Justificación de acreditación o su negativa')), (
        'comentarios_comision_carrera', models.TextField(blank=True,
        max_length=1000, null=True)), ('comentarios_carrera_visibles',
        models.BooleanField(default=False, verbose_name=
        'Comentarios visibles para las empresas')), (
        'comentarios_comision_pps', models.TextField(blank=True, max_length
        =1000, null=True)), ('perfil', private_storage.fields.
        PrivateFileField(blank=True, null=True, storage=private_storage.
        storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.
        Alumno.perfil_upload_path, verbose_name='Foto de perfil')), (
        'progreso', models.SmallIntegerField(default=0, validators=[django.
        core.validators.MinValueValidator(0), django.core.validators.
        MaxValueValidator(100)], verbose_name='Progreso en %')), (
        'telefono', phonenumber_field.modelfields.PhoneNumberField(blank=
        True, max_length=128, null=True, region=None))], options={
        'verbose_name': 'Alumno', 'verbose_name_plural': 'Alumnos'}),
        migrations.CreateModel(name='Carrera', fields=[('id', models.
        AutoField(auto_created=True, primary_key=True, serialize=False,
        verbose_name='ID')), ('nombre', models.CharField(max_length=100)),
        ('activa', models.BooleanField(default=True))], options={
        'verbose_name': 'Carrera', 'verbose_name_plural': 'Carreras'}),
        migrations.CreateModel(name='Departamento', fields=[('id', models.
        AutoField(auto_created=True, primary_key=True, serialize=False,
        verbose_name='ID')), ('nombre', models.CharField(max_length=50,
        unique=True))], options={'verbose_name': 'Departamento',
        'verbose_name_plural': 'Departamentos'}), migrations.CreateModel(
        name='Docente', fields=[('nombre', models.CharField(max_length=30)),
        ('apellido', models.CharField(max_length=20)), ('email', models.
        EmailField(max_length=254, primary_key=True, serialize=False)), (
        'box_oficina', models.CharField(max_length=30)), ('departamento',
        models.ForeignKey(null=True, on_delete=django.db.models.deletion.
        DO_NOTHING, to='spypp.Departamento'))], options={'verbose_name':
        'Docente', 'verbose_name_plural': 'Docentes'}), migrations.
        CreateModel(name='Empresa', fields=[('id', models.AutoField(
        auto_created=True, primary_key=True, serialize=False, verbose_name=
        'ID')), ('descripcion', models.TextField(blank=True, max_length=
        1000, null=True)), ('url', models.URLField(blank=True, default='',
        null=True)), ('logo', private_storage.fields.PrivateFileField(blank
        =True, null=True, storage=private_storage.storage.files.
        PrivateFileSystemStorage(), upload_to=spypp.models.Empresa.
        logo_upload_path)), ('nombre_fantasia', models.CharField(max_length
        =200, verbose_name='Nombre de Fantasía')), ('activa', models.
        BooleanField(default=True)), ('departamento', models.ForeignKey(
        on_delete=django.db.models.deletion.CASCADE, to=
        'spypp.Departamento')), ('user', models.OneToOneField(on_delete=
        django.db.models.deletion.CASCADE, related_name='empresa_user', to=
        settings.AUTH_USER_MODEL))], options={'verbose_name': 'Empresa',
        'verbose_name_plural': 'Empresas', 'unique_together': {(
        'departamento', 'nombre_fantasia')}}), migrations.CreateModel(name=
        'Entrevista', fields=[('id', models.AutoField(auto_created=True,
        primary_key=True, serialize=False, verbose_name='ID')), ('fecha',
        models.DateTimeField()), ('lugar', models.CharField(max_length=200)
        ), ('resultado', models.TextField(blank=True, max_length=1000, null
        =True)), ('pasantia_aceptada', models.BooleanField(blank=True, null
        =True)), ('comentarios_empresa', models.TextField(blank=True,
        max_length=1000, null=True, verbose_name=
        'Comentarios para la Comisión general de Pasantías')), (
        'comentarios_comision_pps', models.TextField(blank=True, max_length
        =1000, null=True, verbose_name=
        'Comentarios de la Comisión general de Pasantías')), ('status',
        models.CharField(choices=[('COA', 'Confirmada Alumno'), ('NOC',
        'No Confirmada Alumno'), ('NOA', 'Notificada Alumno'), ('CAA',
        'Cancelada Alumno'), ('REA', 'Realizada'), ('CAE',
        'Cancelada Empresa')], default='NOA', max_length=3)), ('alumno',
        models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING,
        to='spypp.Alumno')), ('empresa', models.ForeignKey(on_delete=django
        .db.models.deletion.DO_NOTHING, to='spypp.Empresa'))], options={
        'verbose_name': 'Entrevista', 'verbose_name_plural': 'Entrevistas',
        'unique_together': {('alumno', 'empresa', 'fecha')}}), migrations.
        CreateModel(name='TutorEmpresa', fields=[('nombre', models.
        CharField(max_length=30)), ('apellido', models.CharField(max_length
        =20)), ('cargo', models.CharField(max_length=30)), ('mail', models.
        EmailField(max_length=254, primary_key=True, serialize=False)), (
        'empresa', models.ForeignKey(on_delete=django.db.models.deletion.
        DO_NOTHING, to='spypp.Empresa'))], options={'verbose_name':
        'Tutor de Empresa', 'verbose_name_plural': 'Tutores de Empresas'}),
        migrations.CreateModel(name='SubcomisionPasantiasPPS', fields=[(
        'id', models.AutoField(auto_created=True, primary_key=True,
        serialize=False, verbose_name='ID')), ('departamento', models.
        OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=
        'spypp.Departamento')), ('docentes', models.ManyToManyField(to=
        'spypp.Docente', verbose_name='docentes')), ('user', models.
        OneToOneField(on_delete=django.db.models.deletion.CASCADE,
        related_name='pps_user', to=settings.AUTH_USER_MODEL))], options={
        'verbose_name': 'SubcomisionPasantiasPPS', 'verbose_name_plural':
        'SubcomisionesPasantiasPPS'}), migrations.CreateModel(name=
        'SubcomisionCarrera', fields=[('id', models.AutoField(auto_created=
        True, primary_key=True, serialize=False, verbose_name='ID')), (
        'carrera', models.OneToOneField(on_delete=django.db.models.deletion
        .CASCADE, related_name='carrera_comision', to='spypp.Carrera')), (
        'docentes', models.ManyToManyField(related_name='comision_docente',
        to='spypp.Docente', verbose_name='docentes')), ('user', models.
        OneToOneField(on_delete=django.db.models.deletion.CASCADE,
        related_name='carrera_user', to=settings.AUTH_USER_MODEL))],
        options={'verbose_name': 'SubcomisionCarrera',
        'verbose_name_plural': 'SubcomisionesCarreras'}), migrations.
        CreateModel(name='Puesto', fields=[('puesto_id', models.UUIDField(
        default=uuid.uuid4, editable=False, primary_key=True, serialize=
        False)), ('nombre', models.CharField(choices=[('BE', 'Back-end'), (
        'FE', 'Front-end'), ('QA', 'Quality Assurance'), ('MB',
        'Mobile - iOS'), ('AND', 'Mobile - Android'), ('IND', 'Indistinto'),
        ('OTR', 'Otro')], default='IND', max_length=3, verbose_name='Área')
        ), ('descripcion_actividades', models.TextField(max_length=1000)),
        ('conocimientos_requeridos', models.TextField(max_length=1000)), (
        'horario', models.CharField(max_length=100)), ('rentado', models.
        BooleanField(default=False)), ('fecha_inactivacion', models.
        DateField(default=datetime.datetime(2020, 5, 11, 21, 36, 18, 602393
        ))), ('activo', models.BooleanField(default=True)), ('empresa',
        models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=
        'spypp.Empresa'))], options={'verbose_name': 'Puesto',
        'verbose_name_plural': 'Puestos', 'unique_together': {('empresa',
        'nombre')}}), migrations.CreateModel(name='Pasantia', fields=[('id',
        models.AutoField(auto_created=True, primary_key=True, serialize=
        False, verbose_name='ID')), ('fecha_inicio', models.DateField()), (
        'fecha_fin', models.DateField()), ('informe', models.FileField(
        blank=True, null=True, upload_to='informes/')), ('numero_legajo',
        models.PositiveIntegerField(blank=True, null=True, unique=True)), (
        'comentarios_empresa', models.TextField(blank=True, max_length=1000,
        null=True, verbose_name=
        'Comentarios para la Comisión general de Pasantías')), (
        'comentarios_comision_pps', models.TextField(blank=True, max_length
        =1000, null=True, verbose_name=
        'Comentarios de la Comisión general de Pasantías')), (
        'numero_de_expediente', models.PositiveIntegerField(blank=True,
        null=True, unique=True)), ('practica_plan_de_estudio', models.
        BooleanField(default=False, verbose_name=
        'Práctica del plan de estudio')), ('status', models.CharField(
        choices=[('FINALIZADA', 'Finalizada'), ('DOCUMENTACION PENDIENTE',
        'Documentación pendiente'), ('EN CURSO', 'En curso'), (
        'SIN INICIAR', 'Sin iniciar')], default='SIN INICIAR', max_length=
        23)), ('entrevista', models.OneToOneField(on_delete=django.db.
        models.deletion.DO_NOTHING, related_name='entrevista_pasantia', to=
        'spypp.Entrevista')), ('tutor_docente', models.ForeignKey(null=True,
        on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Docente')
        ), ('tutor_empresa', models.ForeignKey(blank=True, null=True,
        on_delete=django.db.models.deletion.SET_NULL, to=
        'spypp.TutorEmpresa'))], options={'verbose_name': 'Pasantia',
        'verbose_name_plural': 'Pasantias'}), migrations.AddField(
        model_name='carrera', name='departamento', field=models.ForeignKey(
        on_delete=django.db.models.deletion.CASCADE, to=
        'spypp.Departamento')), migrations.AddField(model_name='alumno',
        name='carrera', field=models.ForeignKey(on_delete=django.db.models.
        deletion.DO_NOTHING, to='spypp.Carrera')), migrations.AddField(
        model_name='alumno', name='user', field=models.OneToOneField(
        on_delete=django.db.models.deletion.CASCADE, related_name=
        'alumno_user', to=settings.AUTH_USER_MODEL)), migrations.
        CreateModel(name='Postulacion', fields=[('id', models.AutoField(
        auto_created=True, primary_key=True, serialize=False, verbose_name=
        'ID')), ('fecha', models.DateField(default=datetime.date.today)), (
        'fecha_desestimacion', models.DateField(blank=True, null=True)), (
        'activa', models.BooleanField(default=True)), ('alumno', models.
        ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=
        'spypp.Alumno')), ('entrevista', models.OneToOneField(blank=True,
        null=True, on_delete=django.db.models.deletion.SET_NULL,
        related_name='entrevista_postulacion', to='spypp.Entrevista')), (
        'puesto', models.ForeignKey(on_delete=django.db.models.deletion.
        DO_NOTHING, to='spypp.Puesto'))], options={'verbose_name':
        'Postulacion', 'verbose_name_plural': 'Postulaciones',
        'unique_together': {('puesto', 'alumno')}}), migrations.CreateModel
        (name='DirectorDepartamento', fields=[('id', models.AutoField(
        auto_created=True, primary_key=True, serialize=False, verbose_name=
        'ID')), ('departamento', models.OneToOneField(on_delete=django.db.
        models.deletion.CASCADE, to='spypp.Departamento')), ('docente',
        models.OneToOneField(on_delete=django.db.models.deletion.CASCADE,
        to='spypp.Docente'))], options={'verbose_name':
        'Director de Departamento', 'verbose_name_plural':
        'Directores de Departamento', 'unique_together': {('departamento',
        'docente')}}), migrations.AlterUniqueTogether(name='carrera',
        unique_together={('departamento', 'nombre')})]

# Generated by Django 2.2.7 on 2020-04-27 00:36

import datetime
from django.conf import settings
import django.contrib.auth.models
import django.contrib.auth.validators
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import phonenumber_field.modelfields
import private_storage.fields
import private_storage.storage.files
import spypp.models
import uuid


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0011_update_proxy_permissions'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
                ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
                ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
                ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),
                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
                ('tipo', models.CharField(choices=[('AL', 'Alumno'), ('CC', 'Comision Carrera'), ('CP', 'Comision PPS'), ('EM', 'Empresa')], default='AL', max_length=2)),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
            ],
            options={
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
                'abstract': False,
            },
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Alumno',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('numero_registro', models.PositiveIntegerField(unique=True, validators=[spypp.models.Alumno.validate_hash])),
                ('curriculum', private_storage.fields.PrivateFileField(storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.curriculum_upload_path, verbose_name='Curriculum (.pdf)')),
                ('plan_de_estudio', private_storage.fields.PrivateFileField(storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.plan_upload_path, verbose_name='Plan de Estudio (.pdf)')),
                ('historia_academica', private_storage.fields.PrivateFileField(storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.historia_upload_path, verbose_name='Historia Académica (.pdf)')),
                ('descripcion_intereses', models.TextField(blank=True, max_length=500, null=True)),
                ('descripcion_habilidades', models.TextField(blank=True, max_length=1000, null=True)),
                ('ultima_actualizacion_perfil', models.DateField(default=datetime.date.today)),
                ('ultima_postulacion', models.DateField(blank=True, null=True)),
                ('condicion_acreditacion', models.NullBooleanField(verbose_name='Está en condición de acreditación de práctica del plan de estudio?')),
                ('expedicion_acreditacion', models.TextField(blank=True, max_length=500, null=True, verbose_name='Justificación de acreditación o su negativa')),
                ('comentarios_comision_carrera', models.TextField(blank=True, max_length=1000, null=True)),
                ('comentarios_carrera_visibles', models.BooleanField(default=False, verbose_name='Comentarios visibles para las empresas')),
                ('comentarios_comision_pps', models.TextField(blank=True, max_length=1000, null=True)),
                ('perfil', private_storage.fields.PrivateFileField(blank=True, null=True, storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Alumno.perfil_upload_path, verbose_name='Foto de perfil')),
                ('progreso', models.SmallIntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)], verbose_name='Progreso en %')),
                ('telefono', phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, null=True, region=None)),
            ],
            options={
                'verbose_name': 'Alumno',
                'verbose_name_plural': 'Alumnos',
            },
        ),
        migrations.CreateModel(
            name='Carrera',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=100)),
                ('activa', models.BooleanField(default=True)),
            ],
            options={
                'verbose_name': 'Carrera',
                'verbose_name_plural': 'Carreras',
            },
        ),
        migrations.CreateModel(
            name='Departamento',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=50, unique=True)),
            ],
            options={
                'verbose_name': 'Departamento',
                'verbose_name_plural': 'Departamentos',
            },
        ),
        migrations.CreateModel(
            name='Docente',
            fields=[
                ('nombre', models.CharField(max_length=30)),
                ('apellido', models.CharField(max_length=20)),
                ('email', models.EmailField(max_length=254, primary_key=True, serialize=False)),
                ('box_oficina', models.CharField(max_length=30)),
                ('departamento', models.ForeignKey(null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Departamento')),
            ],
            options={
                'verbose_name': 'Docente',
                'verbose_name_plural': 'Docentes',
            },
        ),
        migrations.CreateModel(
            name='Empresa',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('descripcion', models.TextField(blank=True, max_length=1000, null=True)),
                ('url', models.URLField(blank=True, default='', null=True)),
                ('logo', private_storage.fields.PrivateFileField(blank=True, null=True, storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to=spypp.models.Empresa.logo_upload_path)),
                ('nombre_fantasia', models.CharField(max_length=200, verbose_name='Nombre de Fantasía')),
                ('activa', models.BooleanField(default=True)),
                ('departamento', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='spypp.Departamento')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='empresa_user', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Empresa',
                'verbose_name_plural': 'Empresas',
                'unique_together': {('departamento', 'nombre_fantasia')},
            },
        ),
        migrations.CreateModel(
            name='Entrevista',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fecha', models.DateTimeField()),
                ('lugar', models.CharField(max_length=200)),
                ('resultado', models.TextField(blank=True, max_length=1000, null=True)),
                ('pasantia_aceptada', models.BooleanField(blank=True, null=True)),
                ('comentarios_empresa', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Comentarios para la Comisión general de Pasantías')),
                ('comentarios_comision_pps', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Comentarios de la Comisión general de Pasantías')),
                ('status', models.CharField(choices=[('COA', 'Confirmada Alumno'), ('NOC', 'No Confirmada Alumno'), ('NOA', 'Notificada Alumno'), ('CAA', 'Cancelada Alumno'), ('REA', 'Realizada'), ('CAE', 'Cancelada Empresa')], default='NOA', max_length=3)),
                ('alumno', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Alumno')),
                ('empresa', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Empresa')),
            ],
            options={
                'verbose_name': 'Entrevista',
                'verbose_name_plural': 'Entrevistas',
                'unique_together': {('alumno', 'empresa', 'fecha')},
            },
        ),
        migrations.CreateModel(
            name='TutorEmpresa',
            fields=[
                ('nombre', models.CharField(max_length=30)),
                ('apellido', models.CharField(max_length=20)),
                ('cargo', models.CharField(max_length=30)),
                ('mail', models.EmailField(max_length=254, primary_key=True, serialize=False)),
                ('empresa', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Empresa')),
            ],
            options={
                'verbose_name': 'Tutor de Empresa',
                'verbose_name_plural': 'Tutores de Empresas',
            },
        ),
        migrations.CreateModel(
            name='SubcomisionPasantiasPPS',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('departamento', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='spypp.Departamento')),
                ('docentes', models.ManyToManyField(to='spypp.Docente', verbose_name='docentes')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='pps_user', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'SubcomisionPasantiasPPS',
                'verbose_name_plural': 'SubcomisionesPasantiasPPS',
            },
        ),
        migrations.CreateModel(
            name='SubcomisionCarrera',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('carrera', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='carrera_comision', to='spypp.Carrera')),
                ('docentes', models.ManyToManyField(related_name='comision_docente', to='spypp.Docente', verbose_name='docentes')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='carrera_user', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'SubcomisionCarrera',
                'verbose_name_plural': 'SubcomisionesCarreras',
            },
        ),
        migrations.CreateModel(
            name='Puesto',
            fields=[
                ('puesto_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('nombre', models.CharField(choices=[('BE', 'Back-end'), ('FE', 'Front-end'), ('QA', 'Quality Assurance'), ('MB', 'Mobile - iOS'), ('AND', 'Mobile - Android'), ('IND', 'Indistinto'), ('OTR', 'Otro')], default='IND', max_length=3, verbose_name='Área')),
                ('descripcion_actividades', models.TextField(max_length=1000)),
                ('conocimientos_requeridos', models.TextField(max_length=1000)),
                ('horario', models.CharField(max_length=100)),
                ('rentado', models.BooleanField(default=False)),
                ('fecha_inactivacion', models.DateField(default=datetime.datetime(2020, 5, 11, 21, 36, 18, 602393))),
                ('activo', models.BooleanField(default=True)),
                ('empresa', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='spypp.Empresa')),
            ],
            options={
                'verbose_name': 'Puesto',
                'verbose_name_plural': 'Puestos',
                'unique_together': {('empresa', 'nombre')},
            },
        ),
        migrations.CreateModel(
            name='Pasantia',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fecha_inicio', models.DateField()),
                ('fecha_fin', models.DateField()),
                ('informe', models.FileField(blank=True, null=True, upload_to='informes/')),
                ('numero_legajo', models.PositiveIntegerField(blank=True, null=True, unique=True)),
                ('comentarios_empresa', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Comentarios para la Comisión general de Pasantías')),
                ('comentarios_comision_pps', models.TextField(blank=True, max_length=1000, null=True, verbose_name='Comentarios de la Comisión general de Pasantías')),
                ('numero_de_expediente', models.PositiveIntegerField(blank=True, null=True, unique=True)),
                ('practica_plan_de_estudio', models.BooleanField(default=False, verbose_name='Práctica del plan de estudio')),
                ('status', models.CharField(choices=[('FINALIZADA', 'Finalizada'), ('DOCUMENTACION PENDIENTE', 'Documentación pendiente'), ('EN CURSO', 'En curso'), ('SIN INICIAR', 'Sin iniciar')], default='SIN INICIAR', max_length=23)),
                ('entrevista', models.OneToOneField(on_delete=django.db.models.deletion.DO_NOTHING, related_name='entrevista_pasantia', to='spypp.Entrevista')),
                ('tutor_docente', models.ForeignKey(null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Docente')),
                ('tutor_empresa', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='spypp.TutorEmpresa')),
            ],
            options={
                'verbose_name': 'Pasantia',
                'verbose_name_plural': 'Pasantias',
            },
        ),
        migrations.AddField(
            model_name='carrera',
            name='departamento',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='spypp.Departamento'),
        ),
        migrations.AddField(
            model_name='alumno',
            name='carrera',
            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Carrera'),
        ),
        migrations.AddField(
            model_name='alumno',
            name='user',
            field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='alumno_user', to=settings.AUTH_USER_MODEL),
        ),
        migrations.CreateModel(
            name='Postulacion',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fecha', models.DateField(default=datetime.date.today)),
                ('fecha_desestimacion', models.DateField(blank=True, null=True)),
                ('activa', models.BooleanField(default=True)),
                ('alumno', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Alumno')),
                ('entrevista', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='entrevista_postulacion', to='spypp.Entrevista')),
                ('puesto', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='spypp.Puesto')),
            ],
            options={
                'verbose_name': 'Postulacion',
                'verbose_name_plural': 'Postulaciones',
                'unique_together': {('puesto', 'alumno')},
            },
        ),
        migrations.CreateModel(
            name='DirectorDepartamento',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('departamento', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='spypp.Departamento')),
                ('docente', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='spypp.Docente')),
            ],
            options={
                'verbose_name': 'Director de Departamento',
                'verbose_name_plural': 'Directores de Departamento',
                'unique_together': {('departamento', 'docente')},
            },
        ),
        migrations.AlterUniqueTogether(
            name='carrera',
            unique_together={('departamento', 'nombre')},
        ),
    ]
