Exemple #1
0
    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)
Exemple #2
0
 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)
Exemple #3
0
    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)
Exemple #4
0
    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))
Exemple #5
0
    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))
Exemple #6
0
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)