def form_valid(self, form): if not check_perm(self.request.user, 'memory.edit', self.objects): raise PermissionDenied() import_memory.delay(self.objects['project'].pk) messages.success(self.request, _('Import of strings scheduled.')) return super(ImportView, self).form_valid(form)
def form_valid(self, form): if ( not check_perm(self.request.user, "memory.delete", self.objects) or "project" not in self.objects ): raise PermissionDenied() origin = self.request.POST.get("origin") project = self.objects["project"] component_id = None if origin: try: component_id = project.component_set.get( slug=origin.split("/", 1)[-1] ).id except ObjectDoesNotExist: raise PermissionDenied() # Delete private entries entries = Memory.objects.filter_type(**self.objects) if origin: entries = entries.filter(origin=origin) entries.delete() # Delete possible shared entries if origin: slugs = [origin] else: slugs = [component.full_slug for component in project.component_set.all()] Memory.objects.filter(origin__in=slugs, shared=True).delete() # Rebuild memory in background import_memory.delay(project_id=project.id, component_id=component_id) messages.success( self.request, _("Entries deleted and memory will be rebuilt in the background."), ) return super().form_valid(form)
def form_valid(self, form): if not check_perm(self.request.user, 'memory.edit', self.objects): raise PermissionDenied() import_memory.delay(self.objects['project'].pk) messages.success( self.request, _('Import of strings scheduled.') ) return super(ImportView, self).form_valid(form)
def save(self, *args, **kwargs): from weblate.trans.tasks import component_alerts update_tm = self.contribute_shared_tm # Renaming detection old = None if self.id: old = Project.objects.get(pk=self.id) # Detect slug changes and rename directory self.check_rename(old) # Rename linked repos if old.slug != self.slug: for component in old.component_set.iterator(): new_component = self.component_set.get(pk=component.pk) new_component.project = self component.linked_childs.update( repo=new_component.get_repo_link_url()) update_tm = self.contribute_shared_tm and not old.contribute_shared_tm self.create_path() super().save(*args, **kwargs) # Update alerts if needed if old is not None and old.web != self.web: component_alerts.delay( list(self.component_set.values_list("id", flat=True))) # Update translation memory on enabled sharing if update_tm: transaction.on_commit(lambda: import_memory.delay(self.id))
def save(self, *args, **kwargs): update_tm = self.contribute_shared_tm # Renaming detection old = None if self.id: old = Project.objects.get(pk=self.id) # Detect slug changes and rename directory self.check_rename(old) # Rename linked repos if old.slug != self.slug: for component in old.component_set.iterator(): new_component = self.component_set.get(pk=component.pk) new_component.project = self component.linked_childs.update( repo=new_component.get_repo_link_url()) update_tm = self.contribute_shared_tm and not old.contribute_shared_tm self.create_path() super().save(*args, **kwargs) # Reload components after source language change if old is not None and old.source_language != self.source_language: from weblate.trans.tasks import perform_load for component in self.component_set.iterator(): perform_load.delay(component.pk) # Update translation memory on enabled sharing if update_tm: transaction.on_commit(lambda: import_memory.delay(self.id))
def update_memory(apps, schema_editor): db_alias = schema_editor.connection.alias Project = apps.get_model("trans", "Project") for project in Project.objects.using(db_alias).all().iterator(): import_memory.delay(project.pk)