Commit 2382670db8a4638d5930107a10e283334a01c95b

Authored by janek37
1 parent a99a7216

zapisywanie filtrów w widoku wzorów

(+ refaktoryzacje)

--HG--
branch : beta
common/static/js/slickgrid.js
... ... @@ -296,7 +296,8 @@ function save_filter() {
296 296 } else {
297 297 var post_data = {
298 298 name: filter_name,
299   - serialized_filter: $.toJSON(filter_params)
  299 + serialized_filter: $.toJSON(filter_params),
  300 + grid_id: slickgrid.grid_id
300 301 };
301 302 var save_filter_params = {
302 303 method: 'post',
... ... @@ -544,7 +545,7 @@ $(function() {
544 545 $.ajaxJSON({
545 546 method: 'get',
546 547 url: $dj.ajax_get_filters,
547   - data: {},
  548 + data: {grid_id: slickgrid.grid_id},
548 549 description: 'Pobranie listy filtrów',
549 550 callback: function(data) {
550 551 filter_choice(data.filters);
... ...
common/templates/reader_slickgrid.html
... ... @@ -3,35 +3,9 @@
3 3  
4 4 {% block extrahead-lib %}
5 5 {{ block.super }}
6   - <link rel="stylesheet"
7   - href="{% version_static 'css/lib/custom/jquery-ui-1.11.4.custom.css' %}"
8   - type="text/css" media="screen" charset="utf-8"/>
9   - <link rel="stylesheet"
10   - href="{% version_static 'css/lib/jquery.ui.selectmenu.css' %}"
11   - type="text/css" media="screen" charset="utf-8"/>
12   - <script type="text/javascript" src="{% version_static 'js/lib/jquery.ui.selectmenu.js' %}"></script>
  6 + {% include "slickgrid_libs.html" %}
13 7 <link rel="stylesheet" type="text/css"
14   - href="{% version_static 'css/lib/jquery.uix.multiselect.css' %}">
15   - <link rel="stylesheet" type="text/css"
16   - href="{% version_static 'css/lib/slick.grid.css' %}"/>
17   - <link rel="stylesheet" type="text/css"
18   - href="{% version_static 'css/slick-default-theme.css' %}"/>
19   - <script type="text/javascript"
20   - src="{% version_static 'js/lib/cvi_busy_lib.js' %}"></script>
21   - <script type="text/javascript"
22   - src="{% version_static 'js/lib/splitter.js' %}"></script>
23   - <script type="text/javascript"
24   - src="{% version_static 'js/lib/jquery.event.drag-2.2.js' %}"></script>
25   - <script type="text/javascript"
26   - src="{% version_static 'js/lib/jquery.event.drop-2.2.js' %}"></script>
27   - <script type="text/javascript"
28   - src="{% version_static 'js/lib/jquery.uix.multiselect.js' %}"></script>
29   - <script type="text/javascript"
30   - src="{% version_static 'js/jquery.uix.multiselect_pl.js' %}"></script>
31   - <script type="text/javascript"
32   - src="{% version_static 'js/lib/slick.core.js' %}"></script>
33   - <script type="text/javascript"
34   - src="{% version_static 'js/lib/slick.grid.js' %}"></script>
  8 + href="{% version_static 'css/lib/custom/jquery-ui-1.11.4.custom.css' %}"/>
35 9 {% endblock %}
36 10  
37 11 {% block extrahead %}
... ...
common/templates/slickgrid_libs.html 0 → 100644
  1 +{% load version_static %}
  2 +<link rel="stylesheet" type="text/css"
  3 + href="{% version_static 'css/lib/jquery.uix.multiselect.css' %}">
  4 +<link rel="stylesheet" type="text/css"
  5 + href="{% version_static 'css/lib/jquery.ui.selectmenu.css' %}"/>
  6 +<link rel="stylesheet" type="text/css"
  7 + href="{% version_static 'css/lib/slick.grid.css' %}"/>
  8 +<link rel="stylesheet" type="text/css"
  9 + href="{% version_static 'css/slick-default-theme.css' %}"/>
  10 +<script type="text/javascript"
  11 + src="{% version_static 'js/lib/cvi_busy_lib.js' %}"></script>
  12 +<script type="text/javascript"
  13 + src="{% version_static 'js/lib/splitter.js' %}"></script>
  14 +<script type="text/javascript"
  15 + src="{% version_static 'js/lib/jquery.event.drag-2.2.js' %}"></script>
  16 +<script type="text/javascript"
  17 + src="{% version_static 'js/lib/jquery.event.drop-2.2.js' %}"></script>
  18 +<script type="text/javascript"
  19 + src="{% version_static 'js/lib/jquery.ui.selectmenu.js' %}"></script>
  20 +<script type="text/javascript"
  21 + src="{% version_static 'js/lib/jquery.uix.multiselect.js' %}"></script>
  22 +<script type="text/javascript"
  23 + src="{% version_static 'js/jquery.uix.multiselect_pl.js' %}"></script>
  24 +<script type="text/javascript"
  25 + src="{% version_static 'js/lib/slick.core.js' %}"></script>
  26 +<script type="text/javascript"
  27 + src="{% version_static 'js/lib/slick.grid.js' %}"></script>
0 28 \ No newline at end of file
... ...
common/templates/slickgrid_modal_elements.html 0 → 100644
  1 +{% load i18n %}
  2 +<div id="choose-columns-dialog" title="{% trans 'Choose columns' %}">
  3 + <select id="column-list" multiple=multiple></select>
  4 +</div>
  5 +<div id="choose-filter-dialog" title="{% trans 'Filters' %}">
  6 + <p>
  7 + <select id="group-op">
  8 + <option value="AND" selected="selected">{% trans 'and' %}</option>
  9 + <option value="OR">{% trans 'or' %}</option>
  10 + </select>
  11 + <input type="button" value="+" title="{% trans 'Add filter' %}"
  12 + id="add-filter-button">
  13 + </p>
  14 + <table id="filter-table"></table>
  15 +</div>
  16 +<div id="load-filter-dialog" title="{% trans 'Choose filter' %}">
  17 + <ul id="filter-list" class="load-dialog-list"></ul>
  18 + <div class="dialog-stretcher"></div>
  19 +</div>
0 20 \ No newline at end of file
... ...
dictionary/ajax_filters.py
... ... @@ -6,15 +6,15 @@ from dictionary.models import SavedFilter
6 6  
7 7  
8 8 @ajax(method='post')
9   -def save_filter(request, name, serialized_filter, super=False, force=False):
10   - existing_filter = SavedFilter.objects.filter(user=request.user, name=name)
  9 +def save_filter(request, name, serialized_filter, grid_id, super=False,
  10 + force=False):
  11 + existing_filter = SavedFilter.objects.filter(
  12 + user=request.user, type=grid_id, name=name)
11 13 if force or not existing_filter:
12 14 if existing_filter:
13   - filter = existing_filter[0]
  15 + filter = existing_filter.get()
14 16 else:
15   - filter = SavedFilter()
16   - filter.name = name
17   - filter.user = request.user
  17 + filter = SavedFilter(name=name, user=request.user, type=grid_id)
18 18 filter.serialized_filter = serialized_filter
19 19 filter.super = super
20 20 try:
... ... @@ -27,14 +27,16 @@ def save_filter(request, name, serialized_filter, super=False, force=False):
27 27  
28 28  
29 29 @ajax(method='get')
30   -def get_filters(request):
  30 +def get_filters(request, grid_id):
31 31 filters = [
32 32 {
33 33 'id': 'filter%s' % filter.pk,
34 34 'name': filter.name,
35 35 'params': json_decode(filter.serialized_filter),
36 36 }
37   - for filter in SavedFilter.objects.filter(user=request.user)]
  37 + for filter in SavedFilter.objects.filter(
  38 + user=request.user, type=grid_id)
  39 + ]
38 40 return {'filters': filters}
39 41  
40 42  
... ...
dictionary/models.py
... ... @@ -1659,6 +1659,7 @@ class SavedFilter(Model):
1659 1659 serialized_filter = TextField()
1660 1660 name = CharField(max_length=64)
1661 1661 user = ForeignKey(User)
  1662 + type = CharField(max_length=16)
1662 1663  
1663 1664 class Meta:
1664 1665 unique_together = ('name', 'user')
... ...
dictionary/static/js/lexeme-view.js
... ... @@ -26,9 +26,6 @@ $(function() {
26 26 var id = parseInt(this.id.substr(2), 10);
27 27 slickgrid.row_index(id);
28 28 });
29   - $('#search-by-form-dialog').default_dialog({
30   - modal: false
31   - });
32 29 $(document).on('click', '.search-by-form-row', function() {
33 30 var $t = $(this);
34 31 $('#by-form-container').find('.active').removeClass('active');
... ... @@ -124,6 +121,7 @@ $.each(column_data, function(key, data) {
124 121 });
125 122  
126 123 $.extend(slickgrid, {
  124 + grid_id: 'lexemes',
127 125 loader: new Slick.Data.RemoteModel(
128 126 $dj.ajax_get_page, $dj.ajax_search_index),
129 127 grid_caption: gettext("Lexemes"),
... ... @@ -377,7 +375,6 @@ $.extend(slickgrid, {
377 375 table.show();
378 376 layout.adjust_grid_size();
379 377 table.children().first().click();
380   - // $('#search-by-form-dialog').dialog('open');
381 378 }
382 379 });
383 380 } else {
... ...
dictionary/templates/lexeme_view.html
1 1 {% extends "base.html" %}
2 2 {% load i18n version_static %}
3 3  
  4 +{% block extrahead-lib %}
  5 + {% include "slickgrid_libs.html" %}
  6 +{% endblock %}
  7 +
4 8 {% block extrahead %}
5 9 <link rel="stylesheet" type="text/css"
6   - href="{% version_static 'css/lib/jquery.uix.multiselect.css' %}">
7   - <link rel="stylesheet" type="text/css"
8   - href="{% version_static 'css/lib/jquery.ui.selectmenu.css' %}"/>
9   - <link rel="stylesheet" type="text/css"
10   - href="{% version_static 'css/lib/slick.grid.css' %}"/>
11   - <link rel="stylesheet" type="text/css"
12   - href="{% version_static 'css/slick-default-theme.css' %}"/>
13   - <link rel="stylesheet" type="text/css"
14 10 href="{% version_static 'css/slickgrid.css' %}"/>
15 11 <link rel="stylesheet" type="text/css"
16 12 href="{% version_static 'css/slickgrid-edit.css' %}"/>
... ... @@ -19,24 +15,6 @@
19 15 <link rel="stylesheet" type="text/css"
20 16 href="{% version_static 'css/history.css' %}">
21 17 <script type="text/javascript"
22   - src="{% version_static 'js/lib/cvi_busy_lib.js' %}"></script>
23   - <script type="text/javascript"
24   - src="{% version_static 'js/lib/splitter.js' %}"></script>
25   - <script type="text/javascript"
26   - src="{% version_static 'js/lib/jquery.event.drag-2.2.js' %}"></script>
27   - <script type="text/javascript"
28   - src="{% version_static 'js/lib/jquery.event.drop-2.2.js' %}"></script>
29   - <script type="text/javascript"
30   - src="{% version_static 'js/lib/jquery.ui.selectmenu.js' %}"></script>
31   - <script type="text/javascript"
32   - src="{% version_static 'js/lib/jquery.uix.multiselect.js' %}"></script>
33   - <script type="text/javascript"
34   - src="{% version_static 'js/jquery.uix.multiselect_pl.js' %}"></script>
35   - <script type="text/javascript"
36   - src="{% version_static 'js/lib/slick.core.js' %}"></script>
37   - <script type="text/javascript"
38   - src="{% version_static 'js/lib/slick.grid.js' %}"></script>
39   - <script type="text/javascript"
40 18 src="{% version_static 'js/remotemodel.js' %}"></script>
41 19 <script type="text/javascript"
42 20 src="{% version_static 'js/slickgrid.js' %}"></script>
... ... @@ -102,23 +80,17 @@
102 80 {% endblock %}
103 81  
104 82 {% block modal_elements %}
105   - <div id="choose-columns-dialog" title="{% trans 'Choose columns' %}">
106   - <select id="column-list" multiple=multiple></select>
107   - </div>
108   - <div id="choose-filter-dialog" title="{% trans 'Filters' %}">
109   - <p>
110   - <select id="group-op">
111   - <option value="AND" selected="selected">{% trans 'and' %}</option>
112   - <option value="OR">{% trans 'or' %}</option>
113   - </select>
114   - <input type="button" value="+" title="{% trans 'Add filter' %}"
115   - id="add-filter-button">
116   - </p>
117   - <table id="filter-table"></table>
118   - </div>
119   - <div id="load-filter-dialog" title="{% trans 'Choose filter' %}">
120   - <ul id="filter-list" class="load-dialog-list"></ul>
121   - <div class="dialog-stretcher"></div>
  83 + {% include "slickgrid_modal_elements.html" %}
  84 + <div id="more-actions-dialog" title="{% trans 'Other actions' %}">
  85 + <p><button type="button" id="export-list-button">
  86 + {% trans 'Export the current list' %}
  87 + </button></p>
  88 + <p><button type="button" id="reload-list-button">
  89 + {% trans 'Reload the list' %}
  90 + </button></p>
  91 + <p><button type="button" id="clone-lexeme-button">
  92 + {% trans 'Clone the active lexeme' %}
  93 + </button></p>
122 94 </div>
123 95 <div id="group-action-dialog" title="{% trans 'Choose group action' %}">
124 96 <button id="add-action" title="{% trans 'add action' %}">
... ... @@ -172,32 +144,17 @@
172 144 <ul id="default-owner">
173 145 {% for vocab in editable_vocabularies %}
174 146 <li>
175   - <input type="radio" value="{{ vocab.pk }}"
176   - name="owner"/> {{ vocab.id }}
  147 + <input type="radio" value="{{ vocab.pk }}" name="owner"/>
  148 + {{ vocab.id }}
177 149 </li>
178 150 {% endfor %}
179 151 </ul>
180 152 </div>
181   - <div id="more-actions-dialog" title="{% trans 'Other actions' %}">
182   - <p><button type="button" id="export-list-button">
183   - {% trans 'Export the current list' %}
184   - </button></p>
185   - <p><button type="button" id="reload-list-button">
186   - {% trans 'Reload the list' %}
187   - </button></p>
188   - <p><button type="button" id="clone-lexeme-button">
189   - {% trans 'Clone the active lexeme' %}
190   - </button></p>
191   - </div>
192 153 <div id="auto-derivatives-dialog" title="{% trans 'Create derivatives' %}">
193 154 <p>{% trans 'Choose entries to create' %}:</p>
194 155 <ul id="auto-derivatives-list">
195 156 </ul>
196 157 </div>
197   - <div id="search-by-form-dialog" title="{% trans 'Search by form' %}">
198   - <table id="search-by-form-table">
199   - </table>
200   - </div>
201 158 <div id="back-references-dialog" title="{% trans 'Back references' %}">
202 159 <div id="proposed-crs"></div>
203 160 </div>
... ...
dictionary/templates/reader_view.html
... ... @@ -50,28 +50,7 @@
50 50  
51 51 {% block modal_elements %}
52 52 {{ block.super }}
53   - <div id="choose-columns-dialog" title="{% trans 'Choose columns' %}">
54   - <select id="column-list" multiple=multiple></select>
55   - </div>
56   - <div id="choose-filter-dialog" title="{% trans 'Filters' %}">
57   - <p>
58   - <select id="group-op">
59   - <option value="AND" selected="selected">{% trans 'and' %}</option>
60   - <option value="OR">{% trans 'or' %}</option>
61   - </select>
62   - <input type="button" value="+" title="{% trans 'Add filter' %}"
63   - id="add-filter-button">
64   - </p>
65   - <table id="filter-table"></table>
66   - </div>
67   - <div id="load-filter-dialog" title="{% trans 'Choose filter' %}">
68   - <ul id="filter-list" class="load-dialog-list"></ul>
69   - <div class="dialog-stretcher"></div>
70   - </div>
71   - <div id="search-by-form-dialog" title="{% trans 'Search by form' %}">
72   - <table id="search-by-form-table">
73   - </table>
74   - </div>
  53 + {% include "slickgrid_modal_elements.html" %}
75 54 <div id="more-actions-dialog" title="{% trans 'Other actions' %}">
76 55 <p><button type="button" id="export-list-button">
77 56 {% trans 'Export the current list' %}
... ...
patterns/static/js/pattern-reader-view.js
... ... @@ -74,7 +74,7 @@ slickgrid.title_part = function() {
74 74 slickgrid.filter_fields = new_filter_fields;
75 75 //slickgrid.filter_fields.base_form_label.name = gettext("Etykieta");
76 76 //slickgrid.filter_fields.base_form_label.gender = 'f';
77   -
  77 + slickgrid.storage_filters_key = 'saved-pattern-filters';
78 78 })();
79 79  
80 80 $(function() {
... ...
patterns/static/js/pattern-view.js
... ... @@ -21,6 +21,7 @@ $.each(column_names, function(key, name) {
21 21 });
22 22  
23 23 $.extend(slickgrid, {
  24 + grid_id: 'patterns',
24 25 grid_caption: gettext("Patterns"),
25 26 counter: function(count) {
26 27 "use strict";
... ...
patterns/templates/pattern_reader_view.html
... ... @@ -40,18 +40,5 @@
40 40  
41 41 {% block modal_elements %}
42 42 {{ block.super }}
43   - <div id="choose-columns-dialog" title="{% trans 'Choose columns' %}">
44   - <select id="column-list" multiple=multiple></select>
45   - </div>
46   - <div id="choose-filter-dialog" title="{% trans 'Filters' %}">
47   - <p>
48   - <select id="group-op">
49   - <option value="AND" selected="selected">{% trans 'and' %}</option>
50   - <option value="OR">{% trans 'or' %}</option>
51   - </select>
52   - <input type="button" value="+" title="{% trans 'Add filter' %}"
53   - id="add-filter-button">
54   - </p>
55   - <table id="filter-table"></table>
56   - </div>
  43 + {% include "slickgrid_modal_elements.html" %}
57 44 {% endblock %}
... ...
patterns/templates/pattern_view.html
1 1 {% extends "base.html" %}
2 2 {% load i18n version_static %}
3 3  
  4 +{% block extrahead-lib %}
  5 + {% include "slickgrid_libs.html" %}
  6 +{% endblock %}
  7 +
4 8 {% block extrahead %}
5   - <link rel="stylesheet" href="{% version_static 'css/lib/slick.grid.css' %}"
6   - type="text/css"/>
7   - <link rel="stylesheet" type="text/css"
8   - href="{% version_static 'css/lib/jquery.uix.multiselect.css' %}">
9   - <link rel="stylesheet" type="text/css"
10   - href="{% version_static 'css/lib/jquery.ui.selectmenu.css' %}"/>
11   - <link rel="stylesheet" type="text/css"
12   - href="{% version_static 'css/lib/slick.grid.css' %}"/>
13   - <link rel="stylesheet" type="text/css"
14   - href="{% version_static 'css/slick-default-theme.css' %}"/>
15 9 <link rel="stylesheet" type="text/css"
16 10 href="{% version_static 'css/slickgrid.css' %}"/>
17 11 <link rel="stylesheet" type="text/css"
... ... @@ -23,24 +17,6 @@
23 17 <link rel="stylesheet" type="text/css"
24 18 href="{% version_static 'css/history.css' %}"/>
25 19 <script type="text/javascript"
26   - src="{% version_static 'js/lib/cvi_busy_lib.js' %}"></script>
27   - <script type="text/javascript"
28   - src="{% version_static 'js/lib/splitter.js' %}"></script>
29   - <script type="text/javascript"
30   - src="{% version_static 'js/lib/jquery.event.drag-2.2.js' %}"></script>
31   - <script type="text/javascript"
32   - src="{% version_static 'js/lib/jquery.event.drop-2.2.js' %}"></script>
33   - <script type="text/javascript"
34   - src="{% version_static 'js/lib/jquery.ui.selectmenu.js' %}"></script>
35   - <script type="text/javascript"
36   - src="{% version_static 'js/lib/jquery.uix.multiselect.js' %}"></script>
37   - <script type="text/javascript"
38   - src="{% version_static 'js/jquery.uix.multiselect_pl.js' %}"></script>
39   - <script type="text/javascript"
40   - src="{% version_static 'js/lib/slick.core.js' %}"></script>
41   - <script type="text/javascript"
42   - src="{% version_static 'js/lib/slick.grid.js' %}"></script>
43   - <script type="text/javascript"
44 20 src="{% version_static 'js/remotemodel.js' %}"></script>
45 21 <script type="text/javascript"
46 22 src="{% version_static 'js/slickgrid.js' %}"></script>
... ... @@ -99,20 +75,7 @@
99 75 {% endblock %}
100 76  
101 77 {% block modal_elements %}
102   - <div id="choose-columns-dialog" title="{% trans 'Choose columns' %}">
103   - <select id="column-list" multiple=multiple></select>
104   - </div>
105   - <div id="choose-filter-dialog" title="{% trans 'Filters' %}">
106   - <p>
107   - <select id="group-op">
108   - <option value="AND" selected="selected">{% trans 'and' %}</option>
109   - <option value="OR">{% trans 'or' %}</option>
110   - </select>
111   - <input type="button" value="+" title="{% trans 'Add filter' %}"
112   - id="add-filter-button">
113   - </p>
114   - <table id="filter-table"></table>
115   - </div>
  78 + {% include "slickgrid_modal_elements.html" %}
116 79 <div id="more-actions-dialog" title="{% trans 'Other actions' %}">
117 80 <p><button type="button" id="clone-pattern-button">
118 81 {% trans 'Clone the active pattern' %}
... ...
patterns/views.py
... ... @@ -51,6 +51,9 @@ def pattern_view(request):
51 51 'ajax_create_pattern': reverse('create_pattern'),
52 52 'ajax_clone_pattern': reverse('clone_pattern'),
53 53 'ajax_history_table': reverse('pattern_table'),
  54 + 'ajax_save_filter': reverse('save_filter'),
  55 + 'ajax_get_filters': reverse('get_filters'),
  56 + 'ajax_delete_filter': reverse('delete_filter'),
54 57 'exclusion_classes': get_exclusion_classes(),
55 58 'auto_search': request.user.usersettings.incremental_search,
56 59 'vocabs': vocabs,
... ...