]> 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 django import forms
+
 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)
 
+        for field_name in self.fields:
+            self.fields[field_name].widget.attrs.update({
+                'class': 'form-control',
+            })
+
+
 
 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:
-                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':
-            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)
 
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 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')),
@@ -37,4 +37,5 @@ urlpatterns = [
     ## 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
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.generic import TemplateView
+from django.views.generic import TemplateView, DeleteView
 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
@@ -189,7 +189,6 @@ class AdminView(View):#PermissionRequiredMixin
         form = AdminForm(request.POST)
         if form.is_valid():
             form.save()
-
             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()
-
             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'))
 
+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