diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-12-08 20:40:25 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-12-08 20:41:50 +0100 | 
| commit | 349fd863a1850e7e342a71c3ca38c96593609a5f (patch) | |
| tree | c45e123eeb6d1cc7043f304d7133ecb23e98c7c4 /ishtar_common/widgets.py | |
| parent | 86c95b458869560d97ede77579262c86597c4453 (diff) | |
| download | Ishtar-349fd863a1850e7e342a71c3ca38c96593609a5f.tar.bz2 Ishtar-349fd863a1850e7e342a71c3ca38c96593609a5f.zip | |
Improve JQtables when dealing with multiple foreign keys
Diffstat (limited to 'ishtar_common/widgets.py')
| -rw-r--r-- | ishtar_common/widgets.py | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 7696d67da..7611a08df 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -529,7 +529,8 @@ class JQueryJqGrid(forms.RadioSelect):      def __init__(self, source, form, associated_model, attrs={},                   table_cols='TABLE_COLS', multiple=False, multiple_cols=[2],                   new=False, new_message="", source_full=None, -                 multiple_select=False, sortname="__default__"): +                 multiple_select=False, sortname="__default__", +                 col_prefix=''):          """          JQueryJqGrid widget init. @@ -545,6 +546,7 @@ class JQueryJqGrid(forms.RadioSelect):          :param source_full: url to get full listing          :param multiple_select:          :param sortname: column name (model attribute) to use to sort +        :param col_prefix: prefix to remove to col_names          """          super(JQueryJqGrid, self).__init__(attrs=attrs)          self.source = source @@ -560,6 +562,9 @@ class JQueryJqGrid(forms.RadioSelect):          self.new, self.new_message = new, new_message          self.source_full = source_full          self.sortname = sortname +        self.col_prefix = col_prefix +        if self.col_prefix and not self.col_prefix.endswith('__'): +            self.col_prefix += "__"      def get_cols(self, python=False):          jq_col_names, extra_cols = [], [] @@ -577,23 +582,23 @@ class JQueryJqGrid(forms.RadioSelect):                  keys = col_name.split('__')                  if '.' in col_name:                      keys = col_name.split('.') -                f_name = ''                  for key in keys:                      if hasattr(field, 'rel') and field.rel:                          field = field.rel.to                      try:                          field = field._meta.get_field(key)                          field_verbose_name = field.verbose_name -                        f_name = field.name                      except (fields.FieldDoesNotExist, AttributeError):                          if hasattr(field, key + '_lbl'): -                            f_name = key                              field_verbose_name = getattr(field, key + '_lbl')                          else:                              continue                  if field_name:                      field_name += "__" -                field_name += f_name +                if col_name.startswith(self.col_prefix): +                    field_name += col_name[len(self.col_prefix):] +                else: +                    field_name += col_name                  field_verbose_names.append(unicode(field_verbose_name))              if not field_name:                  field_name = "__".join(col_names) | 
