Allow write custom testrun in scheduler  PRODX-39509

Change-Id: Iccae2b41f52f2cfb83c11c4352347c2d96da7923
diff --git a/testrail_bot/control/views.py b/testrail_bot/control/views.py
index 8d5f692..e6655ad 100644
--- a/testrail_bot/control/views.py
+++ b/testrail_bot/control/views.py
@@ -265,12 +265,13 @@
         {
             "form": form,
             "pk": pk,
-            "TASK_CHOICES": models.TASK_CHOICES
+            "TASKS": models.TASKS
         }
     )
 
 
 def save_scheduler(request, pk=None):
+    print(f"{request.POST=}")
     minute, hour, day_of_month, month_of_year, day_of_week = \
         request.POST.get("cron", "* * * * *").split(" ")
     if pk is None:
@@ -285,15 +286,18 @@
             crontab=sch,
             cron=request.POST.get("cron"),
             name=request.POST.get("name"),
-            task="control.celery_tasks.tasks.check_today_testplan",
+            task_name=request.POST.get("task_name"),
             enabled=request.POST.get("enabled") == 'on',
-            # TODO(harhipova): uncomment when implemented tasks with arguments
-            # args=args,
-            # kwargs=kwargs,
+            testplan_id_arg=request.POST.get("testplan_id_arg"),
         )
     else:
         task = models.CronPeriodicTask.objects.get(pk=pk)
+
+    task.task = request.POST.get("task_name")
+    task.args = json.dumps((request.POST.get("testplan_id_arg"),))
+
     form = forms.PeriodicTaskForm(request.POST, instance=task)
+
     CrontabSchedule.objects.filter(id=task.crontab.id).update(
         minute=minute,
         hour=hour,
@@ -301,6 +305,9 @@
         month_of_year=month_of_year,
         day_of_week=day_of_week
     )
+    if not form.is_valid():
+        print(f"{form.errors=}")
+        return
     form.save()
     PeriodicTasks.update_changed()
     return render(
@@ -308,7 +315,7 @@
         {
             "form": form,
             "pk": task.id,
-            "TASK_CHOICES": models.TASK_CHOICES
+            "TASKS": models.TASKS
         }
     )