Files
mayan-edms/mayan/apps/document_states/managers.py
2016-06-10 19:59:09 -04:00

63 lines
1.9 KiB
Python

from __future__ import unicode_literals
from django.apps import apps
from django.db import models
from organizations.managers import CurrentOrganizationManager
class OrganizationWorkflowStateManager(models.Manager):
def get_queryset(self):
Workflow = apps.get_model('document_states', 'Workflow')
return super(
OrganizationWorkflowStateManager, self
).get_queryset().filter(
workflow__in=Workflow.on_organization.all(),
)
class OrganizationWorkflowTransitionManager(models.Manager):
def get_queryset(self):
Workflow = apps.get_model('document_states', 'Workflow')
return super(
OrganizationWorkflowTransitionManager, self
).get_queryset().filter(
workflow__in=Workflow.on_organization.all(),
)
class OrganizationWorkflowInstanceManager(models.Manager):
def get_queryset(self):
Document = apps.get_model('documents', 'Document')
Workflow = apps.get_model('document_states', 'Workflow')
return super(
OrganizationWorkflowInstanceManager, self
).get_queryset().filter(
workflow__in=Workflow.on_organization.all(),
document__in=Document.on_organization.all(),
)
class OrganizationWorkflowInstanceLogEntryManager(models.Manager):
def get_queryset(self):
Workflow = apps.get_model('document_states', 'Workflow')
return super(
OrganizationWorkflowInstanceLogEntryManager, self
).get_queryset().filter(
workflow_instance__workflow__in=Workflow.on_organization.all(),
)
class WorkflowManager(models.Manager):
def launch_for(self, document):
for workflow in document.document_type.workflows.all():
workflow.launch_for(document)
class OrganizationWorkflowManager(WorkflowManager, CurrentOrganizationManager):
pass