disable sort order when sorting by node (not used in any case)
Do not level node to the minimum level of the page
--- a/src/jocondelab/forms.py Tue Jul 30 16:21:04 2013 +0200
+++ b/src/jocondelab/forms.py Tue Jul 30 18:39:12 2013 +0200
@@ -98,9 +98,15 @@
order_by = fields.ChoiceField(label=_("order_by"), required=False, choices=(('normalized_label',_('label')),('nb_notice',_('nb notice')),('level',_('level')),('lft', _('order_lft'))))
order_dir = fields.ChoiceField(label=_("order_dir"), required=False, choices=(('asc',_('asc')), ('desc',_('desc'))))
+ def __init__(self, *args, **kwargs):
+ super(TermFilterForm, self).__init__(*args, **kwargs)
+ if self.data.get('order_by', 'normalized_label') == 'lft':
+ self.fields['order_dir'].widget.attrs['disabled'] = 'disabled'
+
def clean(self):
fields_not_empty = any([v for k,v in self.cleaned_data.items() if k not in ('thesaurus','thesaurus_tree', 'link_status', 'order_by', 'order_dir')] + [self.cleaned_data.get('link_status', -1) >= 0])
- self.can_display_level = (not fields_not_empty) and (self.cleaned_data.get('thesaurus',None) is not None) and (self.cleaned_data.get('order_by','normalized_label') == 'lft')
+ self.can_display_level = (not fields_not_empty) and (self.cleaned_data.get('thesaurus',None) is not None) and (self.cleaned_data.get('order_by','normalized_label') == 'lft')
+ self.selected_thesaurus = self.cleaned_data.get('thesaurus', None)
return super(TermFilterForm, self).clean()
--- a/src/jocondelab/static/jocondelab/css/style.css Tue Jul 30 16:21:04 2013 +0200
+++ b/src/jocondelab/static/jocondelab/css/style.css Tue Jul 30 18:39:12 2013 +0200
@@ -607,7 +607,7 @@
min-width: 100px;
height: 18px;
padding: 1px 1px 0px 1px;
- vertical-align: center;
+ vertical-align: middle;
}
#term-filter-field-list #label {
--- a/src/jocondelab/static/jocondelab/js/jocondelab.js Tue Jul 30 16:21:04 2013 +0200
+++ b/src/jocondelab/static/jocondelab/js/jocondelab.js Tue Jul 30 18:39:12 2013 +0200
@@ -409,6 +409,14 @@
}
});
+ $('#order_by').change(function(e) {
+ if($('#order_by').val() === 'lft') {
+ $('#order_dir').prop('disabled', true);
+ }
+ else {
+ $('#order_dir').prop('disabled', false);
+ }
+ })
}
--- a/src/jocondelab/templates/jocondelab/partial/term_list_table.html Tue Jul 30 16:21:04 2013 +0200
+++ b/src/jocondelab/templates/jocondelab/partial/term_list_table.html Tue Jul 30 18:39:12 2013 +0200
@@ -8,7 +8,7 @@
<tbody>
{% for term in object_list %}
<tr class="{% cycle 'hdabooddline' 'hdaboevenline' %}" id="term-{{term.id}}">
- <td class="{{term.url_status_text}} term-list-label" {% if show_levels %}style="padding-left: {{ term.corrected_level }}em"{% endif %}><a href="{% url 'term' term_id=term.id %}{% append_to_param %}">{{ term.label }}</a></td>
+ <td class="{{term.url_status_text}} term-list-label" {% if show_levels %}style="padding-left: {{ term.level }}em"{% endif %}><a href="{% url 'term' term_id=term.id %}{% append_to_param %}">{{ term.label }}</a></td>
<td class="text_centered">{{ term.thesaurus.label }}</td>
<td class="text_centered">{{ term.level }}</td>
<td class="text_centered">
--- a/src/jocondelab/templates/jocondelab/term_list.html Tue Jul 30 16:21:04 2013 +0200
+++ b/src/jocondelab/templates/jocondelab/term_list.html Tue Jul 30 18:39:12 2013 +0200
@@ -22,7 +22,7 @@
<tbody>
{% for term in object_list %}
<tr class="{% cycle 'hdabooddline' 'hdaboevenline' %}">
- <td class="{{term.url_status_text}} term-list-label" {% if show_levels %}style="padding-left: {{ term.corrected_level }}em"{% endif %} ><a href="{% url 'term' term_id=term.id %}{% append_to_param %}">{{ term.label }}</a></td>
+ <td class="{{term.url_status_text}} term-list-label" {% if show_levels %}style="padding-left: {{ term.level }}em"{% endif %} ><a href="{% url 'term' term_id=term.id %}{% append_to_param %}">{{ term.label }}</a></td>
<td class="text_centered">{{ term.thesaurus.label }}</td>
<td class="text_centered">{{ term.level }}</td>
<td class="text_centered">
--- a/src/jocondelab/views.py Tue Jul 30 16:21:04 2013 +0200
+++ b/src/jocondelab/views.py Tue Jul 30 18:39:12 2013 +0200
@@ -46,33 +46,27 @@
context = ListView.get_context_data(self, **kwargs)
filter_form = self.get_filter_form()
context['filter_form'] = filter_form
- page = context.get('page_obj', None)
- if page and self.can_display_level:
- levels = [t.level for t in page.object_list]
- min_level = min(levels)
- max_level = max(levels)
- if max_level > 0 :
+ valid_thesaurus_ids = [entry['thesaurus__id'] for entry in Term.objects.root_nodes().values('thesaurus__id').annotate(root_nodes_count=Count('thesaurus__id')).order_by().filter(root_nodes_count__lt=settings.JOCONDE_TERM_TREE_MAX_ROOT_NODE)] # @UndefinedVariable
+ context['term_tree_valid_thesaurus'] = json.dumps(valid_thesaurus_ids)
+ if self.selected_thesaurus and self.can_display_level:
+ if self.selected_thesaurus.id in valid_thesaurus_ids:
context['show_levels'] = True
- new_object_list = []
- for t in page.object_list:
- t.corrected_level = 2*(t.level-min_level)
- new_object_list.append(t)
- page.object_list = new_object_list
else:
context['show_levels'] = False
else:
- context['show_level'] = False
- context['term_tree_valid_thesaurus'] = json.dumps([entry['thesaurus__id'] for entry in Term.objects.root_nodes().values('thesaurus__id').annotate(root_nodes_count=Count('thesaurus__id')).order_by().filter(root_nodes_count__lt=settings.JOCONDE_TERM_TREE_MAX_ROOT_NODE)]) # @UndefinedVariable
+ context['show_level'] = False
return context
def get_queryset(self):
qs = super(TermListView, self).get_queryset()
filter_form = self.get_filter_form()
if filter_form.is_valid():
- self.can_display_level = filter_form.can_display_level
+ self.can_display_level = filter_form.can_display_level
+ self.selected_thesaurus = filter_form.selected_thesaurus
return filter_form.get_filter_qs(qs)
else:
- self.can_display_level = False
+ self.can_display_level = False
+ self.selected_thesaurus = None
return None
class TermListTableView(TermListView):
@@ -104,8 +98,11 @@
filter_form = self.get_filter_form()
if filter_form.is_valid():
self.can_display_level = filter_form.can_display_level
+ self.selected_thesaurus = filter_form.selected_thesaurus
return filter_form.get_filter_qs(qs)
else:
+ self.can_display_level = False
+ self.selected_thesaurus = None
return None
@@ -133,29 +130,21 @@
context['ancestors'] = self.object.get_ancestors(ascending=True)
context['filter_form'] = self.get_filter_form()
- context['term_tree_valid_thesaurus'] = json.dumps([entry['thesaurus__id'] for entry in Term.objects.root_nodes().values('thesaurus__id').annotate(root_nodes_count=Count('thesaurus__id')).order_by().filter(root_nodes_count__lt=settings.JOCONDE_TERM_TREE_MAX_ROOT_NODE)]) # @UndefinedVariable
context['link_semantic_level_choice'] = TERM_WK_LINK_SEMANTIC_LEVEL_CHOICES
context['JOCONDE_IMG_BASE_URL'] = settings.JOCONDE_IMG_BASE_URL
context['JOCONDE_NOTICE_BASE_URL'] = settings.JOCONDE_NOTICE_BASE_URL
context['wikipedia_lang_list'] = settings.WIKIPEDIA_URLS.keys()
context['wikipedia_urls'] = json.dumps(settings.WIKIPEDIA_URLS)
- page = context.get('page_obj', None)
- if page and self.can_display_level:
- levels = [t.level for t in page.object_list]
- min_level = min(levels)
- max_level = max(levels)
- if max_level > 0 :
+ valid_thesaurus_ids = [entry['thesaurus__id'] for entry in Term.objects.root_nodes().values('thesaurus__id').annotate(root_nodes_count=Count('thesaurus__id')).order_by().filter(root_nodes_count__lt=settings.JOCONDE_TERM_TREE_MAX_ROOT_NODE)] # @UndefinedVariable
+ context['term_tree_valid_thesaurus'] = json.dumps(valid_thesaurus_ids)
+ if self.selected_thesaurus and self.can_display_level:
+ if self.selected_thesaurus.id in valid_thesaurus_ids:
context['show_levels'] = True
- new_object_list = []
- for t in page.object_list:
- t.corrected_level = 2*(t.level-min_level)
- new_object_list.append(t)
- page.object_list = new_object_list
else:
context['show_levels'] = False
else:
- context['show_level'] = False
+ context['show_level'] = False
field_index = {