Add initial testRail bot implementation

Related-PROD: PRODX-5842
Change-Id: Id2ac9b2275ced80a95019d30ae9e0f7a967f07ec
diff --git a/testrail_bot/control/views.py b/testrail_bot/control/views.py
new file mode 100644
index 0000000..ee582eb
--- /dev/null
+++ b/testrail_bot/control/views.py
@@ -0,0 +1,83 @@
+from datetime import date
+import json
+import os
+
+from django.shortcuts import render, redirect, HttpResponse
+
+from . import models
+from . import forms
+from .celery_tasks.tasks import process_run
+
+
+def index(request):
+    runs = models.TestRun.objects.all()
+    return render(request, "control/index.html", {"runs": runs})
+
+
+def redirect_to_index(request):
+    return redirect("index")
+
+
+def single_run(request, run_id):
+    run = models.TestRun.objects.get(pk=run_id)
+    if request.method == "POST":
+        form = forms.TestRunForm(request.POST, instance=run)
+        if form.is_valid():
+            form.save()
+            return redirect("single_run", run_id)
+    else:
+        form = forms.TestRunForm(instance=run)
+
+    return render(request, "control/update_run.html",
+                  {"form": form, "run_id": run_id})
+
+
+def create_run(request):
+    if request.method == "POST":
+        form = forms.TestRunForm(request.POST)
+        if form.is_valid():
+            obj = form.save()
+            return redirect("single_run", obj.id)
+    else:
+        form = forms.TestRunForm()
+
+    return render(request, "control/create_run.html", {"form": form})
+
+
+def list_reports(request):
+    reports = models.Report.objects.all()
+    return render(request, "control/reports.html", {"reports": reports})
+
+
+def single_report(request, report_id):
+    report = models.Report.objects.get(pk=report_id)
+    data = report.path.read().decode("utf-8")
+    if request.method == "POST" and request.is_ajax():
+        return HttpResponse(
+            json.dumps({"data": data, "finished": report.finished}),
+            content_type="application/json")
+    return render(request, "control/report.html",
+                  {"report_id": report.id, "report": data})
+
+
+def submit_run(request, run_id):
+    run = models.TestRun.objects.get(pk=run_id)
+    report_name = "{}-{}".format(run.run_name, date.isoformat(date.today()))
+    path = os.path.join(models.fs.location, report_name)
+    with open(path, "w"):
+        pass
+
+    report = models.Report(
+        test_run=run,
+        report_name=report_name,
+        path=path)
+    report.save()
+    process_run.delay(run_id, report.id, path)
+
+    return render(
+        request, "control/report.html",
+        {"report": report.path.read().decode("utf-8"), "report_id": report.id})
+
+
+def show_help(request):
+    return render(request, "control/help.html")