]> git.atlas4tour.it Git - pia_atlas.git/commitdiff
- Implementazione API
authorCostantino Vitale <costantino.vitale@dyrecta.com>
Fri, 7 Oct 2022 07:52:22 +0000 (09:52 +0200)
committerCostantino Vitale <costantino.vitale@dyrecta.com>
Fri, 7 Oct 2022 07:52:22 +0000 (09:52 +0200)
sistema/models.py
sistema/templates/add_mod_percorso.html
sistema/templates/registration/login.html
sistema/views.py
utenti/mixins.py

index 2d8ff1c25d517c6c0b9957599c867a215692acf1..5baf7aa3fe761f72177976d60e9034935ef1bf8c 100644 (file)
@@ -46,19 +46,33 @@ class Tappa(models.Model):
     percorso = models.ForeignKey(Percorso, on_delete=models.DO_NOTHING)
     poi = models.ForeignKey(PointOfInterest, on_delete=models.DO_NOTHING)
     ordine = models.IntegerField()
+    is_partenza = models.BooleanField(default=False)
+    is_arrivo = models.BooleanField(default=False)
+    is_tappa = models.BooleanField(default=False)
     is_active = models.BooleanField(default=True)
 
     @staticmethod
-    def insert_tappe_percorso(list_tappe, form_percorso):
-        i = 1
+    def insert_tappe_percorso(parteza, arrivo, list_tappe, form_percorso):
+        Tappa.objects.create(percorso=form_percorso.instance, poi=PointOfInterest.objects.get(pk=int(parteza)), ordine=1, is_partenza=True)
+
+        i = 2
         for tappa in list_tappe:
             Tappa.objects.create(
                 percorso=form_percorso.instance,
                 poi=PointOfInterest.objects.get(pk=int(tappa)),
-                ordine=i
+                ordine=i,
+                is_tappa=True
             )
             i += 1
 
+        Tappa.objects.create(percorso=form_percorso.instance, poi=PointOfInterest.objects.get(pk=int(arrivo)), ordine=i, is_arrivo=True)
+
+
+class TappaSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = Tappa
+        fields = ('id', 'poi', 'ordine', 'is_partenza', 'is_arrivo', 'is_tappa')
+
 
 class TipologiaMultimedia(models.Model):
     nome = models.CharField(max_length=255, null=False)
index ac79df829ffb2171b3889452f158ca750ec75ec5..42a9f38287b11b7065fff7df5128df404bd61685 100644 (file)
@@ -63,7 +63,9 @@
                         </div>
                     </div>
                 </div>
-
+                {% for c in cazzo %}
+                    {{ c.poi }}<br>
+                {% endfor %}
             </div>
         </div>
     </div>
             pk_percorso_form = ''
 
             selected_list = []
-            selected_list.push($("#select-start").val())
 
             tappe_intermedie = $("#select-tappe").val()
             for(k in tappe_intermedie){
                 selected_list.push(tappe_intermedie[k])
             }
-            selected_list.push($("#select-end").val())
 
             {% if form.instance.pk %}
                 method = 'mod'
                     'percorso_form': JSON.stringify(percorso_form),
                     'pk_percorso_form': pk_percorso_form,
                     'tappe': selected_list,
+                    'partenza': $("#select-start").val(),
+                    'arrivo': $("#select-end").val(),
                     'method': method,
                 },
                 type: "POST",
index 01bf4d84f9f748b1a174f5b0c63e261cf0aa8310..cd2b9f44caa7168d816645d17fb4a4d38e7eca5f 100644 (file)
@@ -4,7 +4,7 @@
 <head>
     <meta charset="utf-8">
     <meta http-equiv="x-ua-compatible" content="ie=edge">
-    <title>Login Farella</title>
+    <title>Login atlas</title>
     <meta name="description" content="">
     <meta name="viewport" content="width=device-width, initial-scale=1">
 <!-- General CSS Files -->
@@ -44,7 +44,7 @@
             <div class="container mt-5">
                 <div class="row mb-5">
                     <div class="col-12 col-sm-8 offset-sm-2 col-md-6 offset-md-3 col-lg-6 offset-lg-3 col-xl-4 offset-xl-4 text-center">
-                        <img src="{% static 'admin/img/logo-farella-white.png' %}" width="160">
+                        <img src="{% static 'assets/img/logo.png' %}" width="160">
                     </div>
                 </div>
                 <div class="row">
index ff751814f02daaf329d595b5f42f211346f65f52..1205629f424bb57531c2b3380d7e386b2bcae802 100644 (file)
@@ -9,7 +9,7 @@ from django.views.generic import TemplateView
 from rest_framework import status
 
 from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm, PercorsoForm
-from sistema.models import Localita, TipologiaMultimedia, PointOfInterest, Percorso, Tappa
+from sistema.models import Localita, TipologiaMultimedia, PointOfInterest, Percorso, Tappa, TappaSerializer
 from socoin_atlas import settings
 from utenti.mixins import CustomLoginRequiredMixin
 
@@ -224,9 +224,16 @@ class PercorsoView(View):
         if form.is_valid():
             form.save()
 
-            Tappa.insert_tappe_percorso(request.POST.getlist('tappe[]'), form)
+            partenza = request.POST.get('partenza')
+            arrivo = request.POST.get('arrivo')
+            tappe = request.POST.getlist('tappe[]')
+
+            if partenza and arrivo and tappe:
+                Tappa.insert_tappe_percorso(partenza, arrivo, tappe, form)
+                return JsonResponse({'response': 'Percorso inserito con successo'}, status=status.HTTP_200_OK)
+            else:
+                return JsonResponse({'response': 'Attenzione! Dati informazioni mancanti in merito al percorso'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
 
-            return JsonResponse({'response': 'Percorso inserito con successo'}, status=status.HTTP_200_OK)
         else:
             errors = ''
             for err in form.errors.as_data():
@@ -240,9 +247,13 @@ class PercorsoView(View):
             self.del_poi(request)
             return JsonResponse({'response': 'Percorso eliminato con successo'}, status=status.HTTP_200_OK)
         elif 'pk' in kwargs:
+            t = Tappa.objects.filter(percorso_id=int(self.kwargs['pk']))
+            tappa_list = TappaSerializer(t, many=True)
+
             return render(request, 'add_mod_percorso.html', {'poi_list': PointOfInterest.objects.filter(is_active=True).values('id', 'nome'),
                                                              'form': PercorsoForm(instance=Percorso.objects.get(pk=int(self.kwargs['pk']))),
-                                                             'associated_tappe': list(Tappa.objects.filter(percorso_id=int(self.kwargs['pk'])).values_list('poi_id', flat=True)),})
+                                                             'associated_tappe': list(Tappa.objects.filter(percorso_id=int(self.kwargs['pk'])).values_list('poi_id', flat=True)),
+                                                             'cazzo': tappa_list.data})
         else:
             return render(request, 'add_mod_percorso.html', {'poi_list': PointOfInterest.objects.filter(is_active=True).values('id', 'nome'),
                                                              'form': PercorsoForm()})
index 79934ad733f16f7c1b6252a639e4e3a775cb6485..f3f4e341a3594130071265c5df0eae223712e893 100644 (file)
@@ -38,8 +38,17 @@ class AuthorizationRequiredMixin(object):
     authorization_required = None
 
     def dispatch(self, request, *args, **kwargs):
-        print(request)
         if request.user.is_authenticated:
-            return super(AuthorizationRequiredMixin, self).dispatch(request, *args, **kwargs)
+            if request.session.get('structure'):
+                user_authorization = request.user.get_all_authorizations_by_structure_flat(request.session['structure'])
+                if len(set(user_authorization).intersection(self.authorization_required)) <= 0:
+                    raise PermissionDenied
+                return super(AuthorizationRequiredMixin, self).dispatch(request, *args, **kwargs)
+            else:
+                user_authorization = request.user.get_all_authorizations_flat()
+                if len(set(user_authorization).intersection(self.authorization_required)) <= 0:
+                    raise PermissionDenied
+                return super(AuthorizationRequiredMixin, self).dispatch(request, *args, **kwargs)
         else:
-            raise PermissionDenied
\ No newline at end of file
+            raise PermissionDenied
+