def test_task_creator_taskpriority_form_filled(self): """ test minimum form requirements / INVALID """ # get object taskname_1_id = Taskname.objects.get(taskname_name='taskname_1').taskname_id taskname_2_id = Taskname.objects.get(taskname_name='taskname_2').taskname_id # get object taskpriority_id = Taskpriority.objects.get(taskpriority_name='prio_1').taskpriority_id # get object form = TaskCreatorForm(data = { 'taskname': [taskname_1_id, taskname_2_id], 'taskpriority': taskpriority_id, }) # compare self.assertFalse(form.is_valid())
def task_creator(request): """ function to create many tasks for many systems at once (helper function to call the real function) """ # form was valid to post if request.method == 'POST': # get form form = TaskCreatorForm(request.POST) # form was valid if form.is_valid(): # get objects from request object request_post = request.POST request_user = request.user # show immediate message for user messages.success(request, 'Task creator started') # call async function async_task( "dfirtrack_main.creator.task_creator.task_creator_async", request_post, request_user, ) # return directly to task list return redirect(reverse('task_list')) # show empty form else: # get id of first status objects sorted by name taskpriority = Taskpriority.objects.order_by( 'taskpriority_name')[0].taskpriority_id taskstatus = Taskstatus.objects.order_by( 'taskstatus_name')[0].taskstatus_id form = TaskCreatorForm(initial={ 'taskpriority': taskpriority, 'taskstatus': taskstatus, }) # call logger debug_logger(str(request.user), ' TASK_CREATOR_ENTERED') return render(request, 'dfirtrack_main/task/task_creator.html', {'form': form})
def test_task_creator_taskstatus_form_label(self): """ test form label """ # get object form = TaskCreatorForm() # compare self.assertEqual(form.fields['taskstatus'].label, 'Taskstatus')
def test_task_creator_system_form_label(self): """ test form label """ # get object form = TaskCreatorForm() # compare self.assertEqual(form.fields['system'].label, 'Systems')
def test_task_creator_assigned_to_user_id_form_label(self): """ test form label """ # get object form = TaskCreatorForm() # compare self.assertEqual(form.fields['task_assigned_to_user_id'].label, 'Task assigned to user id')
def tasks_creator(request): """ function to create many tasks for many systems at once (helper function to call the real function) """ # form was valid to post if request.method == 'POST': request_post = request.POST request_user = request.user # call async function async_task( "dfirtrack_main.creator.tasks_creator.tasks_creator_async", request_post, request_user, ) return redirect('/tasks') # show empty form else: form = TaskCreatorForm(initial={ 'taskpriority': 2, 'taskstatus': 1, }) # call logger debug_logger(str(request.user), " TASK_CREATOR_ENTERED") return render(request, 'dfirtrack_main/task/tasks_creator.html', {'form': form})
def test_task_creator_assigned_to_user_id_form_label(self): """ test form label """ # get object form = TaskCreatorForm() # compare self.assertEqual(form.fields['task_assigned_to_user_id'].label, 'Assigned to user') self.assertEqual(form.fields['task_assigned_to_user_id'].empty_label, 'Select user (optional)')
def test_task_creator_system_form_filled(self): """ test minimum form requirements / VALID """ # get object system_1_id = System.objects.get(system_name='system_1').system_id system_2_id = System.objects.get(system_name='system_2').system_id # get object taskname_1_id = Taskname.objects.get(taskname_name='taskname_1').taskname_id taskname_2_id = Taskname.objects.get(taskname_name='taskname_2').taskname_id # get object taskpriority_id = Taskpriority.objects.get(taskpriority_name='prio_1').taskpriority_id # get object taskstatus_id = Taskstatus.objects.get(taskstatus_name='taskstatus_1').taskstatus_id # get object form = TaskCreatorForm(data = { 'system': [system_1_id, system_2_id], 'taskname': [taskname_1_id, taskname_2_id], 'taskpriority': taskpriority_id, 'taskstatus': taskstatus_id, }) # compare self.assertTrue(form.is_valid())
def task_creator_async(request_post, request_user): """ function to create many tasks for many systems at once """ # call logger debug_logger(str(request_user), " TASK_CREATOR_BEGIN") # extract tasknames (list results from request object via multiple choice field) tasknames = request_post.getlist('taskname') # extract systems (list results from request object via multiple choice field) systems = request_post.getlist('system') # iterate over tasknames for taskname in tasknames: # iterate over systems for system in systems: # create form with request data form = TaskCreatorForm(request_post) # create task if form.is_valid(): # dont't save form yet task = form.save(commit=False) # set taskname and system task.taskname = Taskname.objects.get(taskname_id=taskname) task.system = System.objects.get(system_id=system) # set auto values task.task_created_by_user_id = request_user task.task_modified_by_user_id = request_user # get taskstatus objects for comparing taskstatus_working = Taskstatus.objects.get( taskstatus_name='Working') taskstatus_done = Taskstatus.objects.get( taskstatus_name='Done') # set times depending on submitted taskstatus if task.taskstatus == taskstatus_working: task.task_started_time = timezone.now() if task.taskstatus == taskstatus_done: task.task_started_time = timezone.now() task.task_finished_time = timezone.now() # save object task.save() # save manytomany form.save_m2m() # call logger task.logger(str(request_user), " TASK_CREATOR_EXECUTED") # call logger debug_logger(str(request_user), " TASK_CREATOR_END")
def test_task_creator_note_form_filled(self): """ test additional form content """ # get object system_1_id = System.objects.get(system_name='system_1').system_id system_2_id = System.objects.get(system_name='system_2').system_id # get object taskname_1_id = Taskname.objects.get(taskname_name='taskname_1').taskname_id taskname_2_id = Taskname.objects.get(taskname_name='taskname_2').taskname_id # get object taskpriority_id = Taskpriority.objects.get(taskpriority_name='prio_1').taskpriority_id # get object taskstatus_id = Taskstatus.objects.get(taskstatus_name='taskstatus_1').taskstatus_id # get object form = TaskCreatorForm(data = { 'system': [system_1_id, system_2_id], 'taskname': [taskname_1_id, taskname_2_id], 'taskpriority': taskpriority_id, 'taskstatus': taskstatus_id, 'task_note': 'lorem ipsum' }) # compare self.assertTrue(form.is_valid())
def tasks_creator_async(request_post, request_user): """ function to create many tasks for many systems at once """ # call logger debug_logger(str(request_user), " TASK_CREATOR_BEGIN") # extract tasknames (list results from request object via multiple choice field) tasknames = request_post.getlist('taskname') # extract systems (list results from request object via multiple choice field) systems = request_post.getlist('system') # iterate over tasknames for taskname in tasknames: # iterate over systems for system in systems: # create form with request data form = TaskCreatorForm(request_post) # create task if form.is_valid(): # dont't save form yet task = form.save(commit=False) # set taskname and system task.taskname = Taskname.objects.get(taskname_id=taskname) task.system = System.objects.get(system_id=system) # set auto values task.task_created_by_user_id = request_user task.task_modified_by_user_id = request_user # save object task.save() # save manytomany form.save_m2m() tags = task.tag.all() taglist = [] tagstring = 'None' for tag in tags: taglist.append(tag.tag_name) tagstring = ','.join(taglist) # call logger task.logger(str(request_user), " TASK_CREATOR_EXECUTED") # call logger debug_logger(str(request_user), " TASK_CREATOR_END")
def task_creator_async(request_post, request_user): """ function to create many tasks for many systems at once """ # call logger debug_logger(str(request_user), ' TASK_CREATOR_START') # extract tasknames (list results from request object via multiple choice field) tasknames = request_post.getlist('taskname') # extract systems (list results from request object via multiple choice field) systems = request_post.getlist('system') # set tasks_created_counter (needed for messages) tasks_created_counter = 0 # set system_tasks_created_counter (needed for messages) system_tasks_created_counter = 0 # iterate over systems for system in systems: # autoincrement counter system_tasks_created_counter += 1 # iterate over tasknames for taskname in tasknames: # create form with request data form = TaskCreatorForm(request_post) # create task if form.is_valid(): """ object creation """ # don't save form yet task = form.save(commit=False) # set taskname and system task.taskname = Taskname.objects.get(taskname_id=taskname) task.system = System.objects.get(system_id=system) # set auto values task.task_created_by_user_id = request_user task.task_modified_by_user_id = request_user # get taskstatus objects for comparing taskstatus_working = Taskstatus.objects.get( taskstatus_name='20_working') taskstatus_done = Taskstatus.objects.get( taskstatus_name='30_done') # set times depending on submitted taskstatus if task.taskstatus == taskstatus_working: task.task_started_time = timezone.now() if task.taskstatus == taskstatus_done: task.task_started_time = timezone.now() task.task_finished_time = timezone.now() # save object task.save() # save manytomany form.save_m2m() """ object counter / log """ # autoincrement counter tasks_created_counter += 1 # call logger task.logger(str(request_user), ' TASK_CREATOR_EXECUTED') """ finish system importer """ # call final message message_user( request_user, f'{tasks_created_counter} tasks created for {system_tasks_created_counter} systems.', constants.SUCCESS) # call logger info_logger( str(request_user), f' TASK_CREATOR_STATUS' f' tasks_created:{tasks_created_counter}' f'|systems_affected:{system_tasks_created_counter}') # call logger debug_logger(str(request_user), ' TASK_CREATOR_END')