Might help to add the forms for the admin to import.

This commit is contained in:
Chris Church 2013-04-19 10:31:47 -04:00
parent b9da59c5f3
commit 6567e6ac10

47
lib/main/forms.py Normal file
View File

@ -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'}))