From: Costantino Vitale Date: Mon, 3 Oct 2022 15:48:14 +0000 (+0200) Subject: - Gestione punti di interesse X-Git-Url: https://git.atlas4tour.it/?a=commitdiff_plain;h=b028477578f4e92e13692c53affd4223dd6862b1;p=pia_atlas.git - Gestione punti di interesse --- diff --git a/sistema/datatables.py b/sistema/datatables.py index 72eeb07..c5380f1 100644 --- a/sistema/datatables.py +++ b/sistema/datatables.py @@ -149,9 +149,9 @@ class PoiDatatables(BaseDatatableView): if column == 'long': return escape('{0}'.format(row.long)) if column == 'mod': - return '' #% row.pk + return '' % row.pk if column == 'del': - return '' #% row.pk + return '' % row.pk else: return super(PoiDatatables, self).render_column(row, column) diff --git a/sistema/forms.py b/sistema/forms.py index 5f5f601..845def0 100644 --- a/sistema/forms.py +++ b/sistema/forms.py @@ -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 index 0000000..2555914 --- /dev/null +++ b/sistema/templates/add_mod_poi.html @@ -0,0 +1,44 @@ +{% extends 'base.html' %} +{% load static %} +{% load crispy_forms_tags %} +{% block content %} + +
+
+

Gestione punti di interesse

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

Modifica il punto di interesse #{{ form.instance.pk }}

+ {% else %} +

Aggiungi una nuovo punto di interesse nel sistema

+ {% endif %} +
+ +
+
{% csrf_token %} + {% if form.instance.pk %} + + + {% endif %} + {{form | crispy }} +
+ + +
+
+ +
+
+
+ + + + + +{% endblock %} \ No newline at end of file diff --git a/sistema/views.py b/sistema/views.py index 67cce9d..a614fbf 100644 --- a/sistema/views.py +++ b/sistema/views.py @@ -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