Skip to content
Snippets Groups Projects
Commit 610a3edd authored by Alice Heaton's avatar Alice Heaton :speech_balloon:
Browse files

Use the API to fetch the list of categories used in the views&edit page.

parent e99de244
No related branches found
No related tags found
1 merge request!1Use api to list terms
...@@ -128,7 +128,7 @@ def test_get_category_options_uses_terms(): ...@@ -128,7 +128,7 @@ def test_get_category_options_uses_terms():
) )
view = ViewItems() view = ViewItems()
options = view.get_category_options(ebola_questions.id) options = view.get_category_options(ebola_questions.slug)
assert (type_1.name, type_1.long_name) in options assert (type_1.name, type_1.long_name) in options
assert (type_2.name, type_2.long_name) in options assert (type_2.name, type_2.long_name) in options
...@@ -174,7 +174,7 @@ def test_get_category_options_orders_by_lowercase_name(): ...@@ -174,7 +174,7 @@ def test_get_category_options_orders_by_lowercase_name():
) )
view = ViewItems() view = ViewItems()
options = view.get_category_options(ebola_questions.id) options = view.get_category_options(ebola_questions.slug)
# Make sure we are only comparing with out test values! # Make sure we are only comparing with out test values!
options = [o for o in options if o in test_term_values] options = [o for o in options if o in test_term_values]
......
...@@ -13,7 +13,6 @@ from django.views.generic.base import TemplateView ...@@ -13,7 +13,6 @@ from django.views.generic.base import TemplateView
from django_tables2 import SingleTableView from django_tables2 import SingleTableView
from chn_spreadsheet.importer import Importer, SheetImportException from chn_spreadsheet.importer import Importer, SheetImportException
from data_layer.models import Term
import transport import transport
from transport.exceptions import TransportException from transport.exceptions import TransportException
from .assets import require_assets from .assets import require_assets
...@@ -89,26 +88,18 @@ class ViewItems(SingleTableView): ...@@ -89,26 +88,18 @@ class ViewItems(SingleTableView):
def get_queryset(self): def get_queryset(self):
return transport.items.list() return transport.items.list()
def get_category_options(self, categories_id=None): def get_category_options(self, taxonomy_slug=None):
# TODO: Use data layer if taxonomy_slug is not None:
terms = self.get_matching_terms(categories_id) terms = transport.terms.list(taxonomy=taxonomy_slug)
return tuple((t.name, t.long_name) for t in terms) else:
terms = transport.terms.list()
def get_matching_terms(self, categories_id): terms.sort(key=lambda e: e['name'].lower())
if categories_id is None: return tuple((t['name'], t['long_name']) for t in terms)
return (Term.objects
.extra(select={'name_lower': 'lower(name)'})
.order_by('name_lower')
.all())
return (Term.objects
.extra(select={'name_lower': 'lower(name)'})
.order_by('name_lower')
.filter(taxonomy__id=categories_id))
def get_table(self, **kwargs): def get_table(self, **kwargs):
# TODO: Filter on taxonomy kwargs['categories'] = self.get_category_options(
kwargs['categories'] = self.get_category_options() QUESTION_TYPE_TAXONOMY
)
return super(ViewItems, self).get_table(**kwargs) return super(ViewItems, self).get_table(**kwargs)
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
...@@ -127,7 +118,7 @@ class ViewItems(SingleTableView): ...@@ -127,7 +118,7 @@ class ViewItems(SingleTableView):
label=_('Set question type'), label=_('Set question type'),
items=[(short_name, short_name) items=[(short_name, short_name)
for short_name, long_name for short_name, long_name
in self.get_category_options()], in self.get_category_options(QUESTION_TYPE_TAXONOMY)],
prefix=ADD_CATEGORY_PREFIX prefix=ADD_CATEGORY_PREFIX
) )
] ]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment