2020-07-06 19:06:42 +00:00
|
|
|
from typing import Optional, Sequence
|
|
|
|
|
|
|
|
from mongoengine import Q
|
|
|
|
|
2021-01-05 14:28:49 +00:00
|
|
|
from apiserver.database.model.model import Model
|
|
|
|
from apiserver.database.utils import get_company_or_none_constraint
|
2020-07-06 19:06:42 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ModelBLL:
|
|
|
|
def get_frameworks(self, company, project_ids: Optional[Sequence]) -> Sequence:
|
|
|
|
"""
|
|
|
|
Return the list of unique frameworks used by company and public models
|
|
|
|
If project ids passed then only models from these projects are considered
|
|
|
|
"""
|
|
|
|
query = get_company_or_none_constraint(company)
|
|
|
|
if project_ids:
|
|
|
|
query &= Q(project__in=project_ids)
|
|
|
|
return Model.objects(query).distinct(field="framework")
|