forked from DGNum/gestioCOF
Create an Association model
The previous fk and m2m to groups representing associations are replaced by a proper link to the Association table.
This commit is contained in:
parent
b68590ffd7
commit
a9e6ef6c5c
2 changed files with 93 additions and 2 deletions
61
gestion/migrations/0005_create_association.py
Normal file
61
gestion/migrations/0005_create_association.py
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11b1 on 2017-06-24 21:21
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
def create_apps(apps, schema_editor):
|
||||||
|
Association = apps.get_model("gestion", "Association")
|
||||||
|
Group = apps.get_model("auth", "Group")
|
||||||
|
|
||||||
|
cof_m, _ = Group.objects.get_or_create(name="cof_members")
|
||||||
|
cof_b, _ = Group.objects.get_or_create(name="cof_buro")
|
||||||
|
bds_m, _ = Group.objects.get_or_create(name="bds_members")
|
||||||
|
bds_b, _ = Group.objects.get_or_create(name="bds_buro")
|
||||||
|
|
||||||
|
Association.objects.bulk_create([
|
||||||
|
Association(id=1, name="COF", staff_group=cof_b, members_group=cof_m),
|
||||||
|
Association(id=2, name="BDS", staff_group=bds_b, members_group=bds_m),
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('auth', '0008_alter_user_username_max_length'),
|
||||||
|
('gestion', '0004_verbose_names'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Association',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=30, verbose_name="nom de l'association")),
|
||||||
|
('members_group', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='member_groups', to='auth.Group', verbose_name='groupe des membres')),
|
||||||
|
('staff_group', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='staff_groups', to='auth.Group', verbose_name='groupe des membre du bureau')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'association',
|
||||||
|
'verbose_name_plural': 'associations',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.RunPython(create_apps, migrations.RunPython.noop),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='club',
|
||||||
|
name='associations',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='club',
|
||||||
|
name='association',
|
||||||
|
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, related_name='clubs', to='gestion.Association', verbose_name='association'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='event',
|
||||||
|
name='associations',
|
||||||
|
field=models.ManyToManyField(related_name='events', to='gestion.Association', verbose_name='associations'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -66,6 +66,31 @@ def post_delete_user(sender, instance, *args, **kwargs):
|
||||||
instance.user.delete()
|
instance.user.delete()
|
||||||
|
|
||||||
|
|
||||||
|
class Association(models.Model):
|
||||||
|
name = models.CharField(_("nom de l'association"), max_length=30)
|
||||||
|
staff_group = models.ForeignKey(
|
||||||
|
Group,
|
||||||
|
on_delete=models.PROTECT,
|
||||||
|
related_name="staff_groups",
|
||||||
|
blank=True, null=True,
|
||||||
|
verbose_name=_("groupe des membre du bureau"),
|
||||||
|
)
|
||||||
|
members_group = models.ForeignKey(
|
||||||
|
Group,
|
||||||
|
on_delete=models.PROTECT,
|
||||||
|
related_name="member_groups",
|
||||||
|
blank=True, null=True,
|
||||||
|
verbose_name=_("groupe des membres"),
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = _("association")
|
||||||
|
verbose_name_plural = _("associations")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# Clubs
|
# Clubs
|
||||||
# ---
|
# ---
|
||||||
|
@ -81,7 +106,12 @@ class Club(models.Model):
|
||||||
(COURSE, _("Au cours"))
|
(COURSE, _("Au cours"))
|
||||||
]
|
]
|
||||||
|
|
||||||
associations = models.ManyToManyField(Group, related_name="clubs")
|
association = models.ForeignKey(
|
||||||
|
Association,
|
||||||
|
on_delete=models.PROTECT,
|
||||||
|
related_name="clubs",
|
||||||
|
verbose_name=_("association"),
|
||||||
|
)
|
||||||
name = models.CharField(_("nom"), max_length=200, unique=True)
|
name = models.CharField(_("nom"), max_length=200, unique=True)
|
||||||
description = models.TextField("description", blank=True)
|
description = models.TextField("description", blank=True)
|
||||||
members = models.ManyToManyField(
|
members = models.ManyToManyField(
|
||||||
|
@ -139,7 +169,7 @@ class Location(models.Model):
|
||||||
|
|
||||||
class Event(models.Model):
|
class Event(models.Model):
|
||||||
associations = models.ManyToManyField(
|
associations = models.ManyToManyField(
|
||||||
Group,
|
Association,
|
||||||
related_name="events",
|
related_name="events",
|
||||||
verbose_name=_("associations"),
|
verbose_name=_("associations"),
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue