def gentopstats_project(project): """Generate the top contributor stats to be displayed for an entire Pootle installation, a language or a project. The output of this function looks something like this: {'data': [], 'headerlabel': u'Suggestions'}, {'data': [], 'headerlabel': u'Reviews'}, {'data': [], 'headerlabel': u'Submissions'}] """ key = "%s:gentopstats" % project.pootle_path result = cache.get(key) if result is None: top_sugg = group_by_sort( User.objects.filter( pootleprofile__suggester__translation_project__project=project ), 'pootleprofile__suggester', ['username'])[:settings.TOPSTAT_SIZE] top_review = group_by_sort( User.objects.filter( pootleprofile__reviewer__translation_project__project=project), 'pootleprofile__reviewer', ['username'])[:settings.TOPSTAT_SIZE] top_sub = group_by_sort( User.objects.filter( pootleprofile__submission__translation_project__project=project ), 'pootleprofile__submission', ['username'])[:settings.TOPSTAT_SIZE] result = map(None, top_sugg, top_review, top_sub) cache.set(key, result, settings.CACHE_MIDDLEWARE_SECONDS * 2) return result
def gentopstats_project(project): """Generate the top contributor stats to be displayed for an entire Pootle installation, a language or a project. The output of this function looks something like this: {'data': [], 'headerlabel': u'Suggestions'}, {'data': [], 'headerlabel': u'Reviews'}, {'data': [], 'headerlabel': u'Submissions'}] """ key = iri_to_uri("%s:gentopstats" % project.pootle_path) result = cache.get(key) if result is None: top_sugg = group_by_sort( User.objects.filter( pootleprofile__suggester__translation_project__project= project), 'pootleprofile__suggester', ['username'])[:settings.TOPSTAT_SIZE] top_review = group_by_sort( User.objects.filter( pootleprofile__reviewer__translation_project__project= project), 'pootleprofile__reviewer', ['username'])[:settings.TOPSTAT_SIZE] top_sub = group_by_sort( User.objects.filter( pootleprofile__submission__translation_project__project= project), 'pootleprofile__submission', ['username'])[:settings.TOPSTAT_SIZE] result = map(None, top_sugg, top_review, top_sub) cache.set(key, result, settings.CACHE_MIDDLEWARE_SECONDS * 2) return result
def gentopstats_project(project): """Generate the top contributor stats to be displayed for an entire Pootle installation, a language or a project. The output of this function looks something like this: {'data': [], 'headerlabel': u'Suggestions'}, {'data': [], 'headerlabel': u'Reviews'}, {'data': [], 'headerlabel': u'Submissions'}] """ key = iri_to_uri("%s:gentopstats" % project.pootle_path) result = cache.get(key) if result is None: top_sugg = group_by_sort( User.objects.filter( suggestions__translation_project__project=project), "suggestions", ["username"])[:settings.TOPSTAT_SIZE] top_review = group_by_sort( User.objects.filter( reviewer__translation_project__project=project), "reviewer", ["username"])[:settings.TOPSTAT_SIZE] top_sub = group_by_sort( User.objects.filter( submission__translation_project__project=project), "submission", ["username"])[:settings.TOPSTAT_SIZE] result = map(None, top_sugg, top_review, top_sub) cache.set(key, result, settings.POOTLE_TOP_STATS_CACHE_TIMEOUT) return result
def gentopstats_root(): """ Generate the top contributor stats to be displayed for an entire Pootle installation. """ top_sugg = group_by_sort(User.objects.filter(pootleprofile__suggester__isnull=False), 'pootleprofile__suggester', ['username'])[:settings.TOPSTAT_SIZE] top_review = group_by_sort(User.objects.filter(pootleprofile__reviewer__isnull=False), 'pootleprofile__reviewer', ['username'])[:settings.TOPSTAT_SIZE] top_sub = group_by_sort(User.objects.filter(pootleprofile__submission__isnull=False), 'pootleprofile__submission', ['username'])[:settings.TOPSTAT_SIZE] return [ {'data': top_sugg, 'headerlabel': _('Suggestions')}, {'data': top_review, 'headerlabel': _('Reviews')}, {'data': top_sub, 'headerlabel': _('Submissions')} ]
def gentopstats_root(): """ Generate the top contributor stats to be displayed for an entire Pootle installation. """ key = "/:gentopstats" result = cache.get(key) if result is None: top_sugg = group_by_sort(User.objects.exclude(pootleprofile__suggester=None), 'pootleprofile__suggester', ['username'])[:settings.TOPSTAT_SIZE] top_review = group_by_sort(User.objects.exclude(pootleprofile__reviewer=None), 'pootleprofile__reviewer', ['username'])[:settings.TOPSTAT_SIZE] top_sub = group_by_sort(User.objects.exclude(pootleprofile__submission=None), 'pootleprofile__submission', ['username'])[:settings.TOPSTAT_SIZE] result = map(None, top_sugg, top_review, top_sub) cache.set(key, result, settings.POOTLE_TOP_STATS_CACHE_TIMEOUT) return result
def gentopstats_translation_project(translation_project): """Generate the top contributor stats to be displayed for an entire Pootle installation, a language or a project. The output of this function looks something like this: {'data': [], 'headerlabel': u'Suggestions'}, {'data': [], 'headerlabel': u'Reviews'}, {'data': [], 'headerlabel': u'Submissions'}] """ top_sugg = group_by_sort(User.objects.filter(pootleprofile__suggester__translation_project=translation_project), 'pootleprofile__suggester', ['username'])[:settings.TOPSTAT_SIZE] top_review = group_by_sort(User.objects.filter(pootleprofile__reviewer__translation_project=translation_project), 'pootleprofile__reviewer', ['username'])[:settings.TOPSTAT_SIZE] top_sub = group_by_sort(User.objects.filter(pootleprofile__submission__translation_project=translation_project), 'pootleprofile__submission', ['username'])[:settings.TOPSTAT_SIZE] return [ {'data': top_sugg, 'headerlabel': _('Suggestions')}, {'data': top_review, 'headerlabel': _('Reviews')}, {'data': top_sub, 'headerlabel': _('Submissions')} ]
def gentopstats_language(language): """Generate the top contributor stats to be displayed for an entire Pootle installation, a language or a project. The output of this function looks something like this: {'data': [], 'headerlabel': u'Suggestions'}, {'data': [], 'headerlabel': u'Reviews'}, {'data': [], 'headerlabel': u'Submissions'}] """ key = iri_to_uri("%s:gentopstats" % language.pootle_path) result = cache.get(key) if result is None: top_sugg = group_by_sort(User.objects.filter(suggestions__translation_project__language=language), 'suggestions', ['username'])[:settings.TOPSTAT_SIZE] top_review = group_by_sort(User.objects.filter(reviewer__translation_project__language=language), 'reviewer', ['username'])[:settings.TOPSTAT_SIZE] top_sub = group_by_sort(User.objects.filter(submission__translation_project__language=language), 'submission', ['username'])[:settings.TOPSTAT_SIZE] result = map(None, top_sugg, top_review, top_sub) cache.set(key, result, settings.POOTLE_TOP_STATS_CACHE_TIMEOUT) return result