diff options
Diffstat (limited to 'ishtar/ishtar_base/widgets.py')
| -rw-r--r-- | ishtar/ishtar_base/widgets.py | 230 | 
1 files changed, 113 insertions, 117 deletions
| diff --git a/ishtar/ishtar_base/widgets.py b/ishtar/ishtar_base/widgets.py index 374fde2c5..bff9aeca6 100644 --- a/ishtar/ishtar_base/widgets.py +++ b/ishtar/ishtar_base/widgets.py @@ -207,10 +207,9 @@ class JQueryJqGrid(forms.RadioSelect):      def render(self, name, value=None, attrs=None):
          t = loader.get_template('form_snippet.html')
          rendered = t.render(Context({'form':self.form}))
 -        rendered += """
 -</table>
 -<button id='search_%s' class='submit'>%s</button>
 -""" % (name, unicode(_("Search")))
 +        rendered += u"\n</table>\n"\
 +        u"<button id='search_%s' class='submit'>%s</button>" % (
 +                                                name, unicode(_("Search")))
          if self.new:
              model_name = self.associated_model._meta.object_name.lower()
              url_new = reverse('new-' + model_name)
 @@ -244,128 +243,125 @@ class JQueryJqGrid(forms.RadioSelect):          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)
 +        rendered += u"<table id='grid_%s' class='jqgrid'></table>\n"\
 +                    u"<div id='pager_%s'></div>\n"% (name, name)
          encoding = settings.ENCODING or 'utf-8'
 -        rendered += """
 -<div id="foot_%s" class="gridfooter">
 -""" % name
 +        rendered += u"<div id='foot_%s' class='gridfooter'>\n" % name
          if unicode(self.source_full):
 -            rendered += """%s (%s) <a href="%scsv" target="_blank">%s</a> - \
 -<a href="%scsv" target="_blank">%s</a>
 -""" % (unicode(_("Export as CSV")), encoding, unicode(self.source),
 -       unicode(_(u"simple")),  unicode(self.source_full), unicode(_(u"full")),)
 +            rendered += u"%s (%s) <a href='%scsv' target='_blank'>%s</a> - "\
 +                        u"<a href='%scsv' target='_blank'>%s</a>\n" % (
 +                unicode(_("Export as CSV")), encoding, unicode(self.source),
 +                unicode(_(u"simple")),  unicode(self.source_full),
 +                unicode(_(u"full")),)
          else:
 -            rendered += """<a href="%scsv" target="_blank">%s (%s)</a>
 -""" % (unicode(self.source), unicode(_("Export as CSV")), encoding)
 +            rendered += u'<a href="%scsv" target="_blank">%s (%s)</a>\n' % (
 +                  unicode(self.source), unicode(_("Export as CSV")), encoding)
          rendered += "</div>\n"
          if self.multiple:
 -            rendered += '''
 -<input type="button" id="add_button_%s" value="%s"/>
 -<ul id='selectmulti_%s' class='selectmulti'>
 -</ul>
 -''' % (name, unicode(_("Add")), name)
 -        rendered += '<input type="hidden" id="hidden_%s" name="%s"/>' % (name,
 -                                                                        name)
 -        dct = {'name':name, 'col_names':col_names, 'extra_cols':extra_cols,
 -       'source':unicode(self.source), 'col_idx':col_idx,
 -       'no_result':unicode(_("No results")), 'loading':unicode(_("Loading...")),
 -       'remove':unicode(_(u"Remove")), 'sname':name.replace('-', ''),
 -       'multi_cols': ",".join((u'"%d"' % col for col in self.multiple_cols))}
 -        rendered += """
 -<script type="text/javascript">
 -var query_vars = new Array(%(col_idx)s);
 -var selItems_%(sname)s = new Array();
 -jQuery(document).ready(function(){
 -  jQuery("#search_%(name)s").click(function (){
 -    var data = "";
 -    for (idx in query_vars)
 -    {
 -        var key = query_vars[idx];
 -        var val = jQuery("#id_"+key).val();
 -        if (val){
 -            if (data) data += "&";
 -            data += key + "=" + val;
 -        }
 -    }
 -    var mygrid = jQuery("#grid_%(name)s");
 -    var url = "%(source)s?submited=1&" + data;
 -    mygrid.setGridParam({url:url});
 -    mygrid.trigger("reloadGrid");
 -    return false;
 -  });
 +            rendered += u'<input type="button" id="add_button_%s" value="%s"/>'\
 +                    u'<ul id="selectmulti_%s" class="selectmulti">\n</ul>\n' % (
 +                                                  name, unicode(_("Add")), name)
 +        rendered += '<input type="hidden" id="hidden_%s" name="%s"/>\n' % (name,
 +                                                                           name)
 +        dct = {'name':name,
 +               'col_names':col_names,
 +               'extra_cols':extra_cols,
 +               'source':unicode(self.source),
 +               'col_idx':col_idx,
 +               'no_result':unicode(_("No results")),
 +               'loading':unicode(_("Loading...")),
 +               'remove':unicode(_(u"Remove")),
 +               'sname':name.replace('-', ''),
 +               'multi_cols': ",".join((u'"%d"' % col \
 +                                       for col in self.multiple_cols))
 +              }
 +        rendered += """<script type="text/javascript">
 +        var query_vars = new Array(%(col_idx)s);
 +        var selItems_%(sname)s = new Array();
 +        jQuery(document).ready(function(){
 +          jQuery("#search_%(name)s").click(function (){
 +            var data = "";
 +            for (idx in query_vars)
 +            {
 +                var key = query_vars[idx];
 +                var val = jQuery("#id_"+key).val();
 +                if (val){
 +                    if (data) data += "&";
 +                    data += key + "=" + val;
 +                }
 +            }
 +            var mygrid = jQuery("#grid_%(name)s");
 +            var url = "%(source)s?submited=1&" + data;
 +            mygrid.setGridParam({url:url});
 +            mygrid.trigger("unloadGrid");
 +            return false;
 +          });
 -  jQuery("#grid_%(name)s").jqGrid({
 -    url:'%(source)s',
 -    datatype: "json",
 -    mtype: 'GET',
 -    colNames:['id', '', %(col_names)s],
 -    colModel:[
 -      {name:'id', index:'id', hidden:true},
 -      {name:'link', index:'link', width:80},
 -      %(extra_cols)s
 -    ],
 -    sortname: 'value',
 -    viewrecords: true,
 -    sortorder: "asc",
 -    emptyrecords: "%(no_result)s",
 -    loadtext: "%(loading)s",
 -    pager: '#pager_%(name)s',
 -    pgbuttons: false,
 -    pginput: false,
 -    width:740,
 -    rowNum:0,
 -    jsonReader : {repeatitems: false}
 -  });
 -""" % dct
 +          jQuery("#grid_%(name)s").jqGrid({
 +            url:'%(source)s',
 +            datatype: "json",
 +            mtype: 'GET',
 +            colNames:['id', '', %(col_names)s],
 +            colModel:[
 +              {name:'id', index:'id', hidden:true},
 +              {name:'link', index:'link', width:80},
 +              %(extra_cols)s
 +            ],
 +            sortname: 'value',
 +            viewrecords: true,
 +            sortorder: "asc",
 +            emptyrecords: "%(no_result)s",
 +            loadtext: "%(loading)s",
 +            pager: '#pager_%(name)s',
 +            width:740,
 +            rowNum:20,
 +            jsonReader : {repeatitems: false},
 +          });
 +        """ % dct
          if self.multiple:
              rendered += """
 -  jQuery("#add_button_%(name)s").click(function (){
 -    var mygrid = jQuery("#grid_%(name)s");
 -    var idx = mygrid.getGridParam('selrow');
 -    var lbl_cols = new Array(%(multi_cols)s);
 -    var label = "";
 -    for (var id in lbl_cols){
 -        if(id == 1){
 -            label += " (";
 -        }else if (id > 1){
 -            label += " ; ";
 -        }
 -        label += mygrid.getCell(idx, lbl_cols[id]);
 -    }
 -    if (id > 0){
 -        label += ")";
 -    }
 -    for (id in selItems_%(sname)s){
 -        if(selItems_%(sname)s[id] == idx){
 -            return false;
 -        }
 -    }
 -    selItems_%(sname)s.push(idx);
 -    jQuery("#selectmulti_%(name)s").append(
 -               "<li id='selected_%(name)s_"+idx+"'>\
 -<a href='#' class='remove' \
 -  onclick=\\"multiRemoveItem(selItems_%(sname)s, '%(name)s', "+ idx +");\
 -  return false;\\" title=\\"%(remove)s\\">X</a>" + label + "</li>");
 -    return true;
 -  });
 -  jQuery("#submit_form").click(function (){
 -    jQuery("#hidden_%(name)s").val(selItems_%(sname)s);
 -    return true;
 -  });
 -""" % dct
 +          jQuery("#add_button_%(name)s").click(function (){
 +            var mygrid = jQuery("#grid_%(name)s");
 +            var idx = mygrid.getGridParam('selrow');
 +            var lbl_cols = new Array(%(multi_cols)s);
 +            var label = "";
 +            for (var id in lbl_cols){
 +                if(id == 1){
 +                    label += " (";
 +                }else if (id > 1){
 +                    label += " ; ";
 +                }
 +                label += mygrid.getCell(idx, lbl_cols[id]);
 +            }
 +            if (id > 0){
 +                label += ")";
 +            }
 +            for (id in selItems_%(sname)s){
 +                if(selItems_%(sname)s[id] == idx){
 +                    return false;
 +                }
 +            }
 +            selItems_%(sname)s.push(idx);
 +            jQuery("#selectmulti_%(name)s").append(
 +                       "<li id='selected_%(name)s_"+idx+"'>\
 +        <a href='#' class='remove' \
 +          onclick=\\"multiRemoveItem(selItems_%(sname)s, '%(name)s', "+ idx +");\
 +          return false;\\" title=\\"%(remove)s\\">X</a>" + label + "</li>");
 +            return true;
 +          });
 +          jQuery("#submit_form").click(function (){
 +            jQuery("#hidden_%(name)s").val(selItems_%(sname)s);
 +            return true;
 +          });
 +        """ % dct
          else:
              rendered += """
 -  jQuery("#submit_form").click(function (){
 -    var mygrid = jQuery("#grid_%(name)s");
 -    jQuery("#hidden_%(name)s").val(mygrid.getGridParam('selrow'));
 -    return true;
 -  });
 -""" % dct
 -        rendered += """
 -});
 -</script>
 -"""
 +          jQuery("#submit_form").click(function (){
 +            var mygrid = jQuery("#grid_%(name)s");
 +            jQuery("#hidden_%(name)s").val(mygrid.getGridParam('selrow'));
 +            return true;
 +          });
 +        """ % dct
 +        rendered += "});\n</script>\n"
          return mark_safe(rendered)
 | 
