def test_tag_creator_form_empty(self): """test minimum form requirements / INVALID""" # get object form = TagCreatorForm(data={}) # compare self.assertFalse(form.is_valid())
def test_tag_creator_system_form_filled(self): """ test minimum form requirements / INVALID """ # 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 form = TagCreatorForm(data={ 'system': [system_1_id, system_2_id], }) # compare self.assertFalse(form.is_valid())
def test_tag_creator_system_form_label(self): """test form label""" # get object form = TagCreatorForm() # compare self.assertEqual(form.fields['system'].label, 'Systems (*)')
def tag_creator(request): """ function to create many tags for many systems at once (helper function to call the real function) """ # form was valid to post if request.method == 'POST': # get objects from request object request_post = request.POST request_user = request.user # show immediate message for user messages.success(request, 'Tag creator started') # call async function async_task( "dfirtrack_main.creator.tag_creator.tag_creator_async", request_post, request_user, ) # return directly to tag list return redirect(reverse('tag_list')) # show empty form else: form = TagCreatorForm() # call logger debug_logger(str(request.user), ' TAG_CREATOR_ENTERED') return render(request, 'dfirtrack_main/tag/tag_creator.html', {'form': form})
def tags_creator(request): """ function to create many tags 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.tags_creator.tags_creator_async", request_post, request_user, ) return redirect('/tags') # show empty form else: form = TagCreatorForm() # call logger debug_logger(str(request.user), " TAG_CREATOR_ENTERED") return render(request, 'dfirtrack_main/tag/tags_creator.html', {'form': form})
def tags_creator_async(request_post, request_user): """ function to create many tags for many systems at once """ # call logger debug_logger(str(request_user), " TAG_CREATOR_BEGIN") # extract tags (list results from request object via multiple choice field) tags = request_post.getlist('tag') # extract systems (list results from request object via multiple choice field) systems = request_post.getlist('system') # iterate over tags for tag_id in tags: # iterate over systems for system_id in systems: # create form with request data form = TagCreatorForm(request_post) # create relation if form.is_valid(): # get objects system = System.objects.get(system_id=system_id) tag = Tag.objects.get(tag_id=tag_id) # add tag to system system.tag.add(tag) # call logger system.logger(str(request_user), " TAG_CREATOR_EXECUTED") # call logger debug_logger(str(request_user), " TAG_CREATOR_END")
def tag_creator_async(request_post, request_user): """ function to create many tags for many systems at once """ # call logger debug_logger(str(request_user), ' TAG_CREATOR_START') # extract tags (list results from request object via multiple choice field) tags = request_post.getlist('tag') # extract systems (list results from request object via multiple choice field) systems = request_post.getlist('system') # set tags_created_counter (needed for messages) tags_created_counter = 0 # set system_tags_created_counter (needed for messages) system_tags_created_counter = 0 # iterate over systems for system_id in systems: # autoincrement counter system_tags_created_counter += 1 # iterate over tags for tag_id in tags: # create form with request data form = TagCreatorForm(request_post) # create relation if form.is_valid(): """ object creation """ # get objects system = System.objects.get(system_id=system_id) tag = Tag.objects.get(tag_id=tag_id) # add tag to system system.tag.add(tag) """ object counter / log """ # autoincrement counter tags_created_counter += 1 # call logger system.logger( str(request_user), ' TAG_CREATOR_EXECUTED') """ finish tag importer """ # call final message message_user( request_user, f'{tags_created_counter} tags created for {system_tags_created_counter} systems.', constants.SUCCESS ) # call logger info_logger( str(request_user), f' TAG_CREATOR_STATUS' f' tags_created:{tags_created_counter}' f'|systems_affected:{system_tags_created_counter}' ) # call logger debug_logger(str(request_user), ' TAG_CREATOR_END')