fga-gpp-mds/2017.2-QueroCultura

View on GitHub
museums_indicators/views.py

Summary

Maintainability
F
3 days
Test Coverage
from datetime import datetime
from django.shortcuts import render
from .models import MuseumData
from .models import MuseumArea
from .models import MuseumTags
from .models import LastUpdateMuseumDate
from quero_cultura.views import ParserYAML
from quero_cultura.views import get_metabase_url
from .api_connections import RequestMuseumRawData
from project_indicators.views import clean_url
from celery.decorators import task
import json
 
 
DEFAULT_INITIAL_DATE = "2012-01-01 00:00:00.000000"
 
view_type = "question"
Similar blocks of code found in 4 locations. Consider refactoring.
metabase_graphics = [{'id': 1, 'url': get_metabase_url(view_type, 20, "true")},
{'id': 2, 'url': get_metabase_url(view_type, 22, "true")},
{'id': 3, 'url': get_metabase_url(view_type, 24, "true")},
{'id': 4, 'url': get_metabase_url(view_type, 41, "true")},
{'id': 5, 'url': get_metabase_url(view_type, 42, "true")}]
 
detailed_data = [{'id': 1, 'url': get_metabase_url("dashboard", 7, "false")}]
 
 
page_type = "Museus"
graphic_type = 'museums_graphic_detail'
Similar blocks of code found in 3 locations. Consider refactoring.
page_descripition = "Museus são lugares onde se guardam e exibem coleções de "\
+ "objetos de interesse artístico, cultural, científico, "\
+ "histórico, entre outros, que procuram difundir o "\
+ "conhecimento humano. Os gráficos abaixo representam "\
+ "indicadores que são gerados a partir dos dados de "\
+ "museus cadastrados na plataforma"
 
 
def index(request):
return render(request, 'quero_cultura/indicators_page.html',
{'metabase_graphics': metabase_graphics,
'detailed_data': detailed_data,
'page_type': page_type,
'graphic_type': graphic_type,
'page_descripition': page_descripition})
 
 
Identical blocks of code found in 6 locations. Consider refactoring.
def graphic_detail(request, graphic_id):
try:
graphic = metabase_graphics[int(graphic_id) - 1]
except IndexError:
return render(request, 'quero_cultura/not_found.html')
return render(request, 'quero_cultura/graphic_detail.html',
{'graphic': graphic})
 
 
Similar blocks of code found in 2 locations. Consider refactoring.
@task(name="load_museums")
Function `populate_museum_data` has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
def populate_museum_data():
if len(LastUpdateMuseumDate.objects) == 0:
LastUpdateMuseumDate(DEFAULT_INITIAL_DATE).save()
 
size = LastUpdateMuseumDate.objects.count()
last_update = LastUpdateMuseumDate.objects[size - 1].create_date
LastUpdateMuseumDate(str(datetime.now())).save()
 
parser_yaml = ParserYAML()
urls = parser_yaml.get_multi_instances_urls
 
for url in urls:
request = RequestMuseumRawData(last_update, url).data
new_url = clean_url(url)
for museum in request:
date = museum["createTimestamp"]['date']
 
accessibility = str(museum["acessibilidade"]).capitalize()
if accessibility == '' or accessibility == 'None':
accessibility = 'Não definido'
 
MuseumData(new_url,
museum["type"]['name'],
accessibility,
date).save()
 
for area in museum["terms"]["area"]:
MuseumArea(new_url, str(area).title()).save()
 
for tag in museum["terms"]["tag"]:
MuseumTags(new_url, str(tag).title()).save()