From: Alberto Monda Date: Thu, 6 Feb 2025 14:45:00 +0000 (+0100) Subject: Commit risoluzione bug 4.0 06/02/2025 X-Git-Url: https://git.atlas4tour.it/?a=commitdiff_plain;p=pia_atlas.git Commit risoluzione bug 4.0 06/02/2025 --- diff --git a/sistema/forms.py b/sistema/forms.py index 1ab435d..ed2e0e3 100644 --- a/sistema/forms.py +++ b/sistema/forms.py @@ -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( diff --git a/utenti/datatables.py b/utenti/datatables.py index 174cb55..c0b0735 100644 --- a/utenti/datatables.py +++ b/utenti/datatables.py @@ -47,9 +47,10 @@ class UserDatatables(BaseDatatableView): elif self.get_role() == settings.TOUR_OPERATOR_GROUPS: return '' % row.pk else: - return '' #% row.pk + # return '' % row.pk + return '' % row.pk if column == 'del': - return '' % row.pk + return '' % 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 index 0000000..4b6a49e --- /dev/null +++ b/utenti/templates/User_confirm_delete.html @@ -0,0 +1,14 @@ +{% extends 'base.html' %} + +{% block title %}Conferma Eliminazione{% endblock %} + +{% block content %} +
+

Sei sicuro di voler eliminare {{ object }}?

+
+ {% csrf_token %} + + Annulla +
+
+{% endblock %} diff --git a/utenti/urls.py b/utenti/urls.py index e5aab1f..dade719 100644 --- a/utenti/urls.py +++ b/utenti/urls.py @@ -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//', AdminView.as_view(), name='mod_admin'), + path('del_admin//', AdminDeleteView.as_view(), name='del_admin'), ] \ No newline at end of file diff --git a/utenti/views.py b/utenti/views.py index e146b26..6fffcb9 100644 --- a/utenti/views.py +++ b/utenti/views.py @@ -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