def get_processes() -> types.GeneratorType: """Return all registered processes.""" from django.apps import apps from .models import Process apps.check_models_ready() for model in apps.get_models(): if issubclass(model, Process) and model is not Process: yield model
def process_subclasses(): from django.apps import apps apps.check_models_ready() query = models.Q() for model in utils.get_processes(): opts = model._meta query |= models.Q(app_label=opts.app_label, model=opts.model_name) return query
def workflow_state_subclasses(): from django.apps import apps apps.check_models_ready() query = models.Q() for workflow in utils.get_workflows(): opts = workflow._meta query |= models.Q(app_label=opts.app_label, model=opts.model_name) return query
def get_workflows() -> types.GeneratorType: """Return all registered workflows.""" from django.apps import apps from .models import Workflow apps.check_models_ready() for model in apps.get_models(): if issubclass(model, Workflow) and model is not Workflow and model.edges: yield model
def get_heroku_connect_models(): """ Return all registered Heroku Connect Models. Returns: (Iterator): All registered models that are subclasses of `.HerokuConnectModel`. Abstract models are excluded, since they are not registered. """ from django.apps import apps apps.check_models_ready() from heroku_connect.db.models import HerokuConnectModel return ( model for models in apps.all_models.values() for model in models.values() if issubclass(model, HerokuConnectModel) and not model._meta.managed)
def units_model(self): # Can't cache this property until all the models are loaded. apps.check_models_ready() return apps.get_model('trans', 'Unit')