[chronojump-server] Showing players list if you are the responsible of the orginization Initial creation but not complet
- From: Marcos Venteo Garcia <mventeo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump-server] Showing players list if you are the responsible of the orginization Initial creation but not complet
- Date: Tue, 10 Jul 2018 05:58:49 +0000 (UTC)
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">×</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]