mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Fix workflow migration model imports
This commit is contained in:
		| @@ -4,26 +4,17 @@ import django.db.models.deletion | |||||||
| import multiselectfield.db.fields | import multiselectfield.db.fields | ||||||
| from django.conf import settings | from django.conf import settings | ||||||
| from django.contrib.auth.management import create_permissions | from django.contrib.auth.management import create_permissions | ||||||
| from django.contrib.auth.models import Group |  | ||||||
| from django.contrib.auth.models import Permission |  | ||||||
| from django.contrib.auth.models import User |  | ||||||
| from django.db import migrations | from django.db import migrations | ||||||
| from django.db import models | from django.db import models | ||||||
| from django.db import transaction | from django.db import transaction | ||||||
| from django.db.models import Q | from django.db.models import Q | ||||||
|  |  | ||||||
| from documents.models import Correspondent |  | ||||||
| from documents.models import CustomField |  | ||||||
| from documents.models import DocumentType |  | ||||||
| from documents.models import StoragePath |  | ||||||
| from documents.models import Tag |  | ||||||
| from documents.models import Workflow |  | ||||||
| from documents.models import WorkflowAction |  | ||||||
| from documents.models import WorkflowTrigger |  | ||||||
| from paperless_mail.models import MailRule |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def add_workflow_permissions(apps, schema_editor): | def add_workflow_permissions(apps, schema_editor): | ||||||
|  |     app_name = "auth" | ||||||
|  |     User = apps.get_model(app_label=app_name, model_name="User") | ||||||
|  |     Group = apps.get_model(app_label=app_name, model_name="Group") | ||||||
|  |     Permission = apps.get_model(app_label=app_name, model_name="Permission") | ||||||
|     # create permissions without waiting for post_migrate signal |     # create permissions without waiting for post_migrate signal | ||||||
|     for app_config in apps.get_app_configs(): |     for app_config in apps.get_app_configs(): | ||||||
|         app_config.models_module = True |         app_config.models_module = True | ||||||
| @@ -43,6 +34,10 @@ def add_workflow_permissions(apps, schema_editor): | |||||||
|  |  | ||||||
|  |  | ||||||
| def remove_workflow_permissions(apps, schema_editor): | def remove_workflow_permissions(apps, schema_editor): | ||||||
|  |     app_name = "auth" | ||||||
|  |     User = apps.get_model(app_label=app_name, model_name="User") | ||||||
|  |     Group = apps.get_model(app_label=app_name, model_name="Group") | ||||||
|  |     Permission = apps.get_model(app_label=app_name, model_name="Permission") | ||||||
|     workflow_permissions = Permission.objects.filter( |     workflow_permissions = Permission.objects.filter( | ||||||
|         codename__contains="workflow", |         codename__contains="workflow", | ||||||
|     ) |     ) | ||||||
| @@ -59,15 +54,28 @@ def migrate_consumption_templates(apps, schema_editor): | |||||||
|     Migrate consumption templates to workflows. At this point ConsumptionTemplate still exists |     Migrate consumption templates to workflows. At this point ConsumptionTemplate still exists | ||||||
|     but objects are not returned as their true model so we have to manually do that |     but objects are not returned as their true model so we have to manually do that | ||||||
|     """ |     """ | ||||||
|     model_name = "ConsumptionTemplate" |  | ||||||
|     app_name = "documents" |     app_name = "documents" | ||||||
|  |  | ||||||
|     ConsumptionTemplate = apps.get_model(app_label=app_name, model_name=model_name) |     ConsumptionTemplate = apps.get_model( | ||||||
|  |         app_label=app_name, | ||||||
|  |         model_name="ConsumptionTemplate", | ||||||
|  |     ) | ||||||
|  |     Workflow = apps.get_model(app_label=app_name, model_name="Workflow") | ||||||
|  |     WorkflowAction = apps.get_model(app_label=app_name, model_name="WorkflowAction") | ||||||
|  |     WorkflowTrigger = apps.get_model(app_label=app_name, model_name="WorkflowTrigger") | ||||||
|  |     DocumentType = apps.get_model(app_label=app_name, model_name="DocumentType") | ||||||
|  |     Correspondent = apps.get_model(app_label=app_name, model_name="Correspondent") | ||||||
|  |     StoragePath = apps.get_model(app_label=app_name, model_name="StoragePath") | ||||||
|  |     Tag = apps.get_model(app_label=app_name, model_name="Tag") | ||||||
|  |     CustomField = apps.get_model(app_label=app_name, model_name="CustomField") | ||||||
|  |     MailRule = apps.get_model(app_label="paperless_mail", model_name="MailRule") | ||||||
|  |     User = apps.get_model(app_label="auth", model_name="User") | ||||||
|  |     Group = apps.get_model(app_label="auth", model_name="Group") | ||||||
|  |  | ||||||
|     with transaction.atomic(): |     with transaction.atomic(): | ||||||
|         for template in ConsumptionTemplate.objects.all(): |         for template in ConsumptionTemplate.objects.all(): | ||||||
|             trigger = WorkflowTrigger( |             trigger = WorkflowTrigger( | ||||||
|                 type=WorkflowTrigger.WorkflowTriggerType.CONSUMPTION, |                 type=1,  # WorkflowTriggerType.CONSUMPTION | ||||||
|                 sources=template.sources, |                 sources=template.sources, | ||||||
|                 filter_path=template.filter_path, |                 filter_path=template.filter_path, | ||||||
|                 filter_filename=template.filter_filename, |                 filter_filename=template.filter_filename, | ||||||
| @@ -143,10 +151,13 @@ def migrate_consumption_templates(apps, schema_editor): | |||||||
|  |  | ||||||
|  |  | ||||||
| def unmigrate_consumption_templates(apps, schema_editor): | def unmigrate_consumption_templates(apps, schema_editor): | ||||||
|     model_name = "ConsumptionTemplate" |  | ||||||
|     app_name = "documents" |     app_name = "documents" | ||||||
|  |  | ||||||
|     ConsumptionTemplate = apps.get_model(app_label=app_name, model_name=model_name) |     ConsumptionTemplate = apps.get_model( | ||||||
|  |         app_label=app_name, | ||||||
|  |         model_name="ConsumptionTemplate", | ||||||
|  |     ) | ||||||
|  |     Workflow = apps.get_model(app_label=app_name, model_name="Workflow") | ||||||
|  |  | ||||||
|     for workflow in Workflow.objects.all(): |     for workflow in Workflow.objects.all(): | ||||||
|         template = ConsumptionTemplate.objects.create( |         template = ConsumptionTemplate.objects.create( | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 shamoon
					shamoon