[chronojump-server] Enabling results deletion again



commit 61d4541d987f5e4a89643205fbb67624202c9661
Author: Marcos Venteo GarcĂ­a <marcos@Hoth.local>
Date:   Sun Jul 1 19:31:19 2018 +0200

    Enabling results deletion again

 .../chronojump_networks/results/api/urls.py        | 16 ++++++----
 .../chronojump_networks/results/api/views.py       | 35 +++++++++++++++++++++-
 .../organizations/groups/group_players_list.html   | 16 ++++++++++
 .../templates/results/results_list.html            | 10 +++----
 4 files changed, 65 insertions(+), 12 deletions(-)
---
diff --git a/chronojumpserver-django/chronojump_networks/results/api/urls.py 
b/chronojumpserver-django/chronojump_networks/results/api/urls.py
index 932e87b..920035a 100644
--- a/chronojumpserver-django/chronojump_networks/results/api/urls.py
+++ b/chronojumpserver-django/chronojump_networks/results/api/urls.py
@@ -12,10 +12,14 @@ urlpatterns = [
         view=views.ResultEncoderList.as_view(),
         name='results_list'
     ),
-
+    url(
+        regex=r'^(?P<result_id>\d+)$',
+        view=views.ResultEncoderRetrieveUpdateDestroyAPIView.as_view(),
+        name='results'
+    ),
+    url(
+        regex=r'^delete$',
+        view=views.ResultEncoderDestroyAPIView.as_view(),
+        name='results_delete'
+    )
 ]
-"""url(
-    regex=r'^(?P<task_id>\d+)$',
-    view=views.TaskRetrieveUpdateDestroyAPIView.as_view(),
-    name='results'
-),"""
diff --git a/chronojumpserver-django/chronojump_networks/results/api/views.py 
b/chronojumpserver-django/chronojump_networks/results/api/views.py
index 2d5508a..e8ab9e7 100644
--- a/chronojumpserver-django/chronojump_networks/results/api/views.py
+++ b/chronojumpserver-django/chronojump_networks/results/api/views.py
@@ -4,7 +4,7 @@ from .serializers import ResultEncoderSerializer
 from django.http import HttpResponse, JsonResponse
 from django.shortcuts import get_object_or_404
 from rest_framework.response import Response
-from rest_framework.generics import ListAPIView, RetrieveAPIView
+from rest_framework.generics import ListAPIView, RetrieveAPIView, DestroyAPIView, 
RetrieveUpdateDestroyAPIView
 from rest_framework.permissions import IsAuthenticated
 
 from chronojump_networks.organizations.models import User, Group, Player
@@ -42,3 +42,36 @@ class ResultEncoderList(ListAPIView):
         # Serialize the results and return
         serializer = ResultEncoderSerializer(queryset, many=True)
         return Response(serializer.data)
+
+
+class ResultEncoderRetrieveUpdateDestroyAPIView(RetrieveUpdateDestroyAPIView):
+
+    permission_classes = (IsAuthenticated, )
+    serializer_class = ResultEncoderSerializer
+    lookup_field = 'result_id'
+
+    def retrieve(self, request, *args, **kwars):
+        #print(self.kwargs['task_id'])
+        o = get_object_or_404(Task, id=self.kwargs['result_id'])
+        s = ResultEncoderSerializer(o)
+        return Response(s.data)
+
+    def destroy(self, request, *args, **kwargs):
+        o = get_object_or_404(Task, id=self.kwargs['result_id'])
+        o.delete()
+        print("Result %d removed" % (result_id, ))
+        return JsonResponse({}, status=204, safe=False)
+
+class ResultEncoderDestroyAPIView(DestroyAPIView):
+    """Remove players from group"""
+    permission_classes = (IsAuthenticated, )
+    serializer_class = ResultEncoderSerializer
+
+    def destroy(self, request, *args, **kwargs):
+
+        results_ids = request.data
+        for result_id in results_ids:
+            o = ResultEncoder.objects.get(id=int(result_id))
+            o.delete()
+            print("Result %d removed" % (int(result_id), ))
+        return JsonResponse({}, status=204, safe=False)
diff --git 
a/chronojumpserver-django/chronojump_networks/templates/organizations/groups/group_players_list.html 
b/chronojumpserver-django/chronojump_networks/templates/organizations/groups/group_players_list.html
index 327fc6a..344bb08 100644
--- a/chronojumpserver-django/chronojump_networks/templates/organizations/groups/group_players_list.html
+++ b/chronojumpserver-django/chronojump_networks/templates/organizations/groups/group_players_list.html
@@ -204,6 +204,22 @@
       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:' %}"
       }
     });
 
diff --git a/chronojumpserver-django/chronojump_networks/templates/results/results_list.html 
b/chronojumpserver-django/chronojump_networks/templates/results/results_list.html
index 556c4a7..2e70fad 100644
--- a/chronojumpserver-django/chronojump_networks/templates/results/results_list.html
+++ b/chronojumpserver-django/chronojump_networks/templates/results/results_list.html
@@ -26,7 +26,7 @@
 </div>
 <div class="row datatables_wrapped">
   <div class="col form-group">
-    <label>{% trans 'Filter by time' %}</label>
+    <label>{% trans 'Filter by time' %}</label><br/>
     <div class="btn-group" role="group" aria-label="Basic example">
       <button type="button" class="btn btn-primary active time-interval-btn" data-time-interval="1">{% trans 
'1d' %}</button>
       <button type="button" class="btn btn-secondary time-interval-btn" data-time-interval="2">{% trans '2d' 
%}</button>
@@ -341,10 +341,10 @@
                                results.push(v.attr('data-result-id'));
 
                        });
-                       var url = '/api/v1/results/delete';
-                       $.ajax({
+                       var url = "{% url 'api_results:results_delete' %}";
+          $.ajax({
                                url: url,
-                               type: "POST",
+                               type: "DELETE",
                                contentType: 'application/json;charset=UTF-8',
                                data: JSON.stringify(results)
                        }).done(function(msg){
@@ -429,7 +429,7 @@
       },
       "language": {
        "lengthMenu": "{% trans 'Showing _MENU_ results per page' %}",
-       "zeroRecords": "{% trans 'There are no records to show' %}",
+       "zeroRecords": "{% trans 'There are no results to show' %}",
        "info": "{% trans 'Showing the results _START_ to _END_ of a total of _TOTAL_ results' %}",
        "infoEmpty": "{% trans 'The query returns no results' %}",
        "infoFiltered": "{% trans '_MAX_ results filtered' %}",


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