コード例 #1
0
ファイル: util.py プロジェクト: peterbe/pootle
def calculate_stats(units):
    """calculate translation statistics for given unit queryset"""
    total = sum_column(units,
                       ['source_wordcount'], count=True)
    untranslated = sum_column(units.filter(state=UNTRANSLATED),
                              ['source_wordcount'], count=True)
    fuzzy = sum_column(units.filter(state=FUZZY),
                       ['source_wordcount'], count=True)
    translated = sum_column(units.filter(state=TRANSLATED),
                            ['source_wordcount', 'target_wordcount'], count=True)
    result = {'errors': 0}
    result['total'] = total['count']
    if result['total'] == 0:
        result['totalsourcewords'] = 0
    else:
        result['totalsourcewords'] = total['source_wordcount']
    result['fuzzy'] = fuzzy['count']
    if result['fuzzy'] == 0:
        result['fuzzysourcewords'] = 0
    else:
        result['fuzzysourcewords'] = fuzzy['source_wordcount']
    result['untranslated'] = untranslated['count']
    if result['untranslated'] == 0:
        result['untranslatedsourcewords'] = 0
    else:
        result['untranslatedsourcewords'] = untranslated['source_wordcount']
    result['translated'] = translated['count']
    if result['translated'] == 0:
        result['translatedsourcewords'] = 0
        result['translatedtargetwords'] = 0
    else:
        result['translatedsourcewords'] = translated['source_wordcount']
        result['translatedtargetwords'] = translated['target_wordcount']
    return result
コード例 #2
0
ファイル: util.py プロジェクト: julen/pootle
def calculate_stats(units):
    """calculate translation statistics for given unit queryset"""
    total = sum_column(units,
                       ['source_wordcount'], count=True)
    untranslated = sum_column(units.filter(state=UNTRANSLATED),
                              ['source_wordcount'], count=True)
    fuzzy = sum_column(units.filter(state=FUZZY),
                       ['source_wordcount'], count=True)
    translated = sum_column(units.filter(state=TRANSLATED),
                            ['source_wordcount', 'target_wordcount'], count=True)
    result = {}
    result['total'] = total['count']
    if result['total'] == 0:
        result['totalsourcewords'] = 0
    else:
        result['totalsourcewords'] = total['source_wordcount']
    result['fuzzy'] = fuzzy['count']
    if result['fuzzy'] == 0:
        result['fuzzysourcewords'] = 0
    else:
        result['fuzzysourcewords'] = fuzzy['source_wordcount']
    result['untranslated'] = untranslated['count']
    if result['untranslated'] == 0:
        result['untranslatedsourcewords'] = 0
    else:
        result['untranslatedsourcewords'] = untranslated['source_wordcount']
    result['translated'] = translated['count']
    if result['translated'] == 0:
        result['translatedsourcewords'] = 0
        result['translatedtargetwords'] = 0
    else:
        result['translatedsourcewords'] = translated['source_wordcount']
        result['translatedtargetwords'] = translated['target_wordcount']
    return result
コード例 #3
0
ファイル: dashboard.py プロジェクト: alex-silva/pootle
def server_stats_more(request):
    result = cache.get("server_stats_more")
    if result is None:
        result = {}
        unit_query = Unit.objects.filter(state__gte=TRANSLATED).exclude(
            store__translation_project__project__code__in=('pootle', 'tutorial', 'terminology')).exclude(
            store__translation_project__language__code='templates').order_by()
        result['store_count'] = unit_query.values('store').distinct().count()
        result['project_count'] = unit_query.values('store__translation_project__project').distinct().count()
        result['language_count'] = unit_query.values('store__translation_project__language').distinct().count()
        sums = sum_column(unit_query, ('source_wordcount',), count=True)
        result['string_count'] = sums['count']
        result['word_count'] = sums['source_wordcount'] or 0
        result['user_active_count'] = (PootleProfile.objects.exclude(submission=None) |\
                                       PootleProfile.objects.exclude(suggestion=None) |\
                                       PootleProfile.objects.exclude(suggester=None)).order_by().count()
        cache.set("server_stats_more", result, 86400)
    _format_numbers(result)
    stat_strings = {
        'store_count': _('Files'),
        'project_count': _('Active projects'),
        'language_count': _('Active languages'),
        'string_count': _('Translated strings'),
        'word_count': _('Translated words'),
        'user_active_count': _('Active users')
    }
    response = []
    for k in result.keys():
        response.append((stat_strings[k], result[k]))
    response = json.dumps(response)
    return HttpResponse(response, mimetype="application/json")
コード例 #4
0
def server_stats_more(request):
    result = cache.get("server_stats_more")
    if result is None:
        result = {}
        unit_query = Unit.objects.filter(state__gte=TRANSLATED).exclude(
            store__translation_project__project__code__in=('pootle', 'tutorial', 'terminology')).exclude(
            store__translation_project__language__code='templates').order_by()
        result['store_count'] = unit_query.values('store').distinct().count()
        result['project_count'] = unit_query.values('store__translation_project__project').distinct().count()
        result['language_count'] = unit_query.values('store__translation_project__language').distinct().count()
        sums = sum_column(unit_query, ('source_wordcount',), count=True)
        result['string_count'] = sums['count']
        result['word_count'] = sums['source_wordcount'] or 0
        result['user_active_count'] = (PootleProfile.objects.exclude(submission=None) |\
                                       PootleProfile.objects.exclude(suggestion=None) |\
                                       PootleProfile.objects.exclude(suggester=None)).order_by().count()
        cache.set("server_stats_more", result, 86400)
    _format_numbers(result)
    stat_strings = {
        'store_count': _('Files'),
        'project_count': _('Active projects'),
        'language_count': _('Active languages'),
        'string_count': _('Translated strings'),
        'word_count': _('Translated words'),
        'user_active_count': _('Active users')
    }
    response = []
    for k in result.keys():
        response.append((stat_strings[k], result[k]))
    response = json.dumps(response)
    return HttpResponse(response, mimetype="application/json")
コード例 #5
0
ファイル: util.py プロジェクト: JeroenKnoops/pootle
def calculate_stats(units):
    """Calculate translation statistics for a given `units` queryset."""
    total = sum_column(units, ["source_wordcount"], count=True)
    untranslated = sum_column(units.filter(state=UNTRANSLATED), ["source_wordcount"], count=True)
    fuzzy = sum_column(units.filter(state=FUZZY), ["source_wordcount"], count=True)
    translated = sum_column(units.filter(state=TRANSLATED), ["source_wordcount", "target_wordcount"], count=True)

    result = {"errors": 0}

    result["total"] = total["count"]
    if result["total"] == 0:
        result["totalsourcewords"] = 0
    else:
        result["totalsourcewords"] = total["source_wordcount"]

    result["fuzzy"] = fuzzy["count"]
    if result["fuzzy"] == 0:
        result["fuzzysourcewords"] = 0
    else:
        result["fuzzysourcewords"] = fuzzy["source_wordcount"]

    result["untranslated"] = untranslated["count"]
    if result["untranslated"] == 0:
        result["untranslatedsourcewords"] = 0
    else:
        result["untranslatedsourcewords"] = untranslated["source_wordcount"]

    result["translated"] = translated["count"]
    if result["translated"] == 0:
        result["translatedsourcewords"] = 0
        result["translatedtargetwords"] = 0
    else:
        result["translatedsourcewords"] = translated["source_wordcount"]
        result["translatedtargetwords"] = translated["target_wordcount"]

    return result
コード例 #6
0
ファイル: dashboard.py プロジェクト: mellterm/pootle
def server_stats():
    result = cache.get("server_stats")
    if result is None:
        result = {}
        unit_query = Unit.objects.filter(state__gte=TRANSLATED).exclude(
            store__translation_project__project__code__in=('pootle', 'tutorial', 'terminology')).exclude(
            store__translation_project__language__code='templates').order_by()
        result['store_count'] = unit_query.values('store').distinct().count()
        result['project_count'] = unit_query.values('store__translation_project__project').distinct().count()
        result['language_count'] = unit_query.values('store__translation_project__language').distinct().count()
        sums = sum_column(unit_query, ('target_wordcount',), count=True)
        result['string_count'] = sums['count']
        result['word_count'] = sums['target_wordcount']
        result['submission_count'] = Submission.objects.count()
        result['pending_count'] = Suggestion.objects.count()
        result['user_count'] = User.objects.count()
        cache.set("server_stats", result, settings.CACHE_MIDDLEWARE_SECONDS * 10)
    return result
コード例 #7
0
ファイル: dashboard.py プロジェクト: ENuge/pootle
def server_stats_more(request):
    result = cache.get("server_stats_more")
    if result is None:
        result = {}
        unit_query = (
            Unit.objects.filter(state__gte=TRANSLATED)
            .exclude(store__translation_project__project__code__in=("pootle", "tutorial", "terminology"))
            .exclude(store__translation_project__language__code="templates")
            .order_by()
        )
        result["store_count"] = unit_query.values("store").distinct().count()
        result["project_count"] = unit_query.values("store__translation_project__project").distinct().count()
        result["language_count"] = unit_query.values("store__translation_project__language").distinct().count()
        sums = sum_column(unit_query, ("source_wordcount",), count=True)
        result["string_count"] = sums["count"]
        result["word_count"] = sums["source_wordcount"] or 0
        result["user_active_count"] = (
            (
                PootleProfile.objects.exclude(submission=None)
                | PootleProfile.objects.exclude(suggestion=None)
                | PootleProfile.objects.exclude(suggester=None)
            )
            .order_by()
            .count()
        )
        cache.set("server_stats_more", result, 86400)
    _format_numbers(result)
    stat_strings = {
        "store_count": _("Files"),
        "project_count": _("Active projects"),
        "language_count": _("Active languages"),
        "string_count": _("Translated strings"),
        "word_count": _("Translated words"),
        "user_active_count": _("Active users"),
    }
    response = []
    for k in result.keys():
        response.append((stat_strings[k], result[k]))
    response = simplejson.dumps(response)
    return HttpResponse(response, mimetype="application/json")
コード例 #8
0
ファイル: util.py プロジェクト: Jobava/pootle
def calc_translated_wordcount(units):
    translated = sum_column(units.filter(state=TRANSLATED),
                            ['source_wordcount'],
                            count=False)

    return translated['source_wordcount'] or 0
コード例 #9
0
ファイル: util.py プロジェクト: Jobava/pootle
def calc_fuzzy_wordcount(units):
    fuzzy = sum_column(units.filter(state=FUZZY),
                       ['source_wordcount'], count=False)

    return fuzzy['source_wordcount'] or 0
コード例 #10
0
ファイル: util.py プロジェクト: Jobava/pootle
def calc_total_wordcount(units):
    total = sum_column(units,
                       ['source_wordcount'], count=False)

    return total['source_wordcount'] or 0
コード例 #11
0
def calc_translated_wordcount(units):
    translated = sum_column(units.filter(state=TRANSLATED),
                            ['source_wordcount'],
                            count=False)

    return translated['source_wordcount'] or 0
コード例 #12
0
def calc_fuzzy_wordcount(units):
    fuzzy = sum_column(units.filter(state=FUZZY), ['source_wordcount'],
                       count=False)

    return fuzzy['source_wordcount'] or 0
コード例 #13
0
def calc_total_wordcount(units):
    total = sum_column(units, ['source_wordcount'], count=False)

    return total['source_wordcount'] or 0
コード例 #14
0
ファイル: util.py プロジェクト: gitter-badger/pootle
def calc_untranslated_wordcount(units):
    untranslated = sum_column(units.filter(state=UNTRANSLATED), ["source_wordcount"], count=False)

    return untranslated["source_wordcount"] or 0