forked from val-lop20/Pagina-de-Asistencia-MAC
Importación de alumnos y asistentes
This commit is contained in:
@@ -35,25 +35,32 @@ class StudentResource(resources.ModelResource):
|
||||
# Asignar automáticamente user_type como student
|
||||
row['user_type'] = 'student'
|
||||
|
||||
def after_save_instance(self, instance, using_transactions, dry_run):
|
||||
def before_save_instance(self, instance, row, using_transactions, dry_run, **kwargs):
|
||||
"""Crear usuario de Django si no existe y asegurar que sea estudiante"""
|
||||
if not dry_run:
|
||||
# Asegurar que sea estudiante
|
||||
if instance.user_type != 'student':
|
||||
instance.user_type = 'student'
|
||||
instance.save()
|
||||
# Asegurar que sea estudiante
|
||||
instance.user_type = 'student'
|
||||
|
||||
# Crear usuario de Django si no existe
|
||||
if not instance.user_id:
|
||||
user = User.objects.create_user(
|
||||
username=instance.account_number,
|
||||
first_name=instance.full_name,
|
||||
password=None
|
||||
)
|
||||
user.set_unusable_password()
|
||||
user.save()
|
||||
# Crear usuario de Django si no existe
|
||||
if not instance.user_id:
|
||||
# Buscar si ya existe el usuario
|
||||
try:
|
||||
user = User.objects.get(username=instance.account_number)
|
||||
except User.DoesNotExist:
|
||||
if not dry_run:
|
||||
# Solo crear en la base de datos si no es dry_run
|
||||
user = User.objects.create_user(
|
||||
username=instance.account_number,
|
||||
first_name=instance.full_name,
|
||||
password=None
|
||||
)
|
||||
user.set_unusable_password()
|
||||
user.save()
|
||||
else:
|
||||
# En dry_run, dejar user como None (ahora permitido)
|
||||
user = None
|
||||
|
||||
if user:
|
||||
instance.user = user
|
||||
instance.save()
|
||||
|
||||
|
||||
class AssistantResource(resources.ModelResource):
|
||||
@@ -75,26 +82,36 @@ class AssistantResource(resources.ModelResource):
|
||||
# Asignar automáticamente user_type como assistant
|
||||
row['user_type'] = 'assistant'
|
||||
|
||||
def after_save_instance(self, instance, using_transactions, dry_run):
|
||||
def before_save_instance(self, instance, row, using_transactions, dry_run, **kwargs):
|
||||
"""Crear usuario de Django si no existe y asegurar que sea asistente"""
|
||||
if not dry_run:
|
||||
# Asegurar que sea asistente
|
||||
if instance.user_type != 'assistant':
|
||||
instance.user_type = 'assistant'
|
||||
instance.save()
|
||||
# Asegurar que sea asistente
|
||||
instance.user_type = 'assistant'
|
||||
|
||||
# Crear usuario de Django si no existe
|
||||
if not instance.user_id:
|
||||
user = User.objects.create_user(
|
||||
username=instance.account_number,
|
||||
first_name=instance.full_name,
|
||||
password=None
|
||||
)
|
||||
user.set_unusable_password()
|
||||
user.save()
|
||||
# Crear usuario de Django si no existe
|
||||
if not instance.user_id:
|
||||
# Buscar si ya existe el usuario
|
||||
try:
|
||||
user = User.objects.get(username=instance.account_number)
|
||||
except User.DoesNotExist:
|
||||
if not dry_run:
|
||||
# Solo crear en la base de datos si no es dry_run
|
||||
user = User.objects.create_user(
|
||||
username=instance.account_number,
|
||||
first_name=instance.full_name,
|
||||
password=None
|
||||
)
|
||||
user.set_unusable_password()
|
||||
user.save()
|
||||
else:
|
||||
# En dry_run, dejar user como None (ahora permitido)
|
||||
user = None
|
||||
|
||||
if user:
|
||||
instance.user = user
|
||||
instance.save()
|
||||
|
||||
def after_save_instance(self, instance, using_transactions, dry_run):
|
||||
"""Crear automáticamente el registro de Asistente después de guardar"""
|
||||
if not dry_run:
|
||||
# Crear automáticamente el registro de Asistente si no existe
|
||||
from .models import Asistente
|
||||
Asistente.objects.get_or_create(
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# Generated by Django 5.2.6 on 2025-10-20 19:19
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('authentication', '0012_systemconfiguration_minutes_after_start_and_more'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='userprofile',
|
||||
name='user',
|
||||
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
||||
),
|
||||
]
|
||||
@@ -10,7 +10,7 @@ class UserProfile(models.Model):
|
||||
('assistant', 'Asistente'),
|
||||
)
|
||||
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE)
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
|
||||
account_number = models.CharField(
|
||||
max_length=7,
|
||||
unique=True,
|
||||
|
||||
Reference in New Issue
Block a user