(session,
job,
file_id,
guide_id,
label_dict,
file_original_id,
kind = 'human',
task_type = 'draw',
incoming_directory = None,
flush_session = True)
| 883 | |
| 884 | @staticmethod |
| 885 | def new(session, |
| 886 | job, |
| 887 | file_id, |
| 888 | guide_id, |
| 889 | label_dict, |
| 890 | file_original_id, |
| 891 | kind = 'human', |
| 892 | task_type = 'draw', |
| 893 | incoming_directory = None, |
| 894 | flush_session = True): |
| 895 | from shared.database.task.task_event import TaskEvent |
| 896 | task = Task() |
| 897 | session.add(task) |
| 898 | |
| 899 | task.is_live = job.is_live |
| 900 | |
| 901 | # # # |
| 902 | task.job_id = job.id |
| 903 | task.file_id = file_id |
| 904 | task.guide_id = guide_id |
| 905 | task.label_dict = label_dict |
| 906 | task.file_original_id = file_original_id |
| 907 | task.completion_directory_id = job.completion_directory_id |
| 908 | # For now both created and updated times should be the same. |
| 909 | task.time_created = datetime.datetime.utcnow() |
| 910 | task.time_updated = datetime.datetime.utcnow() |
| 911 | if incoming_directory: |
| 912 | task.incoming_directory_id = incoming_directory.id |
| 913 | |
| 914 | if task_type == 'draw': |
| 915 | # Set draw tasks to be available instead of |
| 916 | # default of created |
| 917 | task.status = 'available' |
| 918 | |
| 919 | # Cache from job |
| 920 | task.project_id = job.project_id |
| 921 | task.job_type = job.type |
| 922 | task.label_mode = job.label_mode |
| 923 | if flush_session: |
| 924 | session.flush() |
| 925 | # Have defaults |
| 926 | task.kind = kind |
| 927 | task.task_type = task_type |
| 928 | |
| 929 | if job.stat_count_tasks is None: |
| 930 | job.stat_count_tasks = 1 |
| 931 | else: |
| 932 | job.stat_count_tasks += 1 |
| 933 | |
| 934 | Event.new_deferred( |
| 935 | session = session, |
| 936 | kind = 'task_created', |
| 937 | project_id = task.project_id, |
| 938 | task_id = task.id, |
| 939 | wait_for_commit = True |
| 940 | ) |
| 941 | TaskEvent.generate_task_creation_event(session = session, task = task, member = task.job.member_created) |
| 942 | session.add(job) |
no test coverage detected