Exemplo n.º 1
0
def fill_in_approved(apps, schema_editor):
    Translation = apps.get_model('trans', 'Translation')

    for translation in Translation.objects.all():
        stats = translation.unit_set.aggregate(
            Sum('num_words'),
            approved__sum=conditional_sum(1, state__gte=STATE_APPROVED),
            approved_words__sum=conditional_sum('num_words',
                                                state__gte=STATE_APPROVED),
        )
        if stats['num_words__sum'] is not None:
            translation.approved = int(stats['approved__sum'])
            translation.approved_words = int(stats['approved_words__sum'])
            translation.save(update_fields=('approved', 'approved_words'))
Exemplo n.º 2
0
def fill_in_approved(apps, schema_editor):
    Translation = apps.get_model('trans', 'Translation')

    for translation in Translation.objects.all():
        stats = translation.unit_set.aggregate(
            Sum('num_words'),
            approved__sum=conditional_sum(1, state__gte=STATE_APPROVED),
            approved_words__sum=conditional_sum(
                'num_words', state__gte=STATE_APPROVED
            ),
        )
        if stats['num_words__sum'] is not None:
            translation.approved = int(stats['approved__sum'])
            translation.approved_words = int(stats['approved_words__sum'])
            translation.save(update_fields=('approved', 'approved_words'))
Exemplo n.º 3
0
def fill_in_have_comment(apps, schema_editor):
    Translation = apps.get_model('trans', 'Translation')

    for translation in Translation.objects.all():
        stats = translation.unit_set.aggregate(
            Sum('num_words'),
            has_comment__sum=conditional_sum(1, has_comment=True),
        )
        if stats['num_words__sum'] is not None:
            translation.have_comment = int(stats['has_comment__sum'])
            translation.save()
Exemplo n.º 4
0
    def prefetch_basic(self):
        stats = self._object.unit_set.aggregate(
            all=Count("id"),
            all_words=Sum("num_words"),
            all_chars=Sum(Length("source")),
            fuzzy=conditional_sum(1, state=STATE_FUZZY),
            fuzzy_words=conditional_sum("num_words", state=STATE_FUZZY),
            fuzzy_chars=conditional_sum(Length("source"), state=STATE_FUZZY),
            translated=conditional_sum(1, state__gte=STATE_TRANSLATED),
            translated_words=conditional_sum("num_words",
                                             state__gte=STATE_TRANSLATED),
            translated_chars=conditional_sum(Length("source"),
                                             state__gte=STATE_TRANSLATED),
            todo=conditional_sum(1, state__lt=STATE_TRANSLATED),
            todo_words=conditional_sum("num_words",
                                       state__lt=STATE_TRANSLATED),
            todo_chars=conditional_sum(Length("source"),
                                       state__lt=STATE_TRANSLATED),
            nottranslated=conditional_sum(1, state=STATE_EMPTY),
            nottranslated_words=conditional_sum("num_words",
                                                state=STATE_EMPTY),
            nottranslated_chars=conditional_sum(Length("source"),
                                                state=STATE_EMPTY),
            approved=conditional_sum(1, state__gte=STATE_APPROVED),
            approved_words=conditional_sum("num_words",
                                           state__gte=STATE_APPROVED),
            approved_chars=conditional_sum(Length("source"),
                                           state__gte=STATE_APPROVED),
            allchecks=conditional_sum(1, has_failing_check=True),
            allchecks_words=conditional_sum("num_words",
                                            has_failing_check=True),
            allchecks_chars=conditional_sum(Length("source"),
                                            has_failing_check=True),
            suggestions=conditional_sum(1, has_suggestion=True),
            suggestions_words=conditional_sum("num_words",
                                              has_suggestion=True),
            suggestions_chars=conditional_sum(Length("source"),
                                              has_suggestion=True),
            comments=conditional_sum(1, has_comment=True),
            comments_words=conditional_sum("num_words", has_comment=True),
            comments_chars=conditional_sum(Length("source"), has_comment=True),
            approved_suggestions=conditional_sum(1,
                                                 state__gte=STATE_APPROVED,
                                                 has_suggestion=True),
            approved_suggestions_words=conditional_sum(
                "num_words", state__gte=STATE_APPROVED, has_suggestion=True),
            approved_suggestions_chars=conditional_sum(
                Length("source"),
                state__gte=STATE_APPROVED,
                has_suggestion=True),
        )
        for key, value in stats.items():
            self.store(key, value)

        # Calculate some values
        self.store("languages", 1)

        # Calculate percents
        self.calculate_basic_percents()

        # Last change timestamp
        self.fetch_last_change()
Exemplo n.º 5
0
    def prefetch_basic(self):
        stats = self._object.unit_set.aggregate(
            all=Count('id'),
            all_words=Sum('num_words'),
            fuzzy=conditional_sum(1, state=STATE_FUZZY),
            fuzzy_words=conditional_sum('num_words', state=STATE_FUZZY),
            translated=conditional_sum(1, state__gte=STATE_TRANSLATED),
            translated_words=conditional_sum('num_words',
                                             state__gte=STATE_TRANSLATED),
            todo=conditional_sum(1, state__lt=STATE_TRANSLATED),
            todo_words=conditional_sum('num_words',
                                       state__lt=STATE_TRANSLATED),
            nottranslated=conditional_sum(1, state=STATE_EMPTY),
            nottranslated_words=conditional_sum('num_words',
                                                state=STATE_EMPTY),
            approved=conditional_sum(1, state__gte=STATE_APPROVED),
            approved_words=conditional_sum('num_words',
                                           state__gte=STATE_APPROVED),
            allchecks=conditional_sum(1, has_failing_check=True),
            allchecks_words=conditional_sum('num_words',
                                            has_failing_check=True),
            suggestions=conditional_sum(1, has_suggestion=True),
            suggestions_words=conditional_sum('num_words',
                                              has_suggestion=True),
            comments=conditional_sum(1, has_comment=True),
            comments_words=conditional_sum(
                'num_words',
                has_comment=True,
            ),
            approved_suggestions=conditional_sum(1,
                                                 state__gte=STATE_APPROVED,
                                                 has_suggestion=True),
            approved_suggestions_words=conditional_sum(
                'num_words', state__gte=STATE_APPROVED, has_suggestion=True),
        )
        for key, value in stats.items():
            self.store(key, value)

        # Calculate some values
        self.store('languages', 1)

        # Calculate percents
        self.calculate_basic_percents()

        # Count recent changes
        self.count_changes()

        self.fetch_last_change()
Exemplo n.º 6
0
    def prefetch_basic(self):
        stats = self._object.unit_set.aggregate(
            all=Count('id'),
            all_words=Sum('num_words'),
            fuzzy=conditional_sum(1, state=STATE_FUZZY),
            fuzzy_words=conditional_sum(
                'num_words', state=STATE_FUZZY
            ),
            translated=conditional_sum(1, state__gte=STATE_TRANSLATED),
            translated_words=conditional_sum(
                'num_words', state__gte=STATE_TRANSLATED
            ),
            todo=conditional_sum(1, state__lt=STATE_TRANSLATED),
            todo_words=conditional_sum(
                'num_words', state__lt=STATE_TRANSLATED
            ),
            nottranslated=conditional_sum(1, state=STATE_EMPTY),
            nottranslated_words=conditional_sum(
                'num_words', state=STATE_EMPTY
            ),
            approved=conditional_sum(1, state__gte=STATE_APPROVED),
            approved_words=conditional_sum(
                'num_words', state__gte=STATE_APPROVED
            ),
            allchecks=conditional_sum(1, has_failing_check=True),
            allchecks_words=conditional_sum(
                'num_words', has_failing_check=True
            ),
            suggestions=conditional_sum(1, has_suggestion=True),
            suggestions_words=conditional_sum(
                'num_words', has_suggestion=True
            ),
            comments=conditional_sum(1, has_comment=True),
            comments_words=conditional_sum(
                'num_words', has_comment=True,
            ),
            approved_suggestions=conditional_sum(
                1, state__gte=STATE_APPROVED, has_suggestion=True
            ),
            approved_suggestions_words=conditional_sum(
                'num_words', state__gte=STATE_APPROVED, has_suggestion=True
            ),
        )
        for key, value in stats.items():
            self.store(key, value)

        # Calculate some values
        self.store('languages', 1)

        # Calculate percents
        self.calculate_basic_percents()

        # Count recent changes
        self.count_changes()

        self.fetch_last_change()
Exemplo n.º 7
0
    def update_stats(self):
        """Update translation statistics."""
        # Grab stats
        stats = self.unit_set.aggregate(
            Sum('num_words'),
            Count('id'),
            fuzzy__sum=conditional_sum(1, state=STATE_FUZZY),
            translated__sum=conditional_sum(1, state__gte=STATE_TRANSLATED),
            approved__sum=conditional_sum(1, state__gte=STATE_APPROVED),
            has_failing_check__sum=conditional_sum(1, has_failing_check=True),
            has_suggestion__sum=conditional_sum(1, has_suggestion=True),
            has_comment__sum=conditional_sum(1, has_comment=True),
            translated_words__sum=conditional_sum('num_words',
                                                  state__gte=STATE_TRANSLATED),
            approved_words__sum=conditional_sum('num_words',
                                                state__gte=STATE_APPROVED),
            fuzzy_words__sum=conditional_sum('num_words', state=STATE_FUZZY),
            check_words__sum=conditional_sum('num_words',
                                             has_failing_check=True),
            approved_suggestions__sum=conditional_sum(
                1, state__gte=STATE_APPROVED, has_suggestion=True),
            approved_suggestions_words__sum=conditional_sum(
                'num_words', state__gte=STATE_APPROVED, has_suggestion=True),
        )

        # Check if we have any units
        if stats['num_words__sum'] is None:
            self.total_words = 0
            self.total = 0
            self.fuzzy = 0
            self.translated = 0
            self.failing_checks = 0
            self.have_suggestion = 0
            self.have_comment = 0
            self.translated_words = 0
            self.fuzzy_words = 0
            self.failing_checks_words = 0
            self.approved = 0
            self.approved_words = 0
            self.approved_suggestions = 0
            self.approved_suggestions_words = 0
        else:
            self.total_words = stats['num_words__sum']
            self.total = stats['id__count']
            self.fuzzy = int(stats['fuzzy__sum'])
            self.translated = int(stats['translated__sum'])
            self.failing_checks = int(stats['has_failing_check__sum'])
            self.have_suggestion = int(stats['has_suggestion__sum'])
            self.have_comment = int(stats['has_comment__sum'])
            self.translated_words = int(stats['translated_words__sum'])
            self.fuzzy_words = int(stats['fuzzy_words__sum'])
            self.failing_checks_words = int(stats['check_words__sum'])
            self.approved = int(stats['approved__sum'])
            self.approved_words = int(stats['approved_words__sum'])
            self.approved_suggestions = int(stats['approved_suggestions__sum'])
            self.approved_suggestions_words = int(
                stats['approved_suggestions_words__sum'])

        self.save()