diff --git a/apps/assets/forms.py b/apps/assets/forms.py index 90283c37a..24d68e02c 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -6,7 +6,6 @@ from django.utils.translation import gettext_lazy as _ class AssetForm(forms.ModelForm): - class Meta: model = Asset @@ -22,6 +21,20 @@ class AssetForm(forms.ModelForm): class AssetGroupForm(forms.ModelForm): + assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all()) + + def __init__(self, *args, **kwargs): + if kwargs.get('instance'): + initial = kwargs.get('initial', {}) + initial['assets'] = kwargs['instance'].assets.all() + super(AssetGroupForm, self).__init__(*args, **kwargs) + + def _save_m2m(self): + super(AssetGroupForm, self)._save_m2m() + assets = self.cleaned_data['assets'] + self.instance.assets.clear() + self.instance.assets.add(*tuple(assets)) + class Meta: model = AssetGroup fields = [ diff --git a/apps/assets/models.py b/apps/assets/models.py index c9720601f..f29c2a5f2 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -103,7 +103,7 @@ class Asset(models.Model): remote_card_ip = models.CharField(max_length=16, null=True, blank=True, verbose_name=_('Remote card IP')) hostname = models.CharField(max_length=128, unique=True, null=True, blank=True, verbose_name=_('Hostname')) port = models.IntegerField(null=True, blank=True, verbose_name=_('Port')) - groups = models.ManyToManyField(AssetGroup, null=True, blank=True, verbose_name=_('Asset groups')) + groups = models.ManyToManyField(AssetGroup, related_name='assets', verbose_name=_('Asset groups')) username = models.CharField(max_length=16, null=True, blank=True, verbose_name=_('Admin user')) password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_("Admin password")) admin_user = models.ForeignKey(AdminUser, null=True, blank=True, on_delete=models.SET_NULL, verbose_name=_("Admin user")) diff --git a/apps/assets/templates/assets/asset_add.html b/apps/assets/templates/assets/asset_add.html index 5a265253d..fd684a31e 100644 --- a/apps/assets/templates/assets/asset_add.html +++ b/apps/assets/templates/assets/asset_add.html @@ -44,18 +44,8 @@ - -{#