]> git.atlas4tour.it Git - pia_atlas.git/commitdiff
Merge remote-tracking branch 'origin/master'
authorValeria Vitti <valeria.vitti@dyrecta.com>
Tue, 15 Oct 2024 15:25:49 +0000 (17:25 +0200)
committerValeria Vitti <valeria.vitti@dyrecta.com>
Tue, 15 Oct 2024 15:25:49 +0000 (17:25 +0200)
# Conflicts:
# requirements.txt
# sistema/templates/percorsi_cliente_home.html
# sistema/urls.py
# sistema/views.py

1  2 
sistema/models.py
sistema/templates/base.html
sistema/templates/percorsi_cliente_home.html
sistema/urls.py
sistema/views.py

Simple merge
Simple merge
index 843e11dd8d26d1bbc5ac4f6352c44f9d85bfc35c,ba6ef6ec512f5b265866650aec616969c3d647e4..8b7e9796f2de06dfd9e45dc13bd5b0f84217b478
                  <h4 class="clr-config">Percorsi che puoi acquistare</h4>
              </div>
              <div class="card-body">
-                 <div class="row">
+                 <div class="row" id="available-routes">
                      {% for percorso in list_percorsi %}
-                         <div class="card" style="width: 18rem;">
+                         <div class="card p-3 route__filter" style="width: 18rem;">
 -                            <img class="card-img-top" src="{% static 'assets/img/logo.png' %}">
 +                            {% if percorso.icona %}
 +                                <img class="card-img-top" src="/media/{{ percorso.icona }}">
 +                            {% else %}
 +                                <img class="card-img-top" src="{% static 'assets/img/logo.png' %}">
 +                            {% endif %}
                              <div class="card-body">
-                                 <h5 class="card-title">{{ percorso.nome}}</h5>
-                                 <p class="card-text">{{ percorso.descrizione }}</p>
+                                 <h5 class="card-title route__text">{{ percorso.nome}}</h5>
+                                 <p class="card-text route__text">{{ percorso.descrizione }}</p>
                              </div>
-                             <div class="card-footer">
+                             <div class="card-footer p-3">
                                  <div class="d-flex justify-content-between">
                                      <h4>{{ percorso.prezzo|floatformat:2 }} €</h4>
-                                     <a href="#" class="btn btn-success">Compralo subito</a>
+                                     <a href="{% url 'pagamenti:checkout' percorso.pk %}" class="btn btn-success">Acquista ora</a>
                                  </div>
                              </div>
-                         <a href="{% url 'sistema:percorso_info' percorso.pk %}" class="stretched-link"></a>
+                             <a href="{% url 'sistema:percorso_info' percorso.pk %}" class="btn btn-warning rounded-4">Dettaglio percorso</a>
                          </div>
+                     {% empty %}
+                         <p>Non ci sono percorsi disponibili per l'acquisto.</p>
                      {% endfor %}
                  </div>
              </div>
diff --cc sistema/urls.py
index 53730adda229cd9ba5e766cc66080e4074119761,0916665c912e71ad737d6065f1a7f67f6a23498b..669dd3bed632d1b9c2baa931a1f51afa71b73717
@@@ -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'),
index ab8d9e9b89f468973f2e653c30e8f89e3cfd1b8c,eac79514378414abe5d64f20aeb4b7f41387437f..bcdecfe42af6dbb0ed8cb7ca46e7f34e251b82e3
@@@ -14,8 -9,9 +14,9 @@@ from django.views import Vie
  from django.views.generic import TemplateView
  from rest_framework import status
  
 -from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm, PercorsoForm, MultimediaForm
+ from pagamenti.views import CheckoutView, GetPayPalToken
- from sistema.models import Localita, TipologiaMultimedia, PointOfInterest, Percorso, Tappa, TappaSerializer, Multimedia, \
 +from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm, PercorsoForm, MultimediaForm, IconaPercorsoForm
+ 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:
-             return render(request, 'percorsi_list.html', {'form': form})
 +            form = IconaPercorsoForm()
 -            return render(request, 'percorsi_list.html', {'percorsi': percorsi_disponibili})
+             percorsi_disponibili = Percorso.objects.all()
++            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