Beispiel #1
0
def _collapse_summary(app):

    task_log.info('[Webapp:%s] Collapsing summary.' % app.id)

    # No prior summary so do nothing.
    if app.summary_id is None:
        return

    # Handle no prior description.
    if app.description_id is None:
        # These should be translation ids and copy easily.
        app.description_id = app.summary_id
        app.summary_id = None
        app.save()
        task_log.info('[Webapp:%s] No description, copied translation %s.' % (
            app.id, app.description_id))
        return

    # The other cases require looking at the localized strings in the
    # translation table in all locales.
    for summary in Translation.objects.filter(id=app.summary_id):
        try:
            descr = Translation.objects.get(id=app.description_id,
                                            locale=summary.locale)
        except Translation.DoesNotExist:
            # We have a summary in this locale but not a description.
            try:
                Translation.objects.create(
                    id=app.description_id, locale=summary.locale,
                    localized_string=summary.localized_string,
                    localized_string_clean=summary.localized_string_clean)
                task_log.info('[Webapp:%s] Created description in locale %s '
                              'with translation %s.' % (app.id, summary.locale,
                                                        app.description_id))
            except IntegrityError:
                task_log.info('[Webapp:%s] Tried inserting a new description '
                              'for translation %s and locale %s from summary '
                              'but failed.' % (app.id, summary.id,
                                               summary.locale))
            continue

        # If summary is a truncated description, delete the summary.
        if (descr.localized_string and
            descr.localized_string.startswith(summary.localized_string)):
            task_log.info('[Webapp:%s] Description starts with summary for '
                          'translation %s and locale %s.' % (
                              app.id, summary.id, summary.locale))
            continue

        # Otherwise, concat summary and description together.
        descr.localized_string = u'%s\n%s' % (
            summary.localized_string, descr.localized_string)
        descr.localized_string_clean = u'%s\n%s' % (
            summary.localized_string_clean, descr.localized_string_clean)
        descr.save()
        task_log.info('[Webapp:%s] Concatenated summary and description for '
                      'translation %s and locale %s' % (app.id, descr.id,
                                                        descr.locale))

    delete_translation(app, 'summary')
Beispiel #2
0
    def save(self, commit=True):
        ob = super(PolicyForm, self).save(commit)
        for k, field in (('has_eula', 'eula'), ('has_priv', 'privacy_policy')):
            if not self.cleaned_data[k]:
                delete_translation(self.instance, field)

        if 'privacy_policy' in self.changed_data:
            amo.log(amo.LOG.CHANGE_POLICY, self.addon, self.instance)

        return ob
Beispiel #3
0
    def save(self, commit=True):
        ob = super(PolicyForm, self).save(commit)
        for k, field in (("has_eula", "eula"), ("has_priv", "privacy_policy")):
            if not self.cleaned_data[k]:
                delete_translation(self.instance, field)

        if "privacy_policy" in self.changed_data:
            amo.log(amo.LOG.CHANGE_POLICY, self.addon, self.instance)

        return ob
Beispiel #4
0
 def tearDownClass(cls):
     try:
         if hasattr(cls, '_addons'):
             addons = Addon.objects.filter(
                 pk__in=[a.id for a in cls._addons])
             # First delete all the translations.
             for addon in addons:
                 for field in addon._meta.translated_fields:
                     delete_translation(addon, field.name)
             # Then delete the addons themselves.
             addons.delete()
             unindex_addons([a.id for a in cls._addons])
         amo.SEARCH_ANALYZER_MAP = cls._SEARCH_ANALYZER_MAP
     finally:
         # Make sure we're calling super's tearDownClass even if something
         # went wrong in the code above, as otherwise we'd run into bug
         # 960598.
         super(ESTestCase, cls).tearDownClass()
Beispiel #5
0
 def tearDownClass(cls):
     try:
         if hasattr(cls, '_addons'):
             addons = Addon.objects.filter(
                 pk__in=[a.id for a in cls._addons])
             # First delete all the translations.
             for addon in addons:
                 for field in addon._meta.translated_fields:
                     delete_translation(addon, field.name)
             # Then delete the addons themselves.
             addons.delete()
             unindex_addons([a.id for a in cls._addons])
         amo.SEARCH_ANALYZER_MAP = cls._SEARCH_ANALYZER_MAP
     finally:
         # Make sure we're calling super's tearDownClass even if something
         # went wrong in the code above, as otherwise we'd run into bug
         # 960598.
         super(ESTestCase, cls).tearDownClass()
Beispiel #6
0
def remove_profile(request, addon_id, addon, webapp=False):
    delete_translation(addon, 'the_reason')
    delete_translation(addon, 'the_future')
    if addon.wants_contributions:
        addon.update(wants_contributions=False)
    return redirect(addon.get_dev_url('profile'))
Beispiel #7
0
def remove_profile(request, addon_id, addon):
    delete_translation(addon, 'the_reason')
    delete_translation(addon, 'the_future')
    if addon.wants_contributions:
        addon.update(wants_contributions=False)
    return redirect('devhub.addons.profile', addon.slug)
Beispiel #8
0
def remove_profile(request, addon_id, addon, webapp=False):
    delete_translation(addon, 'the_reason')
    delete_translation(addon, 'the_future')
    if addon.wants_contributions:
        addon.update(wants_contributions=False)
    return redirect(addon.get_dev_url('profile'))
Beispiel #9
0
 def save(self, commit=True):
     super(PolicyForm, self).save(commit)
     for k, field in (('has_eula', 'eula'), ('has_priv', 'privacy_policy')):
         if not self.cleaned_data[k]:
             delete_translation(self.instance, field)
Beispiel #10
0
 def save(self, commit=True):
     super(PolicyForm, self).save(commit)
     for k, field in (('has_eula', 'eula'), ('has_priv', 'privacy_policy')):
         if not self.cleaned_data[k]:
             delete_translation(self.instance, field)
Beispiel #11
0
def remove_profile(request, addon_id, addon):
    delete_translation(addon, 'the_reason')
    delete_translation(addon, 'the_future')
    if addon.wants_contributions:
        addon.update(wants_contributions=False)
    return redirect('devhub.addons.profile', addon.slug)
Beispiel #12
0
def _collapse_summary(app):

    task_log.info('[Webapp:%s] Collapsing summary.' % app.id)

    # No prior summary so do nothing.
    if app.summary_id is None:
        return

    # Handle no prior description.
    if app.description_id is None:
        # These should be translation ids and copy easily.
        app.description_id = app.summary_id
        app.summary_id = None
        app.save()
        task_log.info('[Webapp:%s] No description, copied translation %s.' %
                      (app.id, app.description_id))
        return

    # The other cases require looking at the localized strings in the
    # translation table in all locales.
    for summary in Translation.objects.filter(id=app.summary_id):
        try:
            descr = Translation.objects.get(id=app.description_id,
                                            locale=summary.locale)
        except Translation.DoesNotExist:
            # We have a summary in this locale but not a description.
            try:
                Translation.objects.create(
                    id=app.description_id,
                    locale=summary.locale,
                    localized_string=summary.localized_string,
                    localized_string_clean=summary.localized_string_clean)
                task_log.info('[Webapp:%s] Created description in locale %s '
                              'with translation %s.' %
                              (app.id, summary.locale, app.description_id))
            except IntegrityError:
                task_log.info('[Webapp:%s] Tried inserting a new description '
                              'for translation %s and locale %s from summary '
                              'but failed.' %
                              (app.id, summary.id, summary.locale))
            continue

        # If summary is a truncated description, delete the summary.
        if (descr.localized_string and descr.localized_string.startswith(
                summary.localized_string)):
            task_log.info('[Webapp:%s] Description starts with summary for '
                          'translation %s and locale %s.' %
                          (app.id, summary.id, summary.locale))
            continue

        # Otherwise, concat summary and description together.
        descr.localized_string = u'%s\n%s' % (summary.localized_string,
                                              descr.localized_string)
        descr.localized_string_clean = u'%s\n%s' % (
            summary.localized_string_clean, descr.localized_string_clean)
        descr.save()
        task_log.info('[Webapp:%s] Concatenated summary and description for '
                      'translation %s and locale %s' %
                      (app.id, descr.id, descr.locale))

    delete_translation(app, 'summary')