diff --git a/django/contatti_app/admin.py b/django/contatti_app/admin.py
index 430c519..c8d2f71 100644
--- a/django/contatti_app/admin.py
+++ b/django/contatti_app/admin.py
@@ -49,9 +49,9 @@ class CachingPaginator(Paginator):
# --------------- FINE PREFISSO TEMPLATE ---------------
-@admin.register(models.PersonaContattoAzienda)
-class PersonaContattoAziendaAdmin(ImportExportModelAdmin):
- # resource = resources.PersonaContattoAziendaResource
+@admin.register(models.ContattoAziendale)
+class ContattoAziendaleAdmin(ImportExportModelAdmin):
+ # resource = resources.ContattoAziendaleResource
# list_per_page = 15
# paginator = CachingPaginator
# show_full_result_count = False
diff --git a/django/contatti_app/migrations/0002_alter_email_indirizzo_email.py b/django/contatti_app/migrations/0002_alter_email_indirizzo_email.py
new file mode 100644
index 0000000..1535187
--- /dev/null
+++ b/django/contatti_app/migrations/0002_alter_email_indirizzo_email.py
@@ -0,0 +1,17 @@
+# Generated by Django 4.2.2 on 2023-06-20 09:50
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("contatti_app", "0001_initial"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="email",
+ name="indirizzo_email",
+ field=models.EmailField(max_length=254),
+ ),
+ ]
diff --git a/django/contatti_app/migrations/0003_contattoaziendale_and_more.py b/django/contatti_app/migrations/0003_contattoaziendale_and_more.py
new file mode 100644
index 0000000..62f28ee
--- /dev/null
+++ b/django/contatti_app/migrations/0003_contattoaziendale_and_more.py
@@ -0,0 +1,39 @@
+# Generated by Django 4.2.2 on 2023-06-20 13:30
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("contatti_app", "0002_alter_email_indirizzo_email"),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name="ContattoAziendale",
+ fields=[
+ (
+ "id",
+ models.AutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ ("is_personale", models.BooleanField(default=True)),
+ ],
+ options={
+ "verbose_name": "Contatto aziendale",
+ "verbose_name_plural": "Contatti aziendali",
+ },
+ ),
+ migrations.RemoveField(
+ model_name="personacontattoazienda",
+ name="azienda",
+ ),
+ migrations.RemoveField(
+ model_name="personacontattoazienda",
+ name="personafisica_ptr",
+ ),
+ ]
diff --git a/django/contatti_app/migrations/0004_delete_personacontattoazienda_and_more.py b/django/contatti_app/migrations/0004_delete_personacontattoazienda_and_more.py
new file mode 100644
index 0000000..4eb1909
--- /dev/null
+++ b/django/contatti_app/migrations/0004_delete_personacontattoazienda_and_more.py
@@ -0,0 +1,35 @@
+# Generated by Django 4.2.2 on 2023-06-20 13:30
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("contatti_app", "0003_contattoaziendale_and_more"),
+ ("offerte_app", "0002_alter_destinatarioofferta_intestatario"),
+ ]
+
+ operations = [
+ migrations.DeleteModel(
+ name="PersonaContattoAzienda",
+ ),
+ migrations.AddField(
+ model_name="contattoaziendale",
+ name="azienda",
+ field=models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="contatti_azienda",
+ to="contatti_app.societa",
+ ),
+ ),
+ migrations.AddField(
+ model_name="contattoaziendale",
+ name="persona",
+ field=models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="aziende_correlate",
+ to="contatti_app.personafisica",
+ ),
+ ),
+ ]
diff --git a/django/contatti_app/modello_database.xml b/django/contatti_app/modello_database.xml
index 75b33a2..0f52d5d 100644
--- a/django/contatti_app/modello_database.xml
+++ b/django/contatti_app/modello_database.xml
@@ -37,7 +37,7 @@
-
+
INTEGER
NULL
diff --git a/django/contatti_app/models.py b/django/contatti_app/models.py
index 5c7a71f..f0a4a12 100644
--- a/django/contatti_app/models.py
+++ b/django/contatti_app/models.py
@@ -94,7 +94,7 @@ class Email(VoceContattoRubrica):
eml += ' (!)'
return eml
- indirizzo_email = models.CharField(null=False,blank=False,max_length=30)
+ indirizzo_email = models.EmailField(null=False,blank=False,max_length=254)
note = models.CharField(null=False,blank=True,default='', max_length=64)
@@ -104,7 +104,11 @@ class Pec(Email):
verbose_name_plural = 'pec'
def __str__(self):
- return f"Pec (id: {self.id})"
+ eml = self.indirizzo_email
+ if self.note:
+ eml += ' (!)'
+ return eml
+
class Fax(VoceContattoRubrica):
@@ -158,14 +162,16 @@ class Societa(models.Model):
blank=True, related_name="societa")
-class PersonaContattoAzienda(PersonaFisica):
+class ContattoAziendale(models.Model):
class Meta:
- verbose_name = 'personacontattoazienda'
- verbose_name_plural = 'personacontattoazienda'
+ verbose_name = 'Contatto aziendale'
+ verbose_name_plural = 'Contatti aziendali'
def __str__(self):
- return f"PersonaContattoAzienda (id: {self.id})"
+ return f"ContattoAziendale (id: {self.id})"
azienda = models.ForeignKey(Societa, on_delete=models.CASCADE, null=False,
- blank=False, related_name='persone')
+ blank=False, related_name='contatti_azienda')
+ persona = models.ForeignKey(PersonaFisica, on_delete=models.CASCADE, null=False,
+ blank=False, related_name='aziende_correlate')
is_personale = models.BooleanField(null=False, blank=False, default=True)
diff --git a/django/contatti_app/resources.py b/django/contatti_app/resources.py
index e8c1500..ec954e4 100644
--- a/django/contatti_app/resources.py
+++ b/django/contatti_app/resources.py
@@ -4,9 +4,9 @@ from . import models
# --------------- FINE PREFISSO TEMPLATE ---------------
-class PersonaContattoAziendaResource(resources.ModelResource):
+class ContattoAziendaleResource(resources.ModelResource):
class Meta:
- model = models.PersonaContattoAzienda
+ model = models.ContattoAziendale
class VoceContattoRubricaResource(resources.ModelResource):
diff --git a/django/contatti_app/serializers.py b/django/contatti_app/serializers.py
index 06cd4c0..dcd5135 100644
--- a/django/contatti_app/serializers.py
+++ b/django/contatti_app/serializers.py
@@ -4,9 +4,9 @@ from . import models
# --------------- FINE PREFISSO TEMPLATE ---------------
-class PersonaContattoAziendaSerializer(serializers.ModelSerializer):
+class ContattoAziendaleSerializer(serializers.ModelSerializer):
class Meta:
- model = models.PersonaContattoAzienda
+ model = models.ContattoAziendale
fields = ('azienda', 'is_personale')
diff --git a/django/contatti_app/urls.py b/django/contatti_app/urls.py
index dc8635e..ebbbde3 100644
--- a/django/contatti_app/urls.py
+++ b/django/contatti_app/urls.py
@@ -11,7 +11,7 @@ router = routers.DefaultRouter()
# --------------- FINE PREFISSO TEMPLATE ---------------
-router.register(r'personacontattoazienda', views.PersonaContattoAzienda_View)
+router.register(r'ContattoAziendale', views.ContattoAziendale_View)
router.register(r'vocecontattorubrica', views.VoceContattoRubrica_View)
router.register(r'telefono', views.Telefono_View)
router.register(r'email', views.Email_View)
diff --git a/django/contatti_app/views.py b/django/contatti_app/views.py
index 3d10eea..5c87700 100644
--- a/django/contatti_app/views.py
+++ b/django/contatti_app/views.py
@@ -19,12 +19,12 @@ from . import serializers
# --------------- FINE PREFISSO TEMPLATE ---------------
-class PersonaContattoAzienda_View(viewsets.ModelViewSet):
+class ContattoAziendale_View(viewsets.ModelViewSet):
# authentication_classes = [BasicAuthentication, SessionAuthentication, TokenAuthentication]
# permission_classes = [DjangoModelPermissions]
- queryset = models.PersonaContattoAzienda.objects.all()
- serializer_class = serializers.PersonaContattoAziendaSerializer
+ queryset = models.ContattoAziendale.objects.all()
+ serializer_class = serializers.ContattoAziendaleSerializer
class VoceContattoRubrica_View(viewsets.ModelViewSet):
diff --git a/django/offerte_app/migrations/0002_alter_destinatarioofferta_intestatario.py b/django/offerte_app/migrations/0002_alter_destinatarioofferta_intestatario.py
new file mode 100644
index 0000000..ea12f9e
--- /dev/null
+++ b/django/offerte_app/migrations/0002_alter_destinatarioofferta_intestatario.py
@@ -0,0 +1,25 @@
+# Generated by Django 4.2.2 on 2023-06-20 13:30
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("contatti_app", "0003_contattoaziendale_and_more"),
+ ("offerte_app", "0001_initial"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="destinatarioofferta",
+ name="intestatario",
+ field=models.ForeignKey(
+ blank=True,
+ null=True,
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="DestinatarioOfferta_da_contatti_appContattoAziendale_intestatario",
+ to="contatti_app.contattoaziendale",
+ ),
+ ),
+ ]
diff --git a/django/offerte_app/models.py b/django/offerte_app/models.py
index 28c3b0b..6b85412 100644
--- a/django/offerte_app/models.py
+++ b/django/offerte_app/models.py
@@ -11,8 +11,8 @@ class DestinatarioOfferta(models.Model):
destinazione = models.ForeignKey('contatti_app.Sede', on_delete=models.CASCADE, null=True,
blank=True, related_name="DestinatarioOfferta_da_Sede_destinazione")
- intestatario = models.ForeignKey('contatti_app.PersonaContattoAzienda', on_delete=models.CASCADE, null=True,
- blank=True, related_name="DestinatarioOfferta_da_contatti_appPersonaContattoAzienda_intestatario")
+ intestatario = models.ForeignKey('contatti_app.ContattoAziendale', on_delete=models.CASCADE, null=True,
+ blank=True, related_name="DestinatarioOfferta_da_contatti_appContattoAziendale_intestatario")
class GruppoOfferte(models.Model):
diff --git a/django/sangue_app/modello_database.xml b/django/sangue_app/modello_database.xml
index 8e8ce9a..875360c 100644
--- a/django/sangue_app/modello_database.xml
+++ b/django/sangue_app/modello_database.xml
@@ -47,7 +47,7 @@
NULL
INTEGER
-NULL
+NULL
id
@@ -214,7 +214,7 @@
id
-
+
INTEGER
NULL
diff --git a/django/sangue_django/modello_dati.xml b/django/sangue_django/modello_dati.xml
index eea96fa..272795a 100644
--- a/django/sangue_django/modello_dati.xml
+++ b/django/sangue_django/modello_dati.xml
@@ -47,7 +47,7 @@
NULL
INTEGER
-NULL
+NULL
id
@@ -212,7 +212,7 @@
id
-