Пример #1
0
    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")
Пример #2
0
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()
    ])
Пример #3
0
 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})
Пример #4
0
 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,
     })
Пример #5
0
    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,
        })
Пример #6
0
    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')
Пример #7
0
    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")
Пример #8
0
 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
Пример #9
0
 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})
Пример #10
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(),
        })
Пример #11
0
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(),
        })
Пример #12
0
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)
Пример #13
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(),
        },
    )
Пример #14
0
 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}
         )
Пример #15
0
    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,
        })
Пример #16
0
 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'])
Пример #17
0
    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
Пример #18
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")
Пример #19
0
 def handle(self, *args, **options):
     GlobalStats().ensure_basic()
Пример #20
0
 def handle(self, *args, **options):
     GlobalStats().ensure_basic()
     if not Metric.objects.filter(date=date.today(),
                                  scope=Metric.SCOPE_GLOBAL).exists():
         collect_metrics()
Пример #21
0
 def __init__(self, obj=None, color=None, lang=None):
     super().__init__(GlobalStats())
Пример #22
0
 def __init__(self, obj=None, color=None, lang=None):
     super(SiteOpenGraphWidget, self).__init__(GlobalStats())