瀏覽代碼

inserita form per inserimento azienda - manca correzione, elminazione e migliore gestione admin

mauro 1 年之前
父節點
當前提交
355591afa0
共有 5 個文件被更改,包括 122 次插入5 次删除
  1. 17 0
      azienda/forms.py
  2. 55 0
      azienda/templates/azienda.edit.html
  3. 1 0
      azienda/urls.py
  4. 46 0
      azienda/views.py
  5. 3 5
      static/templates/base.html

+ 17 - 0
azienda/forms.py

@@ -0,0 +1,17 @@
+from django import  forms
+
+class formAzienda(forms.Form):
+  def __init__(self,*args,**kwargs):
+    forms.Form.__init__(self,*args,**kwargs)
+    self.fields['nome'] = forms.CharField(required=True)
+    self.fields['partitaiva'] = forms.CharField(required=True)
+    self.fields['mail'] = forms.CharField(required=False)
+
+class formPinMail(forms.Form):
+  def __init__(self,*args,**kwargs):
+    forms.Form.__init__(self,*args,**kwargs)
+    self.fields['mail'] = forms.CharField(required=False)
+    self.fields['pin'] = forms.CharField(required=True)
+
+
+

+ 55 - 0
azienda/templates/azienda.edit.html

@@ -0,0 +1,55 @@
+{% extends 'base.html' %}
+
+{% block top %}
+    <div class='form-outline mb-3 text-center btn-primary h3'>
+           {{ HeaderTitle }}
+    </div>
+    <div class='form-outline mb-3 text-center btn-primary h3'>
+           Amministratore: {{ admin.username }} 
+    </div>
+{% endblock %}
+
+{% block body %}
+
+  <!-- errori utente -->
+  {% if azienda.errors %}
+    {{ azienda.errors }}
+    {% for field in azienda %}
+      {% for error in field.errors %}
+        <div class="alert alert-danger">
+          <strong>{{ error|escape }}</strong>
+        </div>
+      {% endfor %}
+    {% endfor %}
+
+    {% for error in azienda.non_field_errors %}
+      <div class="alert alert-danger">
+          <strong>{{ error|escape }}</strong>
+      </div>
+    {% endfor %}
+  {% else %}
+    Nessun Errore rilevato
+  {% endif %}
+  <!-- fine zona errori -->
+
+  <!-- profilo utente -->
+  <form name='AziendaEdit' method='post'>
+    {% csrf_token %}
+    <div class='form-group'>
+      <label for="nome">Nome Azienda</label>
+      <input type='text' class='form-control form-control-lg' name='nome' id='nome' value='{{ azienda.nome.value }}'>
+    </div>
+    <div class='form-group'>
+      <label for="partitaiva">Partita IVA</label>
+      <input type='text' class='form-control' name='partitaiva' id='partitaiva' value='{{ azienda.partitaiva.value }}'>
+    </div>
+    <div class='form-group'>
+      <label for="mail" class="form-control-label">Email</label>
+      <input type='mail' class='form-control' name='mail' id='mail' value='{{ azienda.mail.value }}'>
+    </div>
+
+    <input type='submit' class="btn btn-secondary" value='Aggiorna'>
+    <input type='submit' class="btn btn-primary" name="ritorna" value="Ritorna">
+  </form>
+
+</div>{% endblock %}

+ 1 - 0
azienda/urls.py

@@ -4,4 +4,5 @@ from . import views
 app_name='azienda'
 urlpatterns = [
   path('welcome',views.welcome,name='welcome'),
+  path('edit',views.edit,name='edit'),
   ]

+ 46 - 0
azienda/views.py

@@ -5,6 +5,7 @@ from .models import *
 from django.contrib.auth.models import User
 from config.views import *
 from att.views import *
+from .forms import *
 
 def welcome(request):
   if not 'AdminId' in request.session:
@@ -16,6 +17,8 @@ def welcome(request):
   data['HeaderTitle'] = getConfig('HeaderTitle')
 
   u = User.objects.get(pk=AdminId)
+  data['admin'] = u
+
   a = Assegnazione.objects.filter(user=u.id)
   print(len(a))
   tmplist = list()
@@ -31,6 +34,12 @@ def welcome(request):
       print('premuto tast ritorno,logout')
       return HttpResponseRedirect(reverse("login:start"))
 
+    if "sceltaazienda" in request.POST:
+      sceltaazienda = int(request.POST.get('sceltaazienda'))
+      print("sceltaazienda = ",request.POST.get('sceltaazienda'))
+      if sceltaazienda == 0: #richiesta una nuova azienda
+        return HttpResponseRedirect(reverse('azienda:edit'))
+  
     if  "utenti" in request.POST:
       print('premuto tasto utenti')
       # stato premuto il tasto, tocca recuperare l'id
@@ -67,4 +76,41 @@ def welcome(request):
 
   return render(request,'azienda.welcome.html',data)
 
+def edit(request):
+  AdminId = request.session['AdminId']
+
+  data={}
+  data['HeaderTitle'] = getConfig('HeaderTitle')
+  data['admin' ] = User.objects.get(pk=AdminId)
+
+  if request.method == "POST":
+    print("Richiesta creazione nuova azienda")
+    nuovaazienda = formAzienda(request.POST)
+    if nuovaazienda.is_valid():
+      print("il form e' valido",request.POST)
+      azienda = Azienda()
+      azienda.nome = nuovaazienda.cleaned_data.get('nome')
+      azienda.mail = nuovaazienda.cleaned_data.get('mail')
+      azienda.partitaiva = nuovaazienda.cleaned_data.get('partitaiva')
+      azienda.save()
+      request.session['aziendaId'] = azienda.id
+      assegnazione = Assegnazione()
+      assegnazione.azienda=azienda
+      assegnazione.utente=User.objects.get(pk=AdminId)
+      assegnazione.save()
+      return HttpResponseRedirect(reverse('azienda:welcome'))
+    else:
+      print("form non valido")
+      data['azienda'] = formAzienda(request.POST)
+
+  else: #non è un post
+    print("Non è un post")
+    formAziendaField = formAzienda()
+    data['azienda'] = formAziendaField
+
+  return render(request,'azienda.edit.html',data)
+     
+
+
+
 

+ 3 - 5
static/templates/base.html

@@ -29,18 +29,16 @@
           <ul>
             <form name="scegliazienda" method=POST>
             {% csrf_token %}
-            <select class="form-select form-select-lg mb-3" aria-label=".form-select-lg">
+            <select class="form-select form-select-lg mb-3" aria-label=".form-select-lg" name="sceltaazienda" onchange="this.form.submit()">
+	      <option>Scelta Azienda</option>
               {% for a in azienda %}
-                <option value={{ a.id }}>{{ a.nome }}</option>
+	      <option value={{ a.id }}><button type="submit" class="btn btn-primary" name="sceltaazienda" value="{{ a.id }}">{{ a.nome }}</button></option>
               {% endfor %}
               <option value=0>Nuova Azienda</option>
             </select>
             </form>
           </ul>
         </li>
-        <li class="nav-item">
-          <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
-        </li>
       </ul>
       <form class="d-flex" method='POST'>
         {% csrf_token %}