From: Valeria Vitti Date: Tue, 15 Oct 2024 15:25:49 +0000 (+0200) Subject: Merge remote-tracking branch 'origin/master' X-Git-Url: https://git.atlas4tour.it/?a=commitdiff_plain;h=a7604f61c14fc01b20dc408e5a55e2b6961dd64f;p=pia_atlas.git Merge remote-tracking branch 'origin/master' # Conflicts: # requirements.txt # sistema/templates/percorsi_cliente_home.html # sistema/urls.py # sistema/views.py --- a7604f61c14fc01b20dc408e5a55e2b6961dd64f diff --cc sistema/templates/percorsi_cliente_home.html index 843e11d,ba6ef6e..8b7e979 --- a/sistema/templates/percorsi_cliente_home.html +++ b/sistema/templates/percorsi_cliente_home.html @@@ -22,26 -44,24 +44,28 @@@

Percorsi che puoi acquistare

-
+
{% for percorso in list_percorsi %} -
+
- + {% if percorso.icona %} + + {% else %} + + {% endif %}
-
{{ percorso.nome}}
-

{{ percorso.descrizione }}

+
{{ percorso.nome}}
+

{{ percorso.descrizione }}

- + {% empty %} +

Non ci sono percorsi disponibili per l'acquisto.

{% endfor %}
diff --cc sistema/urls.py index 53730ad,0916665..669dd3b --- a/sistema/urls.py +++ b/sistema/urls.py @@@ -3,8 -3,7 +3,7 @@@ from django.urls import pat from sistema.datatables import LocalitaDatatables, MultimediaDatatables, TipoMultimediaDatatables, PercorsoDatatables, \ PoiDatatables, FeedbackDatatables, GestisceLocalitaDatatables from sistema.views import Home, LocalitaListView, MultimediaListView, PuntiInteresseListView, \ - TipologiaMultimediaListView, PercorsiListView, LocalitaView, TipoMultimediaView, PoiView, PercorsoView, \ - FeedbackView, PercorsoInfo, QRCodeView - TipologiaMultimediaListView, PercorsiListView, TuoiPercorsiListView, LocalitaView, TipoMultimediaView, PoiView, PercorsoView, FeedbackView, PercorsoInfo ++ TipologiaMultimediaListView, PercorsiListView, TuoiPercorsiListView, LocalitaView, TipoMultimediaView, PoiView, PercorsoView, FeedbackView, PercorsoInfo, QRCodeView urlpatterns = [ path('', Home.as_view(), name='home'), diff --cc sistema/views.py index ab8d9e9,eac7951..bcdecfe --- a/sistema/views.py +++ b/sistema/views.py @@@ -14,8 -9,9 +14,9 @@@ from django.views import Vie from django.views.generic import TemplateView from rest_framework import status + from pagamenti.views import CheckoutView, GetPayPalToken -from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm, PercorsoForm, MultimediaForm +from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm, PercorsoForm, MultimediaForm, IconaPercorsoForm - from sistema.models import Localita, TipologiaMultimedia, PointOfInterest, Percorso, Tappa, TappaSerializer, Multimedia, \ + from sistema.models import Localita, TipologiaMultimedia, Pagamenti, PointOfInterest, Percorso, Tappa, TappaSerializer, Multimedia, \ Feedback, FeedbackSerializer from socoin_atlas import settings from socoin_atlas.settings import MEDIA_ROOT @@@ -51,11 -47,34 +52,35 @@@ class MultimediaListView(TemplateView): class PercorsiListView(View): def get(self, request): if request.session['roles'] == settings.CLIENTI_GROUPS: - list_percorsi = Percorso.objects.filter(is_active=True) - return render(request, 'percorsi_cliente_home.html', {'list_percorsi': list_percorsi}) + # Ottieni gli ID dei percorsi già pagati + percorsi_pagati_id = Pagamenti.objects.filter(user=request.user).values_list('percorso_id', flat=True) + + # Ottieni i percorsi pagati + list_pagati = Percorso.objects.filter(id__in=percorsi_pagati_id) + + # Ottieni i percorsi disponibili (non pagati) + list_percorsi = Percorso.objects.exclude(id__in=percorsi_pagati_id) + + return render(request, 'percorsi_cliente_home.html', { + 'list_pagati': list_pagati, + 'list_percorsi': list_percorsi, + }) else: + form = IconaPercorsoForm() - return render(request, 'percorsi_list.html', {'form': form}) + percorsi_disponibili = Percorso.objects.all() - return render(request, 'percorsi_list.html', {'percorsi': percorsi_disponibili}) ++ return render(request, 'percorsi_list.html', {'percorsi': percorsi_disponibili, 'form': form}) + + + class TuoiPercorsiListView(View): + def get(self, request): + if request.session['roles'] == settings.CLIENTI_GROUPS: + user_id = request.user.id + pagamenti_utente = Pagamenti.objects.filter(user_id=user_id) + id_percorsi_pagati = pagamenti_utente.values_list('percorso_id', flat=True) + list_percorsi_pagati = Percorso.objects.filter(id__in=id_percorsi_pagati, is_active=True) + return render(request, 'tuoi_percorsi_cliente.html', {'list_percorsi_pagati': list_percorsi_pagati}) + else: + return render(request, 'percorsi_cliente_home.html', {}) class Home(CustomLoginRequiredMixin, View): # CustomLoginRequiredMixin