diff options
Diffstat (limited to 'ishtar/furnitures/widgets.py')
-rw-r--r-- | ishtar/furnitures/widgets.py | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/ishtar/furnitures/widgets.py b/ishtar/furnitures/widgets.py index 932770f29..439eb81fa 100644 --- a/ishtar/furnitures/widgets.py +++ b/ishtar/furnitures/widgets.py @@ -129,22 +129,14 @@ class JQueryJqGrid(forms.RadioSelect): ]
css = {'all':['%s/media/ui.jqgrid.css' % settings.MEDIA_URL]}
- def __init__(self, source, form, cols, attrs={}):
+ def __init__(self, source, form, associated_model, attrs={}):
self.source = source
self.form = form
self.attrs = attrs
- self.cols = cols
+ self.associated_model = associated_model
def render(self, name, value=None, attrs=None):
rendered = unicode(self.form)
- """
- for k in self.form.fields:
- field = self.form.fields[k]
- print unicode(field)
- print field.label_tag
- rendered += u"<tr><td>%s</td><td>%s</td></tr>" % (field.label_tag,
- unicode(field))
- """
rendered += """
</table>
<button id='search_%s' class='submit'>%s</button>
@@ -155,12 +147,16 @@ class JQueryJqGrid(forms.RadioSelect): for k in self.form.fields:
field = self.form.fields[k]
col_idx.append(u'"%s"' % k)
- if k in self.cols:
- col_names.append(u'"%s"' % field.label)
- extra_cols.append(self.COL_TPL % {'idx':k})
- col_names = col_names and ",".join([""]+col_names) or ""
- col_idx = col_idx and ",".join(col_idx) or ""
- extra_cols = extra_cols and ",".join([""]+extra_cols) or ""
+ for field_name in self.associated_model.TABLE_COLS:
+ try:
+ field = self.associated_model._meta.get_field(field_name)
+ except:
+ continue
+ col_names.append(u'"%s"' % field.verbose_name)
+ extra_cols.append(self.COL_TPL % {'idx':field.name})
+ col_names = col_names and ",\n".join(col_names) or ""
+ col_idx = col_idx and ",\n".join(col_idx) or ""
+ extra_cols = extra_cols and ",\n".join(extra_cols) or ""
rendered += """<table id="grid_%s" class='jqgrid'></table>
<div id="pager_%s"></div>
""" % (name, name)
@@ -199,10 +195,10 @@ jQuery("#grid_%(name)s").jqGrid({ url:'%(source)s',
datatype: "json",
mtype: 'GET',
- colNames:['id', '%(name_label)s'%(col_names)s],
+ colNames:['id', %(col_names)s],
colModel:[
{name:'id', index:'id', hidden:true},
-{name:'value', index:'value'}%(extra_cols)s
+%(extra_cols)s
],
sortname: 'value',
viewrecords: true,
@@ -217,8 +213,7 @@ jQuery("#grid_%(name)s").jqGrid({ });
</script>
""" % {'name':name, 'col_names':col_names, 'extra_cols':extra_cols,
- 'name_label':unicode(_("Name")), 'source':unicode(self.source),
- 'col_idx':col_idx, 'no_result':unicode(_("No results")),
- 'loading':unicode(_("Loading..."))}
+ 'source':unicode(self.source), 'col_idx':col_idx,
+ 'no_result':unicode(_("No results")), 'loading':unicode(_("Loading..."))}
return rendered
|