[chronojump-server] Showing players list if you are the responsible of the orginization Initial creation but not complet



commit 4afa28ec6f4fe55279ac186258cb2f86edf4ef60
Author: Marcos Venteo García <marcos@Hoth.local>
Date:   Tue Jul 10 07:57:17 2018 +0200

    Showing players list if you are the responsible of the orginization
    Initial creation but not completed add player form, pending to add the source from flask

 .../chronojump_networks/organizations/urls.py      |   5 +
 .../chronojump_networks/organizations/views.py     |   7 +
 .../players/add_edit_player_form.html              |  44 +++++++
 .../organizations/players/players_list.html        | 146 +++++++++++++++++++++
 .../chronojump_networks/templates/pages/index.html |   2 +-
 5 files changed, 203 insertions(+), 1 deletion(-)
---
diff --git a/chronojumpserver-django/chronojump_networks/organizations/urls.py 
b/chronojumpserver-django/chronojump_networks/organizations/urls.py
index 5ff3cf6..367c517 100644
--- a/chronojumpserver-django/chronojump_networks/organizations/urls.py
+++ b/chronojumpserver-django/chronojump_networks/organizations/urls.py
@@ -33,6 +33,11 @@ urlpatterns = [
         view=views.GroupPlayerTemplateView.as_view(),
         name='group_players_list'
     ),
+    url(
+        regex=r'^(?P<organization_id>\d+)/players$',
+        view=views.PlayerListTemplateView.as_view(),
+        name='players_list'
+    ),
     url(
         regex=r'^(?P<organization_id>\d+)/gyms/(?P<gym_id>\d+)$',
         view=views.GymDetailTemplateView.as_view(),
diff --git a/chronojumpserver-django/chronojump_networks/organizations/views.py 
b/chronojumpserver-django/chronojump_networks/organizations/views.py
index 6c71649..f123dd5 100644
--- a/chronojumpserver-django/chronojump_networks/organizations/views.py
+++ b/chronojumpserver-django/chronojump_networks/organizations/views.py
@@ -58,6 +58,13 @@ class GymDetailTemplateView(LoginRequiredMixin, TemplateView):
         context['gym'] = Gym.objects.get(id=gym_id)
         return context
 
+class PlayerListTemplateView(LoginRequiredMixin, TemplateView):
+    """ Show the Player List
+    """
+    template_name = 'organizations/players/players_list.html'
+
+
+
 #
 # Login methods and views
 #
diff --git 
a/chronojumpserver-django/chronojump_networks/templates/organizations/players/add_edit_player_form.html 
b/chronojumpserver-django/chronojump_networks/templates/organizations/players/add_edit_player_form.html
new file mode 100644
index 0000000..d797868
--- /dev/null
+++ b/chronojumpserver-django/chronojump_networks/templates/organizations/players/add_edit_player_form.html
@@ -0,0 +1,44 @@
+{% load static i18n %}
+
+<!-- Modal Form to add a new task -->
+<div id="addPlayerModalForm" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="{% trans 'Add 
Player' %}" aria-hidden="true">
+       <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
+               <div class="modal-content">
+      <div class="modal-header">
+        <h5 class="modal-title" id="taskModalTitle"></h5>
+        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+          <span aria-hidden="true">&times;</span>
+        </button>
+      </div>
+                       <div class="modal-body">
+       <form>
+          <div class="col-sm-4">
+                                               <div class="form-group col-sm-4">
+                                                       <label for="photo">{% trans 'Player photography' 
%}</label>
+                                                       <select name="gym" class="form-control" 
id="gymSelect">
+                                                               {% for gym in user.organization.gyms.all %}
+                                                               <option value={{gym.id}}>{{gym.name}}</option>
+                                                               {% endfor %}
+                                                       </select>
+                                               </div>
+          </div>
+          <div class="col-sm-8">
+            <div class="form-group">
+                                                       <label for="fullname">{% trans 'Fullname' %}</label>
+                                                       <input name="fullname" class="form-control" 
id="fullname" type="text">
+                                               </div>
+          </div>
+
+        </form>
+
+
+                       </div> <!-- .modal-body -->
+                       <div class="modal-footer">
+                               <button type="button" class="btn btn-outline-secondary" 
data-dismiss="modal">{% trans 'Cancel' %}</button>
+        <button id="btnAddModifyPlayer" type="button" class="btn btn-outline-primary" >{% trans 'Add player' 
%}</button>
+                       </div>
+               </div>
+               <!-- /.modal-content -->
+       </div>
+       <!-- /.modal-dialog -->
+</div>
diff --git a/chronojumpserver-django/chronojump_networks/templates/organizations/players/players_list.html 
b/chronojumpserver-django/chronojump_networks/templates/organizations/players/players_list.html
new file mode 100644
index 0000000..0503d25
--- /dev/null
+++ b/chronojumpserver-django/chronojump_networks/templates/organizations/players/players_list.html
@@ -0,0 +1,146 @@
+{% extends 'layout.html' %}
+{% load static i18n %}
+
+{% block title %}Chronojump Networks | {{user.organization.name}} | {{group.name}}{% endblock %}
+
+{% block css %}
+{{ block.super }}
+<link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css/dataTables.bootstrap4.min.css";>
+<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.5.1/css/buttons.bootstrap4.min.css";>
+<!--<link rel="stylesheet" 
href="https://cdn.datatables.net/fixedcolumns/3.2.4/css/fixedColumns.bootstrap4.min.css";>-->
+
+{% endblock %}
+
+{% block content %}
+{% csrf_token %}
+
+<div class="page-header row">
+  <div class="col-sm-9">
+    <!--<img src="/media/{{ user.organization.image }}" class="img-fluid float-left" width="48px" 
height="48px" style="margin-top:12px;margin-right:10px;"/>-->
+    <h1 class="display-4">{% trans 'Players list' %}</h1>
+  </div>
+
+</div>
+
+<div class="row datatables_wrapped">
+  <div class="col">
+       <table id="players" cellspacing="0" cellpadding="0" class="table table-sm" style="width:100%">
+       </table>
+  </div>
+</div>
+
+<!-- Include Modal Task Form -->
+{% include 'organizations/players/add_edit_player_form.html' %}
+
+
+
+
+
+{% endblock %}
+
+{% block javascript %}
+{{ block.super }}
+<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js";></script>
+<script src="https://cdn.datatables.net/1.10.16/js/dataTables.bootstrap4.min.js";></script>
+<script src="https://cdn.datatables.net/buttons/1.5.1/js/dataTables.buttons.min.js";></script>
+<script src="https://cdn.datatables.net/buttons/1.5.1/js/buttons.bootstrap4.min.js";></script>
+<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js";></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js";></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js";></script>
+<script src="https://cdn.datatables.net/buttons/1.5.1/js/buttons.print.min.js";></script>-->
+<script src="https://cdn.datatables.net/buttons/1.5.1/js/buttons.html5.min.js";></script>
+<!--<script src="https://cdn.datatables.net/buttons/1.5.1/js/buttons.colVis.min.js";></script>
+<script src="https://cdn.datatables.net/fixedcolumns/3.2.4/js/dataTables.fixedColumns.min.js";></script>-->
+<script>
+  var csrftoken = jQuery("[name=csrfmiddlewaretoken]").val();
+
+  $(document).ready(function() {
+    /* Datatable for players in groups */
+    var table_players = $('#players').DataTable({
+      lengthChange: false,
+      "ajax": {
+        "processing": true,
+        "url" : "{% url 'api_organizations:players_list' organization_id=user.organization.id %}",
+        "dataSrc": ""
+      },
+      "order": [ 
+       [2, 'asc'],
+        [3, 'asc']
+      ],
+      "columns": [
+        {
+                       type: "html",
+                       orderable:false,
+                       render: function(value, type, row) {
+                               return '<input class="selectPlayerCheckbox" type="checkbox" data-player-id="' 
+ row.id + '"/>';
+                       }
+               },
+        {
+                       type: "html",
+                       title: "",
+                       data: 'image',
+                       orderable: false,
+                       render: function(value, type, row) {
+            if (value) {
+                                       var src = value;
+                               } else {
+                                       // Otherwise show the no_image icon
+                                       var src = '/static/images/no_image.png';
+                               }
+                               var html = '<img src="' + src + '" class="img-fluid rounded" width="32px" 
height="32px"/>';
+                               return html;
+                       }
+               },
+        {
+          "data": "number",
+          title: "{% trans 'Number' %}"
+        },
+        {
+          data: "name",
+                       title: "{% trans 'Player name' %}",
+        },
+
+        {
+          "data": "height",
+          title: "{% trans 'Height' %}"
+        },
+        {
+          "data": "weight",
+          title: "{% trans 'Weight' %}"
+        }
+      ],
+      "dom": "<'row'<'col-sm-6'B><'col-sm-6'f>>rtip",
+      buttons: [
+       { /* Add Player button */
+          text: "{% trans 'Add players' %}",
+          className: "btn btn-primary",
+                 action: function( e, dt, node, config ) {
+            $('#addPlayerModalForm').modal('show');
+
+          }
+        }
+      ],
+      initComplete: function() {
+        // Enable the remove player selection the first time data is loaded
+        enablePlayersTableFunctionality();
+      },
+      "language": {
+       "lengthMenu": "{% trans 'Showing _MENU_ players per page' %}",
+       "zeroRecords": "{% trans 'There are no players in this group' %}",
+       "info": "{% trans 'Showing the players _START_ to _END_ of a total of _TOTAL_ players' %}",
+       "infoEmpty": "{% trans 'The search returns no results' %}",
+       "infoFiltered": "{% trans '(from a total of _MAX_ players)' %}",
+       "decimal": ",",
+       "thousands": ".",
+       "paginate": {
+               "first": '<i class="fa fa-fast-backward"></i>',
+               "last": '<i class="fa fa-fast-forward"></i>',
+               "next": '<i class="fa fa-forward"></i>',
+               "previous": '<i class="fa fa-backward"></i>'
+       },
+       "search": "{% trans 'Search:' %}"
+      }
+    });
+  });
+</script>
+{% endblock %}
diff --git a/chronojumpserver-django/chronojump_networks/templates/pages/index.html 
b/chronojumpserver-django/chronojump_networks/templates/pages/index.html
index b1867e3..635493b 100644
--- a/chronojumpserver-django/chronojump_networks/templates/pages/index.html
+++ b/chronojumpserver-django/chronojump_networks/templates/pages/index.html
@@ -91,7 +91,7 @@
         <a class="btn btn-outline-primary btn-block font-weight-bold text-uppercase" href="">{% trans 
'Staff' %}</a>
       </div>
         <div class="col-sm-6 col-md-3">
-          <a class="btn btn-outline-primary btn-block font-weight-bold text-uppercase" href="">{% trans 
'Players' %}</a>
+          <a class="btn btn-outline-primary btn-block font-weight-bold text-uppercase" href="{% url 
'organizations:players_list' organization_id=user.organization.id %}">{% trans 'Players' %}</a>
         </div>
         <div class="col-sm-6 col-md-3">
           <a class="btn btn-outline-primary btn-block font-weight-bold text-uppercase" href="">{% trans 
'Groups' %}</a>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]