def dashboard(request): """Beta dashboard.""" # Defaults prod = request.default_prod version = Version(LATEST_BETAS[prod]).simplified search_form = ReporterSearchForm() # Frequent terms term_params = { 'product': prod.id, 'version': version, } frequent_terms = Term.objects.frequent( **term_params)[:settings.TRENDS_COUNT] # opinions queryset for demographics latest_opinions = Opinion.objects.browse(**term_params) latest_beta = Opinion.objects.filter(version=version, product=prod.id) # Sites clusters sites = SiteSummary.objects.filter(version__exact=version).filter( positive__exact=None).filter( platform__exact=None)[:settings.TRENDS_COUNT] try: c = Client() search_opts = dict(product=prod.short, version=version) c.query('', meta=('type', 'locale', 'platform', 'day_sentiment'), **search_opts) metas = c.meta daily = c.meta.get('day_sentiment', {}) chart_data = dict(series=[ dict(name=_('Praise'), data=daily['praise']), dict(name=_('Issues'), data=daily['issue']), dict(name=_('Ideas'), data=daily['idea']), ]) total = c.total_found except SearchError: metas = {} total = latest_beta.count() chart_data = None data = {'opinions': latest_opinions.all()[:settings.MESSAGES_COUNT], 'opinion_count': total, 'product': prod, 'products': PROD_CHOICES, 'sentiments': get_sentiment(metas.get('type', [])), 'terms': stats.frequent_terms(qs=frequent_terms), 'locales': metas.get('locale'), 'platforms': metas.get('platform'), 'sites': sites, 'version': version, 'versions': VERSION_CHOICES[prod], 'chart_data_json': json.dumps(chart_data), 'defaults': get_defaults(search_form), 'search_form': search_form, } if not request.mobile_site: template = 'dashboard/beta.html' else: template = 'dashboard/mobile/beta.html' return jingo.render(request, template, data)
def dashboard(request): prod = request.default_prod version = (getattr(prod, 'default_version', None) or Version(LATEST_BETAS[prod]).simplified) search_form = ReporterSearchForm() # Frequent terms term_params = { 'product': prod.id, 'version': version, } # # opinions queryset for demographics latest_opinions = Opinion.objects.browse(**term_params) # # Sites clusters # sites = SiteSummary.objects.filter(version__exact=version).filter( # positive__exact=None).filter( # platform__exact=None)[:settings.TRENDS_COUNT] # sites = SiteSummary.objects.all() # Get the desktop site's absolute URL for use in the settings tab desktop_site = Site.objects.get(id=settings.DESKTOP_SITE_ID) try: c = Client() search_opts = dict(product=prod.short, version=version) c.query('', meta=('type', 'locale', 'manufacturer', 'device', 'day_sentiment'), **search_opts) metas = c.meta daily = c.meta.get('day_sentiment', {}) chart_data = dict(series=[ dict(name=_('Praise'), data=daily['praise']), dict(name=_('Issues'), data=daily['issue']), dict(name=_('Ideas'), data=daily['idea']), ]) total = c.total_found except SearchError: metas = {} total = latest_opinions.count() chart_data = None data = { 'opinions': latest_opinions.all()[:settings.MESSAGES_COUNT], 'opinion_count': total, 'product': prod, 'products': PROD_CHOICES, 'sent': get_sentiment(metas.get('type', [])), 'locales': metas.get('locale'), 'platforms': metas.get('platform'), 'devices': metas.get('device'), 'manufacturers': metas.get('manufacturer'), # 'sites': sites, 'version': version, 'versions': VERSION_CHOICES[prod], 'chart_data_json': json.dumps(chart_data), 'defaults': get_defaults(search_form), 'search_form': search_form, 'desktop_url': 'http://' + desktop_site.domain, } if not request.mobile_site: template = 'dashboard/beta.html' else: template = 'dashboard/mobile/beta.html' return jingo.render(request, template, data)
def dashboard(request): prod = request.default_prod version = getattr(prod, "default_version", None) or Version(LATEST_BETAS[prod]).simplified search_form = ReporterSearchForm() # Frequent terms term_params = {"product": prod.id, "version": version} # # opinions queryset for demographics latest_opinions = Opinion.objects.browse(**term_params) # # Sites clusters # sites = SiteSummary.objects.filter(version__exact=version).filter( # positive__exact=None).filter( # platform__exact=None)[:settings.TRENDS_COUNT] # sites = SiteSummary.objects.all() # Get the desktop site's absolute URL for use in the settings tab desktop_site = Site.objects.get(id=settings.DESKTOP_SITE_ID) try: c = Client() search_opts = dict(product=prod.short, version=version) c.query("", meta=("type", "locale", "manufacturer", "device", "day_sentiment"), **search_opts) metas = c.meta daily = c.meta.get("day_sentiment", {}) chart_data = dict( series=[ dict(name=_("Praise"), data=daily["praise"]), dict(name=_("Issues"), data=daily["issue"]), dict(name=_("Ideas"), data=daily["idea"]), ] ) total = c.total_found except SearchError: metas = {} total = latest_opinions.count() chart_data = None data = { "opinions": latest_opinions.all()[: settings.MESSAGES_COUNT], "opinion_count": total, "product": prod, "products": PROD_CHOICES, "sent": get_sentiment(metas.get("type", [])), "locales": metas.get("locale"), "platforms": metas.get("platform"), "devices": metas.get("device"), "manufacturers": metas.get("manufacturer"), # 'sites': sites, "version": version, "versions": VERSION_CHOICES[prod], "chart_data_json": json.dumps(chart_data), "defaults": get_defaults(search_form), "search_form": search_form, "desktop_url": "http://" + desktop_site.domain, } if not request.mobile_site: template = "dashboard/beta.html" else: template = "dashboard/mobile/beta.html" return jingo.render(request, template, data)