浏览代码

attivata funzione di editing base

mauro 10 月之前
父节点
当前提交
a21e40057c
共有 3 个文件被更改,包括 34 次插入21 次删除
  1. 5 3
      amministratore/forms.py
  2. 2 2
      amministratore/templates/amministratore.welcome.html
  3. 27 16
      amministratore/views.py

+ 5 - 3
amministratore/forms.py

@@ -2,17 +2,19 @@ from django import  forms
 from .models import Amministratore
 
 class FormAmministratoreEditId(forms.Form):
-  def __init__(self,*args,**kwargs):
-  self.fields['scelta'] = forms.ChoiceField(requred=True,choices=self.c())
+  def __init__(self,*args,amministratore=[],**kwargs):
+    super().__init__(*args, **kwargs)
+    self.fields['scelta'] = forms.ChoiceField(required=True,choices=self.c(amministratore))
 
   def c(self,amministratore):
     choices = []
     for u in amministratore:
       choices.append((u.id,u.id),)
+
     print('choices',choices)
     return choices
 
-class formAmministratore(forms.Form):
+class FormAmministratore(forms.Form):
   def __init__(self,*args,**kwargs):
     forms.Form.__init__(self,*args,**kwargs)
     self.fields['login'] = forms.CharField(required=True)

+ 2 - 2
amministratore/templates/amministratore.welcome.html

@@ -3,8 +3,8 @@
 {% block body %}
   <form name="inputUtente" method="POST">
   <div class='form-control'>
-    {% if admin.crea_amministratore %} 
-      <input type='submit' class="btn btn-primary" name='scelta' value='Nuovo Amministratore'>
+    {% if admin.crea_permesso %} 
+      <input type='submit' class="btn btn-primary" name='sceltanuovo' value='Nuovo Amministratore'>
     {% endif %}
     <input type='submit' class="btn btn-primary" name="indietro" value="Indietro">
   </div>

+ 27 - 16
amministratore/views.py

@@ -59,9 +59,14 @@ def welcome(request):
     if 'indietro' in request.POST:
       return HttpResponseRedirect(reverse("azienda:welcome"))
 
-    formamministratoreeditid = FormAmministratoreEditId(amministratorelista)
+    if 'sceltanuovo' in request.POST:
+      request.session['AmministratoreEditId'] = 0
+      print('richiesto nuovo record')
+      return HttpResponseRedirect(reverse('amministratore:edit'))
+
+    formamministratoreeditid = FormAmministratoreEditId(request.POST,amministratore=amministratorelista)
     if formamministratoreeditid.is_valid():
-      scelta = formamministratoreeditid.clean_data.get('scelta')
+      scelta = formamministratoreeditid.cleaned_data.get('scelta')
       request.session['AmministratoreEditId'] = scelta
       print("Scelta effettuata",scelta)
       return HttpResponseRedirect(reverse("amministratore:edit"))
@@ -96,10 +101,13 @@ def edit(request):
 
   amministratore = None
   print(request)
-  if 'AmministratoreEditId' in request.POST:
+  if 'AmministratoreEditId' in request.session:
     amministratoreEditId = request.session.get('AmministratoreEditId')
-    amministratore = Amministratore.objects.get(pk=AmministratoreEditId)
-   print('amministratore',amministratore.id,amministratore.nome)
+    try:
+      amministratore = Amministratore.objects.get(pk=amministratoreEditId)
+    except Amministratore.DoesNotExist as dne:
+      amministratore = Amministratore()
+    print('amministratore',amministratore.id,amministratore.nome)
 
   print("request.method",request.method)
 
@@ -112,17 +120,20 @@ def edit(request):
     formamministratore = FormAmministratore(request.POST)
     if formamministratore.is_valid():
       print('form valida')
-    else:
-      data['amministratore'] = FormAmministratore(formamministratore)
-
-  else:
-    tmpform = dict()
-    tmp['nome'] = amministratore.nome
-    tmp['login'] = amministratore.login
-    tmp['pin'] = amministratore.pin
-    tmp['mail'] = amministratore.mail
-
-    data['amministratore'] = formAmministratore(tmpform)
+      amministratore.login=formamministratore.cleaned_data.get('login')
+      amministratore.nome=formamministratore.cleaned_data.get('nome')
+      amministratore.email=formamministratore.cleaned_data.get('mail')
+      amministratore.pin=formamministratore.cleaned_data.get('pin')
+      amministratore.save()
+      print('id amministratore salvato/nuovo',amministratore.id,":",amministratore.nome)
+      request.session['AmministratoreEditId'] = amministratore.id
+
+  tmp = dict()
+  tmp['nome'] = amministratore.nome
+  tmp['login'] = amministratore.login
+  tmp['pin'] = amministratore.pin
+  tmp['mail'] = amministratore.mail
+  data['amministratore'] = FormAmministratore(tmp)
 
   print('data',data)