diff options
Diffstat (limited to 'ishtar_common')
5 files changed, 154 insertions, 64 deletions
diff --git a/ishtar_common/static/media/styles.css b/ishtar_common/static/media/styles.css index ff27f7477..46a1b556a 100644 --- a/ishtar_common/static/media/styles.css +++ b/ishtar_common/static/media/styles.css @@ -199,6 +199,10 @@ table.dataTable thead th, table.dataTable thead td { display: block; } +.chart-img{ + display: none; +} + /* à adapter */ #message, #message div{ diff --git a/ishtar_common/templates/ishtar/dashboards/dashboard_main.html b/ishtar_common/templates/ishtar/dashboards/dashboard_main.html index 827fcf02d..f2eefd6d3 100644 --- a/ishtar_common/templates/ishtar/dashboards/dashboard_main.html +++ b/ishtar_common/templates/ishtar/dashboards/dashboard_main.html @@ -13,25 +13,40 @@ <link rel="stylesheet" href="{{STATIC_URL}}js/jqplot/jquery.jqplot.min.css?ver={{VERSION}}" /> {% endblock %} {% block content %} - <script> +<script type="text/javascript"> $(function() { - $( "#dash-tabs" ).tabs({ - beforeActivate: function( event, ui ) { - $('.modal-progress').modal('show'); - }, - load: function( event, ui ) { - $('.modal-progress').modal('hide'); - } - }); + $('#dashboard .nav-link').click(function () { + var url = $(this).attr('data-url'); + $("#dashboard .card-body").load(url); + $('#dashboard li').removeClass('active'); + $('#dashboard li').removeClass('show'); + $(this).parent().tab('show'); + }) + $('#dashboard li:first-child a').click(); }); + </script> -<div id='dashboard'> - <div id="dash-tabs"> - <ul> - {% for label, app in app_list %} - <li><a href="{% url 'dashboard-main-detail' app %}">{{label}}</a></li>{% endfor %} - <li><a href="{% url 'dashboard-main-detail' 'users' %}">{% trans "Users" %}</a></li> - </ul> - </div> +<div id='dashboard' class="card"> + <div class="card-header"> + <ul class="nav nav-tabs card-header-tabs"> + {% for label, app in app_list %} + <li class="nav-item" id="{{app}}-tab"> + <a class="nav-link" href="#{{app}}-pane" + data-url="{% url 'dashboard-main-detail' app %}">{{label}}</a> + </li>{% endfor %} + <li class="nav-item" id="users-tab"> + <a class="nav-link" href="#users-pane" + data-url="{% url 'dashboard-main-detail' 'users' %}">{% trans "Users" %}</a> + </li> + </ul> + </div> + <div class="card-body tab-content"> + {% for label, app in app_list %} + <div class="tab-pane{% if forloop.counter0 == 0%} active{% endif %}" id="{{app}}-pane" + role="tabpanel" aria-labelledby="{{app}}-tab"></div>{% endfor %} + <div class="tab-pane" id="users-pane" role="tabpanel" + aria-labelledby="users-tab"></div> + </div> </div> + {% endblock %} diff --git a/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html b/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html index 5ebb05af4..ac779abe0 100644 --- a/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html +++ b/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html @@ -1,64 +1,134 @@ -{% load i18n date_formating humanize %} -<div class='dashboard' id="{{unique_id}}-tab"> - <div> +{% load i18n date_formating humanize table_form %} +<div id="{{unique_id}}-tab"> <h4>{% trans "Numbers" %}</h4> {% if form %} <div class='form'> <form method='post' action="{% url 'dashboard-main-detail' item_name %}" id='{{unique_id}}_form'> - <table>{% csrf_token %} - {{form}} - </table> - <button id="search_{{unique_id}}" class="submit">{% trans "Change" %}</button> + {% csrf_token %} + {% bs_form form %} + <div class="text-center"> + <button type='button' id="search_{{unique_id}}" + class="btn btn-primary"> + {% trans "Change" %}</button> + </div> </form> </div> {% endif %} <p><strong>{% trans "Total:" %}</strong> {{dashboard.total_number|intcomma}}</p> - <div class='table'> - <div id="chart_{{unique_id}}" style="height:400px; width:700px;"></div> - <p class='info-box'><i class="fa fa-info-circle" aria-hidden="true"></i> {% trans 'Draw rectangle on the graph to zoom. Double-click to reinitialize.' %}</p> - <div class='form chart-img-form'> - <button id="chart_img_display_{{unique_id}}" class='submit'>{% trans "Display as an image" %}</button> - <div id="chart_img_{{unique_id}}" class='chart-img'> - <div id="img_{{unique_id}}"></div> - <p class='info-box'><i class="fa fa-info-circle" aria-hidden="true"></i> {% trans 'Right-click on this image to save it.' %}</p> - </div> + <div> + <div id="chart_{{unique_id}}" + style="height:400px; width:700px; margin-right:auto; margin-left:auto"></div> + <p class='alert alert-info'> + {% trans 'Draw rectangle on the graph to zoom. Double-click to reinitialize.' %} + </p> + <div class='form chart-img-form'> + <div class="text-center"> + <button id="chart_img_display_{{unique_id}}" + type='button' class='btn btn-secondary'> + {% trans "Display as an image" %} + </button> + </div> + <div id="chart_img_{{unique_id}}" class='chart-img'> + <div class="card"> + <div id="img_{{unique_id}}" + class="card-img-top text-center"></div> + <div class="card-body"> + <div class='alert alert-info'> + {% trans 'Right-click on this image to save it.' %} + </div> + </div> + </div> + </div> + </div> </div> - </div> - <div class='clean-table'> - <div class='clean-table-wrap'> - <table> + <hr> + <table class="table table-striped"> {% for idx, lbl, values in dashboard.values %} - <tr class='idx {% if forloop.counter0|divisibleby:"2" %}even{%else%}odd{%endif%}'> + <tr> <th>{{lbl}}</th> {% for value in values reversed %}{% if forloop.parentloop.counter0 %}<td>{% else %}<th>{%endif%}{{value|date_formating }}{% if forloop.parentloop.counter0 %}</td>{% else %}</th>{%endif%}{% endfor%} </tr> {% endfor%} </table> - </div> - </div> + <hr> {% if dashboard.periods %} <h4>{% trans "By years" %}</h4> - <ul> - <li><strong>{% trans "Average:" %}</strong> {{dashboard.average}}</li> - <li><strong>{% trans "Variance:" %}</strong> {{dashboard.variance}}</li> - <li><strong>{% trans "Standard deviation:" %}</strong> {{dashboard.standard_deviation}}</li> - <li><strong>{% trans "Median:" %}</strong> {{dashboard.median}}</li> - <li><strong>{% trans "Mode:" %}</strong> {{dashboard.mode}}</li> - </ul> + <dl class="row"> + <dt class="col-sm-3"> + {% trans "Average:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.average}} + </dd> + + <dt class="col-sm-3"> + {% trans "Variance:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.variance}} + </dd> + + <dt class="col-sm-3"> + {% trans "Standard deviation:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.standard_deviation}} + </dd> + <dt class="col-sm-3"> + {% trans "Median:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.median}} + </dd> + <dt class="col-sm-3"> + {% trans "Mode:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.mode}} + </dd> + </dl> + <hr> {% endif %} {% if dashboard.operation_average %} <h4>{% trans "By operations" %}</h4> - <ul> - <li><strong>{% trans "Average:" %}</strong> {{dashboard.operation_average}}</li> - <li><strong>{% trans "Variance:" %}</strong> {{dashboard.operation_variance}}</li> - <li><strong>{% trans "Standard deviation:" %}</strong> {{dashboard.operation_standard_deviation}}</li> - <li><strong>{% trans "Median:" %}</strong> {{dashboard.operation_median}}</li> - <li><strong>{% trans "Mode:" %}</strong> {{dashboard.operation_mode}}</li> - </ul> + <dl class="row"> + <dt class="col-sm-3"> + {% trans "Average:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.operation_average}} + </dd> + + <dt class="col-sm-3"> + {% trans "Variance:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.operation_variance}} + </dd> + + <dt class="col-sm-3"> + {% trans "Standard deviation:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.operation_standard_deviation}} + </dd> + <dt class="col-sm-3"> + {% trans "Median:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.operation_median}} + </dd> + <dt class="col-sm-3"> + {% trans "Mode:" %} + </dt> + <dd class="col-sm-9"> + {{dashboard.operation_mode}} + </dd> + </dl> + <hr> {% endif %} - <div class='clean-table'> <h4>{% trans "Created last" %}</h4> - <table> + <table class="table table-striped"> <tr><th>{{lbl}}</th><th>{% trans "Created" %}</th><th></th></tr> {% for item in dashboard.lasts %}<tr> <td class='ref'>{{item}}</td> @@ -68,10 +138,9 @@ </a>{%endif%}</td> </tr>{% endfor %} </table> - </div> - <div class='clean-table'> + <hr> <h4>{% trans "Recent changes" %}</h4> - <table> + <table class="table table-striped"> <tr><th>{{lbl}}</th><th>{% trans "Modified" %}</th><th></th></tr> {% for item in dashboard.recents %}<tr> <td class='ref'>{{item}}</td> @@ -81,8 +150,7 @@ </a>{%endif%}</td> </tr>{% endfor %} </table> - </div> - </div> +</div> <script language="javascript" type="text/javascript"> $(document).ready(function(){ @@ -177,9 +245,12 @@ $('#search_{{unique_id}}').click(function (){ return false; }); +/* {% if item_name == 'files' or item_name == "operations" or item_name == "treatments" or item_name == "treatmentfiles" %} load_jquerydate_{{item_name}}_after(); load_jquerydate_{{item_name}}_before(); {% endif %} +*/ + }); </script> diff --git a/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail_users.html b/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail_users.html index 6ffd8c3c9..4d9857bec 100644 --- a/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail_users.html +++ b/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail_users.html @@ -21,8 +21,7 @@ var plot_users = jQuery.jqplot ('user_chart', [values_users], }); </script> <div id="user_chart" style="height:300px; width:700px;"></div> - <div class='table'> - <table class='resume'> + <table class='table table-striped'> <tr><th>{% trans "User type" %}</th><th>{% trans "Number" %}</th></tr> {% for user_type in ishtar_users.types %} <tr> @@ -31,6 +30,5 @@ var plot_users = jQuery.jqplot ('user_chart', [values_users], </tr> {% endfor%} </table> - </div> </div> diff --git a/ishtar_common/views.py b/ishtar_common/views.py index b0365c1cf..301860ae3 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1521,6 +1521,7 @@ def dashboard_main(request, dct, obj_id=None, *args, **kwargs): dct = {'app_list': app_list} return render(request, 'ishtar/dashboards/dashboard_main.html', dct) + DASHBOARD_FORMS = { 'files': DashboardFormFile, 'operations': DashboardFormOpe, 'treatments': DashboardTreatmentForm, @@ -1655,6 +1656,7 @@ def merge_action(model, form, key): return merge + person_merge = merge_action(models.Person, forms.MergePersonForm, 'person') organization_merge = merge_action( models.Organization, |