mock views for job list and detail
authorMaciej Tronowski <mtro@man.poznan.pl>
Thu, 12 Feb 2015 12:02:41 +0000 (13:02 +0100)
committerMaciej Tronowski <mtro@man.poznan.pl>
Thu, 12 Feb 2015 12:02:41 +0000 (13:02 +0100)
plgng/settings.py
qcg/static/qcg/main.css [new file with mode: 0644]
qcg/templates/qcg/base.html
qcg/templates/qcg/job.html [new file with mode: 0644]
qcg/templates/qcg/jobs.html [new file with mode: 0644]
qcg/urls.py
qcg/views.py

index afad91e..7971690 100644 (file)
@@ -41,6 +41,7 @@ INSTALLED_APPS = (
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
+    'django.contrib.webdesign',
     'qcg',
 )
 
     'qcg',
 )
 
diff --git a/qcg/static/qcg/main.css b/qcg/static/qcg/main.css
new file mode 100644 (file)
index 0000000..57a2b84
--- /dev/null
@@ -0,0 +1,18 @@
+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;
+}
index c05ddbe..c711581 100644 (file)
@@ -1,44 +1,88 @@
-{% load staticfiles %}
+{% load staticfiles webdesign %}
 
 <!DOCTYPE html>
 <html lang="pl">
 
 <!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="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>
                 <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>
 
-        </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 &copy; 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>
 </html>
diff --git a/qcg/templates/qcg/job.html b/qcg/templates/qcg/job.html
new file mode 100644 (file)
index 0000000..3a0f787
--- /dev/null
@@ -0,0 +1,53 @@
+{% 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 %}
diff --git a/qcg/templates/qcg/jobs.html b/qcg/templates/qcg/jobs.html
new file mode 100644 (file)
index 0000000..747d382
--- /dev/null
@@ -0,0 +1,171 @@
+{% 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">&laquo;</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">&raquo;</span>
+                </a>
+            </li>
+        </ul>
+    </nav>
+
+{% endblock container %}
index 249bdf5..caa6139 100644 (file)
@@ -4,4 +4,6 @@ from qcg import views
 
 urlpatterns = patterns('',
     url(r'^$', views.index, name='index'),
 
 urlpatterns = patterns('',
     url(r'^$', views.index, name='index'),
+    url(r'^jobs/$', views.jobs_list, name='jobs'),
+    url(r'^job/$', views.job_details, name='job'),
 )
 )
index e7be90a..9476197 100644 (file)
@@ -3,3 +3,11 @@ from django.shortcuts import render
 
 def index(request):
     return render(request, 'qcg/base.html')
 
 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')