From: Valeria Vitti Date: Wed, 30 Oct 2024 15:52:50 +0000 (+0100) Subject: inserimento tasto modifica multimedia X-Git-Url: https://git.atlas4tour.it/?a=commitdiff_plain;h=6746a1e3563ed22e6b389f9c9ffde63777a6e065;p=pia_atlas.git inserimento tasto modifica multimedia --- diff --git a/sistema/datatables.py b/sistema/datatables.py index 9dd927e..d474a5a 100644 --- a/sistema/datatables.py +++ b/sistema/datatables.py @@ -70,7 +70,8 @@ class MultimediaDatatables(BaseDatatableView): else: return '' % row.pk if column == 'del': - return '' % row.pk + return '' % row.pk +\ + '' % row.pk else: return super(MultimediaDatatables, self).render_column(row, column) diff --git a/sistema/templates/add_mod_poi.html b/sistema/templates/add_mod_poi.html index 44c12fe..5e2b502 100644 --- a/sistema/templates/add_mod_poi.html +++ b/sistema/templates/add_mod_poi.html @@ -3,222 +3,272 @@ {% load crispy_forms_tags %} {% block content %} -
-
-

Gestione punti di interesse

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

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

- {% else %} -

Aggiungi un nuovo punto di interesse nel sistema

- {% endif %} -
-
{% csrf_token %} -
- {% if form.instance.pk %} - - - - - {% endif %} - {{ form | crispy }} -
- -
-
-
-
+
+
+

Gestione punti di interesse

-
-
-
-

Lista file multimediali associati al punto di interesse

-
-
-
-
- - - - - - - - - - - - - - - - -
-
-
-
+ +
+
-

Inserisci file multimediali per il punto di interesse

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

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

+ {% else %} +

Aggiungi un nuovo punto di interesse nel sistema

+ {% endif %}
-
{% csrf_token %}
{% if form.instance.pk %} - - + + + + {% endif %} - {{ form_multimedia | crispy }} + {{ form | crispy }}
-
+
+
+
+

Lista file multimediali associati al punto di interesse

+
+
+
+
+ + + + + + + + + + + + + + + + +
+
+
+
- + {% endblock %} \ No newline at end of file diff --git a/sistema/urls.py b/sistema/urls.py index 669dd3b..9f5c7d4 100644 --- a/sistema/urls.py +++ b/sistema/urls.py @@ -37,6 +37,8 @@ urlpatterns = [ 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'), + path('crea_qr_code/', QRCodeView.crea_qr, name='crea_qr_code'), + path('get_multimedia_data/', PoiView.get_multimedia_data, name='get_multimedia_data'), ## PERCORSO ## path('percorso/', PercorsoView.as_view(), name='percorso'), @@ -47,5 +49,4 @@ urlpatterns = [ ## FEEDBACK ## path('feedback/', FeedbackView.as_view(), name='feedback'), - path('crea_qr_code/', QRCodeView.crea_qr, name='crea_qr_code'), ] diff --git a/sistema/views.py b/sistema/views.py index 5732b1b..cfc71a7 100644 --- a/sistema/views.py +++ b/sistema/views.py @@ -229,6 +229,19 @@ class PoiView(View):#PermissionRequiredMixin return JsonResponse({'response': poi_coords}, status=status.HTTP_200_OK) + def get_multimedia_data(self): + pk = int(self.POST.get('pk')) + + multimedia = Multimedia.objects.get(pk = pk) + multimedia_list = [] + multimedia_list.append({'tipologia': multimedia.tipologia.pk, + 'media': str(multimedia.media), + 'nome': multimedia.nome, + 'testo': multimedia.testo, + 'descrizione': multimedia.descrizione}) + + return JsonResponse({'response': multimedia_list}, status=status.HTTP_200_OK) + def add_poi(self, request): ''' bisogna controllare il salvataggio dei media nel form multimedia @@ -273,7 +286,7 @@ class PoiView(View):#PermissionRequiredMixin files = request.FILES.getlist('media') if multimedia_form.is_valid(): multimedia = multimedia_form.save(commit=False) - multimedia.poi = PointOfInterest.objects.get(pk=int(self.request.POST.get('pk_multimedia'))) + multimedia.poi = PointOfInterest.objects.get(pk=int(self.request.POST.get('pk_poi'))) if files: for f in files: multimedia.media = f @@ -281,6 +294,16 @@ class PoiView(View):#PermissionRequiredMixin multimedia.media = os.path.join(MEDIA_ROOT, 'icon/default.png') multimedia.save() + def mod_multimedia(self, request): + multimedia_form = MultimediaForm(request.POST,instance=Multimedia.objects.get(pk=int(self.request.POST.get('pk_multimedia')))) + files = request.FILES.getlist('media') + if multimedia_form.is_valid(): + multimedia = multimedia_form.save(commit=False) + if files: + for f in files: + multimedia.media = f + multimedia.save() + def mod_poi(self, request): form = PoiForm(request.POST, instance=PointOfInterest.objects.get(pk=int(self.request.POST.get('pk')))) files = request.FILES.getlist('icona') @@ -362,8 +385,12 @@ class PoiView(View):#PermissionRequiredMixin def post(self, request, *args, **kwargs): if 'mod' in request.POST: self.mod_poi(request) - elif 'add-multimedia' in request.POST: - self.add_multimedia(request) + elif 'add-mod-multimedia' in request.POST: + if request.POST.get('add-mod-multimedia') == 'add': + self.add_multimedia(request) + else: + self.mod_multimedia(request) + return redirect('sistema:mod_poi', pk=request.POST.get('pk_poi')) else: self.add_poi(request)