Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
specification.py 1.11 KiB
from typing import List

from django.contrib.auth.models import User

from lofardata.models import Group, WorkSpecification


def set_post_submit_values(specification, user):
    specification.async_task_result = None
    specification.is_ready = False
    if specification.created_by is None:
        specification.created_by = user


def split_obs_ids_string(obs_ids_string: str) -> List[str]:
    return [obs_id.strip() for obs_id in obs_ids_string.split(',')]


def create_work_specifications_for_group(group: Group, created_by: User, obs_ids: List[str]):
    for obs_id in obs_ids:
        create_work_specification_for_group(group, created_by, obs_id)


def create_work_specification_for_group(group: Group, created_by: User, obs_id: str):
    workspecification = WorkSpecification(
        processing_site=group.processing_site,
        selected_workflow=group.selected_workflow,
        selected_workflow_tag=group.selected_workflow_tag,
        filters={"obs_id": obs_id},
        group=group
    )

    set_post_submit_values(workspecification, created_by)

    workspecification.save()