diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-11 21:15:09 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-11 21:15:09 +0100 | 
| commit | 1a1b5557cdd1b435b9de9d1c684c6183690293d5 (patch) | |
| tree | a370f1858bb0c5216099f90bd7d37c1b18c36328 | |
| parent | 31c0a045cbd091da90b414ada700b2ddaa9f853b (diff) | |
| download | Ishtar-1a1b5557cdd1b435b9de9d1c684c6183690293d5.tar.bz2 Ishtar-1a1b5557cdd1b435b9de9d1c684c6183690293d5.zip | |
Correction on Administrative Act tables (refs #141)
| -rw-r--r-- | ishtar/furnitures/forms.py | 6 | ||||
| -rw-r--r-- | ishtar/furnitures/models.py | 8 | ||||
| -rw-r--r-- | ishtar/furnitures/views.py | 7 | ||||
| -rw-r--r-- | ishtar/furnitures/widgets.py | 17 | 
4 files changed, 26 insertions, 12 deletions
| diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 672f2e67a..57f1c2d05 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -1096,7 +1096,8 @@ class AdministrativeActFileFormSelection(forms.Form):      currents = {'pk':models.AdministrativeAct}      pk = forms.IntegerField(label="", required=False,         widget=widgets.JQueryJqGrid(reverse_lazy('get-administrativeact'), -                       AdministrativeActFileSelect(), models.AdministrativeAct), +                      AdministrativeActFileSelect(), models.AdministrativeAct, +                      table_cols='TABLE_COLS_FILE'),         validators=[models.valid_id(models.AdministrativeAct)])      def clean(self): @@ -1530,7 +1531,8 @@ class AdministrativeActOpeSelect(forms.Form):  class AdministrativeActOpeFormSelection(AdministrativeActFileFormSelection):      pk = forms.IntegerField(label="", required=False,         widget=widgets.JQueryJqGrid(reverse_lazy('get-administrativeact'), -                       AdministrativeActOpeSelect(), models.AdministrativeAct), +            AdministrativeActOpeSelect(), models.AdministrativeAct, +            table_cols='TABLE_COLS_OPE'),         validators=[models.valid_id(models.AdministrativeAct)])  class AdministrativeActOpeForm(AdministrativeActForm): diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index e476c639a..0c2f07433 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -652,10 +652,10 @@ class ActType(GeneralType):          verbose_name_plural = _(u"Act types")  class AdministrativeAct(BaseHistorizedItem, OwnPerms): -    TABLE_COLS = ['act_type', 'associated_file', 'associated_file.towns', -                  'operation.towns'] -    TABLE_COLS_FILE = ['act_type', 'associated_file', 'associated_file__towns',] -    TABLE_COLS_OPE = ['act_type', 'ope__towns', 'operation__towns'] +    TABLE_COLS = ['act_type', 'associated_file', 'operation', +                  'associated_file.towns', 'operation.towns'] +    TABLE_COLS_FILE = ['act_type', 'associated_file', 'associated_file.towns',] +    TABLE_COLS_OPE = ['act_type', 'operation', 'operation.towns']      act_type = models.ForeignKey(ActType, verbose_name=_(u"Act type"))      in_charge = models.ForeignKey(Person, blank=True, null=True,          related_name='+', verbose_name=_(u"Person in charge of the operation")) diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index f02d60e20..11563823a 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -185,8 +185,11 @@ def get_item(model, func_name, default_name, extra_request_keys=[]):          if type == "json":              rows = []              for data in datas: -                rows.append({"id":unicode(data[0]), -                             "cell":data}) +                res = {'id':data[0]} +                for idx, value in enumerate(data[1:]): +                    if value: +                        res[model.TABLE_COLS[idx].split('.')[-1]] = value +                rows.append(res)              data = json.dumps({                  "records":len(items),                  "rows":rows 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>
 | 
