From 6567e6ac10ee1160ee3ccb72f760b555f597b8bc Mon Sep 17 00:00:00 2001 From: Chris Church Date: Fri, 19 Apr 2013 10:31:47 -0400 Subject: [PATCH] Might help to add the forms for the admin to import. --- lib/main/forms.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 lib/main/forms.py diff --git a/lib/main/forms.py b/lib/main/forms.py new file mode 100644 index 0000000000..5dc73d7b5e --- /dev/null +++ b/lib/main/forms.py @@ -0,0 +1,47 @@ +import json +from django import forms +from django.utils.translation import ugettext_lazy as _ +from jsonfield.fields import JSONFormField +from lib.main.models import * + +class HostAdminForm(forms.ModelForm): + + class Meta: + model = Host + + vdata = JSONFormField(label=_('Variable data'), required=False, widget=forms.Textarea(attrs={'class': 'vLargeTextField'})) + + def __init__(self, *args, **kwargs): + super(HostAdminForm, self).__init__(*args, **kwargs) + if self.instance.variable_data: + print repr(self.instance.variable_data.data) + self.initial['vdata'] = self.instance.variable_data.data + + def save(self, commit=True): + instance = super(HostAdminForm, self).save(commit=commit) + save_m2m = getattr(self, 'save_m2m', lambda: None) + vdata = self.cleaned_data.get('vdata', '') + print 'vdata', repr(vdata) + def new_save_m2m(): + save_m2m() + if not instance.variable_data: + instance.variable_data = VariableData.objects.create(data=vdata) + instance.save() + else: + variable_data = instance.variable_data + # FIXME!!! + #variable_data.data = vdata + #variable_data.save() + if commit: + new_save_m2m() + else: + self.save_m2m = new_save_m2m + return instance + +class GroupForm(forms.ModelForm): + + class Meta: + model = Host + + variable_data = JSONFormField(required=False, widget=forms.Textarea(attrs={'class': 'vLargeTextField'})) +