def page_context(self, context): context["title"] = _("Anuvad statistics") stats = GlobalStats() totals = Profile.objects.aggregate(Sum("translated"), Sum("suggested"), Count("id")) context["total_translations"] = totals["translated__sum"] context["total_suggestions"] = totals["suggested__sum"] context["total_users"] = totals["id__count"] context["source_strings"] = stats.source_strings context["source_words"] = stats.source_words context["total_units"] = stats.all context["total_words"] = stats.all_words context["total_languages"] = stats.languages context["total_checks"] = Check.objects.count() context["ignored_checks"] = Check.objects.filter(ignore=True).count() top_translations = Profile.objects.order_by("-translated")[:10] top_suggestions = Profile.objects.order_by("-suggested")[:10] top_uploads = Profile.objects.order_by("-uploaded")[:10] context["top_translations"] = top_translations.select_related("user") context["top_suggestions"] = top_suggestions.select_related("user") context["top_uploads"] = top_uploads.select_related("user")
def collect_global(): stats = GlobalStats() data = { "projects": Project.objects.count(), "components": Component.objects.count(), "translations": Translation.objects.count(), "memory": Memory.objects.count(), "screenshots": Screenshot.objects.count(), "changes": Change.objects.filter(timestamp__date=date.today() - timedelta(days=1)).count(), "users": User.objects.count(), } for key in SOURCE_KEYS: data[key] = getattr(stats, key) Metric.objects.bulk_create([ Metric(scope=Metric.SCOPE_GLOBAL, relation=0, name=name, value=value) for name, value in data.items() ])
def refresh(self): stats = GlobalStats() data = { 'secret': self.secret, 'site_url': get_site_url(), 'site_title': settings.SITE_TITLE, 'users': User.objects.count(), 'projects': Project.objects.count(), 'components': Component.objects.count(), 'languages': stats.languages, 'source_strings': stats.source_strings, } ssh_key = get_key_data() if ssh_key: data['ssh_key'] = ssh_key['key'] headers = {'User-Agent': USER_AGENT} response = requests.request('post', settings.SUPPORT_API_URL, headers=headers, data=data) response.raise_for_status() payload = response.json() self.name = payload['name'] self.expiry = dateutil.parser.parse(payload['expiry']) self.in_limits = payload['in_limits'] if payload['backup_repository']: BackupService.objects.get_or_create( repository=payload['backup_repository'], defaults={"enabled": False})
def get(self, request, format=None): """Return a list of all users.""" stats = GlobalStats() return Response({ "units": stats.all, "units_translated": stats.translated, "users": User.objects.count(), "changes": Change.objects.count(), "projects": Project.objects.count(), "components": Component.objects.count(), "translations": Translation.objects.count(), "languages": stats.languages, "checks": Check.objects.count(), "configuration_errors": ConfigurationError.objects.filter(ignored=False).count(), "suggestions": Suggestion.objects.count(), "celery_queues": get_queue_stats(), "name": settings.SITE_TITLE, })
def get(self, request, format=None): """ Return a list of all users. """ stats = GlobalStats() queues = get_queue_stats() return Response({ 'units': stats.all, 'units_translated': stats.translated, 'users': User.objects.count(), 'changes': Change.objects.count(), 'projects': Project.objects.count(), 'components': Component.objects.count(), 'translations': Translation.objects.count(), 'languages': stats.languages, 'checks': Check.objects.count(), 'suggestions': Suggestion.objects.count(), 'index_updates': queues.get('search', 0), 'celery_queue': queues.get('celery', 0), 'celery_memory_queue': queues.get('memory', 0), 'celery_notification_queue': queues.get('notification', 0), 'celery_queues': queues, 'name': settings.SITE_TITLE, })
def page_context(self, context): context['title'] = _('Weblate statistics') stats = GlobalStats() totals = Profile.objects.aggregate(Sum('translated'), Sum('suggested'), Count('id')) context['total_translations'] = totals['translated__sum'] context['total_suggestions'] = totals['suggested__sum'] context['total_users'] = totals['id__count'] context['total_strings'] = stats.source_strings context['total_units'] = stats.all context['total_words'] = stats.source_words context['total_languages'] = stats.languages context['total_checks'] = Check.objects.count() context['ignored_checks'] = Check.objects.filter(ignore=True).count() top_translations = Profile.objects.order_by('-translated')[:10] top_suggestions = Profile.objects.order_by('-suggested')[:10] top_uploads = Profile.objects.order_by('-uploaded')[:10] context['top_translations'] = top_translations.select_related('user') context['top_suggestions'] = top_suggestions.select_related('user') context['top_uploads'] = top_uploads.select_related('user')
def page_context(self, context): context["title"] = _("Weblate statistics") stats = GlobalStats() totals = Profile.objects.aggregate( Sum("translated"), Sum("suggested"), Count("id") ) context["total_translations"] = totals["translated__sum"] context["total_suggestions"] = totals["suggested__sum"] context["total_users"] = totals["id__count"] context["stats"] = stats context["total_checks"] = Check.objects.count() context["total_projects"] = Project.objects.count() context["total_components"] = Component.objects.count() context["dismissed_checks"] = Check.objects.filter(dismissed=True).count() top_translations = Profile.objects.order_by("-translated")[:10] top_suggestions = Profile.objects.order_by("-suggested")[:10] top_uploads = Profile.objects.order_by("-uploaded")[:10] top_comments = Profile.objects.order_by("-commented")[:10] context["top_translations"] = top_translations.select_related("user") context["top_suggestions"] = top_suggestions.select_related("user") context["top_uploads"] = top_uploads.select_related("user") context["top_comments"] = top_comments.select_related("user")
def collect_global(self): stats = GlobalStats() data = { "projects": Project.objects.count(), "components": Component.objects.count(), "translations": Translation.objects.count(), "memory": Memory.objects.count(), "screenshots": Screenshot.objects.count(), "changes": Change.objects.filter(timestamp__date=datetime.date.today() - datetime.timedelta(days=1)).count(), "contributors": Change.objects.filter( timestamp__date__gte=datetime.date.today() - datetime.timedelta(days=30)).values("user").distinct().count(), "users": User.objects.count(), } self.create_metrics(data, stats, SOURCE_KEYS, Metric.SCOPE_GLOBAL, 0) return data
def refresh(self): stats = GlobalStats() data = { "secret": self.secret, "site_url": get_site_url(), "site_title": settings.SITE_TITLE, "users": User.objects.count(), "projects": Project.objects.count(), "components": Component.objects.count(), "languages": stats.languages, "source_strings": stats.source_strings, } ssh_key = get_key_data() if not ssh_key: generate_ssh_key(None) ssh_key = get_key_data() if ssh_key: data["ssh_key"] = ssh_key["key"] response = request("post", settings.SUPPORT_API_URL, data=data) response.raise_for_status() payload = response.json() self.name = payload["name"] self.expiry = dateutil.parser.parse(payload["expiry"]) self.in_limits = payload["in_limits"] if payload["backup_repository"]: BackupService.objects.get_or_create( repository=payload["backup_repository"], defaults={"enabled": False})
def show_languages(request): if request.user.has_perm('language.edit'): languages = Language.objects.all() else: languages = Language.objects.have_translation() return render( request, 'languages.html', { 'allow_index': True, 'languages': prefetch_stats(sort_objects(languages)), 'title': _('Languages'), 'global_stats': GlobalStats(), })
def show_languages(request): return render( request, 'languages.html', { 'allow_index': True, 'languages': prefetch_stats(sort_objects(Language.objects.have_translation())), 'title': _('Languages'), 'global_stats': GlobalStats(), })
def collect_global(): stats = GlobalStats() data = { "projects": Project.objects.count(), "components": Component.objects.count(), "translations": Translation.objects.count(), "memory": Memory.objects.count(), "screenshots": Screenshot.objects.count(), "changes": Change.objects.filter( timestamp__date=date.today() - timedelta(days=1) ).count(), "users": User.objects.count(), } create_metrics(data, stats, SOURCE_KEYS, Metric.SCOPE_GLOBAL, 0)
def show_languages(request): if request.user.has_perm("language.edit"): languages = Language.objects.all() else: languages = Language.objects.have_translation() return render( request, "languages.html", { "allow_index": True, "languages": prefetch_stats(sort_objects(languages)), "title": _("Languages"), "global_stats": GlobalStats(), }, )
def refresh(self): stats = GlobalStats() data = { "secret": self.secret, "site_url": get_site_url(), "site_title": settings.SITE_TITLE, "users": User.objects.count(), "projects": Project.objects.count(), "components": Component.objects.count(), "languages": stats.languages, "source_strings": stats.source_strings, "strings": stats.all, "words": stats.all_words, } if self.discoverable: data["discoverable"] = 1 data["public_projects"] = json.dumps( [ { "name": project.name, "url": project.get_absolute_url(), "web": project.web, } for project in Project.objects.filter( access_control=Project.ACCESS_PUBLIC ).iterator() ] ) ssh_key = get_key_data() if not ssh_key: generate_ssh_key(None) ssh_key = get_key_data() if ssh_key: data["ssh_key"] = ssh_key["key"] response = request("post", settings.SUPPORT_API_URL, data=data) response.raise_for_status() payload = response.json() self.name = payload["name"] self.expiry = dateutil.parser.parse(payload["expiry"]) self.in_limits = payload["in_limits"] if payload["backup_repository"]: BackupService.objects.get_or_create( repository=payload["backup_repository"], defaults={"enabled": False} )
def get(self, request, format=None): """ Return a list of all users. """ stats = GlobalStats() return Response({ 'units': stats.all, 'units_translated': stats.translated, 'users': User.objects.count(), 'changes': Change.objects.count(), 'projects': Project.objects.count(), 'components': Component.objects.count(), 'translations': Translation.objects.count(), 'languages': stats.languages, 'checks': Check.objects.count(), 'suggestions': Suggestion.objects.count(), 'index_updates': get_queue_length(), 'name': settings.SITE_TITLE, })
def refresh(self): stats = GlobalStats() data = { 'secret': self.secret, 'site_url': get_site_url(), 'users': User.objects.count(), 'projects': Project.objects.count(), 'components': Component.objects.count(), 'languages': stats.languages, } headers = { 'User-Agent': USER_AGENT, } response = requests.request('post', settings.SUPPORT_API_URL, headers=headers, data=data) response.raise_for_status() payload = response.json() self.name = payload['name'] self.expiry = dateutil.parser.parse(payload['expiry'])
def page_context(self, context): context["title"] = _("Weblate statistics") stats = GlobalStats() totals = Profile.objects.aggregate(Sum("translated")) metrics = Metric.objects.get_current(None, Metric.SCOPE_GLOBAL, 0) context["total_translations"] = totals["translated__sum"] context["stats"] = stats context["metrics"] = metrics context["top_users"] = top_users = ( Profile.objects.order_by("-translated").filter( user__is_bot=False, user__is_active=True)[:10].select_related("user")) translated_max = max(user.translated for user in top_users) for user in top_users: if translated_max: user.translated_width = 100 * user.translated // translated_max else: user.translated_width = 0
def page_context(self, context): context["title"] = _("Weblate statistics") stats = GlobalStats() totals = Profile.objects.aggregate(Sum("translated"), Sum("suggested"), Count("id")) metrics = Metric.objects.get_current(Metric.SCOPE_GLOBAL, 0) context["total_translations"] = totals["translated__sum"] context["total_suggestions"] = totals["suggested__sum"] context["total_users"] = totals["id__count"] context["stats"] = stats context["metrics"] = metrics top_translations = Profile.objects.order_by("-translated")[:10] top_suggestions = Profile.objects.order_by("-suggested")[:10] top_uploads = Profile.objects.order_by("-uploaded")[:10] top_comments = Profile.objects.order_by("-commented")[:10] context["top_translations"] = top_translations.select_related("user") context["top_suggestions"] = top_suggestions.select_related("user") context["top_uploads"] = top_uploads.select_related("user") context["top_comments"] = top_comments.select_related("user")
def handle(self, *args, **options): GlobalStats().ensure_basic()
def handle(self, *args, **options): GlobalStats().ensure_basic() if not Metric.objects.filter(date=date.today(), scope=Metric.SCOPE_GLOBAL).exists(): collect_metrics()
def __init__(self, obj=None, color=None, lang=None): super().__init__(GlobalStats())
def __init__(self, obj=None, color=None, lang=None): super(SiteOpenGraphWidget, self).__init__(GlobalStats())