diff --git a/aleksis/core/migrations/0021_group_types.py b/aleksis/core/migrations/0021_group_types.py new file mode 100644 index 0000000000000000000000000000000000000000..290d08e1dd35f1c32a22bad2dd2f170c2e835363 --- /dev/null +++ b/aleksis/core/migrations/0021_group_types.py @@ -0,0 +1,33 @@ +# Generated by Django 3.0.5 on 2020-04-13 13:44 + +import django.contrib.postgres.fields.jsonb +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0020_incease_length_of_fields'), + ] + + operations = [ + migrations.CreateModel( + name='GroupType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)), + ('name', models.CharField(max_length=50, verbose_name='Title of type')), + ('description', models.CharField(max_length=500, verbose_name='Description')), + ], + options={ + 'verbose_name': 'Group type', + 'verbose_name_plural': 'Group types', + }, + ), + migrations.AddField( + model_name='group', + name='type', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='type', to='core.GroupType', verbose_name='Type of group'), + ), + ] diff --git a/aleksis/core/models.py b/aleksis/core/models.py index 9d6e45d935394eb00dcdedf9213966203f1d981f..62c69c657022a727a1b8a07498e212455d0ce4e9 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -237,6 +237,8 @@ class Group(ExtensibleModel): blank=True, ) + type = models.ForeignKey("GroupType", on_delete=models.CASCADE, related_name="type", verbose_name=_("Type of group"), null=True, blank=True) + @property def announcement_recipients(self): return list(self.members.all()) + list(self.owners.all()) @@ -510,3 +512,11 @@ class CustomMenuItem(ExtensibleModel): class Meta: verbose_name = _("Custom menu item") verbose_name_plural = _("Custom menu items") + +class GroupType(ExtensibleModel): + name = models.CharField(verbose_name=_("Title of type"), max_length=50) + description = models.CharField(verbose_name=_("Description"), max_length=500) + + class Meta: + verbose_name = _("Group type") + verbose_name_plural = _("Group types")