summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_finds/forms.py14
-rw-r--r--archaeological_finds/views.py2
-rw-r--r--ishtar_common/templates/blocks/JQueryJqGrid.html1
-rw-r--r--ishtar_common/templates/ishtar/manage_basket.html26
-rw-r--r--ishtar_common/widgets.py5
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')