diff options
33 files changed, 0 insertions, 1399 deletions
diff --git a/qtip/web/bench/__init__.py b/qtip/web/bench/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/qtip/web/bench/__init__.py +++ /dev/null diff --git a/qtip/web/bench/admin.py b/qtip/web/bench/admin.py deleted file mode 100644 index 1e678ad5..00000000 --- a/qtip/web/bench/admin.py +++ /dev/null @@ -1,22 +0,0 @@ -############################################################################## -# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -# -*- coding: utf-8 -*- - -from __future__ import unicode_literals - -from django.contrib import admin - -import models - -# Register your models here. - - -admin.site.register(models.Repo) -admin.site.register(models.Task) diff --git a/qtip/web/bench/apps.py b/qtip/web/bench/apps.py deleted file mode 100644 index db50dfe0..00000000 --- a/qtip/web/bench/apps.py +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.apps import AppConfig - - -class BenchConfig(AppConfig): - name = 'bench' diff --git a/qtip/web/bench/forms.py b/qtip/web/bench/forms.py deleted file mode 100644 index d897aca7..00000000 --- a/qtip/web/bench/forms.py +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################## -# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - - -from django import forms - -import models - - -class TaskForm(forms.ModelForm): - class Meta: - model = models.Task - fields = ['repo'] diff --git a/qtip/web/bench/management/__init__.py b/qtip/web/bench/management/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/qtip/web/bench/management/__init__.py +++ /dev/null diff --git a/qtip/web/bench/management/commands/__init__.py b/qtip/web/bench/management/commands/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/qtip/web/bench/management/commands/__init__.py +++ /dev/null diff --git a/qtip/web/bench/management/commands/_private.py b/qtip/web/bench/management/commands/_private.py deleted file mode 100644 index e69de29b..00000000 --- a/qtip/web/bench/management/commands/_private.py +++ /dev/null diff --git a/qtip/web/bench/management/commands/importstatic.py b/qtip/web/bench/management/commands/importstatic.py deleted file mode 100644 index 471faf8b..00000000 --- a/qtip/web/bench/management/commands/importstatic.py +++ /dev/null @@ -1,10 +0,0 @@ -import os - -from django.core.management.base import BaseCommand - - -class Command(BaseCommand): - help = 'Import frontend dependencies for serving as static files' - - def handle(self, *args, **options): - os.system("git clone https://github.com/gurayyarar/AdminBSBMaterialDesign.git bench/static/") diff --git a/qtip/web/bench/migrations/0001_initial.py b/qtip/web/bench/migrations/0001_initial.py deleted file mode 100644 index 04736679..00000000 --- a/qtip/web/bench/migrations/0001_initial.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.3 on 2017-07-13 01:36 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Repo', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=200)), - ('github_link', models.URLField()), - ], - ), - migrations.CreateModel( - name='Task', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('start_time', models.DateTimeField(auto_now_add=True)), - ('end_time', models.DateTimeField()), - ('run_time', models.DurationField()), - ('log', models.TextField()), - ('repo', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='bench.Repo')), - ], - ), - ] diff --git a/qtip/web/bench/migrations/0002_auto_20170713_0210.py b/qtip/web/bench/migrations/0002_auto_20170713_0210.py deleted file mode 100644 index 30c0cd63..00000000 --- a/qtip/web/bench/migrations/0002_auto_20170713_0210.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.3 on 2017-07-13 02:10 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bench', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='repo', - name='github_link', - field=models.URLField(unique=True), - ), - ] diff --git a/qtip/web/bench/migrations/0003_auto_20170713_0225.py b/qtip/web/bench/migrations/0003_auto_20170713_0225.py deleted file mode 100644 index fec4234a..00000000 --- a/qtip/web/bench/migrations/0003_auto_20170713_0225.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.3 on 2017-07-13 02:25 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bench', '0002_auto_20170713_0210'), - ] - - operations = [ - migrations.AlterField( - model_name='repo', - name='name', - field=models.CharField(max_length=20), - ), - ] diff --git a/qtip/web/bench/migrations/0004_auto_20170715_0325.py b/qtip/web/bench/migrations/0004_auto_20170715_0325.py deleted file mode 100644 index 74296cce..00000000 --- a/qtip/web/bench/migrations/0004_auto_20170715_0325.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.3 on 2017-07-15 03:25 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bench', '0003_auto_20170713_0225'), - ] - - operations = [ - migrations.AlterField( - model_name='repo', - name='name', - field=models.CharField(max_length=200), - ), - ] diff --git a/qtip/web/bench/migrations/0005_auto_20170720_2115.py b/qtip/web/bench/migrations/0005_auto_20170720_2115.py deleted file mode 100644 index 5bd81a2c..00000000 --- a/qtip/web/bench/migrations/0005_auto_20170720_2115.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.3 on 2017-07-20 21:15 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bench', '0004_auto_20170715_0325'), - ] - - operations = [ - migrations.RenameField( - model_name='repo', - old_name='github_link', - new_name='git_link', - ), - migrations.AlterField( - model_name='task', - name='end_time', - field=models.DateTimeField(null=True), - ), - migrations.AlterField( - model_name='task', - name='log', - field=models.FilePathField(), - ), - migrations.AlterField( - model_name='task', - name='run_time', - field=models.DurationField(null=True), - ), - ] diff --git a/qtip/web/bench/migrations/0006_auto_20170722_0135.py b/qtip/web/bench/migrations/0006_auto_20170722_0135.py deleted file mode 100644 index 5d066702..00000000 --- a/qtip/web/bench/migrations/0006_auto_20170722_0135.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.3 on 2017-07-22 01:35 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bench', '0005_auto_20170720_2115'), - ] - - operations = [ - migrations.AddField( - model_name='task', - name='status', - field=models.CharField(choices=[('P', 'Pending'), ('IP', 'In progress'), ('F', 'Finished')], default='P', max_length=20), - ), - migrations.AlterField( - model_name='task', - name='log', - field=models.FileField(upload_to='logs'), - ), - ] diff --git a/qtip/web/bench/migrations/__init__.py b/qtip/web/bench/migrations/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/qtip/web/bench/migrations/__init__.py +++ /dev/null diff --git a/qtip/web/bench/models.py b/qtip/web/bench/models.py deleted file mode 100644 index 3f0439d9..00000000 --- a/qtip/web/bench/models.py +++ /dev/null @@ -1,50 +0,0 @@ -############################################################################## -# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models -from django.urls import reverse - -# Create your models here. - - -class Repo(models.Model): - name = models.CharField(max_length=200, blank=False) - git_link = models.URLField(unique=True) - - def get_absolute_url(self): - return reverse('repo_update', args=[self.pk]) - - def __str__(self): - return "%s, %s" % (self.name, self.git_link) - - -class Task(models.Model): - TASK_STATUS_CHOICES = ( - ('P', 'Pending'), - ('IP', 'In progress'), - ('F', 'Finished') - ) - - start_time = models.DateTimeField(auto_now_add=True) - status = models.CharField(choices=TASK_STATUS_CHOICES, default='P', max_length=20) - end_time = models.DateTimeField(null=True) - run_time = models.DurationField(null=True) - repo = models.ForeignKey('Repo', on_delete=models.DO_NOTHING) - log = models.FileField(upload_to='logs') - - def save(self, **kwargs): - if self.end_time: - self.run_time = self.end_time - self.start_time - super(Task, self).save(kwargs) - - def get_absolute_url(self): - return reverse('task_view', args=[self.pk]) diff --git a/qtip/web/bench/tests.py b/qtip/web/bench/tests.py deleted file mode 100644 index c2de5b3a..00000000 --- a/qtip/web/bench/tests.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -# from django.test import TestCase - -# Create your tests here. diff --git a/qtip/web/bench/urls.py b/qtip/web/bench/urls.py deleted file mode 100644 index a6decbc5..00000000 --- a/qtip/web/bench/urls.py +++ /dev/null @@ -1,25 +0,0 @@ -############################################################################## -# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.conf.urls import include, url - -import views - -urlpatterns = [ - url('^', include('django.contrib.auth.urls')), - url('^dashboard/$', views.Dashboard.as_view(), name="index"), - url('^repos/$', views.ReposView.as_view(), name='repos'), - url('^repos/(?P<pk>\d+)$', views.RepoUpdate.as_view(), name='repo_update'), - url('^run/$', views.Run.as_view(), name='run'), - url('^tasks/$', views.Logs.as_view(), name='tasks'), - url('^tasks/(?P<pk>\d+)$', views.TaskView.as_view(), name='task_view'), -] diff --git a/qtip/web/bench/utils.py b/qtip/web/bench/utils.py deleted file mode 100644 index aac388e0..00000000 --- a/qtip/web/bench/utils.py +++ /dev/null @@ -1,27 +0,0 @@ -############################################################################## -# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -import os -from subprocess import Popen, PIPE, STDOUT -import shutil - - -def run(repo): - if os.path.exists(repo.name): - shutil.rmtree(repo.name) - os.mkdir(repo.name) - os.chdir(repo.name) - output = Popen(("git clone %s ." % repo.git_link).split(), stdout=PIPE, stderr=STDOUT) - for line in output.stdout: - yield line - output.wait() - output = Popen("ansible-playbook run.yml".split(), stdout=PIPE, stderr=STDOUT) - for line in output.stdout: - yield line - os.chdir("../") diff --git a/qtip/web/bench/views.py b/qtip/web/bench/views.py deleted file mode 100644 index 56f100cb..00000000 --- a/qtip/web/bench/views.py +++ /dev/null @@ -1,101 +0,0 @@ -############################################################################## -# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -# -*- coding: utf-8 -*- -from __future__ import unicode_literals -from multiprocessing import Process - -from django.contrib.auth.mixins import LoginRequiredMixin -from django.views.generic.edit import CreateView, UpdateView -from django.views.generic.list import ListView -from django.views.generic.detail import DetailView -from django.views.generic import TemplateView -from django.views import View -from django.shortcuts import render, redirect -from django.core.files.base import ContentFile -from django.utils import timezone - -import forms -import models -import utils - - -class Dashboard(TemplateView): - template_name = "bench/index.html" - - -class ReposView(LoginRequiredMixin, CreateView): - model = models.Repo - fields = '__all__' - - def get_context_data(self, **kwargs): - context = super(ReposView, self).get_context_data(**kwargs) - context["repos"] = self.model.objects.all() - context["template_role"] = "add" - return context - - -class RepoUpdate(LoginRequiredMixin, UpdateView): - model = models.Repo - fields = '__all__' - - def get_context_data(self, **kwargs): - context = super(RepoUpdate, self).get_context_data(**kwargs) - context["repos"] = self.model.objects.all() - context["template_role"] = "edit" - return context - - -class Run(LoginRequiredMixin, View): - template_name = 'bench/run.html' - form_class = forms.TaskForm - - def get(self, request): - task_form = self.form_class() - return render(request, self.template_name, {'form': task_form}) - - def post(self, request): - task_form = self.form_class(request.POST) - if task_form.is_valid(): - new_task = task_form.save() - new_task.log.save("run_%s.log" % new_task.pk, ContentFile('')) - p = Process(target=self.start_task, args=(new_task,)) - p.start() - return redirect('tasks') - p.join() - - def start_task(self, task): - task = models.Task.objects.get(pk=task.pk) - task.status = 'IP' - task.save() - with open(task.log.path, "a") as logfile: - for line in utils.run(task.repo): - logfile.write(line) - now = timezone.now() - task = models.Task.objects.get(pk=task.pk) - task.end_time = now - task.status = 'F' - task.save() - - -class Logs(LoginRequiredMixin, ListView): - model = models.Task - - -class TaskView(LoginRequiredMixin, DetailView): - model = models.Task - - def get_context_data(self, **kwargs): - context = super(TaskView, self).get_context_data(**kwargs) - try: - with open(context['object'].log.path, "r") as log_file: - context['log'] = log_file.read() - except ValueError: - context['log'] = "No log to show" - return context diff --git a/qtip/web/manage.py b/qtip/web/manage.py deleted file mode 100755 index f33e87a0..00000000 --- a/qtip/web/manage.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings") - try: - from django.core.management import execute_from_command_line - except ImportError: - # The above import may fail for some other reason. Ensure that the - # issue is really that Django is missing to avoid masking other - # exceptions on Python 2. - try: - import django # noqa - except ImportError: - raise ImportError( - "Couldn't import Django. Are you sure it's installed and " - "available on your PYTHONPATH environment variable? Did you " - "forget to activate a virtual environment?" - ) - raise - execute_from_command_line(sys.argv) diff --git a/qtip/web/templates/bench/base.html b/qtip/web/templates/bench/base.html deleted file mode 100644 index 4eaf56f5..00000000 --- a/qtip/web/templates/bench/base.html +++ /dev/null @@ -1,527 +0,0 @@ -<html> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=Edge"> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <title>QTIP Benchmarking Services</title> - <!-- Favicon--> - <!--<link rel="icon" href="favicon.ico" type="image/x-icon">--> - <!-- Google Fonts --> - <link href="https://fonts.googleapis.com/css?family=Roboto:400,700&subset=latin,cyrillic-ext" rel="stylesheet" type="text/css"> - <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" type="text/css"> - - <!-- Bootstrap Core Css --> - <link href="/static/plugins/bootstrap/css/bootstrap.css" rel="stylesheet"> - - <!-- Waves Effect Css --> - <link href="/static/plugins/node-waves/waves.css" rel="stylesheet" /> - - <!-- Animation Css --> - <link href="/static/plugins/animate-css/animate.css" rel="stylesheet" /> - - <!-- Morris Chart Css--> - <link href="/static/plugins/morrisjs/morris.css" rel="stylesheet" /> - - <!-- Custom Css --> - <link href="/static/css/style.css" rel="stylesheet"/> - <!--<link href="/static/plugins/materialize-css/css/materialize.css" rel="stylesheet"/>--> - - <!-- AdminBSB Themes. You can choose a theme from css/themes instead of get all themes --> - <link href="/static/css/themes/theme-teal.css" rel="stylesheet" /> - <script src="/static/plugins/jquery/jquery.min.js"></script> -</head> - -<body class="theme-red"> - <!-- Page Loader --> - <div class="page-loader-wrapper"> - <div class="loader"> - <div class="preloader"> - <div class="spinner-layer pl-red"> - <div class="circle-clipper left"> - <div class="circle"></div> - </div> - <div class="circle-clipper right"> - <div class="circle"></div> - </div> - </div> - </div> - <p>Please wait...</p> - </div> - </div> - <!-- #END# Page Loader --> - <!-- Overlay For Sidebars --> - <div class="overlay"></div> - <!-- #END# Overlay For Sidebars --> - <!-- Search Bar --> - <div class="search-bar"> - <div class="search-icon"> - <i class="material-icons">search</i> - </div> - <input type="text" placeholder="START TYPING..."> - <div class="close-search"> - <i class="material-icons">close</i> - </div> - </div> - <!-- #END# Search Bar --> - <!-- Top Bar --> - <nav class="navbar"> - <div class="container-fluid"> - <div class="navbar-header"> - <a href="javascript:void(0);" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false"></a> - <a href="javascript:void(0);" class="bars"></a> - <a class="navbar-brand" href="{% url 'index' %}">QTIP-Web</a> - </div> - <div class="collapse navbar-collapse" id="navbar-collapse"> - <ul class="nav navbar-nav navbar-right"> - <!-- Call Search --> - <li><a href="javascript:void(0);" class="js-search" data-close="true"><i class="material-icons">search</i></a></li> - <!-- #END# Call Search --> - <!-- Notifications --> - <!-- - <li class="dropdown"> - <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button"> - <i class="material-icons">notifications</i> - <span class="label-count">7</span> - </a> - <ul class="dropdown-menu"> - <li class="header">NOTIFICATIONS</li> - <li class="body"> - <ul class="menu"> - <li> - <a href="javascript:void(0);"> - <div class="icon-circle bg-light-green"> - <i class="material-icons">person_add</i> - </div> - <div class="menu-info"> - <h4>12 new members joined</h4> - <p> - <i class="material-icons">access_time</i> 14 mins ago - </p> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <div class="icon-circle bg-cyan"> - <i class="material-icons">add_shopping_cart</i> - </div> - <div class="menu-info"> - <h4>4 sales made</h4> - <p> - <i class="material-icons">access_time</i> 22 mins ago - </p> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <div class="icon-circle bg-red"> - <i class="material-icons">delete_forever</i> - </div> - <div class="menu-info"> - <h4><b>Nancy Doe</b> deleted account</h4> - <p> - <i class="material-icons">access_time</i> 3 hours ago - </p> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <div class="icon-circle bg-orange"> - <i class="material-icons">mode_edit</i> - </div> - <div class="menu-info"> - <h4><b>Nancy</b> changed name</h4> - <p> - <i class="material-icons">access_time</i> 2 hours ago - </p> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <div class="icon-circle bg-blue-grey"> - <i class="material-icons">comment</i> - </div> - <div class="menu-info"> - <h4><b>John</b> commented your post</h4> - <p> - <i class="material-icons">access_time</i> 4 hours ago - </p> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <div class="icon-circle bg-light-green"> - <i class="material-icons">cached</i> - </div> - <div class="menu-info"> - <h4><b>John</b> updated status</h4> - <p> - <i class="material-icons">access_time</i> 3 hours ago - </p> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <div class="icon-circle bg-purple"> - <i class="material-icons">settings</i> - </div> - <div class="menu-info"> - <h4>Settings updated</h4> - <p> - <i class="material-icons">access_time</i> Yesterday - </p> - </div> - </a> - </li> - </ul> - </li> - <li class="footer"> - <a href="javascript:void(0);">View All Notifications</a> - </li> - </ul> - </li> - - - <li class="dropdown"> - <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button"> - <i class="material-icons">flag</i> - <span class="label-count">9</span> - </a> - <ul class="dropdown-menu"> - <li class="header">TASKS</li> - <li class="body"> - <ul class="menu tasks"> - <li> - <a href="javascript:void(0);"> - <h4> - Footer display issue - <small>32%</small> - </h4> - <div class="progress"> - <div class="progress-bar bg-pink" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 32%"> - </div> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <h4> - Make new buttons - <small>45%</small> - </h4> - <div class="progress"> - <div class="progress-bar bg-cyan" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 45%"> - </div> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <h4> - Create new dashboard - <small>54%</small> - </h4> - <div class="progress"> - <div class="progress-bar bg-teal" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 54%"> - </div> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <h4> - Solve transition issue - <small>65%</small> - </h4> - <div class="progress"> - <div class="progress-bar bg-orange" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 65%"> - </div> - </div> - </a> - </li> - <li> - <a href="javascript:void(0);"> - <h4> - Answer GitHub questions - <small>92%</small> - </h4> - <div class="progress"> - <div class="progress-bar bg-purple" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" style="width: 92%"> - </div> - </div> - </a> - </li> - </ul> - </li> - <li class="footer"> - <a href="javascript:void(0);">View All Tasks</a> - </li> - </ul> - </li> - <!-- #END# Tasks --> - <li class="pull-right"><a href="javascript:void(0);" class="js-right-sidebar" data-close="true"><i class="material-icons">more_vert</i></a></li> - </ul> - </div> - </div> - </nav> - <!-- #Top Bar --> - <section> - <!-- Left Sidebar --> - <aside id="leftsidebar" class="sidebar"> - <!-- User Info --> - <div class="user-info"> - <div class="image"> - <img src="/static/images/user.png" width="48" height="48" alt="User" /> - </div> - <div class="info-container"> - <div class="name" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ user.username }}</div> - <div class="email">{{ user.email }}</div> - <div class="btn-group user-helper-dropdown"> - <i class="material-icons" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">keyboard_arrow_down</i> - <ul class="dropdown-menu pull-right"> - <li><a href="/bench/logout"><i class="material-icons">input</i>Sign Out</a></li> - </ul> - </div> - </div> - </div> - <!-- #User Info --> - <!-- Menu --> - <div class="menu"> - <ul class="list"> - <li class="header">MAIN NAVIGATION</li> - <li class="active"> - <a href="{% url 'index' %}"> - <i class="material-icons">home</i> - <span>Home</span> - </a> - </li> - <li> - <a href="{% url 'repos' %}"> - <i class="material-icons">text_fields</i> - <span>Repos</span> - </a> - </li> - <li> - <a href="{% url 'run' %}"> - <i class="material-icons">layers</i> - <span>Run Benchmarks</span> - </a> - </li> - <li> - <a href="{% url 'tasks' %}" > - <i class="material-icons">widgets</i> - <span>Tasks</span> - </a> - </li> - </ul> - </div> - <!-- #Menu --> - <!-- Footer --> - <div class="legal"> - <div class="copyright"> - © 2016 - 2017 <a href="javascript:void(0);">AdminBSB - Material Design</a>. - </div> - <div class="version"> - <b>Version: </b> 1.0.5 - </div> - </div> - <!-- #Footer --> - </aside> - <!-- #END# Left Sidebar --> - <!-- Right Sidebar --> - <aside id="rightsidebar" class="right-sidebar"> - <ul class="nav nav-tabs tab-nav-right" role="tablist"> - <li role="presentation" class="active"><a href="#skins" data-toggle="tab">SKINS</a></li> - <li role="presentation"><a href="#settings" data-toggle="tab">SETTINGS</a></li> - </ul> - <div class="tab-content"> - <div role="tabpanel" class="tab-pane fade in active in active" id="skins"> - <ul class="demo-choose-skin"> - <li data-theme="red" class="active"> - <div class="red"></div> - <span>Red</span> - </li> - <li data-theme="pink"> - <div class="pink"></div> - <span>Pink</span> - </li> - <li data-theme="purple"> - <div class="purple"></div> - <span>Purple</span> - </li> - <li data-theme="deep-purple"> - <div class="deep-purple"></div> - <span>Deep Purple</span> - </li> - <li data-theme="indigo"> - <div class="indigo"></div> - <span>Indigo</span> - </li> - <li data-theme="blue"> - <div class="blue"></div> - <span>Blue</span> - </li> - <li data-theme="light-blue"> - <div class="light-blue"></div> - <span>Light Blue</span> - </li> - <li data-theme="cyan"> - <div class="cyan"></div> - <span>Cyan</span> - </li> - <li data-theme="teal"> - <div class="teal"></div> - <span>Teal</span> - </li> - <li data-theme="green"> - <div class="green"></div> - <span>Green</span> - </li> - <li data-theme="light-green"> - <div class="light-green"></div> - <span>Light Green</span> - </li> - <li data-theme="lime"> - <div class="lime"></div> - <span>Lime</span> - </li> - <li data-theme="yellow"> - <div class="yellow"></div> - <span>Yellow</span> - </li> - <li data-theme="amber"> - <div class="amber"></div> - <span>Amber</span> - </li> - <li data-theme="orange"> - <div class="orange"></div> - <span>Orange</span> - </li> - <li data-theme="deep-orange"> - <div class="deep-orange"></div> - <span>Deep Orange</span> - </li> - <li data-theme="brown"> - <div class="brown"></div> - <span>Brown</span> - </li> - <li data-theme="grey"> - <div class="grey"></div> - <span>Grey</span> - </li> - <li data-theme="blue-grey"> - <div class="blue-grey"></div> - <span>Blue Grey</span> - </li> - <li data-theme="black"> - <div class="black"></div> - <span>Black</span> - </li> - </ul> - </div> - <div role="tabpanel" class="tab-pane fade" id="settings"> - <div class="demo-settings"> - <p>GENERAL SETTINGS</p> - <ul class="setting-list"> - <li> - <span>Report Panel Usage</span> - <div class="switch"> - <label><input type="checkbox" checked><span class="lever"></span></label> - </div> - </li> - <li> - <span>Email Redirect</span> - <div class="switch"> - <label><input type="checkbox"><span class="lever"></span></label> - </div> - </li> - </ul> - <p>SYSTEM SETTINGS</p> - <ul class="setting-list"> - <li> - <span>Notifications</span> - <div class="switch"> - <label><input type="checkbox" checked><span class="lever"></span></label> - </div> - </li> - <li> - <span>Auto Updates</span> - <div class="switch"> - <label><input type="checkbox" checked><span class="lever"></span></label> - </div> - </li> - </ul> - <p>ACCOUNT SETTINGS</p> - <ul class="setting-list"> - <li> - <span>Offline</span> - <div class="switch"> - <label><input type="checkbox"><span class="lever"></span></label> - </div> - </li> - <li> - <span>Location Permission</span> - <div class="switch"> - <label><input type="checkbox" checked><span class="lever"></span></label> - </div> - </li> - </ul> - </div> - </div> - </div> - </aside> - <!-- #END# Right Sidebar --> - </section> - - <section class="content"> - <div class="container-fluid"> - {% block content %} - {% endblock %} - </section> - - <!-- Bootstrap Core Js --> - <script src="/static/plugins/bootstrap/js/bootstrap.js"></script> - - <!-- Select Plugin Js --> - <script src="/static/plugins/bootstrap-select/js/bootstrap-select.js"></script> - - <!-- Slimscroll Plugin Js --> - <script src="/static/plugins/jquery-slimscroll/jquery.slimscroll.js"></script> - - <!-- Waves Effect Plugin Js --> - <script src="/static/plugins/node-waves/waves.js"></script> - - <!-- Jquery CountTo Plugin Js --> - <script src="/static/plugins/jquery-countto/jquery.countTo.js"></script> - - <!-- Morris Plugin Js --> - <script src="/static/plugins/raphael/raphael.min.js"></script> - <script src="/static/plugins/morrisjs/morris.js"></script> - - <!-- ChartJs --> - <!--<script src="/static/plugins/chartjs/Chart.bundle.js"></script> - - <!-- Flot Charts Plugin Js - <script src="/static/plugins/flot-charts/jquery.flot.js"></script> - <script src="/static/plugins/flot-charts/jquery.flot.resize.js"></script> - <script src="/static/plugins/flot-charts/jquery.flot.pie.js"></script> - <script src="/static/plugins/flot-charts/jquery.flot.categories.js"></script> - <script src="/static/plugins/flot-charts/jquery.flot.time.js"></script>--> - - <!-- Sparkline Chart Plugin Js --> - <script src="/static/plugins/jquery-sparkline/jquery.sparkline.js"></script> - - <!-- Custom Js --> - <script src="/static/js/admin.js"></script> - <script src="/static/js/pages/index.js"></script> - - <!-- Demo Js --> - <script src="/static/js/demo.js"></script> -</body> - -</html> diff --git a/qtip/web/templates/bench/index.html b/qtip/web/templates/bench/index.html deleted file mode 100644 index b3625a33..00000000 --- a/qtip/web/templates/bench/index.html +++ /dev/null @@ -1,3 +0,0 @@ -{% extends 'bench/base.html' %} -{% block content %} -{% endblock %}
\ No newline at end of file diff --git a/qtip/web/templates/bench/repo_form.html b/qtip/web/templates/bench/repo_form.html deleted file mode 100644 index 158b8481..00000000 --- a/qtip/web/templates/bench/repo_form.html +++ /dev/null @@ -1,43 +0,0 @@ -{% extends 'bench/base.html' %} -{% block content %} - <div class="card" > - <div class="header"> - <h2>Repos</h2> - <ul class="header-dropdown m-r-0"> - <li> - <button data-toggle="modal" data-target="#repoform" class="btn bg-purple waves-effect"><i id="template-role" class="material-icons">{{ template_role }}</i></button> - </li> - </ul> - </div> - <div class="body"> - {% for repo in repos %} - <ul class="font-15" ><a href="{% url 'repo_update' repo.id %}">{{ repo.name }}</a></ul> - {% endfor %} - </div> - </div> - <div id="repoform" class="modal fade in" role="dialog" tabindex="-1"> - <div class="modal-dialog" role="document"> - <div class="modal-content"> - <div class="modal-header"></div> - <div class="modal-body"> - <form role="form" method="post" action="">{% csrf_token %} - {{ form }} - <div class=input-field" style="margin:30px 20px"> - <button type="submit" value="Login">Submit</button> - </div> - </form> - </div> - <div class="modal-footer"></div> - </div> - </div> - </div> - <script> - $(window).on('load',function(){ - if($('#template-role').text() == "edit") - { - console.log("hello"); - $('#repoform').modal('show'); - } - }); - </script> -{% endblock %} diff --git a/qtip/web/templates/bench/run.html b/qtip/web/templates/bench/run.html deleted file mode 100644 index eabd2ea6..00000000 --- a/qtip/web/templates/bench/run.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends 'bench/base.html' %} -{% block content %} - <div class="card"> - <div class="header"> - <h2>Run</h2> - </div> - <form role="form" method="post" action="">{% csrf_token %} - {{ form }} - <div class=input-field"> - <button class="btn" type="submit" value="Login"/>Submit</button> - </div> - </form> - </div> -{% endblock %}
\ No newline at end of file diff --git a/qtip/web/templates/bench/task_detail.html b/qtip/web/templates/bench/task_detail.html deleted file mode 100644 index 3f42c10a..00000000 --- a/qtip/web/templates/bench/task_detail.html +++ /dev/null @@ -1,34 +0,0 @@ -{% extends 'bench/base.html' %} -{% block content %} - <div class="card"> - <div class="header"> - <h2>Task</h2> - </div> - <div class="body"> - <table class="table-responsive table"> - <thead> - <tr role="row"> - <th>Repo</th> - <th>Status</th> - <th>Start Time</th> - <th>End Time</th> - <th>Run time</th> - </tr> - </thead> - <tbody> - <tr role="row"> - <td>{{ object.repo}}</td><td>{{ object.get_status_display }}</td><td>{{ object.start_time }}</td> - <td>{{ object.end_time }}</td><td>{{ object.duration }}</td><td>{{ object.log }}</td> - </tr> - </tbody> - </table> - </div> - <div class="body"> - <div> - <p> - {{ log | linebreaks }} - </p> - </div> - </div> - </div> -{% endblock %}
\ No newline at end of file diff --git a/qtip/web/templates/bench/task_list.html b/qtip/web/templates/bench/task_list.html deleted file mode 100644 index 074483ab..00000000 --- a/qtip/web/templates/bench/task_list.html +++ /dev/null @@ -1,77 +0,0 @@ -{% extends 'bench/base.html' %} -{% block content %} - - <!-- JQuery DataTable Css --> - <link href="/static/plugins/jquery-datatable/skin/bootstrap/css/dataTables.bootstrap.css" rel="stylesheet"> - <div class="card"> - <div class="header"> - <h2> - Tasks Log - </h2> - <ul class="header-dropdown m-r--5"> - <li class="dropdown"> - <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> - <i class="material-icons">more_vert</i> - </a> - <ul class="dropdown-menu pull-right"> - <li><a href="javascript:void(0);" class=" waves-effect waves-block">Action</a></li> - <li><a href="javascript:void(0);" class=" waves-effect waves-block">Another action</a></li> - <li><a href="javascript:void(0);" class=" waves-effect waves-block">Something else here</a></li> - </ul> - </li> - </ul> - </div> - <div class="body"> - <div class="table-responsive"> - <div id="DataTables_Table_1_wrapper" class="dataTables_wrapper form-inline dt-bootstrap"><div class="dt-buttons"></div> - <table class="table table-bordered table-striped table-hover dataTable js-exportable" id="DataTables_Table_1" role="grid" aria-describedby="DataTables_Table_1_info"> - <thead> - <tr role="row"> - <th class="sorting" aria-controls="DataTables_Table_1" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Name: activate to sort column descending">Repo</th> - <th class="sorting" aria-controls="DataTables_Table_1" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Name: activate to sort column descending">Status</th> - <th class="sorting" aria-controls="DataTables_Table_1" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Name: activate to sort column descending">Start Time</th> - <th class="sorting" aria-controls="DataTables_Table_1" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Name: activate to sort column descending">End Time</th> - <th class="sorting" aria-controls="DataTables_Table_1" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Name: activate to sort column descending">Run time</th> - </tr> - </thead> - <tbody> - {% for task in object_list %} - <tr role="row" onclick="location.href='{% url 'task_view' task.id %}'"> - <td>{{ task.repo }}</td> - <td>{{ task.get_status_display }}</td> - <td>{{ task.start_time }}</td> - <td>{{ task.end_time }}</td> - <td>{{ task.run_time }}</td> - </tr> - {% endfor %} - </tbody> - <tfoot> - <tr role="row"> - <th rowspan="1" colspan="1">Repo</th> - <th rowspan="1" colspan="1" >Status</th> - <th rowspan="1" colspan="1" >Start Time</th> - <th rowspan="1" colspan="1" >End Time</th> - <th rowspan="1" colspan="1">Run time</th> - </tr> - </tfoot> - </table> - </div> - </div> - </div> - - -<!-- Jquery DataTable Plugin Js --> - <script src="/static/plugins/jquery-datatable/jquery.dataTables.js"></script> - <script src="/static/plugins/jquery-datatable/skin/bootstrap/js/dataTables.bootstrap.js"></script> - <script src="/static/plugins/jquery-datatable/extensions/export/dataTables.buttons.min.js"></script> - <script src="/static/plugins/jquery-datatable/extensions/export/buttons.flash.min.js"></script> - <script src="/static/plugins/jquery-datatable/extensions/export/jszip.min.js"></script> - <script src="/static/plugins/jquery-datatable/extensions/export/pdfmake.min.js"></script> - <script src="/static/plugins/jquery-datatable/extensions/export/vfs_fonts.js"></script> - <script src="/static/plugins/jquery-datatable/extensions/export/buttons.html5.min.js"></script> - <script src="/static/plugins/jquery-datatable/extensions/export/buttons.print.min.js"></script> - - <!-- Custom Js --> - <script src="/static/js/admin.js"></script> - <script src="/static/js/pages/tables/jquery-datatable.js"></script> -{% endblock %}
\ No newline at end of file diff --git a/qtip/web/templates/registration/login.html b/qtip/web/templates/registration/login.html deleted file mode 100644 index 1e15b90b..00000000 --- a/qtip/web/templates/registration/login.html +++ /dev/null @@ -1,90 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="UTF-8"> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <title>Sign In | Bootstrap Based Admin Template - Material Design</title> - <!-- Favicon--> - <link rel="icon" href="/static/favicon.ico" type="image/x-icon"> - - <!-- Google Fonts --> - <link href="https://fonts.googleapis.com/css?family=Roboto:400,700&subset=latin,cyrillic-ext" rel="stylesheet" type="text/css"> - <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" type="text/css"> - - <!-- Bootstrap Core Css --> - <link href="/static/plugins/bootstrap/css/bootstrap.css" rel="stylesheet"> - - <!-- Waves Effect Css --> - <link href="/static/plugins/node-waves/waves.css" rel="stylesheet" /> - - <!-- Animation Css --> - <link href="/static/plugins/animate-css/animate.css" rel="stylesheet" /> - - <!-- Custom Css --> - <link href="/static/css/style.css" rel="stylesheet"> -</head> - -<body class="login-page"> - <div class="login-box"> - <div class="card"> - <div class="body"> - {% block content %} - <form id="sign_in" method="POST" action="/bench/login/" > {% csrf_token %} - <div class="msg">Sign in to start your session</div> - <div class="input-group"> - <span class="input-group-addon"> - <i class="material-icons">person</i> - </span> - <div class="form-line"> - <input type="text" class="form-control" name="{{ form.username.html_name}}" placeholder="Username" required autofocus> - </div> - </div> - <div class="input-group"> - <span class="input-group-addon"> - <i class="material-icons">lock</i> - </span> - <div class="form-line"> - <input type="password" class="form-control" name="{{ form.password.html_name }}" placeholder="Password" required> - </div> - </div> - <div class="row"> - <div class="col-xs-8 p-t-5"> - <input type="checkbox" name="rememberme" id="rememberme" class="filled-in chk-col-pink"> - <label for="rememberme">Remember Me</label> - </div> - <div class="col-xs-4"> - <button class="btn btn-block bg-pink waves-effect" type="submit">SIGN IN</button> - </div> - </div> - <div class="row m-t-15 m-b--20"> - <div class="col-xs-6"> - <a href="sign-up.html">Register Now!</a> - </div> - <div class="col-xs-6 align-right"> - <a href="forgot-password.html">Forgot Password?</a> - </div> - </div> - {{ form.errors }} - </form> - </div> - </div> - </div> - {% endblock %} - <!-- Jquery Core Js --> - <script src="/static/plugins/jquery/jquery.min.js"></script> - - <!-- Bootstrap Core Js --> - <script src="/static/plugins/bootstrap/js/bootstrap.js"></script> - - <!-- Waves Effect Plugin Js --> - <script src="/static/plugins/node-waves/waves.js"></script> - - <!-- Validation Plugin Js --> - <script src="/static/plugins/jquery-validation/jquery.validate.js"></script> - - <!-- Custom Js --> - <script src="/static/js/admin.js"></script> - <script src="/static/js/pages/examples/sign-in.js"></script> -</body> - -</html> diff --git a/qtip/web/web/__init__.py b/qtip/web/web/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/qtip/web/web/__init__.py +++ /dev/null diff --git a/qtip/web/web/settings.py b/qtip/web/web/settings.py deleted file mode 100644 index 8963ea89..00000000 --- a/qtip/web/web/settings.py +++ /dev/null @@ -1,126 +0,0 @@ -""" -Django settings for web project. - -Generated by 'django-admin startproject' using Django 1.11.3. - -For more information on this file, see -https://docs.djangoproject.com/en/1.11/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/1.11/ref/settings/ -""" - -import os - -# Build paths inside the project like this: os.path.join(BASE_DIR, ...) -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = '9=rwv)cv6&sao=xnl%b)-jrl(tnid$l(4n7i96@44+3-cog$)$' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = [ - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'bench.apps.BenchConfig', -] - -MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', -] - -ROOT_URLCONF = 'web.urls' - -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': ['templates'], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ], - }, - }, -] - -WSGI_APPLICATION = 'web.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/1.11/ref/settings/#databases - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), - } -} - - -# Password validation -# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators - -AUTH_PASSWORD_VALIDATORS = [ - { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', - }, -] - - -# Internationalization -# https://docs.djangoproject.com/en/1.11/topics/i18n/ - -LANGUAGE_CODE = 'en-us' - -TIME_ZONE = 'UTC' - -USE_I18N = True - -USE_L10N = True - -USE_TZ = True - - -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/1.11/howto/static-files/ - -STATIC_URL = '/static/' - -# Auth Settings -LOGIN_URL = '/bench/login/' -LOGIN_REDIRECT_URL = '/bench/dashboard/' -LOGOUT_REDIRECT_URL = LOGIN_URL diff --git a/qtip/web/web/urls.py b/qtip/web/web/urls.py deleted file mode 100644 index 49aaeb98..00000000 --- a/qtip/web/web/urls.py +++ /dev/null @@ -1,22 +0,0 @@ -"""web URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/1.11/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.conf.urls import url, include - 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) -""" -from django.conf.urls import include, url -from django.contrib import admin - -urlpatterns = [ - url(r'^bench/', include('bench.urls')), - url(r'^admin/', admin.site.urls), -] diff --git a/qtip/web/web/wsgi.py b/qtip/web/web/wsgi.py deleted file mode 100644 index 23d62e95..00000000 --- a/qtip/web/web/wsgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -WSGI config for web project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ -""" - -import os - -from django.core.wsgi import get_wsgi_application - -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings") - -application = get_wsgi_application() diff --git a/requirements.txt b/requirements.txt index 97229c29..9b48abe5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,5 +9,4 @@ six PyYAML humanfriendly asq -Django requests |