forked from val-lop20/Pagina-de-Asistencia-MAC
52 lines
3.0 KiB
Python
52 lines
3.0 KiB
Python
# Generated by Django 5.2.6 on 2025-09-24 00:40
|
|
|
|
import django.db.models.deletion
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
('authentication', '0001_initial'),
|
|
('events', '0001_initial'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Attendance',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('timestamp', models.DateTimeField(auto_now_add=True, verbose_name='Hora de registro')),
|
|
('registration_method', models.CharField(choices=[('manual', 'Registro Manual'), ('barcode', 'Código de Barras'), ('external', 'Usuario Externo')], default='manual', max_length=10, verbose_name='Método de registro')),
|
|
('notes', models.TextField(blank=True, null=True, verbose_name='Notas adicionales')),
|
|
('is_valid', models.BooleanField(default=True, verbose_name='Asistencia válida')),
|
|
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.event', verbose_name='Evento')),
|
|
('external_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='events.externaluser', verbose_name='Usuario Externo')),
|
|
('registered_by', models.ForeignKey(limit_choices_to={'user_type': 'teacher'}, on_delete=django.db.models.deletion.CASCADE, related_name='registered_attendances', to='authentication.userprofile', verbose_name='Registrado por')),
|
|
('student', models.ForeignKey(blank=True, limit_choices_to={'user_type': 'student'}, null=True, on_delete=django.db.models.deletion.CASCADE, to='authentication.userprofile', verbose_name='Estudiante')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Asistencia',
|
|
'verbose_name_plural': 'Asistencias',
|
|
'ordering': ['-timestamp'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='AttendanceStats',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('total_events', models.IntegerField(default=0, verbose_name='Total de eventos')),
|
|
('attended_events', models.IntegerField(default=0, verbose_name='Eventos asistidos')),
|
|
('attendance_percentage', models.FloatField(default=0.0, verbose_name='Porcentaje de asistencia')),
|
|
('last_updated', models.DateTimeField(auto_now=True, verbose_name='Última actualización')),
|
|
('student', models.OneToOneField(limit_choices_to={'user_type': 'student'}, on_delete=django.db.models.deletion.CASCADE, to='authentication.userprofile', verbose_name='Estudiante')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Estadísticas de asistencia',
|
|
'verbose_name_plural': 'Estadísticas de asistencia',
|
|
},
|
|
),
|
|
]
|