summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/widgets.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/widgets.py')
-rw-r--r--ishtar/furnitures/widgets.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/ishtar/furnitures/widgets.py b/ishtar/furnitures/widgets.py
index fe40da912..69591a9ce 100644
--- a/ishtar/furnitures/widgets.py
+++ b/ishtar/furnitures/widgets.py
@@ -28,6 +28,7 @@ from django.core.urlresolvers import resolve
from django.utils.translation import ugettext_lazy as _
from ishtar import settings
+import models
class DeleteWidget(forms.CheckboxInput):
def render(self, name, value, attrs=None):
@@ -129,11 +130,13 @@ class JQueryJqGrid(forms.RadioSelect):
]
css = {'all':['%s/media/ui.jqgrid.css' % settings.MEDIA_URL]}
- def __init__(self, source, form, associated_model, attrs={}):
+ def __init__(self, source, form, associated_model, attrs={},
+ table_cols='TABLE_COLS'):
self.source = source
self.form = form
self.attrs = attrs
self.associated_model = associated_model
+ self.table_cols = table_cols
def render(self, name, value=None, attrs=None):
rendered = unicode(self.form)
@@ -147,9 +150,14 @@ class JQueryJqGrid(forms.RadioSelect):
for k in self.form.fields:
field = self.form.fields[k]
col_idx.append(u'"%s"' % k)
- for field_name in self.associated_model.TABLE_COLS:
+ for field_name in getattr(self.associated_model, self.table_cols):
+ field = self.associated_model
+ keys = field_name.split('.')
try:
- field = self.associated_model._meta.get_field(field_name)
+ for key in keys:
+ if hasattr(field, 'rel'):
+ field = field.rel.to
+ field = field._meta.get_field(key)
except:
continue
col_names.append(u'"%s"' % field.verbose_name)
@@ -209,7 +217,8 @@ jQuery("#grid_%(name)s").jqGrid({
pager: '#pager_%(name)s',
pgbuttons: false,
pginput: false,
- width:740
+ width:740,
+ jsonReader : {repeatitems: false}
});
});
</script>