# HG changeset patch # User ymh # Date 1375202352 -7200 # Node ID 8a67acd1f3aa2eba8b0b6cdfbe210b06ae50c847 # Parent e78e5a2017b671bbe730a149008776a682b0fd5e disable sort order when sorting by node (not used in any case) Do not level node to the minimum level of the page diff -r e78e5a2017b6 -r 8a67acd1f3aa src/jocondelab/forms.py --- 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() diff -r e78e5a2017b6 -r 8a67acd1f3aa src/jocondelab/static/jocondelab/css/style.css --- 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 { diff -r e78e5a2017b6 -r 8a67acd1f3aa src/jocondelab/static/jocondelab/js/jocondelab.js --- 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); + } + }) } diff -r e78e5a2017b6 -r 8a67acd1f3aa src/jocondelab/templates/jocondelab/partial/term_list_table.html --- 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 @@ {% for term in object_list %} - {{ term.label }} + {{ term.label }} {{ term.thesaurus.label }} {{ term.level }} diff -r e78e5a2017b6 -r 8a67acd1f3aa src/jocondelab/templates/jocondelab/term_list.html --- 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 @@ {% for term in object_list %} - {{ term.label }} + {{ term.label }} {{ term.thesaurus.label }} {{ term.level }} diff -r e78e5a2017b6 -r 8a67acd1f3aa src/jocondelab/views.py --- 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 = {