]> git.atlas4tour.it Git - pia_atlas.git/commitdiff
Commit risoluzione bug 4.0 06/02/2025 master origin/HEAD origin/master
authorAlberto Monda <alberto.monda@dyrecta.com>
Thu, 6 Feb 2025 14:45:00 +0000 (15:45 +0100)
committerAlberto Monda <alberto.monda@dyrecta.com>
Thu, 6 Feb 2025 14:45:00 +0000 (15:45 +0100)
sistema/forms.py
utenti/datatables.py
utenti/templates/User_confirm_delete.html [new file with mode: 0644]
utenti/urls.py
utenti/views.py

index 1ab435dd9380e96e4bf6d66557ba2e3e82d05bde..ed2e0e3b5785d66b32d12da586257de7c23e2841 100644 (file)
@@ -4,38 +4,29 @@ from django.contrib.auth.forms import *
 from sistema.models import Localita, TipologiaMultimedia, Gestisce, PointOfInterest, Percorso, Multimedia
 from socoin_atlas.settings import MEDIA_URL
 
 from sistema.models import Localita, TipologiaMultimedia, Gestisce, PointOfInterest, Percorso, Multimedia
 from socoin_atlas.settings import MEDIA_URL
 
+from django import forms
+
 class LocalitaForm(forms.ModelForm):
     class Meta:
         model = Localita
         exclude = ('is_active',)
 
 class LocalitaForm(forms.ModelForm):
     class Meta:
         model = Localita
         exclude = ('is_active',)
 
-    descrizione = forms.CharField(
-        label="Nome",
-        max_length=255,
-        widget=forms.TextInput(attrs={'class': 'form-control', 'form': 'localita_form'})
-    )
-
-    provincia = forms.CharField(
-        label="Provincia",
-        max_length=20,
-        widget=forms.TextInput(attrs={'class': 'form-control', 'form': 'localita_form'})
-    )
-
-    cap = forms.CharField(
-        label="Cap",
-        max_length=10,
-        widget=forms.TextInput(attrs={'class': 'form-control', 'form': 'localita_form'})
-    )
-
-    regione = forms.CharField(
-        label="Regione",
-        max_length=50,
-        widget=forms.TextInput(attrs={'class': 'form-control', 'form': 'localita_form'})
-    )
+        labels = {
+            'descrizione': "Nome",
+            'provincia': "Provincia",
+            'cap': "Cap",
+            'regione': "Regione"
+        }
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
 
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
 
+        for field_name in self.fields:
+            self.fields[field_name].widget.attrs.update({
+                'class': 'form-control',
+            })
+
+
 
 class TipoMultimediaForm(forms.ModelForm):
     nome = forms.CharField(
 
 class TipoMultimediaForm(forms.ModelForm):
     nome = forms.CharField(
index 174cb5523e3902820eddbe5e1fb85a991479b5ea..c0b0735a150698f7101f9ce6b8baed9f4aa314fa 100644 (file)
@@ -47,9 +47,10 @@ class UserDatatables(BaseDatatableView):
             elif self.get_role() == settings.TOUR_OPERATOR_GROUPS:
                 return '<a class="btn btn-sm btn-secondary" href="/utenti/mod_tour_operator/%s/" ><i class="fas fa-edit"></i></a>' % row.pk
             else:
             elif self.get_role() == settings.TOUR_OPERATOR_GROUPS:
                 return '<a class="btn btn-sm btn-secondary" href="/utenti/mod_tour_operator/%s/" ><i class="fas fa-edit"></i></a>' % row.pk
             else:
-                return '<a class="btn btn-sm btn-secondary" href="#" ><i class="fas fa-edit"></i></a>' #% row.pk
+                # return '<a class="btn btn-sm btn-secondary" href="{% url utenti:mod_admin %}" ><i class="fas fa-edit"></i></a>' % row.pk
+                return '<a class="btn btn-sm btn-secondary" href="/utenti/mod_admin/%s/" ><i class="fas fa-edit"></i></a>' % row.pk
         if column == 'del':
         if column == 'del':
-            return '<a class="btn btn-sm btn-danger" href="DeleteUser(%s)" ><i class="fas fa-trash"></i></a>' % row.pk
+                return '<a class="btn btn-sm btn-danger" href="#" onclick="DeleteUser(%s)" ><i class="fas fa-trash"></i></a>' % row.pk
         else:
             return super(UserDatatables, self).render_column(row, column)
 
         else:
             return super(UserDatatables, self).render_column(row, column)
 
diff --git a/utenti/templates/User_confirm_delete.html b/utenti/templates/User_confirm_delete.html
new file mode 100644 (file)
index 0000000..4b6a49e
--- /dev/null
@@ -0,0 +1,14 @@
+{% extends 'base.html' %}
+
+{% block title %}Conferma Eliminazione{% endblock %}
+
+{% block content %}
+<div class="container">
+    <h1>Sei sicuro di voler eliminare {{ object }}?</h1>
+    <form method="post">
+        {% csrf_token %}
+        <button type="submit" class="btn btn-danger">Elimina</button>
+        <a href="{% url 'struttura:admin' %}" class="btn btn-secondary">Annulla</a>
+    </form>
+</div>
+{% endblock %}
index e5aab1f5011b15ef92a4568fdb86a1fd1ed203c1..dade719eb4ac164a64d30c269d0148174047112d 100644 (file)
@@ -4,7 +4,7 @@ from django.contrib import admin
 from django.contrib.auth import views as auth_views
 
 from utenti.datatables import UserDatatables
 from django.contrib.auth import views as auth_views
 
 from utenti.datatables import UserDatatables
-from utenti.views import Autentication, Logout, Register, AdminListView, TourOperatorListView, ClientiListView, TourOperatorView, ClienteView, AdminView
+from utenti.views import Autentication, Logout, Register, AdminListView, TourOperatorListView, ClientiListView, TourOperatorView, ClienteView, AdminView, AdminDeleteView
 
 urlpatterns = [
     path('accounts/', include('django.contrib.auth.urls')),
 
 urlpatterns = [
     path('accounts/', include('django.contrib.auth.urls')),
@@ -37,4 +37,5 @@ urlpatterns = [
     ## ADMIN ##
     path('admin/', AdminView.as_view(), name='admin'),
     path('mod_admin/<int:pk>/', AdminView.as_view(), name='mod_admin'),
     ## ADMIN ##
     path('admin/', AdminView.as_view(), name='admin'),
     path('mod_admin/<int:pk>/', AdminView.as_view(), name='mod_admin'),
+    path('del_admin/<int:pk>/', AdminDeleteView.as_view(), name='del_admin'),
 ]
\ No newline at end of file
 ]
\ No newline at end of file
index e146b2646ad00cf2869b7ec61f83713c67d9038b..6fffcb9ec82c124f291f7b9adacfd19ed329e552 100644 (file)
@@ -6,9 +6,9 @@ from django.urls import reverse
 from django.views import View
 from django.contrib import messages
 from django.contrib.auth import login, authenticate, logout
 from django.views import View
 from django.contrib import messages
 from django.contrib.auth import login, authenticate, logout
-from django.views.generic import TemplateView
+from django.views.generic import TemplateView, DeleteView
 from rest_framework import status
 from rest_framework import status
-
+from django.urls import reverse_lazy
 from sistema.forms import GestisceForm
 from sistema.models import Gestisce
 from utenti.forms import FormLogin, RegistrationForm, TourOperatorNewForm, CustomUserCreationForm, AdminForm
 from sistema.forms import GestisceForm
 from sistema.models import Gestisce
 from utenti.forms import FormLogin, RegistrationForm, TourOperatorNewForm, CustomUserCreationForm, AdminForm
@@ -189,7 +189,6 @@ class AdminView(View):#PermissionRequiredMixin
         form = AdminForm(request.POST)
         if form.is_valid():
             form.save()
         form = AdminForm(request.POST)
         if form.is_valid():
             form.save()
-
             messages.add_message(request, messages.INFO, 'Nuova amministratore inserito con successo.')
         else:
             errors = ''
             messages.add_message(request, messages.INFO, 'Nuova amministratore inserito con successo.')
         else:
             errors = ''
@@ -201,7 +200,6 @@ class AdminView(View):#PermissionRequiredMixin
         form = CustomUserCreationForm(data=request.POST, instance=User.objects.get(pk=int(self.request.POST.get('pk'))))
         if form.is_valid():
             form.save()
         form = CustomUserCreationForm(data=request.POST, instance=User.objects.get(pk=int(self.request.POST.get('pk'))))
         if form.is_valid():
             form.save()
-
             messages.add_message(request, messages.INFO, 'Admin aggiornato con successo.')
         else:
             errors = ''
             messages.add_message(request, messages.INFO, 'Admin aggiornato con successo.')
         else:
             errors = ''
@@ -232,3 +230,15 @@ class AdminView(View):#PermissionRequiredMixin
 
         return redirect(reverse('utenti:admin_list'))
 
 
         return redirect(reverse('utenti:admin_list'))
 
+class AdminDeleteView(DeleteView):
+    model = User
+    template_name = 'User_confirm_delete.html'
+    success_url = reverse_lazy('utenti:admin')
+
+    def post(self, request, *args, **kwargs):
+        try:
+            obj = self.get_object()
+            obj.delete()
+            return JsonResponse({"response": "User eliminato con successo."}, status=200)
+        except Exception as e:
+            return JsonResponse({"error": str(e)}, status=400)
\ No newline at end of file