]> git.parisson.com Git - telemeta.git/commitdiff
Debut recherche booleenne instru
authormathieu <mathieu.boye28@gmail.com>
Tue, 19 Apr 2016 08:33:27 +0000 (10:33 +0200)
committermathieu <mathieu.boye28@gmail.com>
Tue, 19 Apr 2016 08:33:27 +0000 (10:33 +0200)
Former-commit-id: cd964ada747b0ed3cd5398f0234f0c3a45264c5d

modif telemeta
telemeta/forms/boolean_form.py [new file with mode: 0644]
telemeta/templates/search/advanceSearch.html
telemeta/views/search.py

index 0f0bdeca52a898eab667c31e12188a80d366260d..7d6d31632b3ffdcf4c9287efa56f9358d45fc9af 100644 (file)
@@ -27,3 +27,9 @@ autocompletion sur instruments/collecteur (listes fermees)
 VERIF PROD :
 
 filtre inedits/edites pour les items : passer par la collection puis sa cote (I : inedit, E : edites)
+
+DERNIER COMMIT :
+11 avril :  Merge branch 'dev' into feature/ts-server 
+Prob : resolution url (commit 18 avril  Merge branch 'dev' of github.com:Parisson/Telemeta into dev )
+
+
diff --git a/telemeta/forms/boolean_form.py b/telemeta/forms/boolean_form.py
new file mode 100644 (file)
index 0000000..e7fc94e
--- /dev/null
@@ -0,0 +1,8 @@
+from django import forms
+
+class BooleanSearch(forms.Form):
+
+    boolean = forms.ChoiceField(choices=[('ET', 'ET',), ('OU', 'OU',)], label='')
+    startBracket = forms.BooleanField(initial=False, label='')
+    textField = forms.CharField(label='')
+    endBracket = forms.BooleanField(initial=False, label='')
\ No newline at end of file
index 49611ed73322550066770a565631a5c81fd4823d..e000e74d04a4ae791b2f4d93ecf000e4e12ce645 100644 (file)
     <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}telemeta/css/jquery-ui.css" />
     <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}telemeta/css/search.css" />
     <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}telemeta/css/lists_sorttable.css" media="print, projection, screen"/>
+    <style>
+
+        form p{
+            display: inline-block;
+        }
+
+        .ui-front{
+            z-index: 1000;
+        }
+
+    </style>
 {% endblock %}
 {% block content %}
     <form method="get" action=".">
@@ -38,8 +49,9 @@
                 </div>
                 <div class="fieldWrapper">
                     {{form.instruments.errors}}
-                    {% trans form.instruments.label_tag %}</br>
+                    {% trans form.instruments.label_tag %}
                     {{form.instruments}}
+                    <a href="#" id="btn" class="col-md-5 btn btn-default" style="width: 100%; margin-top: 1%">Recherche booléenne</a>
                 </div>
 
                 <div class="fieldWrapper">
             <div id="results"></div>{# Show some example queries to run, maybe query syntax, something else? #}
         {% endif %}
 
+        <div id="dialog" title="Recherche booléenne">
+
+            <form>
+
+                {{ booleanForm.management_form}}
+                {% for form in booleanForm %}
+                    {% if forloop.counter0 == 0 %}
+                        <span style="margin-left: 18%">{{ form.startBracket }}</span>
+                        {{ form.textField }}
+                        {{ form.endBracket }}
+                    {% else %}
+                        {% if forloop.counter0 == 1 %}
+                        <div id="copy">
+                        {% endif %}
+                            {{ form.as_p }}
+                        {% if forloop.counter0 == 1 %}
+                        </div>
+                        {% endif %}
+                    {% endif %}
+
+                {% endfor %}
+                <a class="btn btn-default" id="ajout" href="#">Ajouter champ</a>
+                <br/><input type="submit" value="Valider la requête">
+
+
+            </form>
+
+        </div>
+
 {% endblock %}
 {% block extra_javascript %}
     <script src="{{ STATIC_URL }}jquery-ui/jquery-ui.min.js" type="text/javascript"></script>
 
 </script>
     <script>
-$(function(){
-    $('#id_code, #id_instruments, #id_collectors').each(function(){
+$(function() {
+    function activerAutocompletion(selecteur, attribut) {
+
+    selecteur.each(function () {
         var self = this;
         $(this).autocomplete({
-            source : function(requete, reponse) {
+            source: function (requete, reponse) {
                 $.ajax({
                     url: '/search/autocomplete/',
                     dataType: 'json',
-                     data: {
+                    data: {
                         q: $(self).val(),
-                        attr: $(self).attr('name')
-                     },
-                success: function (donnee) {
+                        attr: ((attribut) ? attribut : $(self).attr('name'))
+                    },
+                    success: function (donnee) {
                         reponse(donnee.results);
                     }
-             });
-        }
-    });
+                });
+            }
+        });
     });
-    
+
+}
+
+    activerAutocompletion($('#id_code, #id_instruments, #id_collectors'));
+
     $.tablesorter.defaults.sortList = [[1,0]];
     
     $("#searchtable").tablesorter({headers: {0:{sorter:false}, 2:{sorter:false}}} );
-    
+
+    $('#dialog').dialog({
+        autoOpen: false,
+        width: '30%',
+    });
+
+    $('.fieldWrapper a').click(function(){
+        $('#dialog').dialog("open");
+    });
+
+    var supprButton = '<a class="btn btn-default" id="suppr" href="#">Supprimer champ</a><br/>';
+
+    function ajout(e) {
+        e.preventDefault();
+        var nombre = $('input[name*="textField"]').length;
+        var balise = $('#copy').clone().removeAttr('id').html().replace(/1/g, nombre);
+        if(nombre==2){
+            $('#ajout').after(supprButton);
+        }
+        $('#ajout').before(balise);
+        activerAutocompletion($('#id_form-'+nombre+'-textField'), 'instruments');
+
+    }
+
+
+
+    $('#ajout').click(ajout);
+
 });
     </script>
 {% endblock %}
index bda81d6b5826202fbb96f2952666aa2b606d0235..b5920c1d1bb3c2a6e7d0b8723b6e2fb427c1b4e8 100644 (file)
@@ -25,6 +25,8 @@ from telemeta.forms.haystack_form import *
 from saved_searches.views import SavedSearchView
 import simplejson as json
 from django.http import HttpResponse
+from telemeta.forms.boolean_form import *
+from django.forms.formsets import formset_factory
 
 
 class HaystackSearch(FacetedSearchView, SavedSearchView):
@@ -159,6 +161,7 @@ class HaystackAdvanceSearch(SavedSearchView):
             extra['type'] = 'collection'
 
         extra['results_page'] = self.results_per_page
+        extra['booleanForm'] = formset_factory(BooleanSearch, extra=2)
         return extra
 
 def autocomplete(request):