diff --git a/src/agenda_culturel/models/event.py b/src/agenda_culturel/models/event.py index 95b51d0..e12d832 100644 --- a/src/agenda_culturel/models/event.py +++ b/src/agenda_culturel/models/event.py @@ -33,24 +33,11 @@ from django_resized import ResizedImageField from icalendar import Calendar as icalCal from icalendar import Event as icalEvent -# from ..models.place import Place -# from ..models.category import CategorisationRule, Category -# from ..models.message import Message -# from ..models.imports import RecurrentImport from ..models.utils import remove_accents from ..models.configuration import SiteConfiguration - -# from ..models.tag import Tag from ..calendar import CalendarDay from ..import_tasks.extractor import Extractor -Category = None -CategorisationRule = None -Place = None -Tag = None -Message = None -RecurrentImport = None - logger = logging.getLogger(__name__) @@ -187,6 +174,8 @@ class DuplicatedEvents(models.Model): super().save(*args, **kwargs) def get_import_messages(self): + from . import Message + msgs = [] for e in self.get_duplicated(): for m in e.message_set.filter( @@ -415,6 +404,8 @@ class Event(models.Model): self._messages = [] def get_import_messages(self): + from . import Message + return self.message_set.filter( message_type__in=[ Message.TYPE.IMPORT_PROCESS, @@ -501,6 +492,8 @@ class Event(models.Model): ) def in_recurrent_import(self): + from . import RecurrentImport + if self.import_sources: for s in self.import_sources: o_s = RecurrentImport.objects.filter(source=s).count() @@ -509,6 +502,8 @@ class Event(models.Model): return False def get_import_sources(self): + from . import RecurrentImport + if self.import_sources: result = [] for s in self.import_sources: @@ -741,6 +736,8 @@ class Event(models.Model): return result def tag_messages(self): + from ..models.tag import Tag + if self.tags is None: return [] return Tag.objects.filter( @@ -1143,8 +1140,10 @@ class Event(models.Model): self.recurrence_dtend = self.recurrence_dtstart def prepare_save(self): - self.update_modification_dates() + from ..models.place import Place + from ..models.category import Category, CategorisationRule + self.update_modification_dates() self.update_recurrence_dtstartend() # clear cache @@ -1177,6 +1176,8 @@ class Event(models.Model): CategorisationRule.apply_rules(self) def get_contributor_message(self): + from . import Message + types = [ Message.TYPE.FROM_CONTRIBUTOR, Message.TYPE.FROM_CONTRIBUTOR_NO_MSG, @@ -1721,6 +1722,8 @@ class Event(models.Model): return cal def get_count_modification(when): + from . import RecurrentImport + start = datetime(when[0].year, when[0].month, when[0].day) end = start + timedelta(days=when[1]) diff --git a/src/agenda_culturel/models/imports.py b/src/agenda_culturel/models/imports.py index 94b1b26..652ea4c 100644 --- a/src/agenda_culturel/models/imports.py +++ b/src/agenda_culturel/models/imports.py @@ -4,12 +4,6 @@ from django.utils.translation import gettext_lazy as _ from django_better_admin_arrayfield.models.fields import ArrayField -# from ..models.event import Event -Event = None -# from ..models.organisation import Organisation -Organisation = None - - class RecurrentImport(models.Model): class Meta: verbose_name = _("Recurrent import") @@ -154,6 +148,8 @@ class RecurrentImport(models.Model): return BatchImportation.objects.filter(recurrentImport=self).count() def nb_events(self): + from ..models.event import Event + return Event.objects.filter(import_sources__contains=[self.source]).count() def get_absolute_url(self): diff --git a/src/agenda_culturel/models/message.py b/src/agenda_culturel/models/message.py index 8640cd3..d6f2ee2 100644 --- a/src/agenda_culturel/models/message.py +++ b/src/agenda_culturel/models/message.py @@ -5,9 +5,6 @@ from django.urls import reverse from django.utils.translation import gettext_lazy as _ from django_ckeditor_5.fields import CKEditor5Field -# from ..models.event import Event -Event = None - class Message(models.Model): class TYPE(models.TextChoices): diff --git a/src/agenda_culturel/models/place.py b/src/agenda_culturel/models/place.py index 25b5792..d5f5e62 100644 --- a/src/agenda_culturel/models/place.py +++ b/src/agenda_culturel/models/place.py @@ -10,9 +10,6 @@ from django_ckeditor_5.fields import CKEditor5Field from django_extensions.db.fields import AutoSlugField from location_field.models.spatial import LocationField -# from ..models.event import Event -Event = None - class Place(models.Model): name = models.CharField(verbose_name=_("Name"), help_text=_("Name of the place")) @@ -77,9 +74,13 @@ class Place(models.Model): ) def nb_events(self): + from ..models.event import Event + return Event.objects.filter(exact_location=self).count() def nb_events_future(self): + from ..models.event import Event + return ( Event.objects.filter(start_day__gte=datetime.now()) .filter(exact_location=self) @@ -93,6 +94,8 @@ class Place(models.Model): return False def associate_matching_events(self): + from ..models.event import Event + u_events = Event.objects.filter(exact_location__isnull=True) to_be_updated = [] diff --git a/src/agenda_culturel/models/tag.py b/src/agenda_culturel/models/tag.py index e6cd821..9c6171c 100644 --- a/src/agenda_culturel/models/tag.py +++ b/src/agenda_culturel/models/tag.py @@ -8,11 +8,8 @@ from django.urls import reverse from django.utils.translation import gettext_lazy as _ from django_ckeditor_5.fields import CKEditor5Field -# from ..models.event import Event from ..models.utils import no_slash_validator, remove_accents -Event = None - class Tag(models.Model): name = models.CharField( @@ -93,6 +90,8 @@ class Tag(models.Model): result = cache.get(id_cache) if not result: + from ..models.event import Event + free_tags = Event.get_all_tags(False) f_tags = [t["tag"] for t in free_tags]