.dropdown-menu[data-bs-popper] {
left: auto;
}
+
+
+
+/* (A) LIST STYLES */
+.slist {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+.slist li {
+ margin: 10px;
+ padding: 15px;
+ border: 1px solid #dfdfdf;
+ background: #f5f5f5;
+}
+
+/* (B) DRAG-AND-DROP HINT */
+.slist li.hint {
+ border: 1px solid #ffc49a;
+ background: #feffb4;
+}
+.slist li.active {
+ border: 1px solid #ffa5a5;
+ background: #ffe7e7;
+}
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<!-- CSS only -->
-
- <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet"/>
- <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
<script src="https://kit.fontawesome.com/aada406570.js" crossorigin="anonymous"></script>
crossorigin="anonymous"></script>
<style>
- /* (A) LIST STYLES */
- .slist {
- list-style: none;
- padding: 0;
- margin: 0;
- }
- .slist li {
- margin: 10px;
- padding: 15px;
- border: 1px solid #dfdfdf;
- background: #f5f5f5;
- }
-
- /* (B) DRAG-AND-DROP HINT */
- .slist li.hint {
- border: 1px solid #ffc49a;
- background: #feffb4;
- }
- .slist li.active {
- border: 1px solid #ffa5a5;
- background: #ffe7e7;
- }
+
</style>
</head>
<link rel="stylesheet" href="{% static 'assets/css/notifications/Lobibox.min.css' %}">
<script src="{% static 'assets/js/notifications/Lobibox.js' %}"></script>
- <!-- Stampa -->
- <script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"
- integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg=="
- crossorigin="anonymous" referrerpolicy="no-referrer"></script>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
-
-<script src="https://rawgit.com/Microsoft/TypeScript/master/lib/typescriptServices.js"></script>
-<script src="https://rawgit.com/basarat/typescript-script/master/transpiler.js"></script>
</div>
import json
from django.contrib import messages
+from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import JsonResponse
from django.shortcuts import render, redirect
from django.urls import reverse
from sistema.forms import LocalitaForm, TipoMultimediaForm, PoiForm, PercorsoForm, MultimediaForm
from sistema.models import Localita, TipologiaMultimedia, PointOfInterest, Percorso, Tappa, TappaSerializer, Multimedia
-from socoin_atlas import settings
from utenti.mixins import CustomLoginRequiredMixin
-from django.template.defaultfilters import register
class LocalitaListView(TemplateView):#PermissionRequiredMixin
template_name = 'percorsi_list.html'
-class Home(View): # CustomLoginRequiredMixin
+class Home(CustomLoginRequiredMixin, View): # CustomLoginRequiredMixin
def get(self, request):
return render(request, 'home.html', {})
class CustomLoginRequiredMixin(LoginRequiredMixin, View):
- login_url = reverse_lazy('login')
+ login_url = reverse_lazy('utenti:login')
redirect_field_name = 'redirect_to'
if request.user.is_authenticated:
return super(AuthorizationRequiredMixin, self).dispatch(request, *args, **kwargs)
else:
- return redirect('/login/')
+ return redirect('utenti:login')
class PermissionRequiredMixin(object):
user_perms = request.session.get('roles')
if user_perms:
if len(set(user_perms).intersection(self.permission_required)) <= 0:
- return redirect('/login/')
+ return redirect('utenti:login')
return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs)
else:
- return redirect('/login/')
+ return redirect('utenti:login')
else:
- return redirect('/login/')
\ No newline at end of file
+ return redirect('utenti:login')
\ No newline at end of file
import json
-
-from django.contrib.auth import authenticate, login
from django.contrib.auth.models import User
from django.http import JsonResponse
from django.shortcuts import render, redirect
class Autentication(View):
def post(self, request):
- redirect_to = request.GET.get('redirect_to', '/')
+ redirect_to = request.GET.get('redirect_to', '/sistema/home/')
if request.user.is_authenticated:
return redirect(redirect_to)
user = authenticate(username=username, password=password)
if user is not None:
- login(request, user, backend='accounts.backends.AuthenticationLoginBackend')
+ login(request, user)
messages.add_message(request, messages.INFO, 'Ciao ' + username + ' :)')
request.session['roles'] = user.groups.all()[0].name
request.session['user_id'] = user.pk
request.session['username'] = user.username
- return redirect('sistema:home')
+ return redirect('/')
else:
messages.add_message(request, messages.ERROR, 'Dati di autenticazione non validi.')