diff options
| -rw-r--r-- | archaeological_finds/forms.py | 14 | ||||
| -rw-r--r-- | archaeological_finds/views.py | 2 | ||||
| -rw-r--r-- | ishtar_common/templates/blocks/JQueryJqGrid.html | 1 | ||||
| -rw-r--r-- | ishtar_common/templates/ishtar/manage_basket.html | 26 | ||||
| -rw-r--r-- | ishtar_common/widgets.py | 5 | 
5 files changed, 35 insertions, 13 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 95af01719..ca2946a21 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -251,6 +251,20 @@ class FindFormSelection(forms.Form):          validators=[valid_id(models.Find)]) +class MultipleFindFormSelection(forms.Form): +    form_label = _("Find search") +    associated_models = {'pk': models.Find} +    currents = {'pk': models.Find} +    pk = forms.IntegerField( +        label="", required=False, +        widget=widgets.JQueryJqGrid( +            reverse_lazy('get-find'), +            FindSelect, models.Find, +            multiple_select=True, +            source_full=reverse_lazy('get-find-full')), +        validators=[valid_id(models.Find)]) + +  class BaseTreatmentForm(forms.Form):      form_label = _(u"Base treatment")      associated_models = {'treatment_type': models.TreatmentType, diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 851245201..871a5b90d 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -217,7 +217,7 @@ class SelectItemsInBasket(IshtarMixin, LoginRequiredMixin, TemplateView):          except models.FindBasket.DoesNotExist:              raise PermissionDenied          context['basket'] = self.basket -        context['form'] = FindFormSelection() +        context['form'] = MultipleFindFormSelection()          context['add_url'] = reverse('add_iteminbasket')          context['list_url'] = reverse('list_iteminbasket',                                        kwargs={'pk': self.basket.pk}) diff --git a/ishtar_common/templates/blocks/JQueryJqGrid.html b/ishtar_common/templates/blocks/JQueryJqGrid.html index 063a3c1da..c6a15243a 100644 --- a/ishtar_common/templates/blocks/JQueryJqGrid.html +++ b/ishtar_common/templates/blocks/JQueryJqGrid.html @@ -90,6 +90,7 @@ jQuery(document).ready(function(){      width: null,      shrinkToFit: false,      rowNum:20, +    {% if multiple_select %}multiselect: true,{% endif %}      jsonReader : {repeatitems: false},      loadError: function (jqXHR, textStatus, errorThrown) {          alert("{% trans "An error as occured during search. Check your query fields." %}"); diff --git a/ishtar_common/templates/ishtar/manage_basket.html b/ishtar_common/templates/ishtar/manage_basket.html index 44c3a2536..6332b326e 100644 --- a/ishtar_common/templates/ishtar/manage_basket.html +++ b/ishtar_common/templates/ishtar/manage_basket.html @@ -4,6 +4,7 @@  <h2>{{page_name}}{% trans ":"%} {{basket}}</h2>  <form enctype="multipart/form-data" action="." method="post">{% csrf_token %}  <div class='form'> +<p class='alert'>{% trans 'Checking "Select all" only select the current page.' %}</p>  {{form}}  <button id='add_to' onclick='return false'>{% trans "Add" %}</button>  <h3>{% trans "Basket content" %}</h3> @@ -18,17 +19,20 @@ function load_list(data){  }  $('#add_to').click(function(){ -    selected_item = jQuery("#grid_pk").getGridParam('selrow'); -    if(!selected_item) return false; -    $.ajax({ -        type: "POST", -        url: '{{add_url}}', -        data: { -            basket_id: {{basket.pk}}, -            item_id: selected_item -        }, -        success: load_list -    }); +    var selected_items = jQuery("#grid_pk").getGridParam('selarrrow'); +    if(!selected_items) return false; +    for (i = 0, n = selected_items.length; i < n; i++) { +        var selected_item = selected_items[i]; +        $.ajax({ +            type: "POST", +            url: '{{add_url}}', +            data: { +                basket_id: {{basket.pk}}, +                item_id: selected_item +            }, +            success: load_list +        }); +    }      return false;  });  jQuery(document).ready(function(){ diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index b8b104a61..6d9600d0c 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -513,13 +513,15 @@ 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): +                 new=False, new_message="", source_full=None, +                 multiple_select=False):          self.source = source          self.form = form          self.attrs = attrs          self.associated_model = associated_model          self.table_cols = table_cols          self.multiple = multiple +        self.multiple_select = multiple_select          self.multiple_cols = multiple_cols          self.new, self.new_message = new, new_message          self.source_full = source_full @@ -604,6 +606,7 @@ class JQueryJqGrid(forms.RadioSelect):                      'remove': unicode(_(u"Remove")),                      'sname': name.replace('-', ''),                      'multiple': self.multiple, +                    'multiple_select': self.multiple_select,                      'multi_cols': ",".join((u'"%d"' % col                                             for col in self.multiple_cols))})          t = loader.get_template('blocks/JQueryJqGrid.html')  | 
