def journals_search_by_theme_ajax(): if not request.is_xhr: abort(400, _('Requisição inválida. Deve ser por ajax')) query = request.args.get('query', '', type=str) query_filter = request.args.get('query_filter', '', type=str) filter = request.args.get('filter', 'areas', type=str) lang = get_lang_from_session()[:2].lower() if filter == 'areas': objects = controllers.get_journals_grouped_by( 'study_areas', query, query_filter=query_filter, lang=lang) elif filter == 'wos': objects = controllers.get_journals_grouped_by( 'subject_categories', query, query_filter=query_filter, lang=lang) elif filter == 'publisher': objects = controllers.get_journals_grouped_by( 'publisher_name', query, query_filter=query_filter, lang=lang) else: return jsonify({ 'error': 401, 'message': _('Parámetro "filter" é inválido, deve ser "areas", "wos" ou "publisher".' ) }) return jsonify(objects)
def collection_list_thematic(): allowed_query_filters = ["current", "no-current", ""] allowed_thematic_filters = ["areas", "wos", "publisher"] thematic_table = { "areas": "study_areas", "wos": "subject_categories", "publisher": "publisher_name", } query_filter = request.args.get("status", "") title_query = request.args.get("query", "") thematic_filter = request.args.get("filter", "areas") if not query_filter in allowed_query_filters: query_filter = "" if not thematic_filter in allowed_thematic_filters: thematic_filter = "areas" lang = get_lang_from_session()[:2].lower() objects = controllers.get_journals_grouped_by( thematic_table[thematic_filter], title_query, query_filter=query_filter, lang=lang, ) return render_template( "collection/list_thematic.html", **{ "objects": objects, "query_filter": query_filter, "filter": thematic_filter })
def journals_search_by_theme_ajax(): if not request.is_xhr: abort(400, _("Requisição inválida. Deve ser por ajax")) query = request.args.get("query", "", type=unicode) query_filter = request.args.get("query_filter", "", type=unicode) filter = request.args.get("filter", "areas", type=unicode) if filter == "areas": objects = controllers.get_journals_grouped_by("study_areas", query, query_filter=query_filter) elif filter == "wos": objects = controllers.get_journals_grouped_by("index_at", query, query_filter=query_filter) elif filter == "publisher": objects = controllers.get_journals_grouped_by("publisher_name", query, query_filter=query_filter) else: return jsonify( {"error": 401, "message": _('Parámetro "filter" é inválido, deve ser "areas", "wos" ou "publisher".')} ) return jsonify(objects)
def journals_search_by_theme_ajax(): if not request.is_xhr: abort(400, _('Requisição inválida. Deve ser por ajax')) query = request.args.get('query', '', type=str) query_filter = request.args.get('query_filter', '', type=str) filter = request.args.get('filter', 'areas', type=str) if filter == 'areas': objects = controllers.get_journals_grouped_by('subject_categories', query, query_filter=query_filter) elif filter == 'wos': objects = controllers.get_journals_grouped_by('index_at', query, query_filter=query_filter) elif filter == 'publisher': objects = controllers.get_journals_grouped_by('publisher_name', query, query_filter=query_filter) else: return jsonify({ 'error': 401, 'message': _('Parámetro "filter" é inválido, deve ser "areas", "wos" ou "publisher".') }) return jsonify(objects)
def test_get_journals_grouped_by_index_at_without_journal(self): """ Testando controllers.get_journals_grouped_by('index_at') sem Journal. """ expected = { 'meta': { 'total': 0, 'themes_count': 0 }, 'objects': {} } grouped_objects = controllers.get_journals_grouped_by('index_at') self.assertEqual(expected['meta']['total'], grouped_objects['meta']['total']) self.assertEqual(expected['meta']['themes_count'], grouped_objects['meta']['themes_count']) self.assertEqual(len(expected['objects']), len(grouped_objects['objects']))
def test_get_journals_grouped_by_publisher_name_without_journal(self): """ Testando controllers.get_journals_grouped_by('publisher_name') sem periódicos. """ expected = { 'meta': { 'total': 0, 'themes_count': 0 }, 'objects': {} } grouped_objects = controllers.get_journals_grouped_by('publisher_name') self.assertEqual(expected['meta']['total'], grouped_objects['meta']['total']) self.assertEqual(expected['meta']['themes_count'], grouped_objects['meta']['themes_count']) self.assertEqual(len(expected['objects']), len(grouped_objects['objects']))
def test_get_journals_grouped_by_study_area(self): """ Testando se o retorno da função controllers.get_journals_by_study_area() está de acordo com o esperado. """ journal1 = self._makeOne({ "study_areas": ["Health Sciences"], "last_issue": {"volume": "1", "number": "1", "year": "2016"} }) journal2 = self._makeOne({ "study_areas": ["Health Sciences", "Biological Sciences"], "last_issue": {"volume": "2", "number": "2", "year": "2016"} }) journal3 = self._makeOne({ "study_areas": ["Exact and Earth Sciences"], "last_issue": {"volume": "3", "number": "3", "year": "2016"} }) journal4 = self._makeOne({ "study_areas": ["Human Sciences", "Biological Sciences", "Engineering"], "last_issue": {"volume": "4", "number": "4", "year": "2016"} }) journal5 = self._makeOne({ "study_areas": ["Linguistics"], "last_issue": {"volume": "5", "number": "5", "year": "2016"} }) journal6 = self._makeOne({ "study_areas": ["Engineering"], "last_issue": {"volume": "6", "number": "6", "year": "2016"} }) expected = { 'meta': { 'total': 6, 'themes_count': 6 }, 'objects': { 'Health Sciences': [ controllers.get_journal_json_data(journal1), controllers.get_journal_json_data(journal2) ], 'Engineering': [ controllers.get_journal_json_data(journal4), controllers.get_journal_json_data(journal6) ], 'Biological Sciences': [ controllers.get_journal_json_data(journal2), controllers.get_journal_json_data(journal4) ], 'Linguistics': [ controllers.get_journal_json_data(journal5) ], 'Human Sciences': [ controllers.get_journal_json_data(journal4) ], 'Exact and Earth Sciences': [ controllers.get_journal_json_data(journal3) ] } } grouped_objects = controllers.get_journals_grouped_by('study_areas') self.assertEqual(expected['meta']['total'], grouped_objects['meta']['total']) self.assertEqual(expected['meta']['themes_count'], grouped_objects['meta']['themes_count']) self.assertEqual(len(expected['objects']), len(grouped_objects['objects'])) for grouper, journals in expected['objects'].items(): self.assertListEqual(sorted([journal['id'] for journal in expected['objects'][grouper]]), sorted([journal['id'] for journal in journals]))
def test_get_journals_grouped_by_publisher_name(self): """ Testando se o retorno da função controllers.get_journals_grouped_by('publisher_name') está de acordo com o esperado. """ journal1 = self._makeOne({ "publisher_name": "CNPQ", "last_issue": {"volume": "1", "number": "1", "year": "2016"} }) journal2 = self._makeOne({ "publisher_name": "SciELO", "last_issue": {"volume": "2", "number": "2", "year": "2016"} }) journal3 = self._makeOne({ "publisher_name": "FAPESP", "last_issue": {"volume": "3", "number": "3", "year": "2016"} }) journal4 = self._makeOne({ "publisher_name": "FUNDAÇÃO XPTO", "last_issue": {"volume": "4", "number": "4", "year": "2016"} }) journal5 = self._makeOne({ "publisher_name": "FAPESP", "last_issue": {"volume": "5", "number": "5", "year": "2016"} }) journal6 = self._makeOne({ "publisher_name": "FUNDAÇÃO XPTO", "last_issue": {"volume": "6", "number": "6", "year": "2016"} }) expected = { 'meta': { 'total': 6, 'themes_count': 4 }, 'objects': { 'CNPQ': [ controllers.get_journal_json_data(journal1) ], 'SciELO': [ controllers.get_journal_json_data(journal2), controllers.get_journal_json_data(journal3), controllers.get_journal_json_data(journal4), controllers.get_journal_json_data(journal5) ], 'FAPESP': [ controllers.get_journal_json_data(journal4) ], 'FUNDAÇÃO XPTO': [ controllers.get_journal_json_data(journal4), controllers.get_journal_json_data(journal6) ] } } grouped_objects = controllers.get_journals_grouped_by('publisher_name') self.assertEqual(expected['meta']['total'], grouped_objects['meta']['total']) self.assertEqual(expected['meta']['themes_count'], grouped_objects['meta']['themes_count']) self.assertEqual(len(expected['objects']), len(grouped_objects['objects'])) for grouper, journals in expected['objects'].items(): self.assertListEqual(sorted([journal['id'] for journal in expected['objects'][grouper]]), sorted([journal['id'] for journal in journals]))
def test_get_journals_grouped_by_index_at(self): """ Testando se o retorno da função controllers.get_journals_grouped_by('index_at') está de acordo com o esperado. """ journal1 = self._makeOne({ "index_at": ["SCIE"], "last_issue": {"volume": "1", "number": "1", "year": "2016"} }) journal2 = self._makeOne({ "index_at": ["SCIE", "SSCI"], "last_issue": {"volume": "2", "number": "2", "year": "2016"} }) journal3 = self._makeOne({ "index_at": ["SCIE"], "last_issue": {"volume": "3", "number": "3", "year": "2016"} }) journal4 = self._makeOne({ "index_at": ["SSCI", "ICSE"], "last_issue": {"volume": "4", "number": "4", "year": "2016"} }) journal5 = self._makeOne({ "index_at": ["SSCI", "SCIE"], "last_issue": {"volume": "5", "number": "5", "year": "2016"} }) journal6 = self._makeOne({ "index_at": ["SSCI"], "last_issue": {"volume": "6", "number": "6", "year": "2016"} }) expected = { 'meta': { 'total': 6, 'themes_count': 3 }, 'objects': { 'SCIE': [ controllers.get_journal_json_data(journal1), controllers.get_journal_json_data(journal2), controllers.get_journal_json_data(journal3), controllers.get_journal_json_data(journal5) ], 'SSCI': [ controllers.get_journal_json_data(journal2), controllers.get_journal_json_data(journal4), controllers.get_journal_json_data(journal5) ], 'ICSE': [ controllers.get_journal_json_data(journal4) ] } } grouped_objects = controllers.get_journals_grouped_by('index_at') self.assertEqual(expected['meta']['total'], grouped_objects['meta']['total']) self.assertEqual(expected['meta']['themes_count'], grouped_objects['meta']['themes_count']) self.assertEqual(len(expected['objects']), len(grouped_objects['objects'])) for grouper, journals in expected['objects'].items(): self.assertListEqual(sorted([journal['id'] for journal in expected['objects'][grouper]]), sorted([journal['id'] for journal in journals]))
def test_get_journals_grouped_by_study_area(self): """ Testando se o retorno da função controllers.get_journals_by_study_area() está de acordo com o esperado. """ journal1 = self._make_one({ "study_areas": ["Health Sciences"], "last_issue": {"volume": "1", "number": "1", "year": "2016"} }) journal2 = self._make_one({ "study_areas": ["Health Sciences", "Biological Sciences"], "last_issue": {"volume": "2", "number": "2", "year": "2016"} }) journal3 = self._make_one({ "study_areas": ["Exact and Earth Sciences"], "last_issue": {"volume": "3", "number": "3", "year": "2016"} }) journal4 = self._make_one({ "study_areas": ["Human Sciences", "Biological Sciences", "Engineering"], "last_issue": {"volume": "4", "number": "4", "year": "2016"} }) journal5 = self._make_one({ "study_areas": ["Linguistics"], "last_issue": {"volume": "5", "number": "5", "year": "2016"} }) journal6 = self._make_one({ "study_areas": ["Engineering"], "last_issue": {"volume": "6", "number": "6", "year": "2016"} }) expected = { 'meta': { 'total': 6, 'themes_count': 6 }, 'objects': { 'Health Sciences': [ controllers.get_journal_json_data(journal1), controllers.get_journal_json_data(journal2) ], 'Engineering': [ controllers.get_journal_json_data(journal4), controllers.get_journal_json_data(journal6) ], 'Biological Sciences': [ controllers.get_journal_json_data(journal2), controllers.get_journal_json_data(journal4) ], 'Linguistics': [ controllers.get_journal_json_data(journal5) ], 'Human Sciences': [ controllers.get_journal_json_data(journal4) ], 'Exact and Earth Sciences': [ controllers.get_journal_json_data(journal3) ] } } grouped_objects = controllers.get_journals_grouped_by('study_areas') self.assertEqual(expected['meta']['total'], grouped_objects['meta']['total']) self.assertEqual(expected['meta']['themes_count'], grouped_objects['meta']['themes_count']) self.assertEqual(len(expected['objects']), len(grouped_objects['objects'])) for grouper, journals in expected['objects'].items(): self.assertListEqual(sorted([journal['id'] for journal in expected['objects'][grouper]]), sorted([journal['id'] for journal in journals]))
def test_get_journals_grouped_by_publisher_name(self): """ Testando se o retorno da função controllers.get_journals_grouped_by('publisher_name') está de acordo com o esperado. """ journal1 = self._make_one({ "publisher_name": "CNPQ", "last_issue": {"volume": "1", "number": "1", "year": "2016"} }) journal2 = self._make_one({ "publisher_name": "SciELO", "last_issue": {"volume": "2", "number": "2", "year": "2016"} }) journal3 = self._make_one({ "publisher_name": "FAPESP", "last_issue": {"volume": "3", "number": "3", "year": "2016"} }) journal4 = self._make_one({ "publisher_name": "FUNDAÇÃO XPTO", "last_issue": {"volume": "4", "number": "4", "year": "2016"} }) journal5 = self._make_one({ "publisher_name": "FAPESP", "last_issue": {"volume": "5", "number": "5", "year": "2016"} }) journal6 = self._make_one({ "publisher_name": "FUNDAÇÃO XPTO", "last_issue": {"volume": "6", "number": "6", "year": "2016"} }) expected = { 'meta': { 'total': 6, 'themes_count': 4 }, 'objects': { 'CNPQ': [ controllers.get_journal_json_data(journal1) ], 'SciELO': [ controllers.get_journal_json_data(journal2), controllers.get_journal_json_data(journal3), controllers.get_journal_json_data(journal4), controllers.get_journal_json_data(journal5) ], 'FAPESP': [ controllers.get_journal_json_data(journal4) ], 'FUNDAÇÃO XPTO': [ controllers.get_journal_json_data(journal4), controllers.get_journal_json_data(journal6) ] } } grouped_objects = controllers.get_journals_grouped_by('publisher_name') self.assertEqual(expected['meta']['total'], grouped_objects['meta']['total']) self.assertEqual(expected['meta']['themes_count'], grouped_objects['meta']['themes_count']) self.assertEqual(len(expected['objects']), len(grouped_objects['objects'])) for grouper, journals in expected['objects'].items(): self.assertListEqual(sorted([journal['id'] for journal in expected['objects'][grouper]]), sorted([journal['id'] for journal in journals]))
def test_get_journals_grouped_by_index_at(self): """ Testando se o retorno da função controllers.get_journals_grouped_by('index_at') está de acordo com o esperado. """ journal1 = self._make_one({ "index_at": ["SCIE"], "last_issue": {"volume": "1", "number": "1", "year": "2016"} }) journal2 = self._make_one({ "index_at": ["SCIE", "SSCI"], "last_issue": {"volume": "2", "number": "2", "year": "2016"} }) journal3 = self._make_one({ "index_at": ["SCIE"], "last_issue": {"volume": "3", "number": "3", "year": "2016"} }) journal4 = self._make_one({ "index_at": ["SSCI", "ICSE"], "last_issue": {"volume": "4", "number": "4", "year": "2016"} }) journal5 = self._make_one({ "index_at": ["SSCI", "SCIE"], "last_issue": {"volume": "5", "number": "5", "year": "2016"} }) self._make_one({ "index_at": ["SSCI"], "last_issue": {"volume": "6", "number": "6", "year": "2016"} }) expected = { 'meta': { 'total': 6, 'themes_count': 3 }, 'objects': { 'SCIE': [ controllers.get_journal_json_data(journal1), controllers.get_journal_json_data(journal2), controllers.get_journal_json_data(journal3), controllers.get_journal_json_data(journal5) ], 'SSCI': [ controllers.get_journal_json_data(journal2), controllers.get_journal_json_data(journal4), controllers.get_journal_json_data(journal5) ], 'ICSE': [ controllers.get_journal_json_data(journal4) ] } } grouped_objects = controllers.get_journals_grouped_by('index_at') self.assertEqual(expected['meta']['total'], grouped_objects['meta']['total']) self.assertEqual(expected['meta']['themes_count'], grouped_objects['meta']['themes_count']) self.assertEqual(len(expected['objects']), len(grouped_objects['objects'])) for grouper, journals in expected['objects'].items(): self.assertListEqual(sorted([journal['id'] for journal in expected['objects'][grouper]]), sorted([journal['id'] for journal in journals]))