diff --git a/groups/admin.py b/groups/admin.py index 18f51cd9..3e69d267 100644 --- a/groups/admin.py +++ b/groups/admin.py @@ -10,4 +10,11 @@ class GroupAdmin(admin.ModelAdmin): def formfield_for_manytomany(self, db_field, request, **kwargs): if db_field.name == "members": kwargs["queryset"] = s_models.Partment.objects.filter(iscompany=1,deletemark=1) - return super().formfield_for_manytomany(db_field, request, **kwargs) \ No newline at end of file + return super().formfield_for_manytomany(db_field, request, **kwargs) + +@admin.register(models.Groupmember) +class GroupmemberAdmin(admin.ModelAdmin): + def formfield_for_foreignkey(self, db_field, request, **kwargs): + if db_field.name == "member": + kwargs["queryset"] = s_models.Partment.objects.filter(iscompany=1,deletemark=1) + return super().formfield_for_foreignkey(db_field, request, **kwargs) \ No newline at end of file diff --git a/groups/migrations/0003_auto_20191024_1056.py b/groups/migrations/0003_auto_20191024_1056.py new file mode 100644 index 00000000..7b723403 --- /dev/null +++ b/groups/migrations/0003_auto_20191024_1056.py @@ -0,0 +1,31 @@ +# Generated by Django 2.1.5 on 2019-10-24 10:56 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0281_remove_companyinfo_liaison_fax'), + ('groups', '0002_auto_20191017_0929'), + ] + + operations = [ + migrations.CreateModel( + name='Groupmember', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ], + ), + migrations.AddField( + model_name='groupmember', + name='group', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='groups.Group'), + ), + migrations.AddField( + model_name='groupmember', + name='member', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment'), + ), + ] diff --git a/groups/migrations/0004_auto_20191024_1109.py b/groups/migrations/0004_auto_20191024_1109.py new file mode 100644 index 00000000..4f15b44a --- /dev/null +++ b/groups/migrations/0004_auto_20191024_1109.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.5 on 2019-10-24 11:09 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('groups', '0003_auto_20191024_1056'), + ] + + operations = [ + migrations.RenameField( + model_name='group', + old_name='members', + new_name='member', + ), + ] diff --git a/groups/migrations/0005_remove_group_member.py b/groups/migrations/0005_remove_group_member.py new file mode 100644 index 00000000..d72f809e --- /dev/null +++ b/groups/migrations/0005_remove_group_member.py @@ -0,0 +1,17 @@ +# Generated by Django 2.1.5 on 2019-10-24 11:11 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('groups', '0004_auto_20191024_1109'), + ] + + operations = [ + migrations.RemoveField( + model_name='group', + name='member', + ), + ] diff --git a/groups/migrations/0006_group_members.py b/groups/migrations/0006_group_members.py new file mode 100644 index 00000000..6076ee27 --- /dev/null +++ b/groups/migrations/0006_group_members.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.5 on 2019-10-24 11:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0285_remove_companyinfo_liaison_fax'), + ('groups', '0005_remove_group_member'), + ] + + operations = [ + migrations.AddField( + model_name='group', + name='members', + field=models.ManyToManyField(through='groups.Groupmember', to='safesite.Partment'), + ), + ] diff --git a/groups/models.py b/groups/models.py index 64459f5f..01689d7c 100644 --- a/groups/models.py +++ b/groups/models.py @@ -11,8 +11,7 @@ class Group(models.Model): groupname = models.CharField(max_length=128, unique=True) type = models.CharField(max_length=32, choices=grouptype, default="集团") createtime = models.DateTimeField(auto_now_add=True) - members = models.ManyToManyField(s_models.Partment) - + members = models.ManyToManyField(s_models.Partment,through='Groupmember') def __str__(self): return self.groupname @@ -21,6 +20,10 @@ class Group(models.Model): verbose_name="集团" verbose_name_plural="集团" +class Groupmember(models.Model): + group = models.ForeignKey(Group,on_delete=models.CASCADE) + member = models.ForeignKey(s_models.Partment,on_delete=models.CASCADE) + class GroupUser(models.Model): username = models.CharField(max_length=128, unique=True) password = models.CharField(max_length=256) diff --git a/safesite/migrations/0281_remove_companyinfo_liaison_fax.py b/safesite/migrations/0281_remove_companyinfo_liaison_fax.py new file mode 100644 index 00000000..a32fe6fe --- /dev/null +++ b/safesite/migrations/0281_remove_companyinfo_liaison_fax.py @@ -0,0 +1,17 @@ +# Generated by Django 2.1.5 on 2019-10-24 10:56 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0280_auto_20191023_1711'), + ] + + operations = [ + # migrations.RemoveField( + # model_name='companyinfo', + # name='liaison_fax', + # ), + ] diff --git a/safesite/migrations/0282_remove_companyinfo_liaison_fax.py b/safesite/migrations/0282_remove_companyinfo_liaison_fax.py new file mode 100644 index 00000000..8829e0ca --- /dev/null +++ b/safesite/migrations/0282_remove_companyinfo_liaison_fax.py @@ -0,0 +1,17 @@ +# Generated by Django 2.1.5 on 2019-10-24 11:09 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0281_remove_companyinfo_liaison_fax'), + ] + + operations = [ + # migrations.RemoveField( + # model_name='companyinfo', + # name='liaison_fax', + # ), + ] diff --git a/safesite/migrations/0283_remove_companyinfo_liaison_fax.py b/safesite/migrations/0283_remove_companyinfo_liaison_fax.py new file mode 100644 index 00000000..95023475 --- /dev/null +++ b/safesite/migrations/0283_remove_companyinfo_liaison_fax.py @@ -0,0 +1,17 @@ +# Generated by Django 2.1.5 on 2019-10-24 11:11 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0282_remove_companyinfo_liaison_fax'), + ] + + operations = [ + # migrations.RemoveField( + # model_name='companyinfo', + # name='liaison_fax', + # ), + ] diff --git a/safesite/migrations/0284_remove_companyinfo_liaison_fax.py b/safesite/migrations/0284_remove_companyinfo_liaison_fax.py new file mode 100644 index 00000000..317341e6 --- /dev/null +++ b/safesite/migrations/0284_remove_companyinfo_liaison_fax.py @@ -0,0 +1,17 @@ +# Generated by Django 2.1.5 on 2019-10-24 11:13 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0283_remove_companyinfo_liaison_fax'), + ] + + operations = [ + # migrations.RemoveField( + # model_name='companyinfo', + # name='liaison_fax', + # ), + ] diff --git a/safesite/migrations/0285_remove_companyinfo_liaison_fax.py b/safesite/migrations/0285_remove_companyinfo_liaison_fax.py new file mode 100644 index 00000000..9d7b4a7e --- /dev/null +++ b/safesite/migrations/0285_remove_companyinfo_liaison_fax.py @@ -0,0 +1,17 @@ +# Generated by Django 2.1.5 on 2019-10-24 11:20 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0284_remove_companyinfo_liaison_fax'), + ] + + operations = [ + # migrations.RemoveField( + # model_name='companyinfo', + # name='liaison_fax', + # ), + ]