appel aux méthodes de classes résolu par import local

This commit is contained in:
SebF 2025-04-29 21:44:24 +02:00
parent 59f3341b0d
commit 2f002014eb
5 changed files with 27 additions and 29 deletions

View File

@ -33,24 +33,11 @@ from django_resized import ResizedImageField
from icalendar import Calendar as icalCal from icalendar import Calendar as icalCal
from icalendar import Event as icalEvent 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.utils import remove_accents
from ..models.configuration import SiteConfiguration from ..models.configuration import SiteConfiguration
# from ..models.tag import Tag
from ..calendar import CalendarDay from ..calendar import CalendarDay
from ..import_tasks.extractor import Extractor from ..import_tasks.extractor import Extractor
Category = None
CategorisationRule = None
Place = None
Tag = None
Message = None
RecurrentImport = None
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -187,6 +174,8 @@ class DuplicatedEvents(models.Model):
super().save(*args, **kwargs) super().save(*args, **kwargs)
def get_import_messages(self): def get_import_messages(self):
from . import Message
msgs = [] msgs = []
for e in self.get_duplicated(): for e in self.get_duplicated():
for m in e.message_set.filter( for m in e.message_set.filter(
@ -415,6 +404,8 @@ class Event(models.Model):
self._messages = [] self._messages = []
def get_import_messages(self): def get_import_messages(self):
from . import Message
return self.message_set.filter( return self.message_set.filter(
message_type__in=[ message_type__in=[
Message.TYPE.IMPORT_PROCESS, Message.TYPE.IMPORT_PROCESS,
@ -501,6 +492,8 @@ class Event(models.Model):
) )
def in_recurrent_import(self): def in_recurrent_import(self):
from . import RecurrentImport
if self.import_sources: if self.import_sources:
for s in self.import_sources: for s in self.import_sources:
o_s = RecurrentImport.objects.filter(source=s).count() o_s = RecurrentImport.objects.filter(source=s).count()
@ -509,6 +502,8 @@ class Event(models.Model):
return False return False
def get_import_sources(self): def get_import_sources(self):
from . import RecurrentImport
if self.import_sources: if self.import_sources:
result = [] result = []
for s in self.import_sources: for s in self.import_sources:
@ -741,6 +736,8 @@ class Event(models.Model):
return result return result
def tag_messages(self): def tag_messages(self):
from ..models.tag import Tag
if self.tags is None: if self.tags is None:
return [] return []
return Tag.objects.filter( return Tag.objects.filter(
@ -1143,8 +1140,10 @@ class Event(models.Model):
self.recurrence_dtend = self.recurrence_dtstart self.recurrence_dtend = self.recurrence_dtstart
def prepare_save(self): 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() self.update_recurrence_dtstartend()
# clear cache # clear cache
@ -1177,6 +1176,8 @@ class Event(models.Model):
CategorisationRule.apply_rules(self) CategorisationRule.apply_rules(self)
def get_contributor_message(self): def get_contributor_message(self):
from . import Message
types = [ types = [
Message.TYPE.FROM_CONTRIBUTOR, Message.TYPE.FROM_CONTRIBUTOR,
Message.TYPE.FROM_CONTRIBUTOR_NO_MSG, Message.TYPE.FROM_CONTRIBUTOR_NO_MSG,
@ -1721,6 +1722,8 @@ class Event(models.Model):
return cal return cal
def get_count_modification(when): def get_count_modification(when):
from . import RecurrentImport
start = datetime(when[0].year, when[0].month, when[0].day) start = datetime(when[0].year, when[0].month, when[0].day)
end = start + timedelta(days=when[1]) end = start + timedelta(days=when[1])

View File

@ -4,12 +4,6 @@ from django.utils.translation import gettext_lazy as _
from django_better_admin_arrayfield.models.fields import ArrayField 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 RecurrentImport(models.Model):
class Meta: class Meta:
verbose_name = _("Recurrent import") verbose_name = _("Recurrent import")
@ -154,6 +148,8 @@ class RecurrentImport(models.Model):
return BatchImportation.objects.filter(recurrentImport=self).count() return BatchImportation.objects.filter(recurrentImport=self).count()
def nb_events(self): def nb_events(self):
from ..models.event import Event
return Event.objects.filter(import_sources__contains=[self.source]).count() return Event.objects.filter(import_sources__contains=[self.source]).count()
def get_absolute_url(self): def get_absolute_url(self):

View File

@ -5,9 +5,6 @@ from django.urls import reverse
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django_ckeditor_5.fields import CKEditor5Field from django_ckeditor_5.fields import CKEditor5Field
# from ..models.event import Event
Event = None
class Message(models.Model): class Message(models.Model):
class TYPE(models.TextChoices): class TYPE(models.TextChoices):

View File

@ -10,9 +10,6 @@ from django_ckeditor_5.fields import CKEditor5Field
from django_extensions.db.fields import AutoSlugField from django_extensions.db.fields import AutoSlugField
from location_field.models.spatial import LocationField from location_field.models.spatial import LocationField
# from ..models.event import Event
Event = None
class Place(models.Model): class Place(models.Model):
name = models.CharField(verbose_name=_("Name"), help_text=_("Name of the place")) name = models.CharField(verbose_name=_("Name"), help_text=_("Name of the place"))
@ -77,9 +74,13 @@ class Place(models.Model):
) )
def nb_events(self): def nb_events(self):
from ..models.event import Event
return Event.objects.filter(exact_location=self).count() return Event.objects.filter(exact_location=self).count()
def nb_events_future(self): def nb_events_future(self):
from ..models.event import Event
return ( return (
Event.objects.filter(start_day__gte=datetime.now()) Event.objects.filter(start_day__gte=datetime.now())
.filter(exact_location=self) .filter(exact_location=self)
@ -93,6 +94,8 @@ class Place(models.Model):
return False return False
def associate_matching_events(self): def associate_matching_events(self):
from ..models.event import Event
u_events = Event.objects.filter(exact_location__isnull=True) u_events = Event.objects.filter(exact_location__isnull=True)
to_be_updated = [] to_be_updated = []

View File

@ -8,11 +8,8 @@ from django.urls import reverse
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django_ckeditor_5.fields import CKEditor5Field from django_ckeditor_5.fields import CKEditor5Field
# from ..models.event import Event
from ..models.utils import no_slash_validator, remove_accents from ..models.utils import no_slash_validator, remove_accents
Event = None
class Tag(models.Model): class Tag(models.Model):
name = models.CharField( name = models.CharField(
@ -93,6 +90,8 @@ class Tag(models.Model):
result = cache.get(id_cache) result = cache.get(id_cache)
if not result: if not result:
from ..models.event import Event
free_tags = Event.get_all_tags(False) free_tags = Event.get_all_tags(False)
f_tags = [t["tag"] for t in free_tags] f_tags = [t["tag"] for t in free_tags]