]> git.atlas4tour.it Git - pia_atlas.git/commitdiff
- Gestione punti di interesse
authorCostantino Vitale <costantino.vitale@dyrecta.com>
Mon, 3 Oct 2022 15:48:14 +0000 (17:48 +0200)
committerCostantino Vitale <costantino.vitale@dyrecta.com>
Mon, 3 Oct 2022 15:48:14 +0000 (17:48 +0200)
sistema/datatables.py
sistema/forms.py
sistema/templates/add_mod_poi.html [new file with mode: 0644]
sistema/views.py

index 72eeb07e3870a38d9cb836f96b1400f012a8f667..c5380f157182664561a5985b3e8c2c94ceaa4275 100644 (file)
@@ -149,9 +149,9 @@ class PoiDatatables(BaseDatatableView):
         if column == 'long':
             return escape('{0}'.format(row.long))
         if column == 'mod':
-            return '<a class="btn btn-sm btn-primary" href="/mod_poi/%s/" ><i class="fas fa-edit"></i></a>' #% row.pk
+            return '<a class="btn btn-sm btn-primary" href="/mod_poi/%s/" ><i class="fas fa-edit"></i></a>' % row.pk
         if column == 'del':
-            return '<a class="btn btn-sm btn-danger" href="DeletePoi(%s)" ><i class="fas fa-trash"></i></a>' #% row.pk
+            return '<a class="btn btn-sm btn-danger" href="DeletePoi(%s)" ><i class="fas fa-trash"></i></a>' % row.pk
         else:
             return super(PoiDatatables, self).render_column(row, column)
 
index 5f5f6017a07f261fd3b6c74b1942e76ee21b817a..845def0af9020d0038a496e8611eff8c427c59cb 100644 (file)
@@ -2,7 +2,7 @@ from datetime import datetime
 
 from django.contrib.auth.forms import *
 
-from sistema.models import Localita, TipologiaMultimedia, Gestisce
+from sistema.models import Localita, TipologiaMultimedia, Gestisce, PointOfInterest
 
 
 class LocalitaForm(forms.ModelForm):
@@ -50,6 +50,17 @@ class TipoMultimediaForm(forms.ModelForm):
     )
 
 
+class PoiForm(forms.ModelForm):
+    class Meta:
+        model = PointOfInterest
+        exclude = ('is_active',)
+
+    def __init__(self, *args, **kwargs):
+        super(PoiForm, self).__init__(*args, **kwargs)
+        for f in self.fields:
+            self.fields[f].widget.attrs.update({'class': 'form-control'})
+
+
 class GestisceForm(forms.ModelForm):
     data_inizio = forms.DateField(
         label='Data inizio',
diff --git a/sistema/templates/add_mod_poi.html b/sistema/templates/add_mod_poi.html
new file mode 100644 (file)
index 0000000..2555914
--- /dev/null
@@ -0,0 +1,44 @@
+{% extends 'base.html' %}
+{% load static %}
+{% load crispy_forms_tags %}
+{% block content %}
+
+    <div class="row">
+        <div class="col-12 col-md-12 col-lg-12">
+            <h1 class="line-bolle"><i class="fa-solid fa-location-dot clr-bolle mr-2" aria-hidden="true"></i> Gestione punti di interesse </h1>
+            <div class="card">
+                <div class="card-header">
+                    {% if form.instance.pk %}
+                    <h4 class="clr-config">Modifica il punto di interesse #{{ form.instance.pk }}</h4>
+                    {% else %}
+                    <h4 class="clr-config">Aggiungi una nuovo punto di interesse nel sistema</h4>
+                    {% endif %}
+                </div>
+
+                <div class="card-body">
+                    <form method="POST" id="poi_form" action="{% url 'sistema:poi' %}">{% csrf_token %}
+                        {% if form.instance.pk %}
+                            <input type="hidden" name="mod" form="poi_form">
+                            <input type="hidden" name="pk" value="{{ form.instance.pk }}" form="poi_form">
+                        {% endif %}
+                            {{form | crispy }}
+                            <br>
+                        <div class="card-footer text-right">
+                            <button class="btn btn-primary" type="button" onclick="javascript:this.form.submit();"><i class="fas fa-save" aria-hidden="true"></i> Salva
+                            </button>
+                        </div>
+
+                    </form>
+                </div>
+
+            </div>
+        </div>
+    </div>
+
+
+    <script>
+
+    </script>
+
+
+{% endblock %}
\ No newline at end of file
index 67cce9d08fc4df2f01a4f734a958f1faa1aceea5..a614fbf246c1f0a13a9c7515d490de0c5c216cbc 100644 (file)
@@ -6,8 +6,8 @@ from django.views import View
 from django.views.generic import TemplateView
 from rest_framework import status
 
-from sistema.forms import LocalitaForm, TipoMultimediaForm
-from sistema.models import Localita, TipologiaMultimedia
+from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm
+from sistema.models import Localita, TipologiaMultimedia, PointOfInterest
 from utenti.mixins import CustomLoginRequiredMixin
 
 
@@ -136,7 +136,7 @@ class TipoMultimediaView(View):
 
 class PoiView(View):
     def add_poi(self, request):
-        form = TipoMultimediaForm(request.POST)
+        form = PoiForm(request.POST)
         if form.is_valid():
             form.save()
 
@@ -148,7 +148,7 @@ class PoiView(View):
             messages.add_message(request, messages.ERROR, 'Errore nell\'inserimento del punto di interesse. Controlla il form.')
 
     def mod_poi(self, request):
-        form = TipoMultimediaForm(request.POST, instance=TipologiaMultimedia.objects.get(pk=int(self.request.POST.get('pk'))))
+        form = PoiForm(request.POST, instance=PointOfInterest.objects.get(pk=int(self.request.POST.get('pk'))))
         if form.is_valid():
             form.save()
 
@@ -160,7 +160,7 @@ class PoiView(View):
             messages.add_message(request, messages.ERROR, 'Errore nell\'aggiornamento del punto di interesse. Controlla il form.')
 
     def del_poi(self, request):
-        tipologia = TipologiaMultimedia.objects.get(pk=int(request.GET.get('pk')))
+        tipologia = PointOfInterest.objects.get(pk=int(request.GET.get('pk')))
         tipologia.is_active = False
         tipologia.save()
 
@@ -170,9 +170,9 @@ class PoiView(View):
 
             return JsonResponse({'response': 'Punto di interesse eliminato con successo'}, status=status.HTTP_200_OK)
         elif 'pk' in kwargs:
-            return render(request, 'add_mod_tipologia.html', {'form': TipoMultimediaForm(instance=TipologiaMultimedia.objects.get(pk=int(self.kwargs['pk'])))})
+            return render(request, 'add_mod_poi.html', {'form': PoiForm(instance=PointOfInterest.objects.get(pk=int(self.kwargs['pk'])))})
         else:
-            return render(request, 'add_mod_tipologia.html', {'form': TipoMultimediaForm()})
+            return render(request, 'add_mod_poi.html', {'form': PoiForm()})
 
     def post(self, request, *args, **kwargs):
         if 'mod' in request.POST:
@@ -180,4 +180,4 @@ class PoiView(View):
         else:
             self.add_poi(request)
 
-        return redirect(reverse('sistema:tipo_multimedia_list'))
\ No newline at end of file
+        return redirect(reverse('sistema:poi_list'))
\ No newline at end of file