From 3edb78f2806d1ec790b751ef6ee4b6fb59abb86a Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 22 May 2016 17:02:11 +0200 Subject: Basket management: select multiple - select all --- ishtar_common/templates/blocks/JQueryJqGrid.html | 1 + ishtar_common/templates/ishtar/manage_basket.html | 26 +++++++++++++---------- ishtar_common/widgets.py | 5 ++++- 3 files changed, 20 insertions(+), 12 deletions(-) (limited to 'ishtar_common') 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 @@

{{page_name}}{% trans ":"%} {{basket}}

{% csrf_token %}
+

{% trans 'Checking "Select all" only select the current page.' %}

{{form}}

{% trans "Basket content" %}

@@ -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') -- cgit v1.2.3