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)
</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",
<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 -->
<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">
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
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():
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()})
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
+