'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
+ 'django.contrib.webdesign',
'qcg',
)
--- /dev/null
+html {
+ /* needed to push down footer */
+ position: relative;
+ min-height: 100%;
+}
+
+body {
+ /* space for footer */
+ margin-bottom: 70px;
+}
+
+footer.navbar-fixed-bottom {
+ position: absolute;
+}
+
+.page-header {
+ margin-top: 0;
+}
-{% load staticfiles %}
+{% load staticfiles webdesign %}
<!DOCTYPE html>
<html lang="pl">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
-
- <title>Portal QCG</title>
-
- <link href="{% static 'qcg/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
- </head>
- <body>
- <nav class="navbar navbar-default navbar-static-top">
- <div class="container">
- <div class="navbar-header">
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
- <span class="sr-only">Rozwiń menu</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <a class="navbar-brand" href="/">QCG</a>
- </div>
- <div id="navbar" class="collapse navbar-collapse">
- <ul class="nav navbar-nav">
-{# <li class="active"><a href="#"></a></li>#}
- </ul>
- </div><!--/.nav-collapse -->
- </div>
- </nav>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <title>{% block title %}Strona główna{% endblock %} - Portal QCG</title>
+ <link href="{% static 'qcg/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
+ <link href="{% static 'qcg/main.css' %}" rel="stylesheet">
+ {% block extra_css %}{% endblock %}
+</head>
+<body>
+ <nav class="navbar navbar-default navbar-static-top">
<div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+ <span class="sr-only">Rozwiń menu</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/">Portal QosCosGrid</a>
+ </div>
+ <div id="navbar" class="collapse navbar-collapse">
+ <ul class="nav navbar-nav">
+ <li{% ifequal request.resolver_match.url_name 'jobs' %} class="active"{% endifequal %}>
+ <a href="{% url 'jobs' %}">Zadania</a>
+ </li>
+ </ul>
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="#" class="navbar-link">Zaloguj</a></li>
+ </ul>
+ </div><!--/.nav-collapse -->
+ </div>
+ </nav>
+
+ <div class="container">
+ {% block container %}
- <div>
+ <div class="jumbotron">
<h1>Hello, cruel world!</h1>
+
+ {% lorem 1 p %}
+ </div>
+
+ <div class="row">
+ <div class="col-md-6">
+ <h3>PL-GRID jest super!</h3>
+
+ {% lorem 1 p %}
+ </div>
+ <div class="col-md-6"></div>
+ </div>
+
+ <div class="row">
+ <div class="col-md-6"></div>
+ <div class="col-md-6">
+ <h3>QosCosGrid jest super!</h3>
+
+ {% lorem 1 p %}
+ </div>
</div>
- </div><!-- /.container -->
+ <p class="text-center" style="margin: 20px 0">
+ <a class="btn btn-lg btn-primary" href="#" role="button">Zaloguj się korzystając z OpenID</a>
+ </p>
+
+ {% endblock container %}
+ </div><!-- /.container -->
+
+ <footer class="navbar navbar-default navbar-fixed-bottom">
+ <div class="container">
+ <div class="row">
+ <p class="navbar-text text-center" style="float: none">
+ Copyright © 2015, <a href="http://www.man.poznan.pl" class="navbar-link">PCSS</a>
+ </p>
+ </div>
+ </div>
+ </footer>
- <script src="{% static 'qcg/jquery/jquery.min.js' %}"></script>
- <script src="{% static 'qcg/bootstrap/js/bootstrap.min.js' %}"></script>
- </body>
+ <script src="{% static 'qcg/jquery/jquery.min.js' %}"></script>
+ <script src="{% static 'qcg/bootstrap/js/bootstrap.min.js' %}"></script>
+ {% block extra_js %}{% endblock %}
+</body>
</html>
--- /dev/null
+{% extends 'qcg/base.html' %}
+
+{% block container %}
+ <h1 class="page-header">{% block title %}Zadanie J1372950219798__8575{% endblock %}</h1>
+
+ <h2>Szczegóły</h2>
+
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">Note</div>
+ <div class="col-sm-10">urban</div>
+ </div>
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">TaskType</div>
+ <div class="col-sm-10">SINGLE</div>
+ </div>
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">SubmissionTime</div>
+ <div class="col-sm-10">Fri Jul 19 11:54:20 CEST 2013</div>
+ </div>
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">FinishTime</div>
+ <div class="col-sm-10">Fri Jul 19 12:02:33 CEST 2013</div>
+ </div>
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">Status</div>
+ <div class="col-sm-10">FINISHED</div>
+ </div>
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">Purged</div>
+ <div class="col-sm-10">false</div>
+ </div>
+
+
+ <h2>Alokacja</h2>
+
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">HostName</div>
+ <div class="col-sm-10">hydra.icm.edu.pl</div>
+ </div>
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">ProcessesCount</div>
+ <div class="col-sm-10">16</div>
+ </div>
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">SubmissionTime</div>
+ <div class="col-sm-10">Fri Jul 19 11:54:20 CEST 2013</div>
+ </div>
+ <div class="row">
+ <div class="col-sm-2 text-right text-muted">FinishTime</div>
+ <div class="col-sm-10">Fri Jul 19 12:02:33 CEST 2013</div>
+ </div>
+
+{% endblock container %}
--- /dev/null
+{% extends 'qcg/base.html' %}
+
+{% load staticfiles %}
+
+{% block extra_css %}
+ <link href="{% static 'qcg/treegrid/css/jquery.treegrid.css' %}" rel="stylesheet">
+
+ <style>
+ .treegrid-expander {
+ opacity: 0.5;
+ }
+
+ .treegrid-expander:hover {
+ opacity: 1;
+ }
+ </style>
+{% endblock %}
+
+{% block extra_js %}
+ <script src="{% static 'qcg/treegrid/js/jquery.treegrid.js' %}"></script>
+
+ <script>
+ $(function() {
+ $('.tree').treegrid({
+ initialState: 'collapsed',
+ expanderExpandedClass: 'glyphicon glyphicon-chevron-down small',
+ expanderCollapsedClass: 'glyphicon glyphicon-chevron-right small',
+ onChange: function() {
+ $(this).find('.glyphicon-folder-open,.glyphicon-folder-close')
+ .toggleClass('glyphicon-folder-open').toggleClass('glyphicon-folder-close');
+ }
+ });
+
+
+ });
+ </script>
+{% endblock %}
+
+{% block container %}
+ <h1 class="page-header">
+ {% block title %}Lista zadań{% endblock %}
+ </h1>
+
+ <form class="row form-inline">
+ <div class="col-md-9 col-md-offset-1">
+ <div class="form-group">
+ <label class="sr-only" for="search">Szukaj w opisie lub uwagach</label>
+ <input type="text" class="form-control" id="search" placeholder="Szukaj w opisie lub uwagach">
+ </div>
+ <div class="form-group">
+ <label class="sr-only" for="status">Status</label>
+ <select class="form-control" id="status">
+ <option>Wybierz stan</option>
+ <option>PENDING</option>
+ <option>RUNNING</option>
+ <option>FAILED</option>
+ <option>FINISHED</option>
+ </select>
+ </div>
+ <div class="form-group">
+ <label class="sr-only" for="cluster">Klaster</label>
+ <select class="form-control" id="cluster">
+ <option>Wybierz klaster</option>
+ <option>Inula</option>
+ <option>Galera</option>
+ <option>Hydra</option>
+ <option>Zeus</option>
+ </select>
+ </div>
+ </div>
+ <div class="col-md-1">
+ <button type="submit" class="btn btn-default">Filtruj</button>
+ </div>
+ </form>
+
+ <hr />
+
+ <table class="table table-hover tree">
+ <thead>
+ <tr>
+ <th style="width: 80px"></th>
+ <th>Opis</th>
+ <th>Wysłane</th>
+ <th>Start</th>
+ <th>Koniec</th>
+ <th>Status</th>
+ <th>Host</th>
+ <th>Uwagi</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="treegrid-1">
+ <td>
+ <a href="{% url 'job' %}">
+ <span class="glyphicon glyphicon-file" aria-hidden="true"></span>
+ </a>
+ </td>
+ <td>urban</td>
+ <td>04.07.13 17:03</td>
+ <td></td>
+ <td></td>
+ <td>PENDING</td>
+ <td>hydra</td>
+ <td></td>
+ </tr>
+ <tr class="treegrid-2">
+ <td>
+ <a href="{% url 'job' %}">
+ <span class="glyphicon glyphicon-folder-close" aria-hidden="true"></span>
+ </a>
+ </td>
+ <td>urban</td>
+ <td>04.07.13 17:03</td>
+ <td></td>
+ <td></td>
+ <td>RUNNING</td>
+ <td>inula</td>
+ <td></td>
+ </tr>
+ <tr class="treegrid-3 treegrid-parent-2">
+ <td>
+ <a href="{% url 'job' %}">
+ <span class="glyphicon glyphicon-file" aria-hidden="true"></span>
+ </a>
+ </td>
+ <td>urban</td>
+ <td>04.07.13 17:03</td>
+ <td></td>
+ <td></td>
+ <td>FINISHED</td>
+ <td>inula</td>
+ <td></td>
+ </tr>
+ <tr class="treegrid-4">
+ <td>
+ <a href="{% url 'job' %}">
+ <span class="glyphicon glyphicon-file" aria-hidden="true"></span>
+ </a>
+ </td>
+ <td>urban</td>
+ <td>04.07.13 17:03</td>
+ <td></td>
+ <td></td>
+ <td>CANCELED</td>
+ <td>inula</td>
+ <td></td>
+ </tr>
+ </tbody>
+ </table>
+
+ <nav class="text-center">
+ <ul class="pagination">
+ <li>
+ <a href="#" aria-label="Previous">
+ <span aria-hidden="true">«</span>
+ </a>
+ </li>
+ <li><a href="#">1</a></li>
+ <li><a href="#">2</a></li>
+ <li><a href="#">3</a></li>
+ <li><a href="#">4</a></li>
+ <li><a href="#">5</a></li>
+ <li>
+ <a href="#" aria-label="Next">
+ <span aria-hidden="true">»</span>
+ </a>
+ </li>
+ </ul>
+ </nav>
+
+{% endblock container %}
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
+ url(r'^jobs/$', views.jobs_list, name='jobs'),
+ url(r'^job/$', views.job_details, name='job'),
)
def index(request):
return render(request, 'qcg/base.html')
+
+
+def jobs_list(request):
+ return render(request, 'qcg/jobs.html')
+
+
+def job_details(request):
+ return render(request, 'qcg/job.html')