From a5d8ec473bf69cbb0540e3afadd66e1b57ebeff4 Mon Sep 17 00:00:00 2001 From: Ciro Scognamiglio Date: Thu, 3 Jul 2014 17:54:59 +0200 Subject: [PATCH] moved requests to management --- myslice/urls.py | 5 + portal/static/css/onelab.css | 86 +++++-- .../templates/onelab/onelab_institution.html | 78 +++--- .../onelab_management-tab-requests.html | 228 ++++++++++++++++++ .../onelab/onelab_widget-topmenu.html | 11 +- portal/templates/slicerequest_view.html | 25 +- portal/templates/supportview.html | 2 +- portal/validationview.py | 21 +- 8 files changed, 361 insertions(+), 95 deletions(-) create mode 100644 portal/templates/onelab/onelab_management-tab-requests.html diff --git a/myslice/urls.py b/myslice/urls.py index a49156e1..403db6a3 100644 --- a/myslice/urls.py +++ b/myslice/urls.py @@ -31,6 +31,8 @@ import portal.slicetabtestbeds import portal.slicetabusers import portal.slicetabmeasurements +import portal.managementtabrequests + #### high level choices # main entry point (set to the / URL) # beware that if this view is broken you end up in an endless cycle... @@ -90,6 +92,9 @@ urls = [ (r'^testbeds/(?P[^/]+)/?$', portal.slicetabtestbeds.SliceTabTestbeds.as_view()), (r'^measurements/(?P[^/]+)/?$', portal.slicetabmeasurements.SliceTabMeasurements.as_view()), (r'^experiment/(?P[^/]+)/?$', portal.slicetabexperiment.ExperimentView.as_view()), + # + (r'^management/requests/?$', portal.managementtabrequests.ManagementRequestsView.as_view()), + # url(r'^portal/', include('portal.urls')), # SLA diff --git a/portal/static/css/onelab.css b/portal/static/css/onelab.css index d6582627..0d97f929 100644 --- a/portal/static/css/onelab.css +++ b/portal/static/css/onelab.css @@ -32,27 +32,73 @@ h3 { font-size:13pt; color:#201E62; } - -div.wrapper { - width:980px; - margin:0 auto; - position:relative; -} -div.container { - /*width:980px; - margin:25px auto;*/ -} -div.wide { - margin:25px auto; - padding:0 25px; -} - span.label { font-size:11pt; color:gray; font-weight:normal; padding:0; } +div.el { + padding-bottom:15px; +} +/* buttons */ +button.btn { + padding:6px 10px; + border-radius:5px; + font-size:10pt; + font-weight:normal; +} +button.btn span.glyphicon { + margin-right:6px; +} +button.btn-default { + border-bottom:3px solid #cccccc; +} +button.btn-default:hover { + background-color:white; + border:1px solid #ADADAD; + border-bottom:3px solid #ADADAD; +} +button.btn-default:active { + background-color:white; + border:1px solid #ADADAD; + border-bottom:1px solid #ADADAD; + box-shadow:none; +} +button.btn-primary { + border-bottom:3px solid #3071A9; +} +button.btn-primary:hover { + border-bottom:3px solid #3071A9; +} +button.btn-primary:active { + box-shadow:none; +} +button.btn-danger { + border-bottom:2px solid #FF7394; +} +button.btn-danger:hover { + border-bottom:2px solid #D2322D; +} +button.btn-danger:active { + border:1px solid #D2322D; + box-shadow:none; +} +button.btn-onelab { + border:0; + border-bottom:2px solid #540086; + background-color:#302562; + color:white; +} +button.btn-onelab:hover { + border:0; + border-bottom:2px solid #540086; + background-color:#302562; + color:#FFFFCC; +} +button.btn-primary:active { + box-shadow:none; +} /***** Notifications *****/ .warning { border: 1px solid red; @@ -143,15 +189,6 @@ div#home-dashboard div#home-slice-list li { div.well { } /**/ -/* BUTTON */ -.btn.btn-default { - font-weight: bold; -} - -.btn.btn-default:hover { - font-weight: bold; -} -/**/ /* TABLE */ table.table { margin:0; @@ -371,6 +408,7 @@ div.dataTables_filter label{ -webkit-box-shadow: 0 0 1px rgba(82,82,82,0.6); box-shadow: 0 0 1px rgba(82,82,82,0.6); height:61px; + margin-bottom:15px; background-color:white; } div.navigation { diff --git a/portal/templates/onelab/onelab_institution.html b/portal/templates/onelab/onelab_institution.html index 409c13f3..7fea6352 100644 --- a/portal/templates/onelab/onelab_institution.html +++ b/portal/templates/onelab/onelab_institution.html @@ -12,13 +12,14 @@
  • Institution Institution {{user_details.parent_authority}}
  • Users
  • Slices
  • +
  • Requests
  • -
    +
    Loading Authority
    -
    +
    Loading Slices
    + {%if 'is_pi' in pi %} +
    + +
    + {% endif %}
    - {%if 'is_pi' in pi %} - - {%else%} - - {%endif%} +
    + {% if 'is_pi' in pi %} + + {% else %} + + {% endif %} +

    Loading Slices
    + {% if 'is_pi' in pi %} +
    + + +
    + {% endif %} +
    +
    +
    {% endblock %} diff --git a/portal/templates/onelab/onelab_management-tab-requests.html b/portal/templates/onelab/onelab_management-tab-requests.html new file mode 100644 index 00000000..8db652f4 --- /dev/null +++ b/portal/templates/onelab/onelab_management-tab-requests.html @@ -0,0 +1,228 @@ + + +
    +

    Authorities

    +
    +{% if my_authorities %} + + {% for authority, requests in my_authorities.items %} + +
    +

    {{authority}}

    +
    + + + + + + + + + {% for request in requests %} + + + + + + + + + + + + + + {% endfor %} +
    + TypeIdDetailsTimestampStatus
    + {% if request.allowed == 'allowed' %} + + {% else %} + {% if request.allowed == 'expired' %} + expired + {% else %} {# denied #} + denied + {% endif %} + {% endif %} + {{ request.type }}{{ request.id }} + {% if request.type == 'user' %} + Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}} + {% else %} + {% if request.type == 'slice' %} + Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}} + {% else %} {# authority #} + Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}} + {% endif %} + {% endif %} + {{ request.timestamp }}
    +
    + {% endfor %} + +{% else %} +
    + There is no pending request waiting for validation. +
    +{% endif %} + +
    +

    Sub-Authorities

    +
    +{% if sub_authorities %} + + {% for authority, requests in sub_authorities.items %} +
    +

    {{authority}}

    + + + + + + + + {% for request in requests %} + + + + + + + + + + + + {% endfor %} +
    + TypeIdDetailsTimestampStatus
    + {% if request.allowed == 'allowed' %} + + {% else %} + {% if request.allowed == 'expired' %} + expired + {% else %} {# denied #} + denied + {% endif %} + {% endif %} + {{ request.type }}{{ request.id }} + {% if request.type == 'user' %} + Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}} + {% else %} + {% if request.type == 'slice' %} + Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}} + {% else %} {# authority #} + Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}} + {% endif %} + {% endif %} + {{ request.timestamp }}
    +
    + {% endfor %} +{% else %} +
    + There is no pending request waiting for validation. +
    +{% endif %} + +
    +

    Authorities with delegation

    +
    + +{% if delegation_authorities %} + + {% for authority, requests in delegation_authorities.items %} +
    +

    {{authority}}

    + + + + + + + + {% for request in requests %} + + + + + + + + + + + + {% endfor %} +
    + TypeIdDetailsTimestampStatus
    + {% if request.allowed == 'allowed' %} + + {% else %} + {% if request.allowed == 'expired' %} + expired + {% else %} {# denied #} + denied + {% endif %} + {% endif %} + {{ request.type }}{{ request.id }} + {% if request.type == 'user' %} + Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}} + {% else %} + {% if request.type == 'slice' %} + Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}} + {% else %} {# authority #} + Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}} + {% endif %} + {% endif %} + {{ request.timestamp }}
    +
    + {% endfor %} +{% else %} +
    + There is no pending request waiting for validation. +
    +{% endif %} +
    + +
    diff --git a/portal/templates/onelab/onelab_widget-topmenu.html b/portal/templates/onelab/onelab_widget-topmenu.html index 23492ce5..dcde2ca0 100644 --- a/portal/templates/onelab/onelab_widget-topmenu.html +++ b/portal/templates/onelab/onelab_widget-topmenu.html @@ -6,7 +6,7 @@ OneLab Portal - Future Internet Testbeds
    {% if username %} -