order_columns = ['id', 'utente', 'valutazione', 'commento', 'del']
def get_initial_queryset(self):
- return self.model.objects.filter(is_active=True)
+ percorso = self.request.GET.get('pk')
+ if percorso:
+ return self.model.objects.filter(percorso_id=int(percorso), is_active=True)
+ else:
+ return self.model.objects.none()
def render_column(self, row, column):
if column == 'id':
class PoiForm(forms.ModelForm):
+
+ is_danger = forms.BooleanField(
+ label="Punto di pericolo",
+ required=False,
+ widget=forms.CheckboxInput(attrs={'class': 'form-control'})
+ )
+
class Meta:
model = PointOfInterest
exclude = ('is_active',)
lat = models.FloatField()
long = models.FloatField()
icona = models.FileField(upload_to='icon/', null=True)
+ is_danger = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
nome = models.CharField(max_length=255, null=False)
descrizione = models.CharField(max_length=255, null=False)
testo = models.TextField(max_length=255, null=False)
+ prezzo = models.FloatField()
is_active = models.BooleanField(default=True)
$(document).ready(function () {
+ var pk_percorso = ''
+ {% if form.instance.pk %}
+ pk_percorso = {{ form.instance.pk }}
+ {% endif %}
+
$('#feedback-table').dataTable({
processing: true,
serverSide: true,
ajax: {
"url": "{% url 'sistema:feedback_datatables' %}",
"type": 'GET',
+ "data": {'pk': pk_percorso},
},
language: {
url: "//cdn.datatables.net/plug-ins/1.10.20/i18n/Italian.json"
option.value = {{ poi.id }};
option.text = '{{ poi.nome|safe }}';
selectList.appendChild(option);
+ console.log(selectList)
{% endfor %}
}
--- /dev/null
+{% extends 'base.html' %}
+{% load static %}
+{% block content %}
+
+<div class="row">
+ <div class="col-12 col-md-12 col-lg-12">
+ <h1 class="line-listini"><i class="fa-solid fa-route clr-listini mr-2" aria-hidden="true"></i> Dettaglio percorso </h1>
+ <div class="card">
+ <div class="card-header">
+ <h4 class="clr-config">I tuoi percorsi</h4>
+ </div>
+
+ <div class="card-body">
+ <div class="row">
+
+ </div>
+ </div>
+ </div>
+
+ <div class="card">
+ <div class="card-header">
+ <h4 class="clr-config">Percorsi che puoi acquistare</h4>
+ </div>
+ <div class="card-body">
+ <div class="row">
+ {% for percorso in list_percorsi %}
+ <div class="card" style="width: 18rem;">
+ <img class="card-img-top" src="{% static 'assets/img/logo.png' %}">
+ <div class="card-body">
+ <h5 class="card-title">{{ percorso.nome}}</h5>
+ <p class="card-text">{{ percorso.descrizione }}</p>
+ </div>
+ <div class="card-footer">
+ <div class="d-flex justify-content-between">
+ <h4>{{ percorso.prezzo|floatformat:2 }} €</h4>
+ <a href="#" class="btn btn-success">Compralo subito</a>
+ </div>
+ </div>
+ <a href="{% url 'sistema:percorso_info' percorso.pk %}" class="stretched-link"></a>
+ </div>
+ {% endfor %}
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+
+{% endblock %}
\ No newline at end of file
<a class="d-block small" href="{% url 'utenti:password_reset' %}">Forgot Password?</a>
</div>
</form>
+ <br>
+ <div class="text-center">
+ <a class="d-block" href="{% url 'utenti:register' %}">Registrati</a>
+ </div>
</div>
</div>
</div>
<div class="container mt-5">
<div class="row mb-5">
<div class="col-12 col-sm-8 offset-sm-2 col-md-6 offset-md-3 col-lg-6 offset-lg-3 col-xl-4 offset-xl-4 text-center">
- <img src="{% static 'admin/img/logo-farella-white.png' %}" width="160">
+ <img src="{% static 'assets/img/logo.png' %}" width="160">
</div>
</div>
<div class="row">
<br>
<input class="btn btn-success" type="submit" value="Register">
<br><br>
- <a style="color:greenyellow" href={% url 'utenti:login' %}>Back to login</a>
</form>
</form>
</div>
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
+ TipologiaMultimediaListView, PercorsiListView, LocalitaView, TipoMultimediaView, PoiView, PercorsoView, FeedbackView, PercorsoInfo
urlpatterns = [
path('', Home.as_view(), name='home'),
## PERCORSO ##
path('percorso/', PercorsoView.as_view(), name='percorso'),
path('mod_percorso/<int:pk>/', PercorsoView.as_view(), name='mod_percorso'),
+ path('percorso_info/<int:pk>/', PercorsoInfo.as_view(), name='percorso_info'),
## FEEDBACK ##
path('feedback/', FeedbackView.as_view(), name='feedback'),
from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm, PercorsoForm, MultimediaForm
from sistema.models import Localita, TipologiaMultimedia, PointOfInterest, Percorso, Tappa, TappaSerializer, Multimedia, \
Feedback, FeedbackSerializer
+from socoin_atlas import settings
from utenti.mixins import CustomLoginRequiredMixin
template_name = 'multimedia_list.html'
-class PercorsiListView(TemplateView):
- template_name = 'percorsi_list.html'
+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})
+ else:
+ return render(request, 'percorsi_list.html', {})
class Home(CustomLoginRequiredMixin, View): # CustomLoginRequiredMixin
return redirect(reverse('sistema:percorsi_list'))
+class PercorsoInfo(View):
+ def get(self, request, *args, **kwargs):
+ return render(request, 'add_mod_percorso.html', {})
+
class FeedbackView(View):#PermissionRequiredMixin
#permission_required = [settings.TOUR_OPERATOR_GROUPS, settings.ADMIN_GROUPS]
elif self.get_role() == settings.TOUR_OPERATOR_GROUPS:
return '<a class="btn btn-sm btn-primary" href="/utenti/mod_tour_operator/%s/" ><i class="fas fa-edit"></i></a>' % row.pk
else:
- return '<a class="btn btn-sm btn-primary" href="/utenti/mod_cliente/%s/" ><i class="fas fa-edit"></i></a>' % row.pk
+ return '<a class="btn btn-sm btn-primary" href="#" ><i class="fas fa-edit"></i></a>' #% row.pk
if column == 'del':
return '<a class="btn btn-sm btn-danger" href="DeleteUser(%s)" ><i class="fas fa-trash"></i></a>' % row.pk
else:
<div class="card">
<div class="card-header justify-content-between">
<h4 class="clr-bolle">Lista clienti</h4>
- <a href="#">
- <button class="btn-sm btn-primary"><i class="fa-solid fa-plus"></i> Aggiungi un nuovo cliente</button>
- </a>
+ <!--
+ <a href="#">
+ <button class="btn-sm btn-primary"><i class="fa-solid fa-plus"></i> Aggiungi un nuovo cliente</button>
+ </a>
+ -->
</div>
<div class="card-body">