forked from DGNum/gestioCOF
Remove the EventTimeSlot model
It was pointless and is replaced by 3 additionnal fields in the `Event` model: `location`, `start_date` and `end_date`.
This commit is contained in:
parent
ec3a9a9658
commit
18ee33e1e0
2 changed files with 16 additions and 43 deletions
|
@ -8,45 +8,29 @@ import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
def import_events(apps, schema_editor):
|
def import_events(apps, schema_editor):
|
||||||
# Fetching the cof group
|
# Fetching the models that have be moved from cof to gestion
|
||||||
cof = apps.get_model("auth", "Group").objects.get(name="cof_buro")
|
|
||||||
|
|
||||||
# First we deal with Events and Timeslots
|
|
||||||
OldEvent = apps.get_model("cof", "Event")
|
|
||||||
NewEvent = apps.get_model("gestion", "Event")
|
|
||||||
TimeSlot = apps.get_model("gestion", "EventTimeSlot")
|
|
||||||
# TODO: can it be done more efficiently?
|
|
||||||
for event in OldEvent.objects.all():
|
|
||||||
new_event = NewEvent.objects.create(
|
|
||||||
title=event.title,
|
|
||||||
description=event.description,
|
|
||||||
image=event.image,
|
|
||||||
registration_open=event.registration_open,
|
|
||||||
old=event.old
|
|
||||||
)
|
|
||||||
new_event.associations.add(cof)
|
|
||||||
TimeSlot.objects.create(
|
|
||||||
event=new_event,
|
|
||||||
location=event.location,
|
|
||||||
start_date=event.start_date,
|
|
||||||
end_date=event.end_date
|
|
||||||
)
|
|
||||||
|
|
||||||
# Then we migrate the other models
|
|
||||||
model_names = [
|
model_names = [
|
||||||
"EventCommentField", "EventCommentValue", "EventOption",
|
"Event", "EventCommentField", "EventCommentValue", "EventOption",
|
||||||
"EventOptionChoice", "EventRegistration"
|
"EventOptionChoice", "EventRegistration"
|
||||||
]
|
]
|
||||||
models = [
|
models = [
|
||||||
(apps.get_model("cof", name), apps.get_model("gestion", name))
|
(apps.get_model("cof", name), apps.get_model("gestion", name))
|
||||||
for name in model_names
|
for name in model_names
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Moving the data into the new table
|
||||||
for OldModel, NewModel in models:
|
for OldModel, NewModel in models:
|
||||||
NewModel.objects.bulk_create([
|
NewModel.objects.bulk_create([
|
||||||
NewModel(**values)
|
NewModel(**values)
|
||||||
for values in OldModel.objects.values()
|
for values in OldModel.objects.values()
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# Linking all the existing event to the COF group
|
||||||
|
cof = apps.get_model("auth", "Group").objects.get(name="cof_buro")
|
||||||
|
_, NewEvent = models[0]
|
||||||
|
for event in NewEvent.objects.all():
|
||||||
|
event.associations.add(cof)
|
||||||
|
|
||||||
|
|
||||||
def restore_events(apps, schema_editor):
|
def restore_events(apps, schema_editor):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
@ -66,6 +50,9 @@ class Migration(migrations.Migration):
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('title', models.CharField(max_length=200, verbose_name='Titre')),
|
('title', models.CharField(max_length=200, verbose_name='Titre')),
|
||||||
|
('location', models.CharField(max_length=200, verbose_name='Lieu')),
|
||||||
|
('start_date', models.DateTimeField(blank=True, null=True, verbose_name='Date de début')),
|
||||||
|
('end_date', models.DateTimeField(blank=True, null=True, verbose_name='Date de fin')),
|
||||||
('description', models.TextField(blank=True, verbose_name='Description')),
|
('description', models.TextField(blank=True, verbose_name='Description')),
|
||||||
('image', models.ImageField(blank=True, null=True, upload_to='imgs/events/', verbose_name='Image')),
|
('image', models.ImageField(blank=True, null=True, upload_to='imgs/events/', verbose_name='Image')),
|
||||||
('registration_open', models.BooleanField(default=True, verbose_name='Inscriptions ouvertes')),
|
('registration_open', models.BooleanField(default=True, verbose_name='Inscriptions ouvertes')),
|
||||||
|
@ -76,16 +63,6 @@ class Migration(migrations.Migration):
|
||||||
'verbose_name': 'Événement',
|
'verbose_name': 'Événement',
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
|
||||||
name='EventTimeSlot',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('location', models.CharField(max_length=200, verbose_name='Lieu')),
|
|
||||||
('start_date', models.DateTimeField(blank=True, null=True, verbose_name='Date de début')),
|
|
||||||
('end_date', models.DateTimeField(blank=True, null=True, verbose_name='Date de fin')),
|
|
||||||
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gestion.Event')),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='EventCommentField',
|
name='EventCommentField',
|
||||||
fields=[
|
fields=[
|
||||||
|
|
|
@ -121,6 +121,9 @@ class ClubUser(models.Model):
|
||||||
class Event(models.Model):
|
class Event(models.Model):
|
||||||
associations = models.ManyToManyField(Group, related_name="events")
|
associations = models.ManyToManyField(Group, related_name="events")
|
||||||
title = models.CharField("Titre", max_length=200)
|
title = models.CharField("Titre", max_length=200)
|
||||||
|
location = models.CharField("Lieu", max_length=200)
|
||||||
|
start_date = models.DateTimeField("Date de début", blank=True, null=True)
|
||||||
|
end_date = models.DateTimeField("Date de fin", blank=True, null=True)
|
||||||
description = models.TextField("Description", blank=True)
|
description = models.TextField("Description", blank=True)
|
||||||
image = models.ImageField(
|
image = models.ImageField(
|
||||||
"Image", blank=True, null=True, upload_to="imgs/events/"
|
"Image", blank=True, null=True, upload_to="imgs/events/"
|
||||||
|
@ -137,13 +140,6 @@ class Event(models.Model):
|
||||||
return self.title
|
return self.title
|
||||||
|
|
||||||
|
|
||||||
class EventTimeSlot(models.Model):
|
|
||||||
event = models.ForeignKey(Event)
|
|
||||||
location = models.CharField("Lieu", max_length=200)
|
|
||||||
start_date = models.DateTimeField("Date de début", blank=True, null=True)
|
|
||||||
end_date = models.DateTimeField("Date de fin", blank=True, null=True)
|
|
||||||
|
|
||||||
|
|
||||||
class EventCommentField(models.Model):
|
class EventCommentField(models.Model):
|
||||||
TEXT = "text"
|
TEXT = "text"
|
||||||
CHAR = "char"
|
CHAR = "char"
|
||||||
|
|
Loading…
Reference in a new issue