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)
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):
)
+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',
--- /dev/null
+{% 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
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
class PoiView(View):
def add_poi(self, request):
- form = TipoMultimediaForm(request.POST)
+ form = PoiForm(request.POST)
if form.is_valid():
form.save()
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()
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()
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:
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