diff --git a/app/nossas/apps/management/commands/import_campaigns.py b/app/nossas/apps/management/commands/import_campaigns.py index 8ad8a7e0..6f37c62a 100644 --- a/app/nossas/apps/management/commands/import_campaigns.py +++ b/app/nossas/apps/management/commands/import_campaigns.py @@ -1,10 +1,12 @@ import itertools from django.core.management.base import BaseCommand, CommandError, CommandParser +from django.db.utils import IntegrityError from django.db.models import Q, Prefetch from django.contrib.sites.models import Site from django.contrib.auth.models import User from contrib.bonde.models import Community, Mobilization + from nossas.apps.utils import import_mobilization @@ -13,6 +15,7 @@ def add_arguments(self, parser: CommandParser) -> None: parser.add_argument("--period", type=str) def handle(self, *args, **options): + q = Q() for name in [ "Mobilizações NOSSAS", @@ -34,7 +37,6 @@ def handle(self, *args, **options): filters.update( { "created_at__year__gte": int(year_start), - "created_at__year__lte": int(year_end), } ) @@ -55,8 +57,9 @@ def handle(self, *args, **options): for m in mobilizations: try: import_mobilization(m.id, site, user) + except IntegrityError: + pass except Exception as err: - import ipdb;ipdb.set_trace() self.stdout.write( self.style.ERROR( f"Falha ao tentar importar a Mobilização[{m.id}]: {m.name}." diff --git a/app/nossas/apps/migrations/0017_alter_campaign_managers_alter_campaigngroup_managers_and_more.py b/app/nossas/apps/migrations/0017_alter_campaign_managers_alter_campaigngroup_managers_and_more.py new file mode 100644 index 00000000..fffb7c05 --- /dev/null +++ b/app/nossas/apps/migrations/0017_alter_campaign_managers_alter_campaigngroup_managers_and_more.py @@ -0,0 +1,71 @@ +# Generated by Django 4.2 on 2024-06-11 14:00 + +import django.contrib.sites.managers +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sites', '0002_alter_domain_unique'), + ('apps', '0016_alter_timelineevent_options_timelineevent_day_and_more'), + ] + + operations = [ + migrations.AlterModelManagers( + name='campaign', + managers=[ + ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ('objects', django.contrib.sites.managers.CurrentSiteManager()), + ], + ), + migrations.AlterModelManagers( + name='campaigngroup', + managers=[ + ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ('objects', django.contrib.sites.managers.CurrentSiteManager()), + ], + ), + migrations.AlterModelManagers( + name='job', + managers=[ + ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ('objects', django.contrib.sites.managers.CurrentSiteManager()), + ], + ), + migrations.AlterModelManagers( + name='member', + managers=[ + ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ('objects', django.contrib.sites.managers.CurrentSiteManager()), + ], + ), + migrations.AlterModelManagers( + name='membergroup', + managers=[ + ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ('objects', django.contrib.sites.managers.CurrentSiteManager()), + ], + ), + migrations.AlterModelManagers( + name='timelineevent', + managers=[ + ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ('objects', django.contrib.sites.managers.CurrentSiteManager()), + ], + ), + migrations.AlterField( + model_name='timelineevent', + name='event_context', + field=models.CharField(choices=[('mundo', 'Mundo'), ('nossas', 'Nossas')], default='mundo', max_length=6, verbose_name='Contexto'), + ), + migrations.AlterField( + model_name='timelineevent', + name='month', + field=models.IntegerField(choices=[(1, 'Janeiro'), (2, 'Fevereiro'), (3, 'Março'), (4, 'Abril'), (5, 'Maio'), (6, 'Junho'), (7, 'Julho'), (8, 'Agosto'), (9, 'Setembro'), (10, 'Outubro'), (11, 'Novembro'), (12, 'Dezembro')], default=1, verbose_name='Mês'), + ), + migrations.AlterUniqueTogether( + name='campaign', + unique_together={('mobilization_id', 'site')}, + ), + ] diff --git a/app/nossas/apps/models/campaigns.py b/app/nossas/apps/models/campaigns.py index e3445497..36e145c0 100644 --- a/app/nossas/apps/models/campaigns.py +++ b/app/nossas/apps/models/campaigns.py @@ -65,6 +65,7 @@ class Campaign(OnSiteBaseModel): class Meta: verbose_name = _("Campanha") + unique_together = ("mobilization_id", "site") def __str__(self): return self.name