From 267d1b892933f502e4591d81249e36a82eea20f1 Mon Sep 17 00:00:00 2001 From: Costantino Vitale Date: Tue, 4 Oct 2022 17:17:30 +0200 Subject: [PATCH] - Implementazione frontend creazione percorso --- sistema/datatables.py | 4 +- sistema/templates/add_mod_percorso.html | 177 ++++++++++++++++++++ sistema/templates/base.html | 5 +- sistema/templates/localita_list.html | 2 +- sistema/templates/percorsi_list.html | 114 +++++++++++-- sistema/templates/poi_list.html | 2 +- sistema/templates/tipo_multimedia_list.html | 2 +- sistema/urls.py | 8 +- sistema/views.py | 52 +++++- utenti/templates/admin_list.html | 2 +- utenti/templates/clienti_list.html | 2 +- utenti/templates/tour_operator_list.html | 2 +- 12 files changed, 348 insertions(+), 24 deletions(-) create mode 100644 sistema/templates/add_mod_percorso.html diff --git a/sistema/datatables.py b/sistema/datatables.py index c5380f1..7c56e7f 100644 --- a/sistema/datatables.py +++ b/sistema/datatables.py @@ -118,9 +118,9 @@ class PercorsoDatatables(BaseDatatableView): if column == 'testo': return escape('{0}'.format(row.testo)) if column == 'mod': - return '' #% row.pk + return '' % row.pk if column == 'del': - return '' #% row.pk + return '' % row.pk else: return super(PercorsoDatatables, self).render_column(row, column) diff --git a/sistema/templates/add_mod_percorso.html b/sistema/templates/add_mod_percorso.html new file mode 100644 index 0000000..afef76b --- /dev/null +++ b/sistema/templates/add_mod_percorso.html @@ -0,0 +1,177 @@ +{% extends 'base.html' %} +{% load static %} +{% block content %} + +
+
+

Gestione + percorsi

+
+
+ {% if form.instance.pk %} +

Modifica il percorso #{{ form.instance.pk }}

+ {% else %} +

Crea una nuovo percorso nel sistema

+ {% endif %} +
+ +
+
+
+

Seleziona i punti di interesse

+
+ +
+
+
+ +
+
+
+ +
+
+
+ + + + + +{% endblock %} \ No newline at end of file diff --git a/sistema/templates/base.html b/sistema/templates/base.html index 8cf7400..7b32b8b 100644 --- a/sistema/templates/base.html +++ b/sistema/templates/base.html @@ -173,7 +173,7 @@ @@ -217,6 +217,9 @@ integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"> + + + diff --git a/sistema/templates/localita_list.html b/sistema/templates/localita_list.html index 1e597f1..b59a328 100644 --- a/sistema/templates/localita_list.html +++ b/sistema/templates/localita_list.html @@ -3,7 +3,7 @@ {% block content %}
-

Gestione località

+

Gestione località

diff --git a/sistema/templates/percorsi_list.html b/sistema/templates/percorsi_list.html index 566549b..985df3e 100644 --- a/sistema/templates/percorsi_list.html +++ b/sistema/templates/percorsi_list.html @@ -1,10 +1,104 @@ - - - - - Title - - - - - \ No newline at end of file +{% extends 'base.html' %} +{% load static %} +{% block content %} +
+
+

Gestione Percorsi

+ +
+ + +
+
+
+ + + + + + + + + + + + + + +
+
+
+
+ +
+
+ + +{% endblock %} \ No newline at end of file diff --git a/sistema/templates/poi_list.html b/sistema/templates/poi_list.html index 42fb6da..a74ab2d 100644 --- a/sistema/templates/poi_list.html +++ b/sistema/templates/poi_list.html @@ -3,7 +3,7 @@ {% block content %}
-

Gestione punti di interesse

+

Gestione punti di interesse

diff --git a/sistema/templates/tipo_multimedia_list.html b/sistema/templates/tipo_multimedia_list.html index 2002b6f..bcf9636 100644 --- a/sistema/templates/tipo_multimedia_list.html +++ b/sistema/templates/tipo_multimedia_list.html @@ -3,7 +3,7 @@ {% block content %}
-

Gestione tipologia multimedia

+

Gestione tipologia multimedia

diff --git a/sistema/urls.py b/sistema/urls.py index dc97372..346874f 100644 --- a/sistema/urls.py +++ b/sistema/urls.py @@ -3,7 +3,7 @@ from django.urls import path from sistema.datatables import LocalitaDatatables, MultimediaDatatables, TipoMultimediaDatatables, PercorsoDatatables, \ PoiDatatables, FeedbackDatatables, GestisceLocalitaDatatables from sistema.views import Home, LocalitaListView, MultimediaListView, PuntiInteresseListView, \ - TipologiaMultimediaListView, PercorsiListView, LocalitaView, TipoMultimediaView, PoiView + TipologiaMultimediaListView, PercorsiListView, LocalitaView, TipoMultimediaView, PoiView, PercorsoView urlpatterns = [ path('', Home.as_view(), name='home'), @@ -35,7 +35,9 @@ urlpatterns = [ ## PUNTO DI INTERESSE ## path('poi/', PoiView.as_view(), name='poi'), path('mod_poi//', PoiView.as_view(), name='mod_poi'), + path('get_coordinates/', PoiView.get_coordinates, name='get_coordinates'), - - + ## PERCORSO ## + path('percorso/', PercorsoView.as_view(), name='percorso'), + path('mod_percorso//', PercorsoView.as_view(), name='mod_percorso'), ] diff --git a/sistema/views.py b/sistema/views.py index a614fbf..fa3dec1 100644 --- a/sistema/views.py +++ b/sistema/views.py @@ -7,7 +7,7 @@ from django.views.generic import TemplateView from rest_framework import status from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm -from sistema.models import Localita, TipologiaMultimedia, PointOfInterest +from sistema.models import Localita, TipologiaMultimedia, PointOfInterest, Percorso from utenti.mixins import CustomLoginRequiredMixin @@ -135,6 +135,31 @@ class TipoMultimediaView(View): class PoiView(View): + def get_coordinates(self): + start = int(self.GET.get('start')) + end = int(self.GET.get('end')) + poi = self.GET.getlist('poi[]') + + poi_coords = {} + + start_coords = PointOfInterest.objects.get(pk=start) + end_coords = PointOfInterest.objects.get(pk=end) + poi_coords['start_coords'] = {'lat': start_coords.lat, 'long': start_coords.long} + poi_coords['end_coords'] = {'lat': end_coords.lat, 'long': end_coords.long} + + tappe = [] + for point in poi: + list = {} + cord = PointOfInterest.objects.get(pk=int(point)) + list['lat'] = cord.lat + list['long'] = cord.long + + tappe.append(list) + + poi_coords['tappe'] = tappe + + return JsonResponse({'response': poi_coords}, status=status.HTTP_200_OK) + def add_poi(self, request): form = PoiForm(request.POST) if form.is_valid(): @@ -180,4 +205,27 @@ class PoiView(View): else: self.add_poi(request) - return redirect(reverse('sistema:poi_list')) \ No newline at end of file + return redirect(reverse('sistema:poi_list')) + + +class PercorsoView(View): + + def del_poi(self, request): + percorso = Percorso.objects.get(pk=int(request.GET.get('pk'))) + percorso.is_active = False + percorso.save() + + def get(self, request, *args, **kwargs): + if request.GET.get('method') == 'del': + self.del_poi(request) + return JsonResponse({'response': 'Percorso eliminato con successo'}, status=status.HTTP_200_OK) + elif 'pk' in kwargs: + return render(request, 'add_mod_percorso.html', {'poi_list': PointOfInterest.objects.filter(is_active=True).values('id', 'nome')}) + else: + return render(request, 'add_mod_percorso.html', {'poi_list': PointOfInterest.objects.filter(is_active=True).values('id', 'nome')}) + + def post(self, request, *args, **kwargs): + if 'mod' in request.POST: + print('modifica') + else: + print('inserimento') \ No newline at end of file diff --git a/utenti/templates/admin_list.html b/utenti/templates/admin_list.html index 026e857..646a0b5 100644 --- a/utenti/templates/admin_list.html +++ b/utenti/templates/admin_list.html @@ -3,7 +3,7 @@ {% block content %}
-

Gestione amministratori

+

Gestione amministratori

diff --git a/utenti/templates/clienti_list.html b/utenti/templates/clienti_list.html index 4c5e302..0da29c4 100644 --- a/utenti/templates/clienti_list.html +++ b/utenti/templates/clienti_list.html @@ -3,7 +3,7 @@ {% block content %}
-

Gestione clienti

+

Gestione clienti

diff --git a/utenti/templates/tour_operator_list.html b/utenti/templates/tour_operator_list.html index 585f902..e98a81c 100644 --- a/utenti/templates/tour_operator_list.html +++ b/utenti/templates/tour_operator_list.html @@ -3,7 +3,7 @@ {% block content %}
-

Gestione tour operator

+

Gestione tour operator

-- 2.43.0