def auto_translation(request, project, component, lang): translation = get_translation(request, project, component, lang) project = translation.component.project if not request.user.has_perm("translation.auto", project): raise PermissionDenied() autoform = AutoForm(translation.component, request.POST) if translation.component.locked or not autoform.is_valid(): messages.error(request, _("Failed to process form!")) show_form_errors(request, autoform) return redirect(translation) args = ( request.user.id, translation.id, autoform.cleaned_data["mode"], autoform.cleaned_data["filter_type"], autoform.cleaned_data["auto_source"], autoform.cleaned_data["component"], autoform.cleaned_data["engines"], autoform.cleaned_data["threshold"], ) if settings.CELERY_TASK_ALWAYS_EAGER: messages.success(request, auto_translate(*args)) else: task = auto_translate.delay(*args) messages.success(request, _("Automatic translation in progress"), f"task:{task.id}") return redirect(translation)
def daily(self, component): # Translate every component once in a week to reduce load if component.id % 7 != date.today().weekday(): return for translation in component.translation_set.iterator(): if translation.is_source: continue transaction.on_commit(lambda: auto_translate.delay( None, translation.pk, **self.instance.configuration))
def daily(self, component): for translation in component.translation_set.iterator(): auto_translate.delay(None, translation.pk, **self.instance.configuration)
def callback(): auto_translate.delay(None, translation.pk, **self.instance.configuration)
def daily(self, component): for translation in component.translation_set.iterator(): if translation.is_source: continue transaction.on_commit(lambda: auto_translate.delay( None, translation.pk, **self.instance.configuration))