From af803535c8d49a42a527d146ae998de9d589a00b Mon Sep 17 00:00:00 2001 From: Lucas Brandstaetter <lucas@brandstaetter.tech> Date: Sun, 20 Oct 2024 09:58:18 +0000 Subject: [PATCH] Replace relative imports --- src/.ruff.toml | 1 - src/api/urls.py | 2 +- src/api/urls_metrics.py | 2 +- src/api/views/assemblies.py | 4 +-- src/api/views/conferencemember.py | 4 +-- src/api/views/conferences.py | 4 +-- src/api/views/events.py | 4 +-- src/api/views/maps.py | 4 +-- src/api/views/messages.py | 4 +-- src/api/views/rooms.py | 4 +-- src/api/views/schedule.py | 6 ++-- src/api/views/users.py | 2 +- src/api/views/workadventure.py | 4 +-- src/backoffice/views/assemblies.py | 3 +- src/backoffice/views/assemblyteam.py | 3 +- src/backoffice/views/map.py | 4 +-- src/backoffice/views/misc.py | 4 +-- src/backoffice/views/profile.py | 4 +-- src/backoffice/views/schedules.py | 4 +-- src/backoffice/views/wiki.py | 4 +-- src/backoffice/views/workadventure.py | 4 +-- .../commands/assembly_contact_mails.py | 6 ++-- src/core/management/commands/housekeeping.py | 10 +++---- .../commands/import_mapservice_resultfile.py | 4 +-- .../management/commands/sanitize_database.py | 29 ++++++++----------- .../commands/schedule_join_rooms.py | 2 +- src/core/management/commands/serviceusers.py | 2 +- src/core/management/commands/stats.py | 2 +- .../commands/test_schedule_import.py | 2 +- src/core/models/assemblies.py | 16 +++++----- src/core/models/badges.py | 9 +++--- src/core/models/conference.py | 15 +++++----- src/core/models/map.py | 4 +-- src/core/models/messages.py | 4 +-- src/core/models/metanavi.py | 2 +- src/core/models/pages.py | 9 +++--- src/core/models/projects.py | 9 +++--- src/core/models/schedules.py | 14 ++++----- src/core/models/tags.py | 3 +- src/core/models/ticket.py | 6 ++-- src/core/models/users.py | 6 ++-- src/core/models/voucher.py | 10 +++---- src/core/models/workadventure.py | 10 +++---- src/core/tests/assemblies.py | 6 ++-- src/core/tests/badges.py | 9 +++--- src/core/tests/conference.py | 2 +- src/core/tests/exportcache.py | 4 +-- src/core/tests/markdown.py | 3 +- src/core/tests/schedules.py | 18 ++++++------ src/core/tests/search.py | 12 ++++---- src/core/tests/tags.py | 8 ++--- src/core/tests/tickets.py | 6 ++-- src/core/tests/users.py | 4 +-- src/core/tests/utils.py | 2 +- src/core/tests/vouchers.py | 8 ++--- src/core/tests/workadventure.py | 6 ++-- src/hub/settings/default.py | 7 +++-- 57 files changed, 167 insertions(+), 177 deletions(-) diff --git a/src/.ruff.toml b/src/.ruff.toml index 1e623c4d3..d274a7fb4 100644 --- a/src/.ruff.toml +++ b/src/.ruff.toml @@ -35,7 +35,6 @@ ignore = [ "SIM102", "SIM108", "TD002", - "TID252", "ERA001", # Disabled due to format conflicts # see https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules diff --git a/src/api/urls.py b/src/api/urls.py index 8b618b974..82e9218b9 100644 --- a/src/api/urls.py +++ b/src/api/urls.py @@ -4,7 +4,7 @@ from rest_framework.urlpatterns import format_suffix_patterns from django.conf import settings from django.urls import path -from .views import api_root, assemblies, badges, bbb, conferencemember, conferences, events, maps, messages, metanav, rooms, schedule, users, workadventure +from api.views import api_root, assemblies, badges, bbb, conferencemember, conferences, events, maps, messages, metanav, rooms, schedule, users, workadventure app_name = 'api' urlpatterns = [ diff --git a/src/api/urls_metrics.py b/src/api/urls_metrics.py index e4e2ecada..4d54c32a4 100644 --- a/src/api/urls_metrics.py +++ b/src/api/urls_metrics.py @@ -1,6 +1,6 @@ from django.urls import path -from .views import metrics +from api.views import metrics app_name = 'api' diff --git a/src/api/views/assemblies.py b/src/api/views/assemblies.py index 98c5ec518..d880d10a3 100644 --- a/src/api/views/assemblies.py +++ b/src/api/views/assemblies.py @@ -4,8 +4,8 @@ from core.models.assemblies import Assembly from core.models.events import Event from core.models.rooms import Room -from ..serializers import AssemblySerializer, EventSerializer, RoomSerializer -from .mixins import ConferenceSlugAssemblyMixin, ConferenceSlugMixin +from api.serializers import AssemblySerializer, EventSerializer, RoomSerializer +from api.views.mixins import ConferenceSlugAssemblyMixin, ConferenceSlugMixin class ConferenceAssemblyList(ConferenceSlugMixin, generics.ListAPIView): diff --git a/src/api/views/conferencemember.py b/src/api/views/conferencemember.py index 22eda299a..795ea8136 100644 --- a/src/api/views/conferencemember.py +++ b/src/api/views/conferencemember.py @@ -9,8 +9,8 @@ from django.conf import settings from core.models.conference import ConferenceMember from core.sso import SSO -from ..permissions import IsConferenceService, IsSuperUser -from .mixins import ConferenceSlugMixin +from api.permissions import IsConferenceService, IsSuperUser +from api.views.mixins import ConferenceSlugMixin logger = logging.getLogger(__name__) diff --git a/src/api/views/conferences.py b/src/api/views/conferences.py index 917181cba..35ce79526 100644 --- a/src/api/views/conferences.py +++ b/src/api/views/conferences.py @@ -2,8 +2,8 @@ from rest_framework import generics from core.models.conference import Conference, ConferenceTrack -from ..serializers import ConferenceSerializer, ConferenceTrackSerializer -from .mixins import ConferenceSlugMixin +from api.serializers import ConferenceSerializer, ConferenceTrackSerializer +from api.views.mixins import ConferenceSlugMixin class ConferenceList(generics.ListAPIView): diff --git a/src/api/views/events.py b/src/api/views/events.py index dccc9dd8e..94596144e 100644 --- a/src/api/views/events.py +++ b/src/api/views/events.py @@ -6,8 +6,8 @@ from django.shortcuts import get_object_or_404 from core.models.events import Event -from ..serializers import EventSerializer -from .mixins import ConferenceSlugMixin +from api.serializers import EventSerializer +from api.views.mixins import ConferenceSlugMixin class EventList(ConferenceSlugMixin, generics.ListAPIView): diff --git a/src/api/views/maps.py b/src/api/views/maps.py index 030f68178..2b2824ff3 100644 --- a/src/api/views/maps.py +++ b/src/api/views/maps.py @@ -10,8 +10,8 @@ from core.models.assemblies import Assembly from core.models.conference import ConferenceExportCache from core.models.map import MapPOI -from ..permissions import IsConferenceService, IsSuperUser -from .mixins import ConferenceSlugMixin +from api.permissions import IsConferenceService, IsSuperUser +from api.views.mixins import ConferenceSlugMixin _cts = {} # cache of CoordTransforms (if needed) diff --git a/src/api/views/messages.py b/src/api/views/messages.py index 01a3ecf32..cecabad36 100644 --- a/src/api/views/messages.py +++ b/src/api/views/messages.py @@ -4,14 +4,14 @@ from django.db.models import Q from core.models.messages import DirectMessage -from ..serializers import ( +from api.serializers import ( DirectMessageSendSerializer, DirectMessageSerializerReceived, DirectMessageSerializerReceivedShort, DirectMessageSerializerSent, DirectMessageSerializerSentShort, ) -from .mixins import ConferenceSlugMixin +from api.views.mixins import ConferenceSlugMixin class DirectMessagesReceived(ConferenceSlugMixin, generics.ListAPIView): diff --git a/src/api/views/rooms.py b/src/api/views/rooms.py index b55800b38..716e8795e 100644 --- a/src/api/views/rooms.py +++ b/src/api/views/rooms.py @@ -4,8 +4,8 @@ from rest_framework import generics from core.models.rooms import Room -from ..serializers import RoomSerializer -from .mixins import ConferenceSlugMixin +from api.serializers import RoomSerializer +from api.views.mixins import ConferenceSlugMixin logger = logging.getLogger(__name__) diff --git a/src/api/views/schedule.py b/src/api/views/schedule.py index d9c2c433d..b728ff439 100644 --- a/src/api/views/schedule.py +++ b/src/api/views/schedule.py @@ -16,9 +16,9 @@ from core.models.events import Event from core.models.rooms import Room from core.schedules.base import filter_additional_data, schedule_time_to_timedelta -from ..permissions import IsApiUserOrReadOnly -from ..schedule import Schedule, ScheduleEncoder -from .mixins import ConferenceSlugMixin +from api.permissions import IsApiUserOrReadOnly +from api.schedule import Schedule, ScheduleEncoder +from api.views.mixins import ConferenceSlugMixin logger = logging.getLogger(__name__) diff --git a/src/api/views/users.py b/src/api/views/users.py index 6f52f687b..371269fc9 100644 --- a/src/api/views/users.py +++ b/src/api/views/users.py @@ -14,7 +14,7 @@ from core.choices import UserBadgeVisibility from core.models.badges import Badge, UserBadge from core.models.users import PlatformUser, UserTimelineEntry -from ..serializers import UserTimelineEntrySerializer +from api.serializers import UserTimelineEntrySerializer @api_view(['GET']) diff --git a/src/api/views/workadventure.py b/src/api/views/workadventure.py index dae2b66c4..4cc556758 100644 --- a/src/api/views/workadventure.py +++ b/src/api/views/workadventure.py @@ -19,8 +19,8 @@ from core.models.badges import BadgeToken from core.models.rooms import Room from core.models.workadventure import WorkadventureSession -from ..permissions import IsConferenceService, IsSuperUser -from .mixins import ConferenceSlugMixin +from api.permissions import IsConferenceService, IsSuperUser +from api.views.mixins import ConferenceSlugMixin logger = logging.getLogger(__name__) diff --git a/src/backoffice/views/assemblies.py b/src/backoffice/views/assemblies.py index bae1782e3..44fc93ece 100644 --- a/src/backoffice/views/assemblies.py +++ b/src/backoffice/views/assemblies.py @@ -28,7 +28,7 @@ from core.models.tags import ConferenceTag from core.models.users import PlatformUser from core.models.voucher import Voucher -from ..forms import ( +from backoffice.forms import ( AssemblyAddApplicationForm, AssemblyAddMemberForm, AssemblyCreateForm, @@ -43,6 +43,7 @@ from ..forms import ( EditAssemblyRoomHangarForm, EditAssemblyRoomWorkAdventureForm, ) + from .mixins import AssemblyMixin, ConferenceLoginRequiredMixin logger = logging.getLogger(__name__) diff --git a/src/backoffice/views/assemblyteam.py b/src/backoffice/views/assemblyteam.py index 2be313cf9..abd09724d 100644 --- a/src/backoffice/views/assemblyteam.py +++ b/src/backoffice/views/assemblyteam.py @@ -21,7 +21,8 @@ from core.models.assemblies import Assembly, AssemblyMember from core.models.conference import ConferenceExportCache from core.models.users import UserCommunicationChannel -from ..templatetags.c3assemblies import get_language_item +from backoffice.templatetags.c3assemblies import get_language_item + from .mixins import AssemblyMixin, ConferenceLoginRequiredMixin logger = logging.getLogger(__name__) diff --git a/src/backoffice/views/map.py b/src/backoffice/views/map.py index dc635ba4a..b30b9dd6b 100644 --- a/src/backoffice/views/map.py +++ b/src/backoffice/views/map.py @@ -10,8 +10,8 @@ from django.views.generic.edit import CreateView, ModelFormMixin, UpdateView from core.models.map import MapFloor, MapPOI -from ..forms import POIForm -from .mixins import ConferenceLoginRequiredMixin, guess_active_sidebar_item +from backoffice.forms import POIForm +from backoffice.views.mixins import ConferenceLoginRequiredMixin, guess_active_sidebar_item logger = logging.getLogger(__name__) diff --git a/src/backoffice/views/misc.py b/src/backoffice/views/misc.py index 18c785b9f..3ccbe69d9 100644 --- a/src/backoffice/views/misc.py +++ b/src/backoffice/views/misc.py @@ -4,8 +4,8 @@ from django.views.generic.edit import FormView from core.models import Assembly, Conference -from ..forms import ConferenceForm -from .mixins import ConferenceLoginRequiredMixin +from backoffice.forms import ConferenceForm +from backoffice.views.mixins import ConferenceLoginRequiredMixin class ConferenceSelectionView(ConferenceLoginRequiredMixin, FormView): diff --git a/src/backoffice/views/profile.py b/src/backoffice/views/profile.py index 224d50fed..765ea3ee9 100644 --- a/src/backoffice/views/profile.py +++ b/src/backoffice/views/profile.py @@ -3,8 +3,8 @@ from django.shortcuts import redirect from django.utils.translation import gettext_lazy as _ from django.views.generic import FormView -from ..forms import ProfileForm -from .mixins import ConferenceLoginRequiredMixin +from backoffice.forms import ProfileForm +from backoffice.views.mixins import ConferenceLoginRequiredMixin class ProfileView(ConferenceLoginRequiredMixin, FormView): diff --git a/src/backoffice/views/schedules.py b/src/backoffice/views/schedules.py index 9b1408574..b4ffa0b23 100644 --- a/src/backoffice/views/schedules.py +++ b/src/backoffice/views/schedules.py @@ -9,8 +9,8 @@ from django.views.generic.detail import SingleObjectMixin from core.models import ScheduleSource, ScheduleSourceImport from core.schedules import ScheduleTypeManager -from ..forms import ScheduleSourceCreateForm -from .mixins import ConferenceLoginRequiredMixin +from backoffice.forms import ScheduleSourceCreateForm +from backoffice.views.mixins import ConferenceLoginRequiredMixin class ScheduleAdminMixin(ConferenceLoginRequiredMixin): diff --git a/src/backoffice/views/wiki.py b/src/backoffice/views/wiki.py index ca6ec52a7..c4326412e 100644 --- a/src/backoffice/views/wiki.py +++ b/src/backoffice/views/wiki.py @@ -16,8 +16,8 @@ from django.views.generic.edit import DeleteView, UpdateView from core.models import Conference, Lock, StaticPage, StaticPageNamespace, StaticPageRevision -from ..forms import StaticPageEditForm -from .mixins import ConferenceLoginRequiredMixin, guess_active_sidebar_item +from backoffice.forms import StaticPageEditForm +from backoffice.views.mixins import ConferenceLoginRequiredMixin, guess_active_sidebar_item class WikiAdminMixin(ConferenceLoginRequiredMixin): diff --git a/src/backoffice/views/workadventure.py b/src/backoffice/views/workadventure.py index 51753a413..985857aa7 100644 --- a/src/backoffice/views/workadventure.py +++ b/src/backoffice/views/workadventure.py @@ -19,8 +19,8 @@ from core.models import Assembly, ConferenceMember, PlatformUser from core.models.rooms import Room from core.models.workadventure import WorkadventureSession, WorkadventureTexture -from ..forms import CreateWorkadventureTextureForm -from .mixins import ConferenceLoginRequiredMixin, guess_active_sidebar_item +from backoffice.forms import CreateWorkadventureTextureForm +from backoffice.views.mixins import ConferenceLoginRequiredMixin, guess_active_sidebar_item logger = logging.getLogger(__name__) MAX_ROWS = 42 diff --git a/src/core/management/commands/assembly_contact_mails.py b/src/core/management/commands/assembly_contact_mails.py index 4caf3905b..f7c4755eb 100644 --- a/src/core/management/commands/assembly_contact_mails.py +++ b/src/core/management/commands/assembly_contact_mails.py @@ -1,8 +1,8 @@ from django.core.management.base import BaseCommand -from ...models.assemblies import AssemblyMember -from ...models.conference import Conference -from ...models.users import UserCommunicationChannel +from core.models.assemblies import AssemblyMember +from core.models.conference import Conference +from core.models.users import UserCommunicationChannel class Command(BaseCommand): diff --git a/src/core/management/commands/housekeeping.py b/src/core/management/commands/housekeeping.py index 8e7ab72ca..a81d4bf19 100644 --- a/src/core/management/commands/housekeeping.py +++ b/src/core/management/commands/housekeeping.py @@ -4,11 +4,11 @@ from django.core.management.base import BaseCommand, CommandError from django.db.models import Max from django.utils import timezone -from ...models import StaticPageNamespace -from ...models.conference import Conference, ConferenceExportCache -from ...models.messages import DirectMessage -from ...models.schedules import ScheduleSource, ScheduleSourceImport -from ...models.voucher import Voucher +from core.models.conference import Conference, ConferenceExportCache +from core.models.messages import DirectMessage +from core.models.pages import StaticPageNamespace +from core.models.schedules import ScheduleSource, ScheduleSourceImport +from core.models.voucher import Voucher class Command(BaseCommand): diff --git a/src/core/management/commands/import_mapservice_resultfile.py b/src/core/management/commands/import_mapservice_resultfile.py index 4c9956521..241054f0e 100644 --- a/src/core/management/commands/import_mapservice_resultfile.py +++ b/src/core/management/commands/import_mapservice_resultfile.py @@ -3,9 +3,9 @@ import json from django.core.management.base import BaseCommand -from api.views.workadventure import MapServiceView +from core.models.conference import Conference -from ...models import Conference +from api.views.workadventure import MapServiceView class Command(BaseCommand): diff --git a/src/core/management/commands/sanitize_database.py b/src/core/management/commands/sanitize_database.py index df3c22063..0b56489e4 100644 --- a/src/core/management/commands/sanitize_database.py +++ b/src/core/management/commands/sanitize_database.py @@ -4,26 +4,21 @@ from django.conf import settings from django.core.management.base import BaseCommand from django.db.models import Max -from ...models import ( - Assembly, - AssemblyLogEntry, - AssemblyMember, +from core.models.assemblies import Assembly, AssemblyLogEntry, AssemblyMember +from core.models.badges import UserBadge +from core.models.conference import ( ConferenceMember, - ConferenceMemberTicket, - ConferenceTag, ConferenceTrack, - DirectMessage, - Event, - PlatformUser, - ScheduleSource, - ScheduleSourceImport, - StaticPage, - TagItem, - UserBadge, - UserCommunicationChannel, - UserDereferrerAllowlist, - WorkadventureSession, ) +from core.models.dereferrer import UserDereferrerAllowlist +from core.models.events import Event +from core.models.messages import DirectMessage +from core.models.pages import StaticPage +from core.models.schedules import ScheduleSource, ScheduleSourceImport +from core.models.tags import ConferenceTag, TagItem +from core.models.ticket import ConferenceMemberTicket +from core.models.users import PlatformUser, UserCommunicationChannel +from core.models.workadventure import WorkadventureSession class Command(BaseCommand): diff --git a/src/core/management/commands/schedule_join_rooms.py b/src/core/management/commands/schedule_join_rooms.py index a9d4b9cd6..7aa3c2546 100644 --- a/src/core/management/commands/schedule_join_rooms.py +++ b/src/core/management/commands/schedule_join_rooms.py @@ -1,7 +1,7 @@ from django.core.management.base import BaseCommand, CommandError from django.db import transaction -from ...models import Event, Room, RoomLink, ScheduleSourceMapping +from core.models import Event, Room, RoomLink, ScheduleSourceMapping class Command(BaseCommand): diff --git a/src/core/management/commands/serviceusers.py b/src/core/management/commands/serviceusers.py index 2d857bf11..d298295db 100644 --- a/src/core/management/commands/serviceusers.py +++ b/src/core/management/commands/serviceusers.py @@ -2,7 +2,7 @@ from rest_framework.authtoken.models import Token from django.core.management.base import BaseCommand -from ...models.users import PlatformUser +from core.models.users import PlatformUser class Command(BaseCommand): diff --git a/src/core/management/commands/stats.py b/src/core/management/commands/stats.py index 08368fe71..7eb4aca69 100644 --- a/src/core/management/commands/stats.py +++ b/src/core/management/commands/stats.py @@ -1,6 +1,6 @@ from django.core.management.base import BaseCommand -from ...models import Assembly, Badge, Conference, Event, Room, UserBadge +from core.models import Assembly, Badge, Conference, Event, Room, UserBadge class Command(BaseCommand): diff --git a/src/core/management/commands/test_schedule_import.py b/src/core/management/commands/test_schedule_import.py index 839f672d1..8108cf4ab 100644 --- a/src/core/management/commands/test_schedule_import.py +++ b/src/core/management/commands/test_schedule_import.py @@ -6,7 +6,7 @@ from django.core.exceptions import SuspiciousOperation from django.core.management.base import BaseCommand from django.db import transaction -from ...models.conference import Conference +from core.models.conference import Conference class Command(BaseCommand): diff --git a/src/core/models/assemblies.py b/src/core/models/assemblies.py index 3ac1a0f64..1ec7d59b9 100644 --- a/src/core/models/assemblies.py +++ b/src/core/models/assemblies.py @@ -19,18 +19,16 @@ from django.utils.safestring import mark_safe from django.utils.translation import gettext from django.utils.translation import gettext_lazy as _ +from core.fields import ConferenceReference +from core.markdown import compile_translated_markdown_fields, render_markdown, store_relationships from core.models.base_managers import ConferenceManagerMixin -from core.models.tags import TagItem +from core.models.conference import Conference, ConferenceMember +from core.models.map import MapFloor +from core.models.tags import TaggedItemMixin, TagItem +from core.models.users import PlatformUser +from core.utils import render_markdown_as_text from core.validators import FileSizeValidator, ImageDimensionValidator -from ..fields import ConferenceReference -from ..markdown import compile_translated_markdown_fields, render_markdown, store_relationships -from ..utils import render_markdown_as_text -from .conference import Conference, ConferenceMember -from .map import MapFloor -from .tags import TaggedItemMixin -from .users import PlatformUser - class AssemblyManager(ConferenceManagerMixin['Assembly']): staff_permissions = ['assembly_team'] diff --git a/src/core/models/badges.py b/src/core/models/badges.py index 07e949411..9cc1f957d 100644 --- a/src/core/models/badges.py +++ b/src/core/models/badges.py @@ -19,16 +19,15 @@ from django.utils import timezone from django.utils.translation import gettext_lazy as _ from core.choices import UserBadgeVisibility +from core.fields import ConferenceReference from core.markdown import compile_translated_markdown_fields, store_relationships +from core.models.assemblies import Assembly from core.models.base_managers import ConferenceManagerMixin from core.models.conference import Conference, ConferenceMember +from core.models.users import PlatformUser +from core.utils import generate_token from core.validators import ImageDimensionValidator -from ..fields import ConferenceReference -from ..utils import generate_token -from .assemblies import Assembly -from .users import PlatformUser - logger = logging.getLogger(__name__) TOKEN_VALIDATOR = RegexValidator(r'^[0-9a-z]*$', _('BadgeToken__validator_info__lower_alpha_num')) diff --git a/src/core/models/conference.py b/src/core/models/conference.py index ee4e2a4a5..f604e69bc 100644 --- a/src/core/models/conference.py +++ b/src/core/models/conference.py @@ -25,10 +25,9 @@ from django.utils.translation import get_language from django.utils.translation import gettext_lazy as _ from core.choices import UserBadgeVisibility - -from ..fields import ConferenceReference -from ..utils import render_markdown_as_text -from .users import PlatformUser +from core.fields import ConferenceReference +from core.models.users import PlatformUser +from core.utils import render_markdown_as_text logger = logging.getLogger(__name__) @@ -157,7 +156,7 @@ class ConferenceMember(models.Model): return f'{self.user.username}@{self.conference.slug}' def save(self, *args, update_fields=None, **kwargs) -> None: - from ..markdown import compile_translated_markdown_fields, store_relationships + from core.markdown import compile_translated_markdown_fields, store_relationships if update_fields is None or 'description' in update_fields: render_results = compile_translated_markdown_fields(self, self.conference, 'description') @@ -547,7 +546,7 @@ class Conference(models.Model): if not self.mail_footer: return None - from ..markdown import render_markdown + from core.markdown import render_markdown return format_html( '<div id="footer" style="margin-top: 1em; border-top: 2px solid #999; color: #999; font-size: 80%;">{0}</div>', @@ -708,7 +707,7 @@ class ConferenceExportCache(models.Model): return False def save(self, *args, **kwargs): - from ..utils import int_to_custom_string + from core.utils import int_to_custom_string if self.last_generated is not None: self.etag = int_to_custom_string(int(self.last_generated.timestamp() * 1000)) @@ -853,7 +852,7 @@ class ConferenceNavigationItem(models.Model): ) def resolve_url(self): - from ..utils import resolve_internal_url + from core.utils import resolve_internal_url return resolve_internal_url(self.url, fallback_as_is=True) diff --git a/src/core/models/map.py b/src/core/models/map.py index a88ab66ae..d0f9f7444 100644 --- a/src/core/models/map.py +++ b/src/core/models/map.py @@ -7,8 +7,8 @@ from django.core.exceptions import ValidationError from django.db import models from django.utils.translation import gettext_lazy as _ -from ..fields import ConferenceReference -from ..markdown import compile_translated_markdown_fields, store_relationships +from core.fields import ConferenceReference +from core.markdown import compile_translated_markdown_fields, store_relationships logger = logging.getLogger(__name__) diff --git a/src/core/models/messages.py b/src/core/models/messages.py index 08315dce1..edcb87f3e 100644 --- a/src/core/models/messages.py +++ b/src/core/models/messages.py @@ -7,8 +7,8 @@ from django.urls import NoReverseMatch, reverse from django.utils.text import format_lazy from django.utils.translation import gettext_lazy as _ -from ..fields import ConferenceReference -from ..markdown import render_markdown +from core.fields import ConferenceReference +from core.markdown import render_markdown class DirectMessage(models.Model): diff --git a/src/core/models/metanavi.py b/src/core/models/metanavi.py index bf48236bb..b03b6b7c4 100644 --- a/src/core/models/metanavi.py +++ b/src/core/models/metanavi.py @@ -6,7 +6,7 @@ from django.db import models from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ -from ..fields import ConferenceReference +from core.fields import ConferenceReference class MetaNavItemManager(models.Manager): diff --git a/src/core/models/pages.py b/src/core/models/pages.py index 9d0db7549..6577a977b 100644 --- a/src/core/models/pages.py +++ b/src/core/models/pages.py @@ -17,12 +17,11 @@ from django.utils.functional import cached_property from django.utils.html import strip_tags from django.utils.translation import gettext_lazy as _ +from core.fields import ConferenceReference from core.markdown import render_markdown_ex, store_relationships - -from ..fields import ConferenceReference -from ..utils import GitRepo -from .conference import Conference -from .users import PlatformUser +from core.models.conference import Conference +from core.models.users import PlatformUser +from core.utils import GitRepo class StaticPageNamespace(models.Model): diff --git a/src/core/models/projects.py b/src/core/models/projects.py index e2b808b8c..b7c977689 100644 --- a/src/core/models/projects.py +++ b/src/core/models/projects.py @@ -9,16 +9,15 @@ from django.db.models import QuerySet from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ +from core.fields import ConferenceReference +from core.markdown import compile_translated_markdown_fields, store_relationships +from core.models.assemblies import Assembly from core.models.base_managers import ConferenceManagerMixin +from core.models.conference import ConferenceMember from core.models.tags import TaggedItemMixin from core.models.users import PlatformUser from core.validators import FileSizeValidator, ImageDimensionValidator -from ..fields import ConferenceReference -from ..markdown import compile_translated_markdown_fields, store_relationships -from ..models.conference import ConferenceMember -from .assemblies import Assembly - class ProjectManager(ConferenceManagerMixin['Project']): assembly_filter = 'assembly' diff --git a/src/core/models/schedules.py b/src/core/models/schedules.py index 271700e8d..1b24dc6d3 100644 --- a/src/core/models/schedules.py +++ b/src/core/models/schedules.py @@ -9,13 +9,13 @@ from django.db import models from django.utils import timezone from django.utils.translation import gettext_lazy as _ -from ..fields import ConferenceReference -from ..schedules import ScheduleTypeManager -from ..utils import mail2uuid, mask_url, str2bool -from .assemblies import Assembly -from .events import Event, EventAttachment -from .rooms import Room -from .users import PlatformUser +from core.fields import ConferenceReference +from core.models.assemblies import Assembly +from core.models.events import Event, EventAttachment +from core.models.rooms import Room +from core.models.users import PlatformUser +from core.schedules import ScheduleTypeManager +from core.utils import mail2uuid, mask_url, str2bool if TYPE_CHECKING: pass diff --git a/src/core/models/tags.py b/src/core/models/tags.py index d08324e97..630e5512f 100644 --- a/src/core/models/tags.py +++ b/src/core/models/tags.py @@ -9,10 +9,9 @@ from django.db.models import QuerySet from django.utils.functional import cached_property from django.utils.translation import gettext_lazy as _ +from core.fields import ConferenceReference from core.models.conference import Conference, ConferenceMember -from ..fields import ConferenceReference - class ConferenceTag(models.Model): class Meta: diff --git a/src/core/models/ticket.py b/src/core/models/ticket.py index e8804d537..6b4121648 100644 --- a/src/core/models/ticket.py +++ b/src/core/models/ticket.py @@ -7,9 +7,9 @@ from django.db import models from django.db.utils import IntegrityError from django.utils.translation import gettext_lazy as _ -from ..fields import ConferenceReference -from .conference import Conference -from .users import PlatformUser +from core.fields import ConferenceReference +from core.models.conference import Conference +from core.models.users import PlatformUser logger = logging.getLogger(__name__) diff --git a/src/core/models/users.py b/src/core/models/users.py index d3f600c12..b6b580e58 100644 --- a/src/core/models/users.py +++ b/src/core/models/users.py @@ -26,9 +26,9 @@ from django.utils.text import slugify from django.utils.timezone import now from django.utils.translation import gettext_lazy as _ -from ..fields import ConferenceReference -from ..utils import download_from_url -from ..validators import ImageDimensionValidator +from core.fields import ConferenceReference +from core.utils import download_from_url +from core.validators import ImageDimensionValidator if TYPE_CHECKING: from core.models import Assembly, Conference, ConferenceMember diff --git a/src/core/models/voucher.py b/src/core/models/voucher.py index 835d04b33..b6f437a50 100644 --- a/src/core/models/voucher.py +++ b/src/core/models/voucher.py @@ -9,11 +9,11 @@ from django.utils import timezone from django.utils.functional import cached_property from django.utils.translation import gettext_lazy as _ -from ..fields import ConferenceReference -from ..markdown import render_markdown -from .assemblies import Assembly -from .conference import Conference -from .users import PlatformUser +from core.fields import ConferenceReference +from core.markdown import render_markdown +from core.models.assemblies import Assembly +from core.models.conference import Conference +from core.models.users import PlatformUser class VoucherManager(models.Manager): diff --git a/src/core/models/workadventure.py b/src/core/models/workadventure.py index 5c9fc1d7a..f96769d71 100644 --- a/src/core/models/workadventure.py +++ b/src/core/models/workadventure.py @@ -10,11 +10,11 @@ from django.db.models import Q from django.utils import timezone from django.utils.translation import gettext_lazy as _ -from ..fields import ConferenceReference -from ..utils import generate_token -from .assemblies import Assembly -from .conference import Conference, ConferenceMember, PlatformUser -from .rooms import Room +from core.fields import ConferenceReference +from core.models.assemblies import Assembly +from core.models.conference import Conference, ConferenceMember, PlatformUser +from core.models.rooms import Room +from core.utils import generate_token class WorkadventureSession(models.Model): diff --git a/src/core/tests/assemblies.py b/src/core/tests/assemblies.py index be70aabad..3150f0ef2 100644 --- a/src/core/tests/assemblies.py +++ b/src/core/tests/assemblies.py @@ -2,9 +2,9 @@ from django.contrib.auth.models import Group, Permission from django.core import mail from django.test import TestCase, override_settings -from ..models.assemblies import Assembly, AssemblyMember -from ..models.conference import Conference, ConferenceMember -from ..models.users import PlatformUser, UserCommunicationChannel +from core.models.assemblies import Assembly, AssemblyMember +from core.models.conference import Conference, ConferenceMember +from core.models.users import PlatformUser, UserCommunicationChannel class AssembliesTestsMixin(TestCase): diff --git a/src/core/tests/badges.py b/src/core/tests/badges.py index f0f40ec9c..59ebfddb8 100644 --- a/src/core/tests/badges.py +++ b/src/core/tests/badges.py @@ -2,11 +2,10 @@ from django.core.exceptions import ValidationError from django.test import TestCase from core.choices import UserBadgeVisibility - -from ..models.assemblies import Assembly -from ..models.badges import Badge, UserBadge -from ..models.conference import Conference, ConferenceMember -from ..models.users import PlatformUser +from core.models.assemblies import Assembly +from core.models.badges import Badge, UserBadge +from core.models.conference import Conference, ConferenceMember +from core.models.users import PlatformUser class BadgeTests(TestCase): diff --git a/src/core/tests/conference.py b/src/core/tests/conference.py index 8e6a327f9..3ed7df0ec 100644 --- a/src/core/tests/conference.py +++ b/src/core/tests/conference.py @@ -4,7 +4,7 @@ from unittest.mock import patch from django.test import TestCase from django.utils import timezone -from ..models.conference import Conference, ConferenceDay +from core.models.conference import Conference, ConferenceDay class ConferenceTests(TestCase): diff --git a/src/core/tests/exportcache.py b/src/core/tests/exportcache.py index 090d9e82e..72e57d7e4 100644 --- a/src/core/tests/exportcache.py +++ b/src/core/tests/exportcache.py @@ -4,8 +4,8 @@ from django.test import TestCase, override_settings from django.utils import timezone from django.utils.timezone import now -from ..models.assemblies import Assembly -from ..models.conference import Conference, ConferenceExportCache +from core.models.assemblies import Assembly +from core.models.conference import Conference, ConferenceExportCache class ScheduleTests(TestCase): diff --git a/src/core/tests/markdown.py b/src/core/tests/markdown.py index e4cb46a8b..d30892ab8 100644 --- a/src/core/tests/markdown.py +++ b/src/core/tests/markdown.py @@ -7,10 +7,9 @@ from django.test import TestCase from django.test.utils import override_settings from django.urls import reverse +from core.markdown import render_markdown, render_markdown_ex from core.models import Conference, ConferenceTag, PlatformUser, StaticPage -from ..markdown import render_markdown, render_markdown_ex - TEST_CONF_ID = uuid.uuid4() diff --git a/src/core/tests/schedules.py b/src/core/tests/schedules.py index a53bfff0e..1fea3d274 100644 --- a/src/core/tests/schedules.py +++ b/src/core/tests/schedules.py @@ -4,15 +4,15 @@ from pathlib import Path from django.test import TestCase, override_settings -from ..models import Event, Room -from ..models.assemblies import Assembly -from ..models.conference import Conference, ConferenceMember -from ..models.schedules import ScheduleSource, ScheduleSourceImport, ScheduleSourceMapping -from ..models.users import PlatformUser -from ..schedules.base import BaseScheduleSupport, ScheduleTypeManager, filter_additional_data, schedule_time_to_timedelta -from ..schedules.schedulejson import ScheduleJSONSupport -from ..schedules.schedulejsonfrab import ScheduleJSONFrabSupport -from ..schedules.schedulexml import ScheduleXMLSupport +from core.models import Event, Room +from core.models.assemblies import Assembly +from core.models.conference import Conference, ConferenceMember +from core.models.schedules import ScheduleSource, ScheduleSourceImport, ScheduleSourceMapping +from core.models.users import PlatformUser +from core.schedules.base import BaseScheduleSupport, ScheduleTypeManager, filter_additional_data, schedule_time_to_timedelta +from core.schedules.schedulejson import ScheduleJSONSupport +from core.schedules.schedulejsonfrab import ScheduleJSONFrabSupport +from core.schedules.schedulexml import ScheduleXMLSupport class FileBasedScheduleSupport(BaseScheduleSupport): diff --git a/src/core/tests/search.py b/src/core/tests/search.py index 1d9f4dadb..852e85858 100644 --- a/src/core/tests/search.py +++ b/src/core/tests/search.py @@ -1,12 +1,12 @@ from django.contrib.auth.models import AnonymousUser from django.test import TestCase -from ..models.assemblies import Assembly -from ..models.conference import Conference, ConferenceTrack -from ..models.events import Event -from ..models.pages import StaticPage -from ..models.users import PlatformUser -from ..search import search +from core.models.assemblies import Assembly +from core.models.conference import Conference, ConferenceTrack +from core.models.events import Event +from core.models.pages import StaticPage +from core.models.users import PlatformUser +from core.search import search class SearchTests(TestCase): diff --git a/src/core/tests/tags.py b/src/core/tests/tags.py index 6c411e158..1d5d5d7df 100644 --- a/src/core/tests/tags.py +++ b/src/core/tests/tags.py @@ -2,10 +2,10 @@ from django.contrib.auth.models import AnonymousUser from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from ..models.assemblies import Assembly -from ..models.conference import Conference -from ..models.events import Event -from ..models.tags import ConferenceTag, TaggedItemMixin, TagItem +from core.models.assemblies import Assembly +from core.models.conference import Conference +from core.models.events import Event +from core.models.tags import ConferenceTag, TaggedItemMixin, TagItem class TaggingTests(TestCase): diff --git a/src/core/tests/tickets.py b/src/core/tests/tickets.py index 1a7dfd5b1..4ac9ecee1 100644 --- a/src/core/tests/tickets.py +++ b/src/core/tests/tickets.py @@ -4,9 +4,9 @@ import jwt from django.test import TestCase, override_settings -from ..models.conference import Conference -from ..models.ticket import ConferenceMemberTicket, TicketValidationError -from ..models.users import PlatformUser +from core.models.conference import Conference +from core.models.ticket import ConferenceMemberTicket, TicketValidationError +from core.models.users import PlatformUser _GOOD_SECRET = 'F00Preti%' _BAD_SECRET = 'DämlicherFlanders' diff --git a/src/core/tests/users.py b/src/core/tests/users.py index c415cf859..d1047ef22 100644 --- a/src/core/tests/users.py +++ b/src/core/tests/users.py @@ -2,8 +2,8 @@ from django.core.exceptions import ValidationError from django.test import TestCase from django.urls import reverse -from ..models.conference import Conference, ConferenceMember -from ..models.users import PlatformUser, UserCommunicationChannel +from core.models.conference import Conference, ConferenceMember +from core.models.users import PlatformUser, UserCommunicationChannel class UserCommunicationChannelStaticTests(TestCase): diff --git a/src/core/tests/utils.py b/src/core/tests/utils.py index 568be24a7..a69dab3c9 100644 --- a/src/core/tests/utils.py +++ b/src/core/tests/utils.py @@ -3,7 +3,7 @@ from datetime import timedelta from django.test import TestCase -from ..utils import GitRepo, mail2uuid, mask_url, scheme_and_netloc_from_url, str2timedelta +from core.utils import GitRepo, mail2uuid, mask_url, scheme_and_netloc_from_url, str2timedelta class UtilsTests(TestCase): diff --git a/src/core/tests/vouchers.py b/src/core/tests/vouchers.py index dddc98caa..c598820be 100644 --- a/src/core/tests/vouchers.py +++ b/src/core/tests/vouchers.py @@ -4,10 +4,10 @@ from datetime import datetime, timezone from django.core.exceptions import ValidationError from django.test import TestCase -from ..models.assemblies import Assembly -from ..models.conference import Conference, ConferenceMember -from ..models.users import PlatformUser -from ..models.voucher import Voucher +from core.models.assemblies import Assembly +from core.models.conference import Conference, ConferenceMember +from core.models.users import PlatformUser +from core.models.voucher import Voucher class VoucherTests(TestCase): diff --git a/src/core/tests/workadventure.py b/src/core/tests/workadventure.py index 2e91edea3..fd6eb43b4 100644 --- a/src/core/tests/workadventure.py +++ b/src/core/tests/workadventure.py @@ -1,8 +1,8 @@ from django.test import TestCase -from ..models import Assembly, Room, WorkadventureSession -from ..models.conference import Conference, ConferenceMember -from ..models.users import PlatformUser +from core.models import Assembly, Room, WorkadventureSession +from core.models.conference import Conference, ConferenceMember +from core.models.users import PlatformUser class WorkadventureSessionTests(TestCase): diff --git a/src/hub/settings/default.py b/src/hub/settings/default.py index 62069a573..7dd95cacf 100644 --- a/src/hub/settings/default.py +++ b/src/hub/settings/default.py @@ -58,9 +58,12 @@ assert SECRET_KEY is None or not SECRET_KEY.startswith('/'), ( # Local Settings try: - from ..local_settings import * # noqa: F403,F401 + from hub.local_settings import * # noqa: F403,F401 except ImportError: - print('Unable to load (optional) local_settings.py.') + try: + from hub.settings.local_settings import * # noqa: F403,F401 + except ImportError: + print('Unable to load (optional) local_settings.py.') # read SECRET_KEY from a file not stored in git if DEBUG and SECRET_KEY is None: # noqa: F405 -- GitLab