diff --git a/app/api/access_codes.py b/app/api/access_codes.py index 65ab6b44ce..1392c7e72f 100644 --- a/app/api/access_codes.py +++ b/app/api/access_codes.py @@ -11,10 +11,10 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.access_codes import AccessCodeSchema from app.models import db -from app.models.access_code import AccessCode -from app.models.event import Event -from app.models.ticket import Ticket -from app.models.user import User +from app.models.Financial_Context.access_code import AccessCode +from app.models.Event_Context.event import Event +from app.models.Financial_Context.ticket import Ticket +from app.models.user_context.user import User class AccessCodeListPost(ResourceList): diff --git a/app/api/admin_sales/discounted.py b/app/api/admin_sales/discounted.py index 6d9bb55c5b..7bbf257c7b 100644 --- a/app/api/admin_sales/discounted.py +++ b/app/api/admin_sales/discounted.py @@ -6,13 +6,17 @@ from app.api.bootstrap import api from app.api.helpers.utilities import dasherize from app.models import db -from app.models.discount_code import DiscountCode -from app.models.event import Event -from app.models.order import Order, OrderTicket -from app.models.user import User +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Event_Context.event import Event +from app.models.Financial_Context.order import Order, OrderTicket +from app.models.user_context.user import User def sales_per_marketer_and_discount_by_status(status): + """ + Generates a Common Table Expression (CTE) that calculates sales and ticket quantities + per marketer and discount code for a specific order status. + """ return ( db.session.query( Event.id.label('event_id'), diff --git a/app/api/admin_sales/events.py b/app/api/admin_sales/events.py index 23bb34d819..5384a64c24 100644 --- a/app/api/admin_sales/events.py +++ b/app/api/admin_sales/events.py @@ -7,39 +7,25 @@ from app.api.helpers.db import save_bulk_to_db from app.api.helpers.utilities import dasherize from app.models import db -from app.models.event import Event +from app.models.Event_Context.event import Event - -class AdminSalesByEventsSchema(Schema): +class EventInfo(Schema): """ - Sales summarized by event - - Provides - event(name), - date, - count of tickets and total sales for orders grouped by status + This class holds information about the event. + Holds information on the event type, name, date, and owners. """ class Meta: - type_ = 'admin-sales-by-events' - self_view = 'v1.admin_sales_by_events' - inflect = dasherize + type_ = 'event-info' id = fields.String() identifier = fields.String() name = fields.String() created_at = fields.DateTime() deleted_at = fields.DateTime() - starts_at = fields.DateTime() - ends_at = fields.DateTime() + duration = fields.DateTime() payment_currency = fields.String() payment_country = fields.String() - completed_order_sales = fields.Integer(dump_only=True) - placed_order_sales = fields.Integer(dump_only=True) - pending_order_sales = fields.Integer(dump_only=True) - completed_order_tickets = fields.Integer(dump_only=True) - placed_order_tickets = fields.Integer(dump_only=True) - pending_order_tickets = fields.Integer(dump_only=True) type = fields.Method('event_type') owner = fields.Method('event_owner') owner_id = fields.Method('event_owner_id') @@ -60,6 +46,35 @@ def event_type(self, obj): elif obj.location_name: t = 'Venue' return str(t) + + +class EventSales(Schema): + """ + This class holds sales data for the event. + The data is grouped by order status. + """ + + class Meta: + type_ = 'event-sales' + + completed_order_sales = fields.Integer(dump_only=True) + placed_order_sales = fields.Integer(dump_only=True) + pending_order_sales = fields.Integer(dump_only=True) + + + +class EventTickets(Schema): + """ + This class holds ticket data for the event. + The data is grouped by order status. + """ + + class Meta: + type_ = 'event-tickets' + + completed_order_tickets = fields.Integer(dump_only=True) + placed_order_tickets = fields.Integer(dump_only=True) + pending_order_tickets = fields.Integer(dump_only=True) class AdminSalesByEventsList(ResourceList): @@ -111,9 +126,9 @@ def after_get(self, res): methods = ['GET'] decorators = (api.has_permission('is_admin'),) - schema = AdminSalesByEventsSchema + schema = EventInfo data_layer = { 'model': Event, 'session': db.session, 'methods': {'query': query, 'after_get': after_get}, - } + } \ No newline at end of file diff --git a/app/api/admin_sales/fees.py b/app/api/admin_sales/fees.py index f6d0d5ab31..04026d0a20 100644 --- a/app/api/admin_sales/fees.py +++ b/app/api/admin_sales/fees.py @@ -5,7 +5,7 @@ from app.api.bootstrap import api from app.api.helpers.utilities import dasherize from app.models import db -from app.models.event import Event +from app.models.Event_Context.event import Event class AdminSalesFeesSchema(Schema): diff --git a/app/api/admin_sales/invoices.py b/app/api/admin_sales/invoices.py index 9a192ce34d..bfb5056dfe 100644 --- a/app/api/admin_sales/invoices.py +++ b/app/api/admin_sales/invoices.py @@ -5,7 +5,7 @@ from app.api.bootstrap import api from app.api.helpers.utilities import dasherize from app.models import db -from app.models.event_invoice import EventInvoice +from app.models.Financial_Context.event_invoice import EventInvoice class AdminSalesInvoicesSchema(Schema): diff --git a/app/api/admin_sales/locations.py b/app/api/admin_sales/locations.py index d80caf2ad2..02354b1846 100644 --- a/app/api/admin_sales/locations.py +++ b/app/api/admin_sales/locations.py @@ -6,11 +6,16 @@ from app.api.bootstrap import api from app.api.helpers.utilities import dasherize from app.models import db -from app.models.event import Event -from app.models.order import Order, OrderTicket +from app.models.Event_Context.event import Event +from app.models.Financial_Context.order import Order, OrderTicket def sales_per_location_by_status(status): + """ + Generates a Common Table Expression (CTE) that calculates sales and ticket quantities + grouped by event location for a specific order status. + """ + return ( db.session.query( Event.location_name.label('location'), diff --git a/app/api/admin_sales/marketer.py b/app/api/admin_sales/marketer.py index 6b6ef1664d..78b2ec2c6a 100644 --- a/app/api/admin_sales/marketer.py +++ b/app/api/admin_sales/marketer.py @@ -5,8 +5,8 @@ from app.api.admin_sales.utils import summary from app.api.bootstrap import api from app.models import db -from app.models.order import Order, OrderTicket -from app.models.user import User +from app.models.Financial_Context.order import Order, OrderTicket +from app.models.user_context.user import User class AdminSalesByMarketerSchema(Schema): diff --git a/app/api/admin_sales/organizer.py b/app/api/admin_sales/organizer.py index 007c43f3ef..2d6133fb00 100644 --- a/app/api/admin_sales/organizer.py +++ b/app/api/admin_sales/organizer.py @@ -7,11 +7,11 @@ from app.api.bootstrap import api from app.api.helpers.utilities import dasherize from app.models import db -from app.models.event import Event -from app.models.order import Order, OrderTicket -from app.models.role import Role -from app.models.user import User -from app.models.users_events_role import UsersEventsRoles +from app.models.Event_Context.event import Event +from app.models.Financial_Context.order import Order, OrderTicket +from app.models.Associations_Context.role import Role +from app.models.user_context.user import User +from app.models.user_context.users_events_role import UsersEventsRoles class AdminSalesByOrganizersSchema(Schema): diff --git a/app/api/admin_sales/utils.py b/app/api/admin_sales/utils.py index 7a40179f99..9a3fdcd8aa 100644 --- a/app/api/admin_sales/utils.py +++ b/app/api/admin_sales/utils.py @@ -4,8 +4,8 @@ """ from sqlalchemy import func -from app.models.order import Order -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.order import Order +from app.models.Financial_Context.ticket_holder import TicketHolder def status_summary(sales_summary, tickets_summary, status): diff --git a/app/api/admin_statistics_api/groups.py b/app/api/admin_statistics_api/groups.py index 74b41c91b0..292a8e9450 100644 --- a/app/api/admin_statistics_api/groups.py +++ b/app/api/admin_statistics_api/groups.py @@ -6,9 +6,9 @@ from app.api.data_layers.NoModelLayer import NoModelLayer from app.api.helpers.utilities import dasherize from app.models import db -from app.models.event import Event -from app.models.group import Group -from app.models.user_follow_group import UserFollowGroup +from app.models.Event_Context.event import Event +from app.models.Associations_Context.group import Group +from app.models.user_context.user_follow_group import UserFollowGroup class AdminStatisticsGroupSchema(Schema): diff --git a/app/api/admin_statistics_api/mails.py b/app/api/admin_statistics_api/mails.py index 5d60879ff1..6e46dfe49c 100644 --- a/app/api/admin_statistics_api/mails.py +++ b/app/api/admin_statistics_api/mails.py @@ -9,7 +9,7 @@ from app.api.data_layers.NoModelLayer import NoModelLayer from app.api.helpers.utilities import dasherize from app.models import db -from app.models.mail import Mail +from app.models.Communication_Context.mail import Mail class AdminStatisticsMailSchema(Schema): diff --git a/app/api/admin_statistics_api/sessions.py b/app/api/admin_statistics_api/sessions.py index b6902f3163..ebb239f7ad 100644 --- a/app/api/admin_statistics_api/sessions.py +++ b/app/api/admin_statistics_api/sessions.py @@ -7,7 +7,7 @@ from app.api.helpers.db import get_count from app.api.helpers.utilities import dasherize from app.models import db -from app.models.session import Session +from app.models.Event_Context.session import Session class AdminStatisticsSessionSchema(Schema): diff --git a/app/api/admin_statistics_api/users.py b/app/api/admin_statistics_api/users.py index fe440b9f23..0daeb3916a 100644 --- a/app/api/admin_statistics_api/users.py +++ b/app/api/admin_statistics_api/users.py @@ -7,10 +7,10 @@ from app.api.helpers.db import get_count from app.api.helpers.utilities import dasherize from app.models import db -from app.models.role import Role -from app.models.ticket_holder import TicketHolder -from app.models.user import User -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.user_context.user import User +from app.models.user_context.users_events_role import UsersEventsRoles class AdminStatisticsUserSchema(Schema): diff --git a/app/api/attendees.py b/app/api/attendees.py index 579789a5c3..41844962ed 100644 --- a/app/api/attendees.py +++ b/app/api/attendees.py @@ -13,10 +13,10 @@ from app.api.helpers.query import event_query from app.api.schema.attendees import AttendeeSchema from app.models import db -from app.models.order import Order -from app.models.ticket import Ticket -from app.models.ticket_holder import TicketHolder -from app.models.user import User +from app.models.Financial_Context.order import Order +from app.models.Financial_Context.ticket import Ticket +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.user_context.user import User from app.settings import get_settings diff --git a/app/api/auth.py b/app/api/auth.py index 2f6406976d..cf625abcf5 100644 --- a/app/api/auth.py +++ b/app/api/auth.py @@ -44,7 +44,7 @@ from app.api.helpers.utilities import get_serializer, str_generator from app.extensions.limiter import limiter from app.models import db -from app.models.user import User +from app.models.user_context.user import User logger = logging.getLogger(__name__) authorised_blueprint = Blueprint('authorised_blueprint', __name__, url_prefix='/') diff --git a/app/api/badge_field_forms.py b/app/api/badge_field_forms.py index 294244c5d8..ba28338e47 100644 --- a/app/api/badge_field_forms.py +++ b/app/api/badge_field_forms.py @@ -6,7 +6,7 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.badge_field_forms import BadgeFieldFormSchema from app.models import db -from app.models.badge_field_form import BadgeFieldForms +from app.models.Form_Context.badge_field_form import BadgeFieldForms class BadgeFieldFormList(ResourceList): diff --git a/app/api/badge_forms.py b/app/api/badge_forms.py index 50178a22eb..255a6588bd 100644 --- a/app/api/badge_forms.py +++ b/app/api/badge_forms.py @@ -10,9 +10,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.badge_forms import BadgeFormSchema from app.models import db -from app.models.badge_field_form import BadgeFieldForms -from app.models.badge_form import BadgeForms -from app.models.event import Event +from app.models.Form_Context.badge_field_form import BadgeFieldForms +from app.models.Form_Context.badge_form import BadgeForms +from app.models.Event_Context.event import Event class BadgeFormList(ResourceList): diff --git a/app/api/chat/rocket_chat.py b/app/api/chat/rocket_chat.py index fdb3ea5885..1583442c69 100644 --- a/app/api/chat/rocket_chat.py +++ b/app/api/chat/rocket_chat.py @@ -8,10 +8,10 @@ from app.api.helpers.db import get_new_identifier, get_or_create from app.models import db -from app.models.event import Event -from app.models.microlocation import Microlocation -from app.models.user import User -from app.models.video_stream import VideoStream +from app.models.Event_Context.event import Event +from app.models.Event_Context.microlocation import Microlocation +from app.models.user_context.user import User +from app.models.Event_Context.video_stream import VideoStream from app.settings import get_settings logger = logging.getLogger(__name__) diff --git a/app/api/custom/attendees.py b/app/api/custom/attendees.py index b9f1de1e25..bdfe810127 100644 --- a/app/api/custom/attendees.py +++ b/app/api/custom/attendees.py @@ -9,8 +9,8 @@ from app.api.helpers.permission_manager import has_access from app.api.helpers.permissions import jwt_required from app.models import db -from app.models.order import Order -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.order import Order +from app.models.Financial_Context.ticket_holder import TicketHolder attendee_blueprint = Blueprint('attendee_blueprint', __name__, url_prefix='/v1') diff --git a/app/api/custom/badge_forms.py b/app/api/custom/badge_forms.py index 1f2ca7a9b1..2a5128b247 100644 --- a/app/api/custom/badge_forms.py +++ b/app/api/custom/badge_forms.py @@ -9,8 +9,8 @@ create_export_badge_job, ) from app.api.helpers.permission_manager import has_access -from app.models.badge_form import BadgeForms -from app.models.ticket_holder import TicketHolder +from app.models.Form_Context.badge_form import BadgeForms +from app.models.Financial_Context.ticket_holder import TicketHolder badge_forms_routes = Blueprint( 'badge_forms_routes', __name__, url_prefix='/v1/badge-forms' diff --git a/app/api/custom/calendars.py b/app/api/custom/calendars.py index 2d74a8e72c..4064db2e13 100644 --- a/app/api/custom/calendars.py +++ b/app/api/custom/calendars.py @@ -5,7 +5,7 @@ from app.api.helpers.calendar.ical import to_ical from app.api.helpers.permissions import to_event_id -from app.models.event import Event +from app.models.Event_Context.event import Event calendar_routes = Blueprint('calendars', __name__, url_prefix='/v1/events') diff --git a/app/api/custom/check_in_stats.py b/app/api/custom/check_in_stats.py index 27e84b1149..2dcbc6352a 100644 --- a/app/api/custom/check_in_stats.py +++ b/app/api/custom/check_in_stats.py @@ -6,14 +6,14 @@ from app.api.helpers.permissions import jwt_required from app.api.helpers.static import STATION_TYPE from app.models import db -from app.models.event import Event -from app.models.session import Session -from app.models.session_type import SessionType -from app.models.station import Station -from app.models.station_store_pax import StationStorePax -from app.models.ticket_holder import TicketHolder +from app.models.Event_Context.event import Event +from app.models.Event_Context.session import Session +from app.models.Event_Context.session_type import SessionType +from app.models.Event_Context.station import Station +from app.models.Event_Context.station_store_pax import StationStorePax +from app.models.Financial_Context.ticket_holder import TicketHolder from app.models.track import Track -from app.models.user_check_in import UserCheckIn +from app.models.user_context.user_check_in import UserCheckIn check_in_stats_routes = Blueprint( 'check_in_stats_routes', __name__, url_prefix='/v1/user-check-in/stats' diff --git a/app/api/custom/events.py b/app/api/custom/events.py index 12ed181b23..56c03e4157 100644 --- a/app/api/custom/events.py +++ b/app/api/custom/events.py @@ -12,14 +12,14 @@ from app.api.schema.speakers import SpeakerReorderSchema from app.api.schema.virtual_check_in import VirtualCheckInSchema from app.models import db -from app.models.discount_code import DiscountCode -from app.models.event import Event -from app.models.exhibitor import Exhibitor -from app.models.microlocation import Microlocation -from app.models.order import Order -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Event_Context.event import Event +from app.models.Event_Context.exhibitor import Exhibitor +from app.models.Event_Context.microlocation import Microlocation +from app.models.Financial_Context.order import Order +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.Financial_Context.ticket_holder import TicketHolder events_routes = Blueprint('events_routes', __name__, url_prefix='/v1/events') diff --git a/app/api/custom/group_role_invite.py b/app/api/custom/group_role_invite.py index 648abed199..281debc377 100644 --- a/app/api/custom/group_role_invite.py +++ b/app/api/custom/group_role_invite.py @@ -1,7 +1,7 @@ from flask import Blueprint, jsonify from app.api.helpers.permissions import jwt_required -from app.models.users_groups_role import UsersGroupsRoles +from app.models.user_context.users_groups_role import UsersGroupsRoles group_role_invites_routes = Blueprint( 'group_role_invites_routes', __name__, url_prefix='/v1/group-role-invites' diff --git a/app/api/custom/groups.py b/app/api/custom/groups.py index 0b9e386e04..ba1ff0055a 100644 --- a/app/api/custom/groups.py +++ b/app/api/custom/groups.py @@ -10,11 +10,11 @@ from app.api.helpers.permissions import jwt_required, to_event_id from app.api.helpers.system_mails import MAILS, MailType from app.api.helpers.utilities import strip_tags -from app.models.event import Event -from app.models.group import Group -from app.models.role import Role -from app.models.user_follow_group import UserFollowGroup -from app.models.users_groups_role import UsersGroupsRoles +from app.models.Event_Context.event import Event +from app.models.Associations_Context.group import Group +from app.models.Associations_Context.role import Role +from app.models.user_context.user_follow_group import UserFollowGroup +from app.models.user_context.users_groups_role import UsersGroupsRoles groups_routes = Blueprint('groups_routes', __name__, url_prefix='/v1/groups') @@ -34,7 +34,7 @@ def announce_event(group_id, event_id): if event.is_announced: raise ForbiddenError({'source': 'event_id'}, "Event has already been announced") current_time = datetime.now(pytz.utc) - if event.ends_at < current_time or event.state != "published": + if event.duration.higher < current_time or event.state != "published": raise ForbiddenError( {'source': 'event_id'}, "Only upcoming and published events can be announced" ) diff --git a/app/api/custom/invoices.py b/app/api/custom/invoices.py index be067f59c2..e8feec35b3 100644 --- a/app/api/custom/invoices.py +++ b/app/api/custom/invoices.py @@ -12,8 +12,8 @@ from app.api.helpers.order import create_pdf_tickets_for_holder from app.api.helpers.permission_manager import has_access from app.api.helpers.storage import UPLOAD_PATHS, generate_hash -from app.models.event_invoice import EventInvoice -from app.models.order import Order +from app.models.Financial_Context.event_invoice import EventInvoice +from app.models.Financial_Context.order import Order event_blueprint = Blueprint('event_blueprint', __name__, url_prefix='/v1/events') diff --git a/app/api/custom/orders.py b/app/api/custom/orders.py index 14f3bc391c..7f13ce9033 100644 --- a/app/api/custom/orders.py +++ b/app/api/custom/orders.py @@ -21,11 +21,11 @@ from app.api.schema.orders import OrderSchema from app.extensions.limiter import limiter from app.models import db -from app.models.access_code import AccessCode -from app.models.discount_code import DiscountCode -from app.models.order import Order, OrderTicket -from app.models.ticket import Ticket -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.access_code import AccessCode +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Financial_Context.order import Order, OrderTicket +from app.models.Financial_Context.ticket import Ticket +from app.models.Financial_Context.ticket_holder import TicketHolder order_blueprint = Blueprint('order_blueprint', __name__, url_prefix='/v1/orders') ticket_blueprint = Blueprint('ticket_blueprint', __name__, url_prefix='/v1/tickets') diff --git a/app/api/custom/role_invites.py b/app/api/custom/role_invites.py index 4afdd72b09..ab708b6add 100644 --- a/app/api/custom/role_invites.py +++ b/app/api/custom/role_invites.py @@ -1,7 +1,7 @@ from flask import Blueprint, jsonify from app.api.helpers.permissions import jwt_required -from app.models.role_invite import RoleInvite +from app.models.Associations_Context.role_invite import RoleInvite role_invites_routes = Blueprint( 'role_invites_routes', __name__, url_prefix='/v1/role-invites' diff --git a/app/api/custom/tickets.py b/app/api/custom/tickets.py index 32a568e75d..3364db433f 100644 --- a/app/api/custom/tickets.py +++ b/app/api/custom/tickets.py @@ -2,8 +2,8 @@ from flask_jwt_extended import jwt_required from app.api.helpers.errors import NotFoundError -from app.models.badge_field_form import BadgeFieldForms -from app.models.ticket import Ticket +from app.models.Form_Context.badge_field_form import BadgeFieldForms +from app.models.Financial_Context.ticket import Ticket ticket_routes = Blueprint('ticket_routes', __name__, url_prefix='/v1/tickets') diff --git a/app/api/custom/users_groups_roles.py b/app/api/custom/users_groups_roles.py index 0384f6e5ef..4ae074deb5 100644 --- a/app/api/custom/users_groups_roles.py +++ b/app/api/custom/users_groups_roles.py @@ -6,8 +6,8 @@ from app.api.helpers.db import save_to_db from app.api.helpers.errors import ConflictError, ForbiddenError, NotFoundError from app.api.helpers.permissions import jwt_required -from app.models.user import User -from app.models.users_groups_role import UsersGroupsRoles +from app.models.user_context.user import User +from app.models.user_context.users_groups_role import UsersGroupsRoles logger = logging.getLogger(__name__) diff --git a/app/api/custom_form_options.py b/app/api/custom_form_options.py index 530a394089..56fb30a5f1 100644 --- a/app/api/custom_form_options.py +++ b/app/api/custom_form_options.py @@ -2,7 +2,7 @@ from app.api.schema.custom_form_options import CustomFormOptionSchema from app.models import db -from app.models.custom_form_option import CustomFormOptions +from app.models.Form_Context.custom_form_option import CustomFormOptions class CustomFormOptionList(ResourceList): diff --git a/app/api/custom_form_translates.py b/app/api/custom_form_translates.py index 952b97cecc..73556a4d6d 100644 --- a/app/api/custom_form_translates.py +++ b/app/api/custom_form_translates.py @@ -6,7 +6,7 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.custom_form_translates import CustomFormTranslateSchema from app.models import db -from app.models.custom_form_translate import CustomFormTranslates +from app.models.Form_Context.custom_form_translate import CustomFormTranslates class CustomFormTranslateList(ResourceList): diff --git a/app/api/custom_forms.py b/app/api/custom_forms.py index e182b109aa..6f10d734cc 100644 --- a/app/api/custom_forms.py +++ b/app/api/custom_forms.py @@ -10,9 +10,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.custom_forms import CustomFormSchema from app.models import db -from app.models.custom_form import CUSTOM_FORM_IDENTIFIER_NAME_MAP, CustomForms -from app.models.custom_form_translate import CustomFormTranslates -from app.models.event import Event +from app.models.Form_Context.custom_form import CUSTOM_FORM_IDENTIFIER_NAME_MAP, CustomForms +from app.models.Form_Context.custom_form_translate import CustomFormTranslates +from app.models.Event_Context.event import Event class CustomFormListPost(ResourceList): diff --git a/app/api/custom_placeholders.py b/app/api/custom_placeholders.py index b7eb0ab314..1c0c49d73d 100644 --- a/app/api/custom_placeholders.py +++ b/app/api/custom_placeholders.py @@ -5,8 +5,8 @@ from app.api.helpers.files import create_save_image_sizes from app.api.schema.custom_placeholders import CustomPlaceholderSchema from app.models import db -from app.models.custom_placeholder import CustomPlaceholder -from app.models.event_sub_topic import EventSubTopic +from app.models.Form_Context.custom_placeholder import CustomPlaceholder +from app.models.Event_Context.event_sub_topic import EventSubTopic class CustomPlaceholderList(ResourceList): diff --git a/app/api/custom_system_roles.py b/app/api/custom_system_roles.py index f2e2c51b9d..5aa252a966 100644 --- a/app/api/custom_system_roles.py +++ b/app/api/custom_system_roles.py @@ -4,8 +4,8 @@ from app.api.helpers.db import safe_query_kwargs from app.api.schema.custom_system_roles import CustomSystemRoleSchema from app.models import db -from app.models.custom_system_role import CustomSysRole -from app.models.panel_permission import PanelPermission +from app.models.Associations_Context.custom_system_role import CustomSysRole +from app.models.Associations_Context.panel_permission import PanelPermission class CustomSystemRoleList(ResourceList): diff --git a/app/api/data_layers/BadgeFormLayer.py b/app/api/data_layers/BadgeFormLayer.py index 3ed1ace9b4..97d3be4e81 100644 --- a/app/api/data_layers/BadgeFormLayer.py +++ b/app/api/data_layers/BadgeFormLayer.py @@ -1,8 +1,8 @@ from flask_rest_jsonapi.data_layers.base import BaseDataLayer from app.api.helpers.db import save_to_db -from app.models.badge_field_form import BadgeFieldForms -from app.models.badge_form import BadgeForms +from app.models.Form_Context.badge_field_form import BadgeFieldForms +from app.models.Form_Context.badge_form import BadgeForms class BadgeFormLayer(BaseDataLayer): diff --git a/app/api/data_layers/ChargesLayer.py b/app/api/data_layers/ChargesLayer.py index fb646dbcdc..9ed60a7e4e 100644 --- a/app/api/data_layers/ChargesLayer.py +++ b/app/api/data_layers/ChargesLayer.py @@ -3,7 +3,7 @@ from app.api.helpers.errors import ConflictError, UnprocessableEntityError from app.api.helpers.ticketing import TicketingManager -from app.models.order import Order +from app.models.Financial_Context.order import Order class ChargesLayer(BaseDataLayer): diff --git a/app/api/data_layers/CustomFormTranslateLayer.py b/app/api/data_layers/CustomFormTranslateLayer.py index 4ddf23da0c..5da2af8fe5 100644 --- a/app/api/data_layers/CustomFormTranslateLayer.py +++ b/app/api/data_layers/CustomFormTranslateLayer.py @@ -1,8 +1,8 @@ from flask_rest_jsonapi.data_layers.base import BaseDataLayer from app.api.helpers.db import save_to_db -from app.models.custom_form import CustomForms -from app.models.custom_form_translate import CustomFormTranslates +from app.models.Form_Context.custom_form import CustomForms +from app.models.Form_Context.custom_form_translate import CustomFormTranslates class CustomFormTranslateLayer(BaseDataLayer): diff --git a/app/api/data_layers/EventCopyLayer.py b/app/api/data_layers/EventCopyLayer.py index 8ecf027f3d..925bb89dfe 100644 --- a/app/api/data_layers/EventCopyLayer.py +++ b/app/api/data_layers/EventCopyLayer.py @@ -6,14 +6,14 @@ from app.api.helpers.db import safe_query, save_to_db from app.api.helpers.files import create_save_resized_image from app.models import db -from app.models.custom_form import CustomForms -from app.models.discount_code import DiscountCode -from app.models.event import Event, get_new_event_identifier -from app.models.microlocation import Microlocation -from app.models.social_link import SocialLink -from app.models.speakers_call import SpeakersCall -from app.models.sponsor import Sponsor -from app.models.ticket import Ticket +from app.models.Form_Context.custom_form import CustomForms +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Event_Context.event import Event, get_new_event_identifier +from app.models.Event_Context.microlocation import Microlocation +from app.models.Communication_Context.social_link import SocialLink +from app.models.Event_Context.speakers_call import SpeakersCall +from app.models.Event_Context.sponsor import Sponsor +from app.models.Financial_Context.ticket import Ticket from app.models.track import Track diff --git a/app/api/discount_codes.py b/app/api/discount_codes.py index cff1d1bc3c..0d35374ea0 100644 --- a/app/api/discount_codes.py +++ b/app/api/discount_codes.py @@ -22,11 +22,11 @@ DiscountCodeSchemaTicket, ) from app.models import db -from app.models.discount_code import DiscountCode -from app.models.event import Event -from app.models.event_invoice import EventInvoice -from app.models.ticket import Ticket -from app.models.user import User +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Event_Context.event import Event +from app.models.Financial_Context.event_invoice import EventInvoice +from app.models.Financial_Context.ticket import Ticket +from app.models.user_context.user import User class DiscountCodeListPost(ResourceList): diff --git a/app/api/email_notifications.py b/app/api/email_notifications.py index 2e8360b80c..ac38262128 100644 --- a/app/api/email_notifications.py +++ b/app/api/email_notifications.py @@ -5,8 +5,8 @@ from app.api.helpers.permissions import jwt_required from app.api.schema.email_notifications import EmailNotificationSchema from app.models import db -from app.models.email_notification import EmailNotification -from app.models.user import User +from app.models.Communication_Context.email_notification import EmailNotification +from app.models.user_context.user import User class EmailNotificationListAdmin(ResourceList): diff --git a/app/api/event_copy.py b/app/api/event_copy.py index 7a6ff3b448..ff45062d19 100644 --- a/app/api/event_copy.py +++ b/app/api/event_copy.py @@ -4,17 +4,17 @@ from app.api.helpers.db import safe_query, save_to_db from app.api.helpers.permission_manager import has_access from app.models import db -from app.models.custom_form import CustomForms -from app.models.discount_code import DiscountCode -from app.models.event import Event, get_new_event_identifier -from app.models.microlocation import Microlocation -from app.models.social_link import SocialLink -from app.models.speakers_call import SpeakersCall -from app.models.sponsor import Sponsor -from app.models.tax import Tax -from app.models.ticket import Ticket +from app.models.Form_Context.custom_form import CustomForms +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Event_Context.event import Event, get_new_event_identifier +from app.models.Event_Context.microlocation import Microlocation +from app.models.Communication_Context.social_link import SocialLink +from app.models.Event_Context.speakers_call import SpeakersCall +from app.models.Event_Context.sponsor import Sponsor +from app.models.Event_Context.tax import Tax +from app.models.Financial_Context.ticket import Ticket from app.models.track import Track -from app.models.users_events_role import UsersEventsRoles +from app.models.user_context.users_events_role import UsersEventsRoles event_copy = Blueprint('event_copy', __name__, url_prefix='/v1/events') diff --git a/app/api/event_copyright.py b/app/api/event_copyright.py index e66760df25..7b3e0d44e8 100644 --- a/app/api/event_copyright.py +++ b/app/api/event_copyright.py @@ -8,8 +8,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.event_copyright import EventCopyrightSchema from app.models import db -from app.models.event import Event -from app.models.event_copyright import EventCopyright +from app.models.Event_Context.event import Event +from app.models.Event_Context.event_copyright import EventCopyright class EventCopyrightListPost(ResourceList): diff --git a/app/api/event_image_sizes.py b/app/api/event_image_sizes.py index eca38b317f..437e4626c3 100644 --- a/app/api/event_image_sizes.py +++ b/app/api/event_image_sizes.py @@ -3,7 +3,7 @@ from app.api.bootstrap import api from app.api.schema.image_sizes import EventImageSizeSchema from app.models import db -from app.models.image_size import ImageSizes +from app.models.Form_Context.image_size import ImageSizes class EventImageSizeDetail(ResourceDetail): diff --git a/app/api/event_invoices.py b/app/api/event_invoices.py index fd6054e918..c26d7ce1be 100644 --- a/app/api/event_invoices.py +++ b/app/api/event_invoices.py @@ -12,8 +12,8 @@ from app.api.orders import order_misc_routes from app.api.schema.event_invoices import EventInvoiceSchema from app.models import db -from app.models.event_invoice import EventInvoice -from app.models.user import User +from app.models.Financial_Context.event_invoice import EventInvoice +from app.models.user_context.user import User from app.settings import get_settings diff --git a/app/api/event_locations.py b/app/api/event_locations.py index 745589b1b2..46976fd825 100644 --- a/app/api/event_locations.py +++ b/app/api/event_locations.py @@ -7,8 +7,8 @@ from app.api.bootstrap import api from app.api.schema.event_locations import EventLocationSchema from app.models import db -from app.models.event import Event -from app.models.event_location import EventLocation +from app.models.Event_Context.event import Event +from app.models.Event_Context.event_location import EventLocation class EventLocationList(ResourceList): diff --git a/app/api/event_statistics.py b/app/api/event_statistics.py index e58a0946ee..701ac95731 100644 --- a/app/api/event_statistics.py +++ b/app/api/event_statistics.py @@ -4,7 +4,7 @@ from app.api.helpers.db import safe_query_kwargs from app.api.schema.event_statistics import EventStatisticsGeneralSchema from app.models import db -from app.models.event import Event +from app.models.Event_Context.event import Event class EventStatisticsGeneralDetail(ResourceDetail): diff --git a/app/api/event_sub_topics.py b/app/api/event_sub_topics.py index a26007214f..f76d5246fd 100644 --- a/app/api/event_sub_topics.py +++ b/app/api/event_sub_topics.py @@ -8,9 +8,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.event_sub_topics import EventSubTopicSchema from app.models import db -from app.models.event import Event -from app.models.event_sub_topic import EventSubTopic -from app.models.event_topic import EventTopic +from app.models.Event_Context.event import Event +from app.models.Event_Context.event_sub_topic import EventSubTopic +from app.models.Event_Context.event_topic import EventTopic class EventSubTopicListPost(ResourceList): diff --git a/app/api/event_topics.py b/app/api/event_topics.py index ab19de24e2..7e255b9d8b 100644 --- a/app/api/event_topics.py +++ b/app/api/event_topics.py @@ -8,9 +8,9 @@ from app.api.helpers.files import create_system_image from app.api.schema.event_topics import EventTopicSchema from app.models import db -from app.models.event import Event -from app.models.event_sub_topic import EventSubTopic -from app.models.event_topic import EventTopic +from app.models.Event_Context.event import Event +from app.models.Event_Context.event_sub_topic import EventSubTopic +from app.models.Event_Context.event_topic import EventTopic class EventTopicList(ResourceList): diff --git a/app/api/event_types.py b/app/api/event_types.py index 871499a590..958860ccd1 100644 --- a/app/api/event_types.py +++ b/app/api/event_types.py @@ -4,8 +4,8 @@ from app.api.helpers.db import safe_query_kwargs from app.api.schema.event_types import EventTypeSchema from app.models import db -from app.models.event import Event -from app.models.event_type import EventType +from app.models.Event_Context.event import Event +from app.models.Event_Context.event_type import EventType class EventTypeList(ResourceList): diff --git a/app/api/events.py b/app/api/events.py index 7c463dab64..2c4d066fca 100644 --- a/app/api/events.py +++ b/app/api/events.py @@ -11,6 +11,8 @@ from marshmallow_jsonapi import fields from marshmallow_jsonapi.flask import Schema from sqlalchemy import and_, or_ +from sqlalchemy.dialects.postgresql import TSTZRANGE + from app.api.bootstrap import api from app.api.chat.rocket_chat import ( @@ -35,35 +37,35 @@ # models from app.models import db -from app.models.access_code import AccessCode -from app.models.custom_form import CustomForms -from app.models.discount_code import DiscountCode -from app.models.email_notification import EmailNotification -from app.models.event import Event -from app.models.event_copyright import EventCopyright -from app.models.event_invoice import EventInvoice -from app.models.exhibitor import Exhibitor -from app.models.faq import Faq -from app.models.faq_type import FaqType -from app.models.feedback import Feedback -from app.models.group import Group -from app.models.microlocation import Microlocation -from app.models.order import Order -from app.models.role import Role -from app.models.role_invite import RoleInvite -from app.models.session import Session -from app.models.session_type import SessionType -from app.models.social_link import SocialLink -from app.models.speaker import Speaker -from app.models.speaker_invite import SpeakerInvite -from app.models.speakers_call import SpeakersCall -from app.models.sponsor import Sponsor -from app.models.stripe_authorization import StripeAuthorization -from app.models.tax import Tax -from app.models.ticket import Ticket, TicketTag -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.access_code import AccessCode +from app.models.Form_Context.custom_form import CustomForms +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Communication_Context.email_notification import EmailNotification +from app.models.Event_Context.event import Event +from app.models.Event_Context.event_copyright import EventCopyright +from app.models.Financial_Context.event_invoice import EventInvoice +from app.models.Event_Context.exhibitor import Exhibitor +from app.models.Form_Context.faq import Faq +from app.models.Form_Context.faq_type import FaqType +from app.models.Event_Context.feedback import Feedback +from app.models.Associations_Context.group import Group +from app.models.Event_Context.microlocation import Microlocation +from app.models.Financial_Context.order import Order +from app.models.Associations_Context.role import Role +from app.models.Associations_Context.role_invite import RoleInvite +from app.models.Event_Context.session import Session +from app.models.Event_Context.session_type import SessionType +from app.models.Communication_Context.social_link import SocialLink +from app.models.Associations_Context.speaker import Speaker +from app.models.Associations_Context.speaker_invite import SpeakerInvite +from app.models.Event_Context.speakers_call import SpeakersCall +from app.models.Event_Context.sponsor import Sponsor +from app.models.Financial_Context.stripe_authorization import StripeAuthorization +from app.models.Event_Context.tax import Tax +from app.models.Financial_Context.ticket import Ticket, TicketTag +from app.models.Financial_Context.ticket_holder import TicketHolder from app.models.track import Track -from app.models.user import ( +from app.models.user_context.user import ( MARKETER, MODERATOR, REGISTRAR, @@ -71,9 +73,9 @@ TRACK_ORGANIZER, User, ) -from app.models.user_favourite_event import UserFavouriteEvent -from app.models.users_events_role import UsersEventsRoles -from app.models.video_stream import VideoStream +from app.models.user_context.user_favourite_event import UserFavouriteEvent +from app.models.user_context.users_events_role import UsersEventsRoles +from app.models.Event_Context.video_stream import VideoStream events_blueprint = Blueprint('events_blueprint', __name__, url_prefix='/v1/events') @@ -221,24 +223,16 @@ def validate_event(user, data): def validate_date(event, data): if event: - if 'starts_at' not in data: - data['starts_at'] = event.starts_at - - if 'ends_at' not in data: - data['ends_at'] = event.ends_at + if 'duration' not in data: + data['duration'] = event.duration - if not data.get('starts_at') or not data.get('ends_at'): + if not data.get('duration'): raise UnprocessableEntityError( {'pointer': '/data/attributes/date'}, - "enter required fields starts-at/ends-at", - ) - - if data['starts_at'] >= data['ends_at']: - raise UnprocessableEntityError( - {'pointer': '/data/attributes/ends-at'}, "ends-at should be after starts-at" + "enter required fields duration", ) - if (data['ends_at'] - data['starts_at']).days > 20: + if (data['duration'].higher - data['duration']).lower.days > 20: raise UnprocessableEntityError( {'pointer': '/data/attributes/ends-at'}, "Event duration can not be more than 20 days", @@ -612,8 +606,7 @@ def before_update_object(self, event, data, view_kwargs): g.event_name = event.name is_date_updated = ( - data.get('starts_at') != event.starts_at - or data.get('ends_at') != event.ends_at + data.get('duration') != event.duration ) is_draft_published = ( event.state == Event.State.DRAFT @@ -799,8 +792,7 @@ def query(self, view_kwargs): query_ = ( self.session.query(Event) .filter( - Event.starts_at > current_time, - Event.ends_at > current_time, + Event.duration.lower > current_time, Event.state == Event.State.PUBLISHED, Event.privacy == Event.Privacy.PUBLIC, or_( @@ -838,7 +830,7 @@ def query(self, view_kwargs): ), ), ) - .order_by(Event.starts_at) + .order_by(Event.duration.lower) ) return query_ diff --git a/app/api/events_role_permission.py b/app/api/events_role_permission.py index df8cef4c18..4a9b7b1b08 100644 --- a/app/api/events_role_permission.py +++ b/app/api/events_role_permission.py @@ -3,7 +3,7 @@ from app.api.bootstrap import api from app.api.schema.event_role_permissions import EventsRolePermissionSchema from app.models import db -from app.models.permission import Permission +from app.models.Associations_Context.permission import Permission class EventsRolePermissionList(ResourceList): diff --git a/app/api/exhibitors.py b/app/api/exhibitors.py index 9d4e73ca25..0ba3e851bc 100644 --- a/app/api/exhibitors.py +++ b/app/api/exhibitors.py @@ -8,8 +8,8 @@ from app.api.helpers.utilities import changed, require_relationship from app.api.schema.exhibitors import ExhibitorSchema from app.models import db -from app.models.exhibitor import Exhibitor -from app.models.session import Session +from app.models.Event_Context.exhibitor import Exhibitor +from app.models.Event_Context.session import Session class ExhibitorListPost(ResourceList): diff --git a/app/api/faq_types.py b/app/api/faq_types.py index 40479ea2e3..41ec18b388 100644 --- a/app/api/faq_types.py +++ b/app/api/faq_types.py @@ -8,8 +8,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.faq_types import FaqTypeSchema from app.models import db -from app.models.faq import Faq -from app.models.faq_type import FaqType +from app.models.Form_Context.faq import Faq +from app.models.Form_Context.faq_type import FaqType class FaqTypeListPost(ResourceList): diff --git a/app/api/faqs.py b/app/api/faqs.py index 78dc1e2799..9874499162 100644 --- a/app/api/faqs.py +++ b/app/api/faqs.py @@ -8,8 +8,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.faqs import FaqSchema from app.models import db -from app.models.faq import Faq -from app.models.faq_type import FaqType +from app.models.Form_Context.faq import Faq +from app.models.Form_Context.faq_type import FaqType class FaqListPost(ResourceList): diff --git a/app/api/feedbacks.py b/app/api/feedbacks.py index 80cba026b0..675f6e852d 100644 --- a/app/api/feedbacks.py +++ b/app/api/feedbacks.py @@ -11,10 +11,10 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.feedbacks import FeedbackSchema from app.models import db -from app.models.event import Event -from app.models.feedback import Feedback -from app.models.session import Session -from app.models.user import User +from app.models.Event_Context.event import Event +from app.models.Event_Context.feedback import Feedback +from app.models.Event_Context.session import Session +from app.models.user_context.user import User class FeedbackListPost(ResourceList): diff --git a/app/api/groups.py b/app/api/groups.py index 62163c9601..427de15875 100644 --- a/app/api/groups.py +++ b/app/api/groups.py @@ -11,12 +11,12 @@ # models from app.models import db -from app.models.event import Event -from app.models.group import Group -from app.models.role import Role -from app.models.user import User -from app.models.user_follow_group import UserFollowGroup -from app.models.users_groups_role import UsersGroupsRoles +from app.models.Event_Context.event import Event +from app.models.Associations_Context.group import Group +from app.models.Associations_Context.role import Role +from app.models.user_context.user import User +from app.models.user_context.user_follow_group import UserFollowGroup +from app.models.user_context.users_groups_role import UsersGroupsRoles def is_owner_or_organizer(group, user): diff --git a/app/api/helpers/ICalExporter.py b/app/api/helpers/ICalExporter.py index c0c2e59d81..0f87ac0060 100644 --- a/app/api/helpers/ICalExporter.py +++ b/app/api/helpers/ICalExporter.py @@ -1,5 +1,5 @@ from app.api.helpers.calendar.ical import to_ical -from app.models.event import Event +from app.models.Event_Context.event import Event class ICalExporter: diff --git a/app/api/helpers/auth.py b/app/api/helpers/auth.py index 21aa743039..92ec1c4927 100644 --- a/app/api/helpers/auth.py +++ b/app/api/helpers/auth.py @@ -5,8 +5,8 @@ from flask_login import current_user from app.models import db -from app.models.user import User -from app.models.user_token_blacklist import UserTokenBlackListTime +from app.models.user_context.user import User +from app.models.user_context.user_token_blacklist import UserTokenBlackListTime class AuthManager: diff --git a/app/api/helpers/badge_forms.py b/app/api/helpers/badge_forms.py index cb37c0d1a2..6abd813bdd 100644 --- a/app/api/helpers/badge_forms.py +++ b/app/api/helpers/badge_forms.py @@ -7,9 +7,9 @@ from app.api.helpers.files import create_save_pdf from app.api.helpers.storage import UPLOAD_PATHS, generate_hash from app.api.helpers.utilities import to_snake_case -from app.models.badge_field_form import BadgeFieldForms -from app.models.custom_form import CustomForms -from app.models.ticket_holder import TicketHolder +from app.models.Form_Context.badge_field_form import BadgeFieldForms +from app.models.Form_Context.custom_form import CustomForms +from app.models.Financial_Context.ticket_holder import TicketHolder def file_pdf_path(self) -> str: diff --git a/app/api/helpers/calendar/ical.py b/app/api/helpers/calendar/ical.py index fd2be132fb..5a65419c7a 100644 --- a/app/api/helpers/calendar/ical.py +++ b/app/api/helpers/calendar/ical.py @@ -8,7 +8,7 @@ from sqlalchemy.orm import joinedload from app.api.helpers.utilities import remove_html_tags -from app.models.session import Session +from app.models.Event_Context.session import Session def to_ical(event, include_sessions=False, my_schedule=False, user_id=None): diff --git a/app/api/helpers/csv_jobs_util.py b/app/api/helpers/csv_jobs_util.py index 71ae66d7ae..ca0431f05a 100644 --- a/app/api/helpers/csv_jobs_util.py +++ b/app/api/helpers/csv_jobs_util.py @@ -3,11 +3,11 @@ from app.api.admin_sales.utils import event_type, summary from app.api.helpers.group_user_role import get_user_group_role from app.models import db -from app.models.access_code import AccessCode +from app.models.Financial_Context.access_code import AccessCode from app.models.helpers.versioning import strip_tags -from app.models.order import OrderTicket -from app.models.ticket import access_codes_tickets -from app.models.user_check_in import VirtualCheckIn +from app.models.Financial_Context.order import OrderTicket +from app.models.Financial_Context.ticket import access_codes_tickets +from app.models.user_context.user_check_in import VirtualCheckIn def export_orders_csv(orders): diff --git a/app/api/helpers/custom_forms.py b/app/api/helpers/custom_forms.py index 26f5155c31..9c7b715a73 100644 --- a/app/api/helpers/custom_forms.py +++ b/app/api/helpers/custom_forms.py @@ -4,8 +4,8 @@ from app.api.helpers.errors import UnprocessableEntityError from app.api.schema.base import TrimmedEmail -from app.models.custom_form import CustomForms -from app.models.ticket import Ticket +from app.models.Form_Context.custom_form import CustomForms +from app.models.Financial_Context.ticket import Ticket def object_as_dict(obj): diff --git a/app/api/helpers/event_invoices.py b/app/api/helpers/event_invoices.py index f20fd7633c..6b98144357 100644 --- a/app/api/helpers/event_invoices.py +++ b/app/api/helpers/event_invoices.py @@ -1,6 +1,6 @@ import datetime -from app.models.event_invoice import EventInvoice +from app.models.Financial_Context.event_invoice import EventInvoice def fetch_event_invoices(invoice_status): diff --git a/app/api/helpers/events.py b/app/api/helpers/events.py index 7c1aa2c02d..21aba0725b 100644 --- a/app/api/helpers/events.py +++ b/app/api/helpers/events.py @@ -1,5 +1,5 @@ from app.api.helpers.db import save_to_db -from app.models.custom_form import CustomForms +from app.models.Form_Context.custom_form import CustomForms def create_custom_forms_for_attendees(event): diff --git a/app/api/helpers/export_helpers.py b/app/api/helpers/export_helpers.py index 620a1b3cf6..a8bfc81dd6 100644 --- a/app/api/helpers/export_helpers.py +++ b/app/api/helpers/export_helpers.py @@ -15,14 +15,14 @@ from app.api.helpers.storage import UPLOAD_PATHS, UploadedFile, upload from app.api.helpers.utilities import get_filename_from_cd, is_downloadable from app.models import db -from app.models.custom_form import CustomForms -from app.models.event import Event +from app.models.Form_Context.custom_form import CustomForms +from app.models.Event_Context.event import Event from app.models.export_job import ExportJob -from app.models.microlocation import Microlocation -from app.models.session import Session -from app.models.session_type import SessionType -from app.models.speaker import Speaker -from app.models.sponsor import Sponsor +from app.models.Event_Context.microlocation import Microlocation +from app.models.Event_Context.session import Session +from app.models.Event_Context.session_type import SessionType +from app.models.Associations_Context.speaker import Speaker +from app.models.Event_Context.sponsor import Sponsor from app.models.track import Track # order of keys in export json @@ -33,8 +33,7 @@ 'latitude', 'longitude', 'location_name', - 'starts_at', - 'ends_at', + 'duration', 'timezone', 'description', 'original_image_url', diff --git a/app/api/helpers/files.py b/app/api/helpers/files.py index 6b61fa8503..5b7e5420ef 100644 --- a/app/api/helpers/files.py +++ b/app/api/helpers/files.py @@ -15,7 +15,7 @@ from app.api.helpers.ICalExporter import ICalExporter from app.api.helpers.storage import UPLOAD_PATHS, UploadedFile, generate_hash, upload -from app.models.image_size import ImageSizes +from app.models.Form_Context.image_size import ImageSizes from app.settings import get_settings diff --git a/app/api/helpers/group_user_role.py b/app/api/helpers/group_user_role.py index b5cb80b89f..fa98ce790b 100644 --- a/app/api/helpers/group_user_role.py +++ b/app/api/helpers/group_user_role.py @@ -1,6 +1,6 @@ -from app.models.group import Group -from app.models.role import Role -from app.models.users_groups_role import UsersGroupsRoles +from app.models.Associations_Context.group import Group +from app.models.Associations_Context.role import Role +from app.models.user_context.users_groups_role import UsersGroupsRoles def get_user_group_role(user_id, group_id): diff --git a/app/api/helpers/import_helpers.py b/app/api/helpers/import_helpers.py index 9ea0d55ad5..9c9470c503 100644 --- a/app/api/helpers/import_helpers.py +++ b/app/api/helpers/import_helpers.py @@ -16,19 +16,19 @@ from app.api.helpers.storage import UPLOAD_PATHS, UploadedFile, UploadedMemory, upload from app.api.helpers.utilities import is_downloadable, update_state, write_file from app.models import db -from app.models.custom_form import CustomForms -from app.models.event import Event +from app.models.Form_Context.custom_form import CustomForms +from app.models.Event_Context.event import Event from app.models.import_job import ImportJob -from app.models.microlocation import Microlocation -from app.models.role import Role -from app.models.session import Session -from app.models.session_type import SessionType -from app.models.social_link import SocialLink -from app.models.speaker import Speaker -from app.models.sponsor import Sponsor +from app.models.Event_Context.microlocation import Microlocation +from app.models.Associations_Context.role import Role +from app.models.Event_Context.session import Session +from app.models.Event_Context.session_type import SessionType +from app.models.Communication_Context.social_link import SocialLink +from app.models.Associations_Context.speaker import Speaker +from app.models.Event_Context.sponsor import Sponsor from app.models.track import Track -from app.models.user import User -from app.models.users_events_role import UsersEventsRoles +from app.models.user_context.user import User +from app.models.user_context.users_events_role import UsersEventsRoles IMPORT_SERIES = [ ('social_links', SocialLink), diff --git a/app/api/helpers/jwt.py b/app/api/helpers/jwt.py index 9c8fb6921e..35f6f2ec05 100644 --- a/app/api/helpers/jwt.py +++ b/app/api/helpers/jwt.py @@ -4,7 +4,7 @@ from flask_jwt_extended.view_decorators import _decode_jwt_from_request, _load_user from jwt.exceptions import PyJWTError -from app.models.user import User +from app.models.user_context.user import User def jwt_authenticate(email, password): diff --git a/app/api/helpers/mail.py b/app/api/helpers/mail.py index 2f3e7c0a4e..d4cebe8387 100644 --- a/app/api/helpers/mail.py +++ b/app/api/helpers/mail.py @@ -16,12 +16,12 @@ from app.api.helpers.log import record_activity from app.api.helpers.system_mails import MAILS, MailType from app.api.helpers.utilities import get_serializer, str_generator, string_empty -from app.models.event import Event -from app.models.mail import Mail -from app.models.message_setting import MessageSettings -from app.models.order import OrderTicket -from app.models.ticket_holder import TicketHolder -from app.models.user import User +from app.models.Event_Context.event import Event +from app.models.Communication_Context.mail import Mail +from app.models.Communication_Context.message_setting import MessageSettings +from app.models.Financial_Context.order import OrderTicket +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.user_context.user import User from app.settings import get_settings logger = logging.getLogger(__name__) @@ -383,11 +383,11 @@ def send_email_announce_event(event, group, emails): event_name = event.name group_name = group.name - event_date = event.starts_at + event_date = event.duration.lower event_description = event.description event_url = event.site_link event_location = event.normalized_location - event_time = event.starts_at + event_time = event.duration.lower group_url = group.view_page_link app_name = get_settings()['app_name'] @@ -557,16 +557,16 @@ def send_email_to_attendees(order): buyer_email = order.user.email event_date = convert_to_user_locale( buyer_email, - date=order.event.starts_at, + date=order.event.duration.lower, ) event_end_date = convert_to_user_locale( buyer_email, - date_time=order.event.ends_at, + date_time=order.event.duration.higher, tz=order.event.timezone, ) event_time = convert_to_user_locale( buyer_email, - time=order.event.starts_at, + time=order.event.duration.lower, tz=order.event.timezone, ) @@ -574,7 +574,7 @@ def send_email_to_attendees(order): order=order, starts_at=convert_to_user_locale( buyer_email, - date_time=order.event.starts_at, + date_time=order.event.duration.lower, tz=order.event.timezone, ), ends_at=event_end_date, @@ -640,11 +640,11 @@ def send_order_purchase_organizer_email(order, recipients): order_url=order.site_view_link, event_date=convert_to_user_locale( order.user.email, - date=order.event.starts_at, + date=order.event.duration.lower, ), event_time=convert_to_user_locale( order.user.email, - time=order.event.starts_at, + time=order.event.duration.lower, tz=order.event.timezone, ), timezone=order.event.timezone, diff --git a/app/api/helpers/notification.py b/app/api/helpers/notification.py index cbacbf929b..1aac03cc03 100644 --- a/app/api/helpers/notification.py +++ b/app/api/helpers/notification.py @@ -7,9 +7,9 @@ NotificationContent, NotificationType, ) -from app.models.notification_setting import NotificationSettings -from app.models.speaker import Speaker -from app.models.user import User +from app.models.Communication_Context.notification_setting import NotificationSettings +from app.models.Associations_Context.speaker import Speaker +from app.models.user_context.user import User logger = logging.getLogger(__name__) diff --git a/app/api/helpers/order.py b/app/api/helpers/order.py index 0b2de0f102..d8adc7700f 100644 --- a/app/api/helpers/order.py +++ b/app/api/helpers/order.py @@ -22,11 +22,11 @@ ) from app.api.helpers.storage import UPLOAD_PATHS from app.models import db -from app.models.order import OrderTicket +from app.models.Financial_Context.order import OrderTicket from app.models.setting import Setting -from app.models.ticket import Ticket -from app.models.ticket_fee import TicketFees -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.ticket import Ticket +from app.models.Financial_Context.ticket_fee import TicketFees +from app.models.Financial_Context.ticket_holder import TicketHolder from app.settings import get_settings @@ -78,10 +78,10 @@ def create_pdf_tickets_for_holder(order): :param order: The order for which to create tickets for. """ starts_at = convert_to_user_locale( - order.user.email, date_time=order.event.starts_at, tz=order.event.timezone + order.user.email, date_time=order.event.duration.lower, tz=order.event.timezone ) ends_at = convert_to_user_locale( - order.user.email, date_time=order.event.ends_at, tz=order.event.timezone + order.user.email, date_time=order.event.duration.higher, tz=order.event.timezone ) admin_info = Setting.query.first() if order.status == 'completed' or order.status == 'placed': @@ -105,10 +105,10 @@ def create_pdf_tickets_for_holder(order): for holder in order.ticket_holders: starts_at = convert_to_user_locale( - holder.email, date_time=order.event.starts_at, tz=order.event.timezone + holder.email, date_time=order.event.duration.lower, tz=order.event.timezone ) ends_at = convert_to_user_locale( - holder.email, date_time=order.event.ends_at, tz=order.event.timezone + holder.email, date_time=order.event.duration.higher, tz=order.event.timezone ) # create attendee pdf for every ticket holder diff --git a/app/api/helpers/payment.py b/app/api/helpers/payment.py index 01fd8b7894..98c031fd65 100644 --- a/app/api/helpers/payment.py +++ b/app/api/helpers/payment.py @@ -11,8 +11,8 @@ from app.api.helpers.db import safe_query, save_to_db from app.api.helpers.errors import ConflictError, ForbiddenError from app.api.helpers.utilities import represents_int, round_money -from app.models.order import Order -from app.models.stripe_authorization import StripeAuthorization +from app.models.Financial_Context.order import Order +from app.models.Financial_Context.stripe_authorization import StripeAuthorization from app.settings import Environment, get_settings diff --git a/app/api/helpers/pentabarfxml.py b/app/api/helpers/pentabarfxml.py index 9beaed0e87..e49f724c8d 100644 --- a/app/api/helpers/pentabarfxml.py +++ b/app/api/helpers/pentabarfxml.py @@ -7,9 +7,9 @@ from sqlalchemy import Date, asc, func from app.models import db -from app.models.event import Event as EventModel -from app.models.microlocation import Microlocation -from app.models.session import Session +from app.models.Event_Context.event import Event as EventModel +from app.models.Event_Context.microlocation import Microlocation +from app.models.Event_Context.session import Session from app.settings import get_settings @@ -27,12 +27,12 @@ def __init__(self): def export(event_id): """Takes an event id and returns the event in pentabarf XML format""" event = EventModel.query.get(event_id) - diff = event.ends_at - event.starts_at + diff = event.duration.higher - event.duration.lower conference = Conference( title=event.name, - start=event.starts_at, - end=event.ends_at, + start=event.duration.lower, + end=event.duration.higher, days=diff.days if diff.days > 0 else 1, day_change="00:00", timeslot_duration="00:15", diff --git a/app/api/helpers/permission_manager.py b/app/api/helpers/permission_manager.py index 66ebf687b5..a18674f880 100644 --- a/app/api/helpers/permission_manager.py +++ b/app/api/helpers/permission_manager.py @@ -8,12 +8,12 @@ from app.api.helpers.errors import ForbiddenError, NotFoundError from app.api.helpers.jwt import get_identity from app.api.helpers.permissions import jwt_required -from app.models.event import Event -from app.models.event_invoice import EventInvoice -from app.models.order import Order -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.user import User +from app.models.Event_Context.event import Event +from app.models.Financial_Context.event_invoice import EventInvoice +from app.models.Financial_Context.order import Order +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.user_context.user import User logger = logging.getLogger(__name__) diff --git a/app/api/helpers/permissions.py b/app/api/helpers/permissions.py index 318f8c4945..8dec456a26 100644 --- a/app/api/helpers/permissions.py +++ b/app/api/helpers/permissions.py @@ -7,7 +7,7 @@ from app.api.helpers.db import save_to_db from app.api.helpers.errors import ForbiddenError from app.models import db -from app.models.event import Event +from app.models.Event_Context.event import Event def second_order_decorator(inner_dec): diff --git a/app/api/helpers/query.py b/app/api/helpers/query.py index af0ed56aa0..0f7e2fd290 100644 --- a/app/api/helpers/query.py +++ b/app/api/helpers/query.py @@ -3,9 +3,9 @@ from app.api.helpers.db import safe_query_kwargs from app.api.helpers.errors import ForbiddenError from app.api.helpers.permission_manager import has_access, is_logged_in -from app.models.event import Event -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Event_Context.event import Event +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles def event_query( diff --git a/app/api/helpers/role_invite.py b/app/api/helpers/role_invite.py index a27d5bdb8d..27d5e9f9c0 100644 --- a/app/api/helpers/role_invite.py +++ b/app/api/helpers/role_invite.py @@ -1,7 +1,7 @@ import logging from app.models import db -from app.models.role_invite import RoleInvite +from app.models.Associations_Context.role_invite import RoleInvite logger = logging.getLogger(__name__) diff --git a/app/api/helpers/scheduled_jobs.py b/app/api/helpers/scheduled_jobs.py index 8713a9889d..4955ff0d0e 100644 --- a/app/api/helpers/scheduled_jobs.py +++ b/app/api/helpers/scheduled_jobs.py @@ -18,13 +18,13 @@ from app.api.helpers.utilities import monthdelta from app.instance import celery from app.models import db -from app.models.event import Event -from app.models.event_invoice import EventInvoice -from app.models.order import Order -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.ticket import Ticket -from app.models.ticket_holder import TicketHolder +from app.models.Event_Context.event import Event +from app.models.Financial_Context.event_invoice import EventInvoice +from app.models.Financial_Context.order import Order +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.Financial_Context.ticket import Ticket +from app.models.Financial_Context.ticket_holder import TicketHolder from app.settings import get_settings from app.views.redis_store import redis_store @@ -41,7 +41,7 @@ def ticket_sales_end_mail(): events_with_expired_tickets = ( Event.query.filter_by(state='published', deleted_at=None) .filter( - Event.ends_at > current_time, + Event.duration.higher > current_time, Event.tickets.any( and_( Ticket.deleted_at == None, @@ -54,7 +54,7 @@ def ticket_sales_end_mail(): events_whose_ticket_expiring_tomorrow = ( Event.query.filter_by(state='published', deleted_at=None) .filter( - Event.ends_at > current_time, + Event.duration.higher > current_time, Event.tickets.any( and_( Ticket.deleted_at == None, @@ -67,7 +67,7 @@ def ticket_sales_end_mail(): events_whose_ticket_expiring_next_week = ( Event.query.filter_by(state='published', deleted_at=None) .filter( - Event.ends_at > current_time, + Event.duration.higher > current_time, Event.tickets.any( and_( Ticket.deleted_at == None, @@ -110,8 +110,8 @@ def send_after_event_mail(): events = ( Event.query.filter_by(state='published', deleted_at=None) .filter( - Event.ends_at < current_time, - current_time - Event.ends_at < datetime.timedelta(days=1), + Event.duration.higher < current_time, + current_time - Event.duration.higher < datetime.timedelta(days=1), ) .all() ) @@ -146,7 +146,7 @@ def change_session_state_on_event_completion(): sessions_to_be_changed = ( Session.query.join(Event) .filter(Session.state == 'pending') - .filter(Event.ends_at < datetime.datetime.now()) + .filter(Event.duration.higher < datetime.datetime.now()) ) for session in sessions_to_be_changed: session.state = 'rejected' @@ -250,8 +250,8 @@ def send_monthly_event_invoice(send_notification: bool = True): Event.query.filter(Event.owner != None) .filter( or_( - Event.starts_at.between(last_month, this_month), - Event.ends_at.between(last_month, this_month), + Event.duration.lower.between(last_month, this_month), + Event.duration.higher.between(last_month, this_month), Event.id.in_(last_order_event_ids), ) ) diff --git a/app/api/helpers/tasks.py b/app/api/helpers/tasks.py index d5bacd2b21..d6acc8557f 100644 --- a/app/api/helpers/tasks.py +++ b/app/api/helpers/tasks.py @@ -41,22 +41,22 @@ from app.api.imports import import_event_task_base from app.instance import create_app from app.models import db -from app.models.custom_form import ATTENDEE_CUSTOM_FORM, CustomForms -from app.models.discount_code import DiscountCode -from app.models.event import Event -from app.models.exhibitor import Exhibitor -from app.models.group import Group -from app.models.order import Order -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.sponsor import Sponsor -from app.models.ticket_holder import TicketHolder -from app.models.user import User -from app.models.user_follow_group import UserFollowGroup +from app.models.Form_Context.custom_form import ATTENDEE_CUSTOM_FORM, CustomForms +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Event_Context.event import Event +from app.models.Event_Context.exhibitor import Exhibitor +from app.models.Associations_Context.group import Group +from app.models.Financial_Context.order import Order +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.Event_Context.sponsor import Sponsor +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.user_context.user import User +from app.models.user_context.user_follow_group import UserFollowGroup from app.settings import get_settings -from ...models.badge_field_form import BadgeFieldForms -from ...models.badge_form import BadgeForms +from ...models.Form_Context.badge_field_form import BadgeFieldForms +from ...models.Form_Context.badge_form import BadgeForms from .badge_forms import ( create_base64_img_qr, get_value_from_field_indentifier, @@ -697,12 +697,12 @@ def export_admin_sales_csv_task(self, status='all'): sales = Event.query.all() elif status == 'live': sales = Event.query.filter( - Event.starts_at <= current_time, - Event.ends_at >= current_time, + Event.duration.lower <= current_time, + Event.duration.higher >= current_time, ).all() elif status == 'past': sales = Event.query.filter( - Event.ends_at <= current_time, + Event.duration.higher <= current_time, ).all() try: diff --git a/app/api/helpers/ticketing.py b/app/api/helpers/ticketing.py index 32a107d0c6..e5eeebfbe4 100644 --- a/app/api/helpers/ticketing.py +++ b/app/api/helpers/ticketing.py @@ -9,9 +9,9 @@ from app.api.helpers.order import delete_related_attendees_for_order, on_order_completed from app.api.helpers.payment import PayPalPaymentsManager, StripePaymentsManager from app.models import db -from app.models.ticket import Ticket -from app.models.ticket_fee import TicketFees -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.ticket import Ticket +from app.models.Financial_Context.ticket_fee import TicketFees +from app.models.Financial_Context.ticket_holder import TicketHolder logger = logging.getLogger(__name__) diff --git a/app/api/helpers/user.py b/app/api/helpers/user.py index 18b42f5f6b..569a29ad3e 100644 --- a/app/api/helpers/user.py +++ b/app/api/helpers/user.py @@ -7,8 +7,8 @@ from app.api.helpers.db import save_to_db from app.api.helpers.errors import ForbiddenError, UnprocessableEntityError from app.models import db -from app.models.user import User -from app.models.user_check_in import VirtualCheckIn +from app.models.user_context.user import User +from app.models.user_context.user_check_in import VirtualCheckIn def modify_email_for_user_to_be_deleted(user): diff --git a/app/api/helpers/user_check_in.py b/app/api/helpers/user_check_in.py index 0e09f6183d..9e93c6153d 100644 --- a/app/api/helpers/user_check_in.py +++ b/app/api/helpers/user_check_in.py @@ -8,9 +8,9 @@ from app.api.helpers.errors import BadRequestError, UnprocessableEntityError from app.api.helpers.static import STATION_TYPE from app.api.helpers.storage import UPLOAD_PATHS, UploadedFile, generate_hash, upload -from app.models.session import Session -from app.models.station import Station -from app.models.user_check_in import UserCheckIn +from app.models.Event_Context.session import Session +from app.models.Event_Context.station import Station +from app.models.user_context.user_check_in import UserCheckIn def export_csv(data): diff --git a/app/api/helpers/xcal.py b/app/api/helpers/xcal.py index 4f600a02ed..486c1922d5 100644 --- a/app/api/helpers/xcal.py +++ b/app/api/helpers/xcal.py @@ -3,8 +3,8 @@ from flask import url_for from sqlalchemy import asc -from app.models.event import Event -from app.models.session import Session +from app.models.Event_Context.event import Event +from app.models.Event_Context.session import Session class XCalExporter: diff --git a/app/api/mails.py b/app/api/mails.py index 2e867a9ed7..4743b70324 100644 --- a/app/api/mails.py +++ b/app/api/mails.py @@ -3,7 +3,7 @@ from app.api.bootstrap import api from app.api.schema.mails import MailSchema from app.models import db -from app.models.mail import Mail +from app.models.Communication_Context.mail import Mail class MailList(ResourceList): diff --git a/app/api/message_settings.py b/app/api/message_settings.py index 6ec205edb7..2cc69fdca8 100644 --- a/app/api/message_settings.py +++ b/app/api/message_settings.py @@ -3,7 +3,7 @@ from app.api.bootstrap import api from app.api.schema.message_settings import MessageSettingSchema from app.models import db -from app.models.message_setting import MessageSettings +from app.models.Communication_Context.message_setting import MessageSettings class MessageSettingsList(ResourceList): diff --git a/app/api/microlocations.py b/app/api/microlocations.py index 6a9cfea3f4..1d535bb094 100644 --- a/app/api/microlocations.py +++ b/app/api/microlocations.py @@ -8,8 +8,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.microlocations import MicrolocationSchema from app.models import db -from app.models.microlocation import Microlocation -from app.models.session import Session +from app.models.Event_Context.microlocation import Microlocation +from app.models.Event_Context.session import Session class MicrolocationListPost(ResourceList): diff --git a/app/api/notification_settings.py b/app/api/notification_settings.py index ef09990ac7..8f2bb76d5f 100644 --- a/app/api/notification_settings.py +++ b/app/api/notification_settings.py @@ -3,7 +3,7 @@ from app.api.bootstrap import api from app.api.schema.notification_settings import NotificationSettingSchema from app.models import db -from app.models.notification_setting import NotificationSettings +from app.models.Communication_Context.notification_setting import NotificationSettings class NotificationSettingsList(ResourceList): diff --git a/app/api/notifications.py b/app/api/notifications.py index 7e8818e72f..1c2f94bdcf 100644 --- a/app/api/notifications.py +++ b/app/api/notifications.py @@ -4,8 +4,8 @@ from app.api.helpers.db import safe_query_kwargs from app.api.schema.notifications import NotificationSchema from app.models import db -from app.models.notification import Notification -from app.models.user import User +from app.models.Communication_Context.notification import Notification +from app.models.user_context.user import User class NotificationListAdmin(ResourceList): diff --git a/app/api/order_statistics/events.py b/app/api/order_statistics/events.py index 0004d9ec00..541eaa267e 100644 --- a/app/api/order_statistics/events.py +++ b/app/api/order_statistics/events.py @@ -7,9 +7,9 @@ from app.api.helpers.db import get_count, safe_query_kwargs from app.api.helpers.utilities import dasherize from app.models import db -from app.models.event import Event -from app.models.order import Order, OrderTicket -from app.models.ticket import Ticket +from app.models.Event_Context.event import Event +from app.models.Financial_Context.order import Order, OrderTicket +from app.models.Financial_Context.ticket import Ticket class OrderStatisticsEventSchema(Schema): diff --git a/app/api/order_statistics/tickets.py b/app/api/order_statistics/tickets.py index 2989200a98..5972d23f92 100644 --- a/app/api/order_statistics/tickets.py +++ b/app/api/order_statistics/tickets.py @@ -7,12 +7,14 @@ from app.api.helpers.db import get_count from app.api.helpers.utilities import dasherize from app.models import db -from app.models.order import Order, OrderTicket -from app.models.ticket import Ticket +from app.models.Financial_Context.order import Order, OrderTicket +from app.models.Financial_Context.ticket import Ticket def calculated_sale_by_status(ticket_id, status): - """calculated_sale_by_status""" + """ + Calculates the total sales amount for a specific ticket and order status. + """ query_ = OrderTicket.query.join(Order).join(Order.discount_code, isouter=True) order_ticket_ids: OrderTicket = query_.filter( OrderTicket.ticket_id == ticket_id, Order.status == status diff --git a/app/api/orders.py b/app/api/orders.py index 853a754b89..957ed57741 100644 --- a/app/api/orders.py +++ b/app/api/orders.py @@ -42,9 +42,9 @@ from app.api.schema.attendees import AttendeeSchema from app.api.schema.orders import OrderSchema from app.models import db -from app.models.order import Order, OrderTicket, get_updatable_fields -from app.models.ticket_holder import TicketHolder -from app.models.user import User +from app.models.Financial_Context.order import Order, OrderTicket, get_updatable_fields +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.user_context.user import User from app.settings import get_settings order_misc_routes = Blueprint('order_misc', __name__, url_prefix='/v1') diff --git a/app/api/panel_permissions.py b/app/api/panel_permissions.py index cbcc7aa436..d7ec684b8b 100644 --- a/app/api/panel_permissions.py +++ b/app/api/panel_permissions.py @@ -4,8 +4,8 @@ from app.api.helpers.db import safe_query_kwargs from app.api.schema.panel_permissions import PanelPermissionSchema from app.models import db -from app.models.custom_system_role import CustomSysRole -from app.models.panel_permission import PanelPermission +from app.models.Associations_Context.custom_system_role import CustomSysRole +from app.models.Associations_Context.panel_permission import PanelPermission class PanelPermissionList(ResourceList): diff --git a/app/api/role_invites.py b/app/api/role_invites.py index 5ef3cf014b..f6fc13b4e5 100644 --- a/app/api/role_invites.py +++ b/app/api/role_invites.py @@ -11,11 +11,11 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.role_invites import RoleInviteSchema from app.models import db -from app.models.event import Event -from app.models.role import Role -from app.models.role_invite import RoleInvite -from app.models.user import User -from app.models.users_events_role import UsersEventsRoles +from app.models.Event_Context.event import Event +from app.models.Associations_Context.role import Role +from app.models.Associations_Context.role_invite import RoleInvite +from app.models.user_context.user import User +from app.models.user_context.users_events_role import UsersEventsRoles role_invites_misc_routes = Blueprint('role_invites_misc', __name__, url_prefix='/v1') diff --git a/app/api/roles.py b/app/api/roles.py index c32eeae376..f3be66131c 100644 --- a/app/api/roles.py +++ b/app/api/roles.py @@ -5,10 +5,10 @@ from app.api.helpers.errors import UnprocessableEntityError from app.api.schema.roles import RoleSchema from app.models import db -from app.models.role import Role -from app.models.role_invite import RoleInvite -from app.models.users_events_role import UsersEventsRoles -from app.models.users_groups_role import UsersGroupsRoles +from app.models.Associations_Context.role import Role +from app.models.Associations_Context.role_invite import RoleInvite +from app.models.user_context.users_events_role import UsersEventsRoles +from app.models.user_context.users_groups_role import UsersGroupsRoles class RoleList(ResourceList): diff --git a/app/api/schema/access_codes.py b/app/api/schema/access_codes.py index 084bcb94e0..d9f4ab9550 100644 --- a/app/api/schema/access_codes.py +++ b/app/api/schema/access_codes.py @@ -5,7 +5,7 @@ from app.api.helpers.errors import UnprocessableEntityError from app.api.helpers.utilities import dasherize from app.api.schema.base import SoftDeletionSchema -from app.models.access_code import AccessCode +from app.models.Financial_Context.access_code import AccessCode from utils.common import use_defaults diff --git a/app/api/schema/admin_statistics_schema/events.py b/app/api/schema/admin_statistics_schema/events.py index fc9fb4f120..b1cd167e9b 100644 --- a/app/api/schema/admin_statistics_schema/events.py +++ b/app/api/schema/admin_statistics_schema/events.py @@ -6,7 +6,7 @@ from app.api.helpers.db import get_count from app.api.helpers.utilities import dasherize -from app.models.event import Event +from app.models.Event_Context.event import Event class AdminStatisticsEventSchema(Schema): @@ -29,12 +29,12 @@ class Meta: past = fields.Method("events_past_count") def events_draft_count(self, obj): - events = Event.query.filter(Event.ends_at > datetime.now(pytz.utc)) + events = Event.query.filter(Event.duration.higher > datetime.now(pytz.utc)) return get_count(events.filter_by(state='draft', deleted_at=None)) def events_published_count(self, obj): - events = Event.query.filter(Event.ends_at > datetime.now(pytz.utc)) + events = Event.query.filter(Event.duration.higher > datetime.now(pytz.utc)) return get_count(events.filter_by(state='published', deleted_at=None)) def events_past_count(self, obj): - return get_count(Event.query.filter(Event.ends_at < datetime.now(pytz.utc))) + return get_count(Event.query.filter(Event.duration.higher < datetime.now(pytz.utc))) diff --git a/app/api/schema/discount_codes.py b/app/api/schema/discount_codes.py index 49936592ff..68780e61c3 100644 --- a/app/api/schema/discount_codes.py +++ b/app/api/schema/discount_codes.py @@ -7,8 +7,8 @@ from app.api.helpers.errors import UnprocessableEntityError from app.api.helpers.utilities import dasherize from app.api.schema.base import SoftDeletionSchema -from app.models.discount_code import DiscountCode -from app.models.ticket import Ticket +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Financial_Context.ticket import Ticket class DiscountCodeSchemaPublic(SoftDeletionSchema): diff --git a/app/api/schema/event_statistics.py b/app/api/schema/event_statistics.py index 765bbd13e9..c699405fad 100644 --- a/app/api/schema/event_statistics.py +++ b/app/api/schema/event_statistics.py @@ -4,9 +4,9 @@ from app.api.helpers.cache import cache from app.api.helpers.utilities import dasherize -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.sponsor import Sponsor +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.Event_Context.sponsor import Sponsor class EventStatisticsGeneralSchema(Schema): diff --git a/app/api/schema/events.py b/app/api/schema/events.py index 89f8cc59c2..03a731002d 100644 --- a/app/api/schema/events.py +++ b/app/api/schema/events.py @@ -10,7 +10,7 @@ from app.api.helpers.errors import UnprocessableEntityError from app.api.helpers.utilities import dasherize from app.api.schema.base import GetterRelationship, SoftDeletionSchema, TrimmedEmail -from app.models.event import Event +from app.models.Event_Context.event import Event class DocumentLinkSchema(Schema): @@ -48,8 +48,7 @@ def validate_timezone(self, data, original_data): identifier = fields.Str(dump_only=True) name = fields.Str(required=True) external_event_url = fields.Url(allow_none=True) - starts_at = fields.DateTime(required=True, timezone=True) - ends_at = fields.DateTime(required=True, timezone=True) + duration = fields.DateTime(required=True, timezone=True) timezone = fields.Str(required=True) online = fields.Boolean(default=False) latitude = fields.Float(validate=lambda n: -90 <= n <= 90, allow_none=True) diff --git a/app/api/schema/exhibitors.py b/app/api/schema/exhibitors.py index 02cc2f8216..6651278b2c 100644 --- a/app/api/schema/exhibitors.py +++ b/app/api/schema/exhibitors.py @@ -6,7 +6,7 @@ from app.api.helpers.utilities import dasherize from app.api.schema.base import TrimmedEmail -from app.models.exhibitor import Exhibitor +from app.models.Event_Context.exhibitor import Exhibitor class ExhibitorSocialLinkSchema(Schema): diff --git a/app/api/schema/role_invites.py b/app/api/schema/role_invites.py index 05895450cf..7329d67c7d 100644 --- a/app/api/schema/role_invites.py +++ b/app/api/schema/role_invites.py @@ -7,8 +7,8 @@ from app.api.helpers.errors import UnprocessableEntityError from app.api.helpers.utilities import dasherize from app.api.schema.base import TrimmedEmail -from app.models.role import Role -from app.models.role_invite import RoleInvite +from app.models.Associations_Context.role import Role +from app.models.Associations_Context.role_invite import RoleInvite from utils.common import use_defaults diff --git a/app/api/schema/sessions.py b/app/api/schema/sessions.py index e99fea6ac0..8bf9aa5c8e 100644 --- a/app/api/schema/sessions.py +++ b/app/api/schema/sessions.py @@ -14,7 +14,7 @@ from app.api.helpers.validations import validate_complex_fields_json from app.api.schema.base import SoftDeletionSchema from app.models.helpers.versioning import clean_html -from app.models.session import Session +from app.models.Event_Context.session import Session from utils.common import use_defaults diff --git a/app/api/schema/speakers_calls.py b/app/api/schema/speakers_calls.py index b68d86bac7..c552c6d6fe 100644 --- a/app/api/schema/speakers_calls.py +++ b/app/api/schema/speakers_calls.py @@ -5,7 +5,7 @@ from app.api.helpers.errors import UnprocessableEntityError from app.api.helpers.utilities import dasherize from app.api.schema.base import SoftDeletionSchema -from app.models.speakers_call import SpeakersCall +from app.models.Event_Context.speakers_call import SpeakersCall class SpeakersCallSchema(SoftDeletionSchema): diff --git a/app/api/schema/tickets.py b/app/api/schema/tickets.py index 415b08c3e3..684a594073 100644 --- a/app/api/schema/tickets.py +++ b/app/api/schema/tickets.py @@ -6,8 +6,8 @@ from app.api.helpers.errors import UnprocessableEntityError from app.api.helpers.utilities import dasherize from app.api.schema.base import SoftDeletionSchema -from app.models.discount_code import DiscountCode -from app.models.ticket import Ticket +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Financial_Context.ticket import Ticket from utils.common import use_defaults diff --git a/app/api/schema/users.py b/app/api/schema/users.py index ee36fa192d..717d3c08f0 100644 --- a/app/api/schema/users.py +++ b/app/api/schema/users.py @@ -6,7 +6,7 @@ from app.api.helpers.permission_manager import require_current_user from app.api.helpers.utilities import dasherize from app.api.schema.base import SoftDeletionSchema, TrimmedEmail -from app.models.user import User +from app.models.user_context.user import User from utils.common import use_defaults diff --git a/app/api/session_types.py b/app/api/session_types.py index 94810938be..26437be00a 100644 --- a/app/api/session_types.py +++ b/app/api/session_types.py @@ -8,8 +8,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.session_types import SessionTypeSchema from app.models import db -from app.models.session import Session -from app.models.session_type import SessionType +from app.models.Event_Context.session import Session +from app.models.Event_Context.session_type import SessionType class SessionTypeListPost(ResourceList): diff --git a/app/api/sessions.py b/app/api/sessions.py index 363eb9389f..2bfcbcbbce 100644 --- a/app/api/sessions.py +++ b/app/api/sessions.py @@ -23,14 +23,14 @@ from app.api.schema.sessions import SessionNotifySchema, SessionSchema from app.api.speaker_invites import SpeakerInvite from app.models import db -from app.models.exhibitor import Exhibitor -from app.models.microlocation import Microlocation -from app.models.session import Session -from app.models.session_speaker_link import SessionsSpeakersLink -from app.models.session_type import SessionType -from app.models.speaker import Speaker +from app.models.Event_Context.exhibitor import Exhibitor +from app.models.Event_Context.microlocation import Microlocation +from app.models.Event_Context.session import Session +from app.models.Associations_Context.session_speaker_link import SessionsSpeakersLink +from app.models.Event_Context.session_type import SessionType +from app.models.Associations_Context.speaker import Speaker from app.models.track import Track -from app.models.user import User +from app.models.user_context.user import User sessions_blueprint = Blueprint('sessions_blueprint', __name__, url_prefix='/v1/sessions') diff --git a/app/api/speaker_image_sizes.py b/app/api/speaker_image_sizes.py index 24544dc6a2..56b47de322 100644 --- a/app/api/speaker_image_sizes.py +++ b/app/api/speaker_image_sizes.py @@ -3,7 +3,7 @@ from app.api.bootstrap import api from app.api.schema.image_sizes import SpeakerImageSizeSchema from app.models import db -from app.models.image_size import ImageSizes +from app.models.Form_Context.image_size import ImageSizes class SpeakerImageSizeDetail(ResourceDetail): diff --git a/app/api/speaker_invites.py b/app/api/speaker_invites.py index 416c5b75d9..c059bab5f6 100644 --- a/app/api/speaker_invites.py +++ b/app/api/speaker_invites.py @@ -14,11 +14,11 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.speaker_invites import SpeakerInviteSchema from app.models import db -from app.models.event import Event -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.speaker_invite import SpeakerInvite -from app.models.user import User +from app.models.Event_Context.event import Event +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.Associations_Context.speaker_invite import SpeakerInvite +from app.models.user_context.user import User speaker_invites_misc_routes = Blueprint( 'speaker_invites_misc', __name__, url_prefix='/v1' diff --git a/app/api/speakers.py b/app/api/speakers.py index 2245e6dadc..39d98088ea 100644 --- a/app/api/speakers.py +++ b/app/api/speakers.py @@ -12,11 +12,11 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.speakers import SpeakerSchema from app.models import db -from app.models.event import Event -from app.models.session import Session -from app.models.session_speaker_link import SessionsSpeakersLink -from app.models.speaker import Speaker -from app.models.user import User +from app.models.Event_Context.event import Event +from app.models.Event_Context.session import Session +from app.models.Associations_Context.session_speaker_link import SessionsSpeakersLink +from app.models.Associations_Context.speaker import Speaker +from app.models.user_context.user import User def check_email_override(data, event_id, speaker=None): diff --git a/app/api/speakers_calls.py b/app/api/speakers_calls.py index abb8334e1e..dfac3242df 100644 --- a/app/api/speakers_calls.py +++ b/app/api/speakers_calls.py @@ -8,8 +8,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.speakers_calls import SpeakersCallSchema from app.models import db -from app.models.event import Event -from app.models.speakers_call import SpeakersCall +from app.models.Event_Context.event import Event +from app.models.Event_Context.speakers_call import SpeakersCall class SpeakersCallList(ResourceList): @@ -44,8 +44,8 @@ def before_create_object(self, data, view_kwargs): ) event = speakers_call.event if ( - speakers_call.starts_at > event.starts_at - or speakers_call.ends_at > event.starts_at + speakers_call.starts_at > event.duration.lower + or speakers_call.ends_at > event.duration.higher ): raise ForbiddenError( {'source': ''}, @@ -90,8 +90,8 @@ def before_patch(self, args, kwargs, data): ).one() event = speakers_call.event if ( - speakers_call.starts_at > event.starts_at - or speakers_call.ends_at > event.starts_at + speakers_call.starts_at > event.duration.lower + or speakers_call.ends_at > event.duration.higher ): raise ForbiddenError( {'source': ''}, diff --git a/app/api/sponsors.py b/app/api/sponsors.py index 7935c4ef98..8d059d0209 100644 --- a/app/api/sponsors.py +++ b/app/api/sponsors.py @@ -9,7 +9,7 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.sponsors import SponsorSchema from app.models import db -from app.models.sponsor import Sponsor +from app.models.Event_Context.sponsor import Sponsor class SponsorListPost(ResourceList): diff --git a/app/api/station.py b/app/api/station.py index 4588bfe961..08ebbba96f 100644 --- a/app/api/station.py +++ b/app/api/station.py @@ -7,9 +7,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.station import StationSchema from app.models import db -from app.models.event import Event -from app.models.microlocation import Microlocation -from app.models.station import Station +from app.models.Event_Context.event import Event +from app.models.Event_Context.microlocation import Microlocation +from app.models.Event_Context.station import Station class StationList(ResourceList): diff --git a/app/api/station_store_paxs.py b/app/api/station_store_paxs.py index e4c5776b68..8490e3ee4d 100644 --- a/app/api/station_store_paxs.py +++ b/app/api/station_store_paxs.py @@ -6,9 +6,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.station_store_pax import StationStorePaxSchema from app.models import db -from app.models.session import Session -from app.models.station import Station -from app.models.station_store_pax import StationStorePax +from app.models.Event_Context.session import Session +from app.models.Event_Context.station import Station +from app.models.Event_Context.station_store_pax import StationStorePax class StationStorePaxList(ResourceList): diff --git a/app/api/stripe_authorization.py b/app/api/stripe_authorization.py index be0ade2aaa..84b7800f3b 100644 --- a/app/api/stripe_authorization.py +++ b/app/api/stripe_authorization.py @@ -13,8 +13,8 @@ StripeAuthorizationSchemaPublic, ) from app.models import db -from app.models.event import Event -from app.models.stripe_authorization import StripeAuthorization +from app.models.Event_Context.event import Event +from app.models.Financial_Context.stripe_authorization import StripeAuthorization class StripeAuthorizationListPost(ResourceList): diff --git a/app/api/tags.py b/app/api/tags.py index c8036f7a93..8aaee207dd 100644 --- a/app/api/tags.py +++ b/app/api/tags.py @@ -5,9 +5,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.tag import TagSchema from app.models import db -from app.models.event import Event -from app.models.tag import Tag -from app.models.ticket_holder import TicketHolder +from app.models.Event_Context.event import Event +from app.models.Event_Context.tag import Tag +from app.models.Financial_Context.ticket_holder import TicketHolder class TagList(ResourceList): diff --git a/app/api/tax.py b/app/api/tax.py index 0ffc5a4ab0..f00ab5881a 100644 --- a/app/api/tax.py +++ b/app/api/tax.py @@ -9,8 +9,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.tax import TaxSchema, TaxSchemaPublic from app.models import db -from app.models.event import Event -from app.models.tax import Tax +from app.models.Event_Context.event import Event +from app.models.Event_Context.tax import Tax class TaxList(ResourceList): diff --git a/app/api/ticket_fees.py b/app/api/ticket_fees.py index c0c8c0dc6c..67ecd8b2d6 100644 --- a/app/api/ticket_fees.py +++ b/app/api/ticket_fees.py @@ -3,7 +3,7 @@ from app.api.bootstrap import api from app.api.schema.ticket_fees import TicketFeesSchema from app.models import db -from app.models.ticket_fee import TicketFees +from app.models.Financial_Context.ticket_fee import TicketFees class TicketFeeList(ResourceList): diff --git a/app/api/ticket_tags.py b/app/api/ticket_tags.py index 9a93f63d44..4f37eba6c0 100644 --- a/app/api/ticket_tags.py +++ b/app/api/ticket_tags.py @@ -8,7 +8,7 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.ticket_tags import TicketTagSchema from app.models import db -from app.models.ticket import Ticket, TicketTag, ticket_tags_table +from app.models.Financial_Context.ticket import Ticket, TicketTag, ticket_tags_table class TicketTagListPost(ResourceList): diff --git a/app/api/tickets.py b/app/api/tickets.py index fce5e43ac9..60a84dfb84 100644 --- a/app/api/tickets.py +++ b/app/api/tickets.py @@ -13,12 +13,12 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.tickets import TicketSchema, TicketSchemaPublic from app.models import db -from app.models.access_code import AccessCode -from app.models.discount_code import DiscountCode -from app.models.event import Event -from app.models.order import Order -from app.models.ticket import Ticket, TicketTag, ticket_tags_table -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.access_code import AccessCode +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Event_Context.event import Event +from app.models.Financial_Context.order import Order +from app.models.Financial_Context.ticket import Ticket, TicketTag, ticket_tags_table +from app.models.Financial_Context.ticket_holder import TicketHolder tickets_routes = Blueprint('tickets_routes', __name__, url_prefix='/v1/events') @@ -103,7 +103,7 @@ def before_create_object(self, data, view_kwargs): "Event having paid ticket must have a payment method", ) - if data.get('sales_ends_at') > event.ends_at: + if data.get('sales_ends_at') > event.duration.higher: raise UnprocessableEntityError( {'sales_ends_at': '/data/attributes/sales-ends-at'}, f"End of ticket sales date of '{data.get('name')}' cannot be after end of event date", @@ -273,7 +273,7 @@ def before_update_object(self, ticket, data, view_kwargs): "Can't delete a ticket that has sales", ) - if data.get('sales_ends_at') and data['sales_ends_at'] > ticket.event.ends_at: + if data.get('sales_ends_at') and data['sales_ends_at'] > ticket.event.duration.higher: raise UnprocessableEntityError( {'sales_ends_at': '/data/attributes/sales-ends-at'}, f"End of ticket sales date of '{ticket.name}' cannot be after end of event date", diff --git a/app/api/tracks.py b/app/api/tracks.py index e863880290..91f9458900 100644 --- a/app/api/tracks.py +++ b/app/api/tracks.py @@ -8,7 +8,7 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.tracks import TrackSchema from app.models import db -from app.models.session import Session +from app.models.Event_Context.session import Session from app.models.track import Track diff --git a/app/api/translation_channels.py b/app/api/translation_channels.py index 8326b448ce..e4343ca34c 100644 --- a/app/api/translation_channels.py +++ b/app/api/translation_channels.py @@ -7,9 +7,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.translation_channels import TranslationChannelSchema from app.models import db -from app.models.translation_channels import TranslationChannel -from app.models.video_channel import VideoChannel -from app.models.video_stream import VideoStream +from app.models.Event_Context.translation_channels import TranslationChannel +from app.models.Event_Context.video_channel import VideoChannel +from app.models.Event_Context.video_stream import VideoStream class TranslationChannelsList(ResourceList): diff --git a/app/api/user_check_in.py b/app/api/user_check_in.py index fb0c6ab090..8a417906b1 100644 --- a/app/api/user_check_in.py +++ b/app/api/user_check_in.py @@ -17,12 +17,12 @@ from app.api.schema.station import StationSchema from app.api.schema.user_check_in import UserCheckInSchema from app.models import db -from app.models.session import Session -from app.models.session_type import SessionType -from app.models.station import Station -from app.models.ticket_holder import TicketHolder +from app.models.Event_Context.session import Session +from app.models.Event_Context.session_type import SessionType +from app.models.Event_Context.station import Station +from app.models.Financial_Context.ticket_holder import TicketHolder from app.models.track import Track -from app.models.user_check_in import UserCheckIn +from app.models.user_context.user_check_in import UserCheckIn class UserCheckInList(ResourceList): diff --git a/app/api/user_emails.py b/app/api/user_emails.py index aee318cc05..ccc41b5650 100644 --- a/app/api/user_emails.py +++ b/app/api/user_emails.py @@ -6,8 +6,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.user_email import UserEmailSchema from app.models import db -from app.models.user import User -from app.models.user_email import UserEmail +from app.models.user_context.user import User +from app.models.user_context.user_email import UserEmail class UserEmailListAdmin(ResourceList): diff --git a/app/api/user_favourite_events.py b/app/api/user_favourite_events.py index 0b0e8af7ff..00ba8e8b7c 100644 --- a/app/api/user_favourite_events.py +++ b/app/api/user_favourite_events.py @@ -9,8 +9,8 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.user_favourite_events import UserFavouriteEventSchema from app.models import db -from app.models.user import User -from app.models.user_favourite_event import UserFavouriteEvent +from app.models.user_context.user import User +from app.models.user_context.user_favourite_event import UserFavouriteEvent class UserFavouriteEventListPost(ResourceList): diff --git a/app/api/user_favourite_sessions.py b/app/api/user_favourite_sessions.py index 6f5468356f..aa5089e8ec 100644 --- a/app/api/user_favourite_sessions.py +++ b/app/api/user_favourite_sessions.py @@ -7,10 +7,10 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.user_favourite_sessions import UserFavouriteSessionSchema from app.models import db -from app.models.event import Event -from app.models.session import Session -from app.models.user import User -from app.models.user_favourite_session import UserFavouriteSession +from app.models.Event_Context.event import Event +from app.models.Event_Context.session import Session +from app.models.user_context.user import User +from app.models.user_context.user_favourite_session import UserFavouriteSession class UserFavouriteSessionListPost(ResourceList): diff --git a/app/api/user_follow_groups.py b/app/api/user_follow_groups.py index e294f3af49..da9ac130d4 100644 --- a/app/api/user_follow_groups.py +++ b/app/api/user_follow_groups.py @@ -7,9 +7,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.user_follow_groups import UserFollowGroupSchema from app.models import db -from app.models.group import Group -from app.models.user import User -from app.models.user_follow_group import UserFollowGroup +from app.models.Associations_Context.group import Group +from app.models.user_context.user import User +from app.models.user_context.user_follow_group import UserFollowGroup class UserFollowGroupListPost(ResourceList): diff --git a/app/api/user_permission.py b/app/api/user_permission.py index 20cd6e2244..e57460a2ab 100644 --- a/app/api/user_permission.py +++ b/app/api/user_permission.py @@ -3,7 +3,7 @@ from app.api.bootstrap import api from app.api.schema.user_permission import UserPermissionSchema from app.models import db -from app.models.user_permission import UserPermission +from app.models.user_context.user_permission import UserPermission class UserPermissionList(ResourceList): diff --git a/app/api/users.py b/app/api/users.py index 23d9e0941e..38e8dc078c 100644 --- a/app/api/users.py +++ b/app/api/users.py @@ -19,22 +19,22 @@ ) from app.api.schema.users import UserSchema, UserSchemaPublic from app.models import db -from app.models.access_code import AccessCode -from app.models.discount_code import DiscountCode -from app.models.email_notification import EmailNotification -from app.models.event import Event -from app.models.event_invoice import EventInvoice -from app.models.feedback import Feedback -from app.models.group import Group -from app.models.notification import Notification -from app.models.order import Order -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.ticket_holder import TicketHolder -from app.models.user import User -from app.models.user_follow_group import UserFollowGroup -from app.models.users_events_role import UsersEventsRoles -from app.models.video_stream_moderator import VideoStreamModerator +from app.models.Financial_Context.access_code import AccessCode +from app.models.Financial_Context.discount_code import DiscountCode +from app.models.Communication_Context.email_notification import EmailNotification +from app.models.Event_Context.event import Event +from app.models.Financial_Context.event_invoice import EventInvoice +from app.models.Event_Context.feedback import Feedback +from app.models.Associations_Context.group import Group +from app.models.Communication_Context.notification import Notification +from app.models.Financial_Context.order import Order +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.user_context.user import User +from app.models.user_context.user_follow_group import UserFollowGroup +from app.models.user_context.users_events_role import UsersEventsRoles +from app.models.Event_Context.video_stream_moderator import VideoStreamModerator logger = logging.getLogger(__name__) @@ -305,7 +305,7 @@ def before_update_object(self, user, data, view_kwargs): TicketHolder.query.filter_by(user=user) .join(Order) .join(Order.event) - .filter(Event.ends_at > datetime.now()) + .filter(Event.duration.higher > datetime.now()) .filter( or_( Order.status == 'completed', diff --git a/app/api/users_events_roles.py b/app/api/users_events_roles.py index 4a6a739b0c..0b557b8ba4 100644 --- a/app/api/users_events_roles.py +++ b/app/api/users_events_roles.py @@ -5,8 +5,8 @@ from app.api.helpers.query import event_query from app.api.schema.users_events_roles import UsersEventsRolesSchema from app.models import db -from app.models.role_invite import RoleInvite -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role_invite import RoleInvite +from app.models.user_context.users_events_role import UsersEventsRoles class UsersEventsRolesList(ResourceList): diff --git a/app/api/users_groups_roles.py b/app/api/users_groups_roles.py index a83be8b143..8e121c2b50 100644 --- a/app/api/users_groups_roles.py +++ b/app/api/users_groups_roles.py @@ -8,10 +8,10 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.users_groups_roles import UsersGroupsRolesSchema from app.models import db -from app.models.group import Group -from app.models.role import Role -from app.models.user import User -from app.models.users_groups_role import UsersGroupsRoles +from app.models.Associations_Context.group import Group +from app.models.Associations_Context.role import Role +from app.models.user_context.user import User +from app.models.user_context.users_groups_role import UsersGroupsRoles class UsersGroupsRolesList(ResourceList): diff --git a/app/api/video_channel.py b/app/api/video_channel.py index b0342ea7c9..8246d7046b 100644 --- a/app/api/video_channel.py +++ b/app/api/video_channel.py @@ -5,8 +5,8 @@ from app.api.helpers.permission_manager import has_access, is_logged_in from app.api.schema.video_channel import VideoChannelSchema, VideoChannelSchemaPublic from app.models import db -from app.models.video_channel import VideoChannel -from app.models.video_stream import VideoStream +from app.models.Event_Context.video_channel import VideoChannel +from app.models.Event_Context.video_stream import VideoStream class VideoChannelListPost(ResourceList): diff --git a/app/api/video_channel_stream.py b/app/api/video_channel_stream.py index bcc2ca9635..1750266073 100644 --- a/app/api/video_channel_stream.py +++ b/app/api/video_channel_stream.py @@ -5,8 +5,8 @@ from app.api.helpers.permission_manager import has_access, is_logged_in from app.api.schema.video_channel import VideoChannelSchema, VideoChannelSchemaPublic from app.models import db -from app.models.video_channel import VideoChannel -from app.models.video_stream import VideoStream +from app.models.Event_Context.video_channel import VideoChannel +from app.models.Event_Context.video_stream import VideoStream class VideoChannelListPost(ResourceList): diff --git a/app/api/video_recordings.py b/app/api/video_recordings.py index 32eb673021..52ed708139 100644 --- a/app/api/video_recordings.py +++ b/app/api/video_recordings.py @@ -10,8 +10,8 @@ from app.api.schema.video_recordings import VideoRecordingSchema from app.api.video_channels.bbb import BigBlueButton from app.models import db -from app.models.video_recording import VideoRecording -from app.models.video_stream import VideoStream +from app.models.Event_Context.video_recording import VideoRecording +from app.models.Event_Context.video_stream import VideoStream class VideoRecordingList(ResourceList): diff --git a/app/api/video_stream.py b/app/api/video_stream.py index f88bd85463..1faa54248f 100644 --- a/app/api/video_stream.py +++ b/app/api/video_stream.py @@ -23,12 +23,12 @@ from app.api.schema.video_stream import ChatmosphereSchema, VideoStreamSchema from app.api.video_channels.bbb import BigBlueButton from app.models import db -from app.models.event import Event -from app.models.microlocation import Microlocation -from app.models.video_channel import VideoChannel -from app.models.video_recording import VideoRecording -from app.models.video_stream import VideoStream -from app.models.video_stream_moderator import VideoStreamModerator +from app.models.Event_Context.event import Event +from app.models.Event_Context.microlocation import Microlocation +from app.models.Event_Context.video_channel import VideoChannel +from app.models.Event_Context.video_recording import VideoRecording +from app.models.Event_Context.video_stream import VideoStream +from app.models.Event_Context.video_stream_moderator import VideoStreamModerator logger = logging.getLogger(__name__) diff --git a/app/api/video_stream_moderators.py b/app/api/video_stream_moderators.py index bccfeece9e..5ac95dc8df 100644 --- a/app/api/video_stream_moderators.py +++ b/app/api/video_stream_moderators.py @@ -9,9 +9,9 @@ from app.api.helpers.utilities import require_relationship from app.api.schema.video_stream_moderators import VideoStreamModeratorSchema from app.models import db -from app.models.user import User -from app.models.video_stream import VideoStream -from app.models.video_stream_moderator import VideoStreamModerator +from app.models.user_context.user import User +from app.models.Event_Context.video_stream import VideoStream +from app.models.Event_Context.video_stream_moderator import VideoStreamModerator class VideoStreamModeratorList(ResourceList): diff --git a/app/models/custom_system_role.py b/app/models/Associations_Context/custom_system_role.py similarity index 93% rename from app/models/custom_system_role.py rename to app/models/Associations_Context/custom_system_role.py index 5d0a26decf..cbff5b4761 100644 --- a/app/models/custom_system_role.py +++ b/app/models/Associations_Context/custom_system_role.py @@ -1,5 +1,5 @@ from app.models import db -from app.models.panel_permission import PanelPermission +from app.models.Associations_Context.panel_permission import PanelPermission class CustomSysRole(db.Model): diff --git a/app/models/group.py b/app/models/Associations_Context/group.py similarity index 95% rename from app/models/group.py rename to app/models/Associations_Context/group.py index c6ec3206e5..c0e5cd03bc 100644 --- a/app/models/group.py +++ b/app/models/Associations_Context/group.py @@ -6,7 +6,7 @@ from app.models import db from app.models.base import SoftDeletionModel -from app.models.user_follow_group import UserFollowGroup +from app.models.user_context.user_follow_group import UserFollowGroup from app.settings import get_settings diff --git a/app/models/panel_permission.py b/app/models/Associations_Context/panel_permission.py similarity index 100% rename from app/models/panel_permission.py rename to app/models/Associations_Context/panel_permission.py diff --git a/app/models/permission.py b/app/models/Associations_Context/permission.py similarity index 100% rename from app/models/permission.py rename to app/models/Associations_Context/permission.py diff --git a/app/models/role.py b/app/models/Associations_Context/role.py similarity index 100% rename from app/models/role.py rename to app/models/Associations_Context/role.py diff --git a/app/models/role_invite.py b/app/models/Associations_Context/role_invite.py similarity index 96% rename from app/models/role_invite.py rename to app/models/Associations_Context/role_invite.py index 1d1d8cf85a..4c043050b0 100644 --- a/app/models/role_invite.py +++ b/app/models/Associations_Context/role_invite.py @@ -11,8 +11,8 @@ from app.api.helpers.notification import notify_event_role_invitation from app.api.helpers.permission_manager import has_access from app.models import db -from app.models.event import Event -from app.models.user import User +from app.models.Event_Context.event import Event +from app.models.user_context.user import User from app.settings import get_settings diff --git a/app/models/session_speaker_link.py b/app/models/Associations_Context/session_speaker_link.py similarity index 100% rename from app/models/session_speaker_link.py rename to app/models/Associations_Context/session_speaker_link.py diff --git a/app/models/speaker.py b/app/models/Associations_Context/speaker.py similarity index 100% rename from app/models/speaker.py rename to app/models/Associations_Context/speaker.py diff --git a/app/models/speaker_invite.py b/app/models/Associations_Context/speaker_invite.py similarity index 93% rename from app/models/speaker_invite.py rename to app/models/Associations_Context/speaker_invite.py index 1a2fe1695d..83794bef7f 100644 --- a/app/models/speaker_invite.py +++ b/app/models/Associations_Context/speaker_invite.py @@ -3,8 +3,8 @@ from app.api.helpers.permission_manager import has_access from app.models import db from app.models.helpers.timestamp import Timestamp -from app.models.session import Session -from app.models.speaker import Speaker +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker from app.settings import get_settings diff --git a/app/models/email_notification.py b/app/models/Communication_Context/email_notification.py similarity index 71% rename from app/models/email_notification.py rename to app/models/Communication_Context/email_notification.py index c97a1cc72a..b9713931bf 100644 --- a/app/models/email_notification.py +++ b/app/models/Communication_Context/email_notification.py @@ -1,9 +1,13 @@ from app.models import db from app.models.base import SoftDeletionModel - +# Email notifaction preferences for a user assoicated with a specific event. +# This model allows users to enable or disable specific types of notifcations. class EmailNotification(SoftDeletionModel): - """email notifications model class""" + """ + Email notifaction preferences for a user assoicated with a specific event. + This model allows users to enable or disable specific types of notifcations. + """ __tablename__ = 'email_notifications' id = db.Column(db.Integer, primary_key=True) diff --git a/app/models/mail.py b/app/models/Communication_Context/mail.py similarity index 87% rename from app/models/mail.py rename to app/models/Communication_Context/mail.py index a317eebddd..4c819ce0cd 100644 --- a/app/models/mail.py +++ b/app/models/Communication_Context/mail.py @@ -4,6 +4,9 @@ class Mail(db.Model): + """ + Represents an email record in the database. + """ __tablename__ = 'mails' id = db.Column(db.Integer, primary_key=True) recipient = db.Column(db.String) diff --git a/app/models/message_setting.py b/app/models/Communication_Context/message_setting.py similarity index 100% rename from app/models/message_setting.py rename to app/models/Communication_Context/message_setting.py diff --git a/app/models/notification.py b/app/models/Communication_Context/notification.py similarity index 100% rename from app/models/notification.py rename to app/models/Communication_Context/notification.py diff --git a/app/models/notification_setting.py b/app/models/Communication_Context/notification_setting.py similarity index 100% rename from app/models/notification_setting.py rename to app/models/Communication_Context/notification_setting.py diff --git a/app/models/social_link.py b/app/models/Communication_Context/social_link.py similarity index 100% rename from app/models/social_link.py rename to app/models/Communication_Context/social_link.py diff --git a/app/models/event.py b/app/models/Event_Context/event.py similarity index 95% rename from app/models/event.py rename to app/models/Event_Context/event.py index b4f48c6a35..fa8b71bd01 100644 --- a/app/models/event.py +++ b/app/models/Event_Context/event.py @@ -8,24 +8,26 @@ from flask_babel import _ from sqlalchemy import event from sqlalchemy.dialects.postgresql import JSONB +from sqlalchemy.dialects.postgresql import TSTZRANGE + from sqlalchemy.sql import func from sqlalchemy.sql.expression import and_, or_ from app.api.helpers.db import get_new_identifier from app.models import db from app.models.base import SoftDeletionModel -from app.models.email_notification import EmailNotification -from app.models.event_topic import EventTopic -from app.models.feedback import Feedback +from app.models.Communication_Context.email_notification import EmailNotification +from app.models.Event_Context.event_topic import EventTopic +from app.models.Event_Context.feedback import Feedback from app.models.helpers.versioning import clean_html, clean_up_string -from app.models.order import Order -from app.models.role import Role +from app.models.Financial_Context.order import Order +from app.models.Associations_Context.role import Role from app.models.search import sync -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.ticket import Ticket -from app.models.ticket_fee import get_fee, get_maximum_fee -from app.models.ticket_holder import TicketHolder +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.Financial_Context.ticket import Ticket +from app.models.Financial_Context.ticket_fee import get_fee, get_maximum_fee +from app.models.Financial_Context.ticket_holder import TicketHolder from app.settings import get_settings @@ -53,8 +55,7 @@ class Privacy: name = db.Column(db.String, nullable=False) external_event_url = db.Column(db.String) logo_url = db.Column(db.String) - starts_at = db.Column(db.DateTime(timezone=True), nullable=False) - ends_at = db.Column(db.DateTime(timezone=True), nullable=False) + duration = db.Column(TSTZRANGE, nullable=False) timezone = db.Column(db.String, nullable=False, default="UTC") online = db.Column(db.Boolean, nullable=False, default=False, server_default='False') latitude = db.Column(db.Float) @@ -456,11 +457,11 @@ def organizer_site_link(self): @property def starts_at_tz(self): - return self.starts_at.astimezone(pytz.timezone(self.timezone)) + return self.duration.lower.astimezone(pytz.timezone(self.timezone)) @property def ends_at_tz(self): - return self.ends_at.astimezone(pytz.timezone(self.timezone)) + return self.duration.higher.astimezone(pytz.timezone(self.timezone)) @property def normalized_location(self): diff --git a/app/models/event_copyright.py b/app/models/Event_Context/event_copyright.py similarity index 100% rename from app/models/event_copyright.py rename to app/models/Event_Context/event_copyright.py diff --git a/app/models/event_location.py b/app/models/Event_Context/event_location.py similarity index 100% rename from app/models/event_location.py rename to app/models/Event_Context/event_location.py diff --git a/app/models/event_orga.py b/app/models/Event_Context/event_orga.py similarity index 100% rename from app/models/event_orga.py rename to app/models/Event_Context/event_orga.py diff --git a/app/models/event_sub_topic.py b/app/models/Event_Context/event_sub_topic.py similarity index 100% rename from app/models/event_sub_topic.py rename to app/models/Event_Context/event_sub_topic.py diff --git a/app/models/event_topic.py b/app/models/Event_Context/event_topic.py similarity index 100% rename from app/models/event_topic.py rename to app/models/Event_Context/event_topic.py diff --git a/app/models/event_type.py b/app/models/Event_Context/event_type.py similarity index 100% rename from app/models/event_type.py rename to app/models/Event_Context/event_type.py diff --git a/app/models/exhibitor.py b/app/models/Event_Context/exhibitor.py similarity index 100% rename from app/models/exhibitor.py rename to app/models/Event_Context/exhibitor.py diff --git a/app/models/feedback.py b/app/models/Event_Context/feedback.py similarity index 100% rename from app/models/feedback.py rename to app/models/Event_Context/feedback.py diff --git a/app/models/invite.py b/app/models/Event_Context/invite.py similarity index 100% rename from app/models/invite.py rename to app/models/Event_Context/invite.py diff --git a/app/models/microlocation.py b/app/models/Event_Context/microlocation.py similarity index 100% rename from app/models/microlocation.py rename to app/models/Event_Context/microlocation.py diff --git a/app/models/session.py b/app/models/Event_Context/session.py similarity index 97% rename from app/models/session.py rename to app/models/Event_Context/session.py index a5d697376a..6d8d293610 100644 --- a/app/models/session.py +++ b/app/models/Event_Context/session.py @@ -8,9 +8,9 @@ from app.models import db from app.models.base import SoftDeletionModel -from app.models.feedback import Feedback +from app.models.Event_Context.feedback import Feedback from app.models.helpers.versioning import clean_html, clean_up_string -from app.models.user_favourite_session import UserFavouriteSession +from app.models.user_context.user_favourite_session import UserFavouriteSession speakers_sessions = db.Table( 'speakers_sessions', diff --git a/app/models/session_type.py b/app/models/Event_Context/session_type.py similarity index 100% rename from app/models/session_type.py rename to app/models/Event_Context/session_type.py diff --git a/app/models/speakers_call.py b/app/models/Event_Context/speakers_call.py similarity index 100% rename from app/models/speakers_call.py rename to app/models/Event_Context/speakers_call.py diff --git a/app/models/sponsor.py b/app/models/Event_Context/sponsor.py similarity index 100% rename from app/models/sponsor.py rename to app/models/Event_Context/sponsor.py diff --git a/app/models/station.py b/app/models/Event_Context/station.py similarity index 100% rename from app/models/station.py rename to app/models/Event_Context/station.py diff --git a/app/models/station_store_pax.py b/app/models/Event_Context/station_store_pax.py similarity index 100% rename from app/models/station_store_pax.py rename to app/models/Event_Context/station_store_pax.py diff --git a/app/models/tag.py b/app/models/Event_Context/tag.py similarity index 100% rename from app/models/tag.py rename to app/models/Event_Context/tag.py diff --git a/app/models/tax.py b/app/models/Event_Context/tax.py similarity index 100% rename from app/models/tax.py rename to app/models/Event_Context/tax.py diff --git a/app/models/translation_channels.py b/app/models/Event_Context/translation_channels.py similarity index 91% rename from app/models/translation_channels.py rename to app/models/Event_Context/translation_channels.py index ced2fe7256..14d9214271 100644 --- a/app/models/translation_channels.py +++ b/app/models/Event_Context/translation_channels.py @@ -1,7 +1,7 @@ from sqlalchemy.orm import backref from app.models import db -from app.models.video_channel import VideoChannel +from app.models.Event_Context.video_channel import VideoChannel class TranslationChannel(db.Model): diff --git a/app/models/video_channel.py b/app/models/Event_Context/video_channel.py similarity index 100% rename from app/models/video_channel.py rename to app/models/Event_Context/video_channel.py diff --git a/app/models/video_recording.py b/app/models/Event_Context/video_recording.py similarity index 100% rename from app/models/video_recording.py rename to app/models/Event_Context/video_recording.py diff --git a/app/models/video_stream.py b/app/models/Event_Context/video_stream.py similarity index 92% rename from app/models/video_stream.py rename to app/models/Event_Context/video_stream.py index f492450939..1db019c32c 100644 --- a/app/models/video_stream.py +++ b/app/models/Event_Context/video_stream.py @@ -6,11 +6,11 @@ from app.api.helpers.permission_manager import has_access from app.models import db -from app.models.order import Order -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.ticket_holder import TicketHolder -from app.models.video_channel import VideoChannel +from app.models.Financial_Context.order import Order +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.Event_Context.video_channel import VideoChannel class VideoStream(db.Model): diff --git a/app/models/video_stream_moderator.py b/app/models/Event_Context/video_stream_moderator.py similarity index 100% rename from app/models/video_stream_moderator.py rename to app/models/Event_Context/video_stream_moderator.py diff --git a/app/models/access_code.py b/app/models/Financial_Context/access_code.py similarity index 92% rename from app/models/access_code.py rename to app/models/Financial_Context/access_code.py index bc8ba445da..419f32c91f 100644 --- a/app/models/access_code.py +++ b/app/models/Financial_Context/access_code.py @@ -6,8 +6,8 @@ from app.api.helpers.db import get_count from app.models import db from app.models.base import SoftDeletionModel -from app.models.order import Order -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.order import Order +from app.models.Financial_Context.ticket_holder import TicketHolder @dataclass(init=False, unsafe_hash=True) @@ -46,7 +46,7 @@ def get_service_name(): @property def valid_expire_time(self): - return self.valid_till or self.event.ends_at + return self.valid_till or self.event.duration.higher def get_confirmed_attendees_query(self): """ diff --git a/app/models/discount_code.py b/app/models/Financial_Context/discount_code.py similarity index 92% rename from app/models/discount_code.py rename to app/models/Financial_Context/discount_code.py index f19d306730..6896064aa0 100644 --- a/app/models/discount_code.py +++ b/app/models/Financial_Context/discount_code.py @@ -6,9 +6,9 @@ from app.api.helpers.ticketing import is_discount_available, validate_discount_code from app.models import db from app.models.base import SoftDeletionModel -from app.models.order import Order -from app.models.ticket import Ticket -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.order import Order +from app.models.Financial_Context.ticket import Ticket +from app.models.Financial_Context.ticket_holder import TicketHolder class DiscountCode(SoftDeletionModel): @@ -62,7 +62,7 @@ def confirmed_attendees_count(self) -> int: @property def valid_expire_time(self): - return self.valid_till or self.event.ends_at + return self.valid_till or self.event.duration.higher def get_supported_tickets(self, ticket_ids=None): query = Ticket.query.with_parent(self).filter_by(deleted_at=None) diff --git a/app/models/event_invoice.py b/app/models/Financial_Context/event_invoice.py similarity index 98% rename from app/models/event_invoice.py rename to app/models/Financial_Context/event_invoice.py index 8ef88e9167..416d191815 100644 --- a/app/models/event_invoice.py +++ b/app/models/Financial_Context/event_invoice.py @@ -12,9 +12,9 @@ from app.api.helpers.utilities import monthdelta, round_money from app.models import db from app.models.base import SoftDeletionModel -from app.models.order import Order +from app.models.Financial_Context.order import Order from app.models.setting import Setting -from app.models.ticket_fee import TicketFees +from app.models.Financial_Context.ticket_fee import TicketFees from app.settings import get_settings logger = logging.getLogger(__name__) diff --git a/app/models/order.py b/app/models/Financial_Context/order.py similarity index 98% rename from app/models/order.py rename to app/models/Financial_Context/order.py index 9d21eed228..5f1b6bc9e8 100644 --- a/app/models/order.py +++ b/app/models/Financial_Context/order.py @@ -6,7 +6,7 @@ from app.api.helpers.db import get_new_identifier from app.api.helpers.storage import UPLOAD_PATHS, generate_hash from app.models import db -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.ticket_holder import TicketHolder from app.settings import get_settings diff --git a/app/models/stripe_authorization.py b/app/models/Financial_Context/stripe_authorization.py similarity index 100% rename from app/models/stripe_authorization.py rename to app/models/Financial_Context/stripe_authorization.py diff --git a/app/models/ticket.py b/app/models/Financial_Context/ticket.py similarity index 97% rename from app/models/ticket.py rename to app/models/Financial_Context/ticket.py index 2ebd538366..ddd7b6d1bb 100644 --- a/app/models/ticket.py +++ b/app/models/Financial_Context/ticket.py @@ -3,8 +3,8 @@ from app.api.helpers.errors import ConflictError from app.models import db from app.models.base import SoftDeletionModel -from app.models.order import Order, OrderTicket -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.order import Order, OrderTicket +from app.models.Financial_Context.ticket_holder import TicketHolder access_codes_tickets = db.Table( 'access_codes_tickets', diff --git a/app/models/ticket_fee.py b/app/models/Financial_Context/ticket_fee.py similarity index 100% rename from app/models/ticket_fee.py rename to app/models/Financial_Context/ticket_fee.py diff --git a/app/models/ticket_holder.py b/app/models/Financial_Context/ticket_holder.py similarity index 100% rename from app/models/ticket_holder.py rename to app/models/Financial_Context/ticket_holder.py diff --git a/app/models/badge_field_form.py b/app/models/Form_Context/badge_field_form.py similarity index 100% rename from app/models/badge_field_form.py rename to app/models/Form_Context/badge_field_form.py diff --git a/app/models/badge_form.py b/app/models/Form_Context/badge_form.py similarity index 100% rename from app/models/badge_form.py rename to app/models/Form_Context/badge_form.py diff --git a/app/models/custom_form.py b/app/models/Form_Context/custom_form.py similarity index 100% rename from app/models/custom_form.py rename to app/models/Form_Context/custom_form.py diff --git a/app/models/custom_form_option.py b/app/models/Form_Context/custom_form_option.py similarity index 100% rename from app/models/custom_form_option.py rename to app/models/Form_Context/custom_form_option.py diff --git a/app/models/custom_form_translate.py b/app/models/Form_Context/custom_form_translate.py similarity index 100% rename from app/models/custom_form_translate.py rename to app/models/Form_Context/custom_form_translate.py diff --git a/app/models/custom_placeholder.py b/app/models/Form_Context/custom_placeholder.py similarity index 100% rename from app/models/custom_placeholder.py rename to app/models/Form_Context/custom_placeholder.py diff --git a/app/models/faq.py b/app/models/Form_Context/faq.py similarity index 100% rename from app/models/faq.py rename to app/models/Form_Context/faq.py diff --git a/app/models/faq_type.py b/app/models/Form_Context/faq_type.py similarity index 100% rename from app/models/faq_type.py rename to app/models/Form_Context/faq_type.py diff --git a/app/models/image_size.py b/app/models/Form_Context/image_size.py similarity index 100% rename from app/models/image_size.py rename to app/models/Form_Context/image_size.py diff --git a/app/models/user.py b/app/models/user_context/user.py similarity index 95% rename from app/models/user.py rename to app/models/user_context/user.py index 8810535165..745173db49 100644 --- a/app/models/user.py +++ b/app/models/user_context/user.py @@ -17,18 +17,18 @@ from app.api.helpers.utilities import get_serializer from app.models import db from app.models.base import SoftDeletionModel -from app.models.custom_system_role import UserSystemRole -from app.models.event import Event +from app.models.Associations_Context.custom_system_role import UserSystemRole +from app.models.Event_Context.event import Event from app.models.helpers.versioning import clean_html, clean_up_string from app.models.notification import Notification -from app.models.panel_permission import PanelPermission -from app.models.permission import Permission -from app.models.role import Role +from app.models.Associations_Context.panel_permission import PanelPermission +from app.models.Associations_Context.permission import Permission +from app.models.Associations_Context.role import Role from app.models.service import Service -from app.models.session import Session -from app.models.speaker import Speaker -from app.models.user_permission import UserPermission -from app.models.users_events_role import UsersEventsRoles as UER +from app.models.Event_Context.session import Session +from app.models.Associations_Context.speaker import Speaker +from app.models.user_context.user_permission import UserPermission +from app.models.user_context.users_events_role import UsersEventsRoles as UER # System-wide ADMIN = 'admin' @@ -198,7 +198,7 @@ def _is_role(self, role_name, event_id=None): """ Checks if a user has a particular Role at an Event. """ - from app.models.users_groups_role import UsersGroupsRoles + from app.models.user_context.users_groups_role import UsersGroupsRoles role = Role.query.filter_by(name=role_name).first() uer = UER.query.filter_by(user=self, role=role) diff --git a/app/models/user_check_in.py b/app/models/user_context/user_check_in.py similarity index 100% rename from app/models/user_check_in.py rename to app/models/user_context/user_check_in.py diff --git a/app/models/user_email.py b/app/models/user_context/user_email.py similarity index 100% rename from app/models/user_email.py rename to app/models/user_context/user_email.py diff --git a/app/models/user_favourite_event.py b/app/models/user_context/user_favourite_event.py similarity index 100% rename from app/models/user_favourite_event.py rename to app/models/user_context/user_favourite_event.py diff --git a/app/models/user_favourite_session.py b/app/models/user_context/user_favourite_session.py similarity index 95% rename from app/models/user_favourite_session.py rename to app/models/user_context/user_favourite_session.py index 366c833cdc..97c4923c70 100644 --- a/app/models/user_favourite_session.py +++ b/app/models/user_context/user_favourite_session.py @@ -19,7 +19,7 @@ class UserFavouriteSession(db.Model, Timestamp): @property def safe_user(self): from app.api.helpers.permission_manager import require_current_user - from app.models.user import User + from app.models.user_context.user import User if not self.user_id: return None diff --git a/app/models/user_follow_group.py b/app/models/user_context/user_follow_group.py similarity index 100% rename from app/models/user_follow_group.py rename to app/models/user_context/user_follow_group.py diff --git a/app/models/user_permission.py b/app/models/user_context/user_permission.py similarity index 100% rename from app/models/user_permission.py rename to app/models/user_context/user_permission.py diff --git a/app/models/user_token_blacklist.py b/app/models/user_context/user_token_blacklist.py similarity index 100% rename from app/models/user_token_blacklist.py rename to app/models/user_context/user_token_blacklist.py diff --git a/app/models/users_events_role.py b/app/models/user_context/users_events_role.py similarity index 100% rename from app/models/users_events_role.py rename to app/models/user_context/users_events_role.py diff --git a/app/models/users_groups_role.py b/app/models/user_context/users_groups_role.py similarity index 100% rename from app/models/users_groups_role.py rename to app/models/user_context/users_groups_role.py diff --git a/app/templates/email/ticket_purchased.html b/app/templates/email/ticket_purchased.html index bd8ea9cc55..bb2bae101a 100644 --- a/app/templates/email/ticket_purchased.html +++ b/app/templates/email/ticket_purchased.html @@ -16,10 +16,10 @@
{{ _('Location') }}: {{ order.event.event_location_status }}
{{ _('URL') }}: {{ order.event.site_link }}
-
{{ _('Add to calendar') }}: {{ _('Google Calendar') }} • +
{{ _('Add to calendar') }}: {{ _('Google Calendar') }}{{ _('iCal') }} • - {{ _('Yahoo') }} • - {{ _('Outlook') }} + {{ _('Yahoo') }} • + {{ _('Outlook') }}
{% if order.event.after_order_message | strip_tags != '' %}
{{ _('Below you find a message from the organizer') }}: diff --git a/app/templates/pdf/ticket_attendee.html b/app/templates/pdf/ticket_attendee.html index 201d8f5af3..10da43297b 100644 --- a/app/templates/pdf/ticket_attendee.html +++ b/app/templates/pdf/ticket_attendee.html @@ -164,12 +164,14 @@
- {% if order.event.starts_at %} - {{_('From: %(start_time)s',start_time=starts_at)}} - {% endif %} + {% if order.event.date_range %} + + {{ _('From: %(start_time)s', start_time=order.event.date_range.lower) }} +
- {% if order.event.ends_at %} - {{_('To: %(end_time)s',end_time=ends_at)}} + + {{ _('To: %(end_time)s', end_time=order.event.date_range.upper) }} + {% endif %}
diff --git a/app/templates/pdf/ticket_purchaser.html b/app/templates/pdf/ticket_purchaser.html index 81a2dc1bba..faba3d0760 100644 --- a/app/templates/pdf/ticket_purchaser.html +++ b/app/templates/pdf/ticket_purchaser.html @@ -160,12 +160,10 @@
- {% if order.event.starts_at %} - {{_('From: %(start_time)s',start_time=starts_at)}} - {% endif %} + {% if order.event.date_range %} + {{ _('From: %(start_time)s', start_time=order.event.date_range.lower) }}
- {% if order.event.ends_at %} - {{_('To: %(end_time)s',end_time=ends_at)}} + {{ _('To: %(end_time)s', end_time=order.event.date_range.upper) }} {% endif %}
diff --git a/app/views/blueprints.py b/app/views/blueprints.py index e5a51e470a..877f860ddf 100644 --- a/app/views/blueprints.py +++ b/app/views/blueprints.py @@ -7,7 +7,7 @@ from wtforms import fields, form, validators from app.models import db -from app.models.user import User +from app.models.user_context.user import User class AdminModelView(ModelView): diff --git a/app/views/elastic_cron_helpers.py b/app/views/elastic_cron_helpers.py index d1b132257f..f203a9dea0 100644 --- a/app/views/elastic_cron_helpers.py +++ b/app/views/elastic_cron_helpers.py @@ -6,7 +6,7 @@ """ from app.api.helpers.tasks import celery -from app.models.event import Event +from app.models.Event_Context.event import Event from app.models.search.sync import rebuild_indices, sync, sync_event_from_database from app.views.elastic_search import connect_from_config from app.views.postgres import get_session_from_config diff --git a/docs/general/roles.md b/docs/general/roles.md index 6bc63cc0e5..d5ae10c3d6 100644 --- a/docs/general/roles.md +++ b/docs/general/roles.md @@ -243,7 +243,7 @@ user.can_delete(service, event_id) e.g. ``` ->>> from app.models.user import User +>>> from app.models.user_context.user_context.user import User >>> from app.models.track import Track >>> u = User.query.all()[0] >>> u.can_create(Track, event_id=1) @@ -260,8 +260,8 @@ You can define a user's role for an event in `UsersEventsRoles`. Here's an example showing how a user is assigned as a Track Organizer for an Event (with `event_id = 1`). ``` ->>> from app.models.users_events_roles import UsersEventsRoles as UER ->>> from app.models.user import User +>>> from app.models.user_context.user_context.users_events_roles import UsersEventsRoles as UER +>>> from app.models.user_context.user_context.user import User >>> from app.models.event import Event >>> from app.models.role import Role >>> r = Role.query.filter_by(name='track_organizer').first() diff --git a/migrations/versions/rev-2019-08-03-05:18:10-4925dd5fd720_add_user_token_blacklist_time_table.py b/migrations/versions/rev-2019-08-03-05:18:10-4925dd5fd720_add_user_token_blacklist_time_table.py deleted file mode 100644 index a499ba379a..0000000000 --- a/migrations/versions/rev-2019-08-03-05:18:10-4925dd5fd720_add_user_token_blacklist_time_table.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Add user token blacklist time table - -Revision ID: 4925dd5fd720 -Revises: 2504915ffd08 -Create Date: 2019-08-03 05:18:10.804364 - -""" - -from alembic import op -import sqlalchemy as sa -import sqlalchemy_utils - - -# revision identifiers, used by Alembic. -revision = '4925dd5fd720' -down_revision = '2504915ffd08' - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('user_token_blacklist_time', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('created_at', sa.DateTime(timezone=True), server_default='now', nullable=False), - sa.Column('blacklisted_at', sa.DateTime(timezone=True), server_default='now', nullable=False), - sa.Column('user_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='CASCADE'), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('user_id', name='user_blacklist_time_uc') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('user_token_blacklist_time') - # ### end Alembic commands ### diff --git a/migrations/versions/rev-2019-08-07-01:11:29-f5c3a4fd23fb_.py b/migrations/versions/rev-2019-08-07-01:11:29-f5c3a4fd23fb_.py deleted file mode 100644 index 11f82050cd..0000000000 --- a/migrations/versions/rev-2019-08-07-01:11:29-f5c3a4fd23fb_.py +++ /dev/null @@ -1,30 +0,0 @@ -"""add stripe test keys - -Revision ID: f5c3a4fd23fb -Revises: 4925dd5fd720 -Create Date: 2019-08-07 01:11:29.736517 - -""" - -from alembic import op -import sqlalchemy as sa -import sqlalchemy_utils - - -# revision identifiers, used by Alembic. -revision = 'f5c3a4fd23fb' -down_revision = '4925dd5fd720' - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('settings', sa.Column('stripe_test_publishable_key', sa.String(), nullable=True)) - op.add_column('settings', sa.Column('stripe_test_secret_key', sa.String(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('settings', 'stripe_test_secret_key') - op.drop_column('settings', 'stripe_test_publishable_key') - # ### end Alembic commands ### diff --git a/populate_db.py b/populate_db.py index f136ef5da2..daf7efc63f 100644 --- a/populate_db.py +++ b/populate_db.py @@ -10,39 +10,39 @@ from app.models.custom_system_role import CustomSysRole # EventLocation -from app.models.event_location import EventLocation +from app.models.Event_Context.event_location import EventLocation # EventSubTopic -from app.models.event_sub_topic import EventSubTopic +from app.models.Event_Context.event_sub_topic import EventSubTopic # EventTopic -from app.models.event_topic import EventTopic +from app.models.Event_Context.event_topic import EventTopic # EventType -from app.models.event_type import EventType -from app.models.image_size import ImageSizes -from app.models.message_setting import MessageSettings -from app.models.microlocation import Microlocation -from app.models.notification import NotificationType -from app.models.notification_setting import NotificationSettings +from app.models.Event_Context.event_type import EventType +from app.models.Form_Context.image_size import ImageSizes +from app.models.Communication_Context.message_setting import MessageSettings +from app.models.Event_Context.microlocation import Microlocation +from app.models.Communication_Context.notification import NotificationType +from app.models.Communication_Context.notification_setting import NotificationSettings # Admin Panel Permissions -from app.models.panel_permission import PanelPermission -from app.models.permission import Permission +from app.models.Associations_Context.panel_permission import PanelPermission +from app.models.Associations_Context.permission import Permission # Event Role-Service Permissions -from app.models.role import Role +from app.models.Associations_Context.role import Role from app.models.service import Service -from app.models.session import Session +from app.models.Event_Context.session import Session from app.models.setting import Setting -from app.models.speaker import Speaker -from app.models.sponsor import Sponsor +from app.models.Associations_Context.speaker import Speaker +from app.models.Event_Context.sponsor import Sponsor from app.models.track import Track -from app.models.user import MODERATOR, REGISTRAR, TRACK_ORGANIZER +from app.models.user_context.user import MODERATOR, REGISTRAR, TRACK_ORGANIZER # User Permissions -from app.models.user_permission import UserPermission -from app.models.video_channel import VideoChannel +from app.models.user_context.user_permission import UserPermission +from app.models.Event_Context.video_channel import VideoChannel SALES = 'sales' ADMIN = 'admin' diff --git a/tests/all/integration/api/attendee/test_attendee_access_api.py b/tests/all/integration/api/attendee/test_attendee_access_api.py index 78db781efd..f20f794d23 100644 --- a/tests/all/integration/api/attendee/test_attendee_access_api.py +++ b/tests/all/integration/api/attendee/test_attendee_access_api.py @@ -1,8 +1,8 @@ import json from app.api.helpers.db import get_or_create -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.attendee import AttendeeOrderTicketSubFactory diff --git a/tests/all/integration/api/attendee/test_attendee_api.py b/tests/all/integration/api/attendee/test_attendee_api.py index 657d3b9816..518a9aafba 100644 --- a/tests/all/integration/api/attendee/test_attendee_api.py +++ b/tests/all/integration/api/attendee/test_attendee_api.py @@ -1,6 +1,6 @@ import json -from app.models.custom_form import CustomForms +from app.models.Form_Context.custom_form import CustomForms from tests.factories.attendee import AttendeeOrderTicketSubFactory from tests.factories.order import OrderSubFactory from tests.factories.ticket import TicketSubFactory diff --git a/tests/all/integration/api/badge_forms/test_badge_forms_api.py b/tests/all/integration/api/badge_forms/test_badge_forms_api.py index c407b02d62..abecb492d1 100644 --- a/tests/all/integration/api/badge_forms/test_badge_forms_api.py +++ b/tests/all/integration/api/badge_forms/test_badge_forms_api.py @@ -1,6 +1,6 @@ import json -from app.models.badge_field_form import BadgeFieldForms +from app.models.Form_Context.badge_field_form import BadgeFieldForms from tests.factories import common from tests.factories.badge_field_form import BadgeFieldFormFactory from tests.factories.badge_form import BadgeFormFactory diff --git a/tests/all/integration/api/custom_forms/test_custom_forms_api.py b/tests/all/integration/api/custom_forms/test_custom_forms_api.py index 520d1cf01c..7a00034ec7 100644 --- a/tests/all/integration/api/custom_forms/test_custom_forms_api.py +++ b/tests/all/integration/api/custom_forms/test_custom_forms_api.py @@ -1,6 +1,6 @@ import json -from app.models.custom_form import CustomForms +from app.models.Form_Context.custom_form import CustomForms from tests.factories.event import EventFactoryBasic diff --git a/tests/all/integration/api/event/test_event_roles.py b/tests/all/integration/api/event/test_event_roles.py index 952232a288..612280e0cf 100644 --- a/tests/all/integration/api/event/test_event_roles.py +++ b/tests/all/integration/api/event/test_event_roles.py @@ -1,9 +1,9 @@ import json from app.api.helpers.db import get_or_create -from app.models.role import Role -from app.models.role_invite import RoleInvite -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.Associations_Context.role_invite import RoleInvite +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.event import EventFactoryBasic from tests.factories.role_invite import RoleInviteSubFactory from tests.factories.users_events_roles import UsersEventsRolesSubFactory diff --git a/tests/all/integration/api/event/test_event_view_access.py b/tests/all/integration/api/event/test_event_view_access.py index 6f19036d31..926c7e96de 100644 --- a/tests/all/integration/api/event/test_event_view_access.py +++ b/tests/all/integration/api/event/test_event_view_access.py @@ -1,8 +1,8 @@ import json from app.api.helpers.db import get_or_create -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.event import EventFactoryBasic diff --git a/tests/all/integration/api/event_invoices/test_event_invoices_access.py b/tests/all/integration/api/event_invoices/test_event_invoices_access.py index 41f018d576..5fa0ba42f9 100644 --- a/tests/all/integration/api/event_invoices/test_event_invoices_access.py +++ b/tests/all/integration/api/event_invoices/test_event_invoices_access.py @@ -1,6 +1,6 @@ import json -from app.models.event_invoice import EventInvoice +from app.models.Financial_Context.event_invoice import EventInvoice from tests.factories.event_invoice import EventInvoiceSubFactory from tests.factories.user import UserFactory diff --git a/tests/all/integration/api/group/test_group_misc.py b/tests/all/integration/api/group/test_group_misc.py index f52c78fbc0..9913df02a6 100644 --- a/tests/all/integration/api/group/test_group_misc.py +++ b/tests/all/integration/api/group/test_group_misc.py @@ -1,8 +1,8 @@ import json from app.api.helpers.db import get_or_create -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.event import EventFactoryBasic from tests.factories.group import GroupFactory diff --git a/tests/all/integration/api/group/test_group_roles.py b/tests/all/integration/api/group/test_group_roles.py index 810c33ac41..678599d47a 100644 --- a/tests/all/integration/api/group/test_group_roles.py +++ b/tests/all/integration/api/group/test_group_roles.py @@ -2,8 +2,8 @@ from app.api.helpers.db import get_or_create from app.api.helpers.permission_manager import has_access -from app.models.role import Role -from app.models.users_groups_role import UsersGroupsRoles +from app.models.Associations_Context.role import Role +from app.models.user_context.users_groups_role import UsersGroupsRoles from tests.factories.event import EventFactoryBasic from tests.factories.group import GroupSubFactory diff --git a/tests/all/integration/api/helpers/order/test_create_order.py b/tests/all/integration/api/helpers/order/test_create_order.py index f06bc1a155..3096342de5 100644 --- a/tests/all/integration/api/helpers/order/test_create_order.py +++ b/tests/all/integration/api/helpers/order/test_create_order.py @@ -1,10 +1,10 @@ import json from app.api.helpers.db import get_or_create -from app.models.order import Order -from app.models.role import Role -from app.models.ticket_holder import TicketHolder -from app.models.users_events_role import UsersEventsRoles +from app.models.Financial_Context.order import Order +from app.models.Associations_Context.role import Role +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.attendee import AttendeeFactoryBase from tests.factories.discount_code import DiscountCodeTicketSubFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/all/integration/api/helpers/order/test_edit_order.py b/tests/all/integration/api/helpers/order/test_edit_order.py index b3f7bd36b1..2067e96513 100644 --- a/tests/all/integration/api/helpers/order/test_edit_order.py +++ b/tests/all/integration/api/helpers/order/test_edit_order.py @@ -1,8 +1,8 @@ import json -from app.models.custom_form import CustomForms -from app.models.order import Order -from app.models.ticket_holder import TicketHolder +from app.models.Form_Context.custom_form import CustomForms +from app.models.Financial_Context.order import Order +from app.models.Financial_Context.ticket_holder import TicketHolder from tests.factories.attendee import AttendeeSubFactory from tests.factories.event import EventFactoryBasic from tests.factories.order import OrderSubFactory diff --git a/tests/all/integration/api/helpers/test_auth.py b/tests/all/integration/api/helpers/test_auth.py index d7fbb5c058..6b30eedab5 100644 --- a/tests/all/integration/api/helpers/test_auth.py +++ b/tests/all/integration/api/helpers/test_auth.py @@ -3,7 +3,7 @@ from flask_login import login_user, logout_user from app.api.helpers.auth import AuthManager -from app.models.user import User +from app.models.user_context.user import User from tests.all.integration.auth_helper import create_user diff --git a/tests/all/integration/api/helpers/test_csv_jobs_util.py b/tests/all/integration/api/helpers/test_csv_jobs_util.py index a567bcbc4b..bc8f28485d 100644 --- a/tests/all/integration/api/helpers/test_csv_jobs_util.py +++ b/tests/all/integration/api/helpers/test_csv_jobs_util.py @@ -10,7 +10,7 @@ export_speakers_csv, ) from app.models import db -from app.models.custom_form import ATTENDEE_CUSTOM_FORM +from app.models.Form_Context.custom_form import ATTENDEE_CUSTOM_FORM from tests.all.integration.auth_helper import create_user from tests.all.integration.utils import OpenEventTestCase from tests.factories import common diff --git a/tests/all/integration/api/helpers/test_db.py b/tests/all/integration/api/helpers/test_db.py index a463a456c8..d3e7a9bab0 100644 --- a/tests/all/integration/api/helpers/test_db.py +++ b/tests/all/integration/api/helpers/test_db.py @@ -10,8 +10,8 @@ safe_query_by_id, save_to_db, ) -from app.models.event import Event -from app.models.ticket_holder import TicketHolder +from app.models.Event_Context.event import Event +from app.models.Financial_Context.ticket_holder import TicketHolder from tests.factories.attendee import AttendeeSubFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/all/integration/api/helpers/test_events.py b/tests/all/integration/api/helpers/test_events.py index 49b211a85b..af274d57f9 100644 --- a/tests/all/integration/api/helpers/test_events.py +++ b/tests/all/integration/api/helpers/test_events.py @@ -2,7 +2,7 @@ from app.api.helpers.db import get_count, save_to_db from app.api.helpers.events import create_custom_forms_for_attendees -from app.models.custom_form import CustomForms +from app.models.Form_Context.custom_form import CustomForms from tests.all.integration.utils import OpenEventTestCase from tests.factories.event import EventFactoryBasic diff --git a/tests/all/integration/api/helpers/test_notification.py b/tests/all/integration/api/helpers/test_notification.py index b1a97390d5..4563993999 100644 --- a/tests/all/integration/api/helpers/test_notification.py +++ b/tests/all/integration/api/helpers/test_notification.py @@ -8,9 +8,9 @@ notify_session_state_change, notify_ticket_purchase_attendee, ) -from app.models.notification import Notification, NotificationType -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Communication_Context.notification import Notification, NotificationType +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.attendee import AttendeeOrderSubFactory from tests.factories.event_invoice import EventInvoiceSubFactory from tests.factories.order import OrderSubFactory diff --git a/tests/all/integration/api/helpers/test_order.py b/tests/all/integration/api/helpers/test_order.py index cb873aa693..40dd50d42b 100644 --- a/tests/all/integration/api/helpers/test_order.py +++ b/tests/all/integration/api/helpers/test_order.py @@ -5,7 +5,7 @@ from app.api.helpers.db import save_to_db from app.api.helpers.order import delete_related_attendees_for_order, set_expiry_for_order from app.models import db -from app.models.order import Order +from app.models.Financial_Context.order import Order from app.settings import get_settings from tests.all.integration.utils import OpenEventTestCase from tests.factories import common diff --git a/tests/all/integration/api/helpers/test_query.py b/tests/all/integration/api/helpers/test_query.py index f1600771be..1325e7ef2c 100644 --- a/tests/all/integration/api/helpers/test_query.py +++ b/tests/all/integration/api/helpers/test_query.py @@ -4,11 +4,11 @@ from app.api.helpers.db import get_or_create from app.api.helpers.errors import ForbiddenError from app.api.helpers.query import event_query -from app.models.event import Event -from app.models.order import Order -from app.models.role import Role -from app.models.ticket import Ticket -from app.models.users_events_role import UsersEventsRoles +from app.models.Event_Context.event import Event +from app.models.Financial_Context.order import Order +from app.models.Associations_Context.role import Role +from app.models.Financial_Context.ticket import Ticket +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.event import EventFactoryBasic diff --git a/tests/all/integration/api/helpers/test_scheduled_jobs.py b/tests/all/integration/api/helpers/test_scheduled_jobs.py index ceb17c11c5..9f51f070f9 100644 --- a/tests/all/integration/api/helpers/test_scheduled_jobs.py +++ b/tests/all/integration/api/helpers/test_scheduled_jobs.py @@ -10,9 +10,9 @@ this_month_date, ) from app.api.helpers.utilities import monthdelta -from app.models.role import Role -from app.models.ticket_holder import TicketHolder -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.Financial_Context.ticket_holder import TicketHolder +from app.models.user_context.users_events_role import UsersEventsRoles from app.settings import get_settings from tests.factories import common from tests.factories.attendee import AttendeeOrderSubFactory, AttendeeSubFactory diff --git a/tests/all/integration/api/session/test_session_access_api.py b/tests/all/integration/api/session/test_session_access_api.py index 643b11fa73..83a8342d0f 100644 --- a/tests/all/integration/api/session/test_session_access_api.py +++ b/tests/all/integration/api/session/test_session_access_api.py @@ -1,8 +1,8 @@ import json from app.api.helpers.db import get_or_create -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.session import SessionSubFactory from tests.factories.speaker import SpeakerSubFactory from tests.factories.user import UserFactory diff --git a/tests/all/integration/api/session/test_session_forms_api.py b/tests/all/integration/api/session/test_session_forms_api.py index 88c3b55569..9114b3ef5a 100644 --- a/tests/all/integration/api/session/test_session_forms_api.py +++ b/tests/all/integration/api/session/test_session_forms_api.py @@ -1,7 +1,7 @@ import json -from app.models.custom_form import CustomForms -from app.models.session import Session +from app.models.Form_Context.custom_form import CustomForms +from app.models.Event_Context.session import Session from tests.factories.session import SessionSubFactory from tests.factories.speakers_call import SpeakersCallSubFactory from tests.factories.track import TrackSubFactory diff --git a/tests/all/integration/api/session/test_session_lock_api.py b/tests/all/integration/api/session/test_session_lock_api.py index e62f486d0e..21a4bf770c 100644 --- a/tests/all/integration/api/session/test_session_lock_api.py +++ b/tests/all/integration/api/session/test_session_lock_api.py @@ -1,8 +1,8 @@ import json from app.api.helpers.db import get_or_create -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.session import SessionSubFactory from tests.factories.speakers_call import SpeakersCallSubFactory from tests.factories.user import UserFactory diff --git a/tests/all/integration/api/session/test_session_state_api.py b/tests/all/integration/api/session/test_session_state_api.py index 4f583c007d..81b3868e6b 100644 --- a/tests/all/integration/api/session/test_session_state_api.py +++ b/tests/all/integration/api/session/test_session_state_api.py @@ -3,8 +3,8 @@ import pytest from app.api.helpers.db import get_or_create -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.session import SessionSubFactory from tests.factories.speakers_call import SpeakersCallSubFactory from tests.factories.user import UserFactory diff --git a/tests/all/integration/api/speaker/test_speaker_api.py b/tests/all/integration/api/speaker/test_speaker_api.py index 500ab18eac..282ddc990f 100644 --- a/tests/all/integration/api/speaker/test_speaker_api.py +++ b/tests/all/integration/api/speaker/test_speaker_api.py @@ -1,7 +1,7 @@ import json -from app.models.custom_form import CustomForms -from app.models.speaker import Speaker +from app.models.Form_Context.custom_form import CustomForms +from app.models.Associations_Context.speaker import Speaker from tests.factories.speaker import SpeakerSubFactory from tests.factories.speakers_call import SpeakersCallSubFactory diff --git a/tests/all/integration/api/speaker/test_speaker_email_override.py b/tests/all/integration/api/speaker/test_speaker_email_override.py index d65810521e..46838334fc 100644 --- a/tests/all/integration/api/speaker/test_speaker_email_override.py +++ b/tests/all/integration/api/speaker/test_speaker_email_override.py @@ -1,9 +1,9 @@ import json from app.api.helpers.db import get_or_create -from app.models.custom_form import CustomForms -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Form_Context.custom_form import CustomForms +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.event import EventFactoryBasic from tests.factories.speaker import SpeakerSubFactory from tests.factories.speakers_call import SpeakersCallSubFactory diff --git a/tests/all/integration/api/station/test_station_store_paxs_api.py b/tests/all/integration/api/station/test_station_store_paxs_api.py index 04ca242e36..cde27d901a 100644 --- a/tests/all/integration/api/station/test_station_store_paxs_api.py +++ b/tests/all/integration/api/station/test_station_store_paxs_api.py @@ -1,6 +1,6 @@ import json -from app.models.station_store_pax import StationStorePax +from app.models.Event_Context.station_store_pax import StationStorePax from tests.factories.event import EventFactoryBasic from tests.factories.microlocation import MicrolocationSubFactory from tests.factories.session import SessionSubFactory diff --git a/tests/all/integration/api/station/test_stations_api.py b/tests/all/integration/api/station/test_stations_api.py index 0cc5fdea92..c9b43003e3 100644 --- a/tests/all/integration/api/station/test_stations_api.py +++ b/tests/all/integration/api/station/test_stations_api.py @@ -1,6 +1,6 @@ import json -from app.models.station import Station +from app.models.Event_Context.station import Station from tests.factories.event import EventFactoryBasic from tests.factories.microlocation import MicrolocationFactory, MicrolocationSubFactory from tests.factories.station import StationFactory diff --git a/tests/all/integration/api/video_stream/test_video_stream_access_api.py b/tests/all/integration/api/video_stream/test_video_stream_access_api.py index 145215dfe2..881a938d4d 100644 --- a/tests/all/integration/api/video_stream/test_video_stream_access_api.py +++ b/tests/all/integration/api/video_stream/test_video_stream_access_api.py @@ -3,8 +3,8 @@ import pytest from app.api.helpers.db import get_or_create -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.attendee import AttendeeOrderSubFactory from tests.factories.microlocation import MicrolocationSubVideoStreamFactory from tests.factories.session import SessionSubFactory diff --git a/tests/all/integration/api/video_stream/test_video_stream_create_api.py b/tests/all/integration/api/video_stream/test_video_stream_create_api.py index e3dfa38e02..d8c9e3552c 100644 --- a/tests/all/integration/api/video_stream/test_video_stream_create_api.py +++ b/tests/all/integration/api/video_stream/test_video_stream_create_api.py @@ -2,9 +2,9 @@ from app.api.helpers.db import get_or_create from app.models import event -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles -from app.models.video_stream import VideoStream +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles +from app.models.Event_Context.video_stream import VideoStream from tests.factories.event import EventFactoryBasic from tests.factories.microlocation import MicrolocationSubFactory diff --git a/tests/all/integration/api/video_stream/test_video_stream_edit_api.py b/tests/all/integration/api/video_stream/test_video_stream_edit_api.py index 0e1286f3cd..32cc998be4 100644 --- a/tests/all/integration/api/video_stream/test_video_stream_edit_api.py +++ b/tests/all/integration/api/video_stream/test_video_stream_edit_api.py @@ -2,9 +2,9 @@ from app.api.helpers.db import get_or_create from app.models import event -from app.models.role import Role -from app.models.users_events_role import UsersEventsRoles -from app.models.video_stream import VideoStream +from app.models.Associations_Context.role import Role +from app.models.user_context.users_events_role import UsersEventsRoles +from app.models.Event_Context.video_stream import VideoStream from tests.factories.attendee import AttendeeOrderSubFactory from tests.factories.event import EventFactoryBasic from tests.factories.microlocation import MicrolocationSubVideoStreamFactory diff --git a/tests/all/integration/auth_helper.py b/tests/all/integration/auth_helper.py index adb9ab481b..f6d17fa12a 100644 --- a/tests/all/integration/auth_helper.py +++ b/tests/all/integration/auth_helper.py @@ -1,5 +1,5 @@ from app.api.helpers.db import save_to_db -from app.models.user import User +from app.models.user_context.user import User def create_user(email, password, is_verified=True): diff --git a/tests/all/integration/models/test_custom_forms.py b/tests/all/integration/models/test_custom_forms.py index 03f1ccc228..ba506def0d 100644 --- a/tests/all/integration/models/test_custom_forms.py +++ b/tests/all/integration/models/test_custom_forms.py @@ -1,4 +1,4 @@ -from app.models.custom_form import CustomForms, assign_field_names +from app.models.Form_Context.custom_form import CustomForms, assign_field_names from tests.factories.event import EventFactoryBasic diff --git a/tests/all/integration/utils.py b/tests/all/integration/utils.py index 5c1a58a1d1..2508b5b5fb 100644 --- a/tests/all/integration/utils.py +++ b/tests/all/integration/utils.py @@ -1,6 +1,6 @@ import unittest -from app.models.user import User +from app.models.user_context.user import User from tests.all.integration.auth_helper import create_super_admin from tests.all.integration.setup_database import Setup, db diff --git a/tests/factories/access_code.py b/tests/factories/access_code.py index 28a660ead8..74212dc8ad 100644 --- a/tests/factories/access_code.py +++ b/tests/factories/access_code.py @@ -1,6 +1,6 @@ import factory -from app.models.access_code import AccessCode +from app.models.Financial_Context.access_code import AccessCode from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/attendee.py b/tests/factories/attendee.py index c23c7f17b6..e682f44067 100644 --- a/tests/factories/attendee.py +++ b/tests/factories/attendee.py @@ -1,6 +1,6 @@ import factory -from app.models.ticket_holder import TicketHolder +from app.models.Financial_Context.ticket_holder import TicketHolder from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/badge_field_form.py b/tests/factories/badge_field_form.py index 8a97af4a42..7ef05c64e0 100644 --- a/tests/factories/badge_field_form.py +++ b/tests/factories/badge_field_form.py @@ -1,6 +1,6 @@ import factory -from app.models.badge_field_form import BadgeFieldForms +from app.models.Form_Context.badge_field_form import BadgeFieldForms from tests.factories import common from tests.factories.badge_form import BadgeFormFactory from tests.factories.base import BaseFactory diff --git a/tests/factories/badge_form.py b/tests/factories/badge_form.py index 8ed76c2d92..79ae8440b5 100644 --- a/tests/factories/badge_form.py +++ b/tests/factories/badge_form.py @@ -1,6 +1,6 @@ import factory -from app.models.badge_form import BadgeForms +from app.models.Form_Context.badge_form import BadgeForms from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/custom_form.py b/tests/factories/custom_form.py index 4c4935fcff..34f38a58b6 100644 --- a/tests/factories/custom_form.py +++ b/tests/factories/custom_form.py @@ -1,6 +1,6 @@ import factory -from app.models.custom_form import CustomForms +from app.models.Form_Context.custom_form import CustomForms from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/custom_placeholder.py b/tests/factories/custom_placeholder.py index 01c496ee18..21bc0c4ea7 100644 --- a/tests/factories/custom_placeholder.py +++ b/tests/factories/custom_placeholder.py @@ -1,4 +1,4 @@ -from app.models.custom_placeholder import CustomPlaceholder +from app.models.Form_Context.custom_placeholder import CustomPlaceholder from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/custom_system_role.py b/tests/factories/custom_system_role.py index 864fc9ee16..6fbcdc86d0 100644 --- a/tests/factories/custom_system_role.py +++ b/tests/factories/custom_system_role.py @@ -1,4 +1,4 @@ -from app.models.custom_system_role import CustomSysRole +from app.models.Associations_Context.custom_system_role import CustomSysRole from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/discount_code.py b/tests/factories/discount_code.py index 849f25ba97..48f0eb96a0 100644 --- a/tests/factories/discount_code.py +++ b/tests/factories/discount_code.py @@ -1,6 +1,6 @@ import factory -from app.models.discount_code import DiscountCode +from app.models.Financial_Context.discount_code import DiscountCode from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.ticket import TicketFactory diff --git a/tests/factories/event.py b/tests/factories/event.py index c0622d3f3a..7d4de8129b 100644 --- a/tests/factories/event.py +++ b/tests/factories/event.py @@ -1,4 +1,4 @@ -from app.models.event import Event +from app.models.Event_Context.event import Event from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/event_copyright.py b/tests/factories/event_copyright.py index 3aeb76fa01..0f388dc669 100644 --- a/tests/factories/event_copyright.py +++ b/tests/factories/event_copyright.py @@ -1,6 +1,6 @@ import factory -from app.models.event_copyright import EventCopyright +from app.models.Event_Context.event_copyright import EventCopyright from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/event_invoice.py b/tests/factories/event_invoice.py index 23a1168498..f2688c9bc1 100644 --- a/tests/factories/event_invoice.py +++ b/tests/factories/event_invoice.py @@ -1,6 +1,6 @@ import factory -from app.models.event_invoice import EventInvoice +from app.models.Financial_Context.event_invoice import EventInvoice from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/event_location.py b/tests/factories/event_location.py index e8458a6e42..9500f29655 100644 --- a/tests/factories/event_location.py +++ b/tests/factories/event_location.py @@ -1,4 +1,4 @@ -from app.models.event_location import EventLocation +from app.models.Event_Context.event_location import EventLocation from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/event_role_permission.py b/tests/factories/event_role_permission.py index 3f42991b8c..6c844de399 100644 --- a/tests/factories/event_role_permission.py +++ b/tests/factories/event_role_permission.py @@ -1,6 +1,6 @@ import factory -from app.models.permission import Permission +from app.models.Associations_Context.permission import Permission from tests.factories.base import BaseFactory from tests.factories.role import RoleFactory from tests.factories.service import ServiceFactory diff --git a/tests/factories/event_sub_topic.py b/tests/factories/event_sub_topic.py index bbc8c9cd18..e60abdf7a8 100644 --- a/tests/factories/event_sub_topic.py +++ b/tests/factories/event_sub_topic.py @@ -1,6 +1,6 @@ import factory -from app.models.event_sub_topic import EventSubTopic +from app.models.Event_Context.event_sub_topic import EventSubTopic from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event_topic import EventTopicFactory diff --git a/tests/factories/event_topic.py b/tests/factories/event_topic.py index 32e197cbf2..4239b6a850 100644 --- a/tests/factories/event_topic.py +++ b/tests/factories/event_topic.py @@ -1,4 +1,4 @@ -from app.models.event_topic import EventTopic +from app.models.Event_Context.event_topic import EventTopic from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/event_type.py b/tests/factories/event_type.py index 52d9436b10..2a13ae7af8 100644 --- a/tests/factories/event_type.py +++ b/tests/factories/event_type.py @@ -1,4 +1,4 @@ -from app.models.event_type import EventType +from app.models.Event_Context.event_type import EventType from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/exhibitor.py b/tests/factories/exhibitor.py index 6ce5511792..d0ddd69ec3 100644 --- a/tests/factories/exhibitor.py +++ b/tests/factories/exhibitor.py @@ -1,6 +1,6 @@ import factory -from app.models.exhibitor import Exhibitor +from app.models.Event_Context.exhibitor import Exhibitor from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/faq.py b/tests/factories/faq.py index bf20a8151a..468cb6dc8e 100644 --- a/tests/factories/faq.py +++ b/tests/factories/faq.py @@ -1,6 +1,6 @@ import factory -from app.models.faq import Faq +from app.models.Form_Context.faq import Faq from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.faq_type import FaqTypeFactory diff --git a/tests/factories/faq_type.py b/tests/factories/faq_type.py index 85e67a49bd..22959d67d0 100644 --- a/tests/factories/faq_type.py +++ b/tests/factories/faq_type.py @@ -1,6 +1,6 @@ import factory -from app.models.faq_type import FaqType +from app.models.Form_Context.faq_type import FaqType from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/feedback.py b/tests/factories/feedback.py index 932a78876b..f4494383c8 100644 --- a/tests/factories/feedback.py +++ b/tests/factories/feedback.py @@ -1,6 +1,6 @@ import factory -from app.models.feedback import Feedback +from app.models.Event_Context.feedback import Feedback from tests.factories.base import BaseFactory from tests.factories.session import SessionFactory from tests.factories.user import UserFactory diff --git a/tests/factories/group.py b/tests/factories/group.py index c68c0dcfb0..cc0a2a4469 100644 --- a/tests/factories/group.py +++ b/tests/factories/group.py @@ -1,6 +1,6 @@ import factory -from app.models.group import Group +from app.models.Associations_Context.group import Group from tests.factories.base import BaseFactory from tests.factories.user import UserFactory diff --git a/tests/factories/image_size.py b/tests/factories/image_size.py index ba8237d7a5..c17274aa32 100644 --- a/tests/factories/image_size.py +++ b/tests/factories/image_size.py @@ -1,4 +1,4 @@ -from app.models.image_size import ImageSizes +from app.models.Form_Context.image_size import ImageSizes from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/mail.py b/tests/factories/mail.py index e299105c97..8511e45f42 100644 --- a/tests/factories/mail.py +++ b/tests/factories/mail.py @@ -1,4 +1,4 @@ -from app.models.mail import Mail +from app.models.Communication_Context.mail import Mail from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/message_setting.py b/tests/factories/message_setting.py index f4ae92b250..694e7a2935 100644 --- a/tests/factories/message_setting.py +++ b/tests/factories/message_setting.py @@ -1,5 +1,5 @@ from app.api.helpers.system_mails import MailType -from app.models.message_setting import MessageSettings +from app.models.Communication_Context.message_setting import MessageSettings from tests.factories.base import BaseFactory diff --git a/tests/factories/microlocation.py b/tests/factories/microlocation.py index 58ca51dfe7..22d9d01cfa 100644 --- a/tests/factories/microlocation.py +++ b/tests/factories/microlocation.py @@ -1,6 +1,6 @@ import factory -from app.models.microlocation import Microlocation +from app.models.Event_Context.microlocation import Microlocation from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/notification.py b/tests/factories/notification.py index 9821b64d54..d3dac1edca 100644 --- a/tests/factories/notification.py +++ b/tests/factories/notification.py @@ -1,6 +1,6 @@ import factory -from app.models.notification import Notification, NotificationActor, NotificationContent +from app.models.Communication_Context.notification import Notification, NotificationActor, NotificationContent from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/order.py b/tests/factories/order.py index 574cc81e9e..9c33b66c15 100644 --- a/tests/factories/order.py +++ b/tests/factories/order.py @@ -1,6 +1,6 @@ import factory -from app.models.order import Order +from app.models.Financial_Context.order import Order from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/panel_permission.py b/tests/factories/panel_permission.py index 01be5fc158..26a7667814 100644 --- a/tests/factories/panel_permission.py +++ b/tests/factories/panel_permission.py @@ -1,4 +1,4 @@ -from app.models.panel_permission import PanelPermission +from app.models.Associations_Context.panel_permission import PanelPermission from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/role.py b/tests/factories/role.py index f7dafdea7c..7d39300614 100644 --- a/tests/factories/role.py +++ b/tests/factories/role.py @@ -1,4 +1,4 @@ -from app.models.role import Role +from app.models.Associations_Context.role import Role from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/role_invite.py b/tests/factories/role_invite.py index 5d73f8e3f7..d6efd44fe6 100644 --- a/tests/factories/role_invite.py +++ b/tests/factories/role_invite.py @@ -1,6 +1,6 @@ import factory -from app.models.role_invite import RoleInvite +from app.models.Associations_Context.role_invite import RoleInvite from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/session.py b/tests/factories/session.py index 94e74b2fe5..94f7036c74 100644 --- a/tests/factories/session.py +++ b/tests/factories/session.py @@ -1,6 +1,6 @@ import factory -from app.models.session import Session +from app.models.Event_Context.session import Session from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/session_type.py b/tests/factories/session_type.py index 8186debb64..08aa14308c 100644 --- a/tests/factories/session_type.py +++ b/tests/factories/session_type.py @@ -1,6 +1,6 @@ import factory -from app.models.session_type import SessionType +from app.models.Event_Context.session_type import SessionType from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/social_link.py b/tests/factories/social_link.py index 3d853932de..1a1211e690 100644 --- a/tests/factories/social_link.py +++ b/tests/factories/social_link.py @@ -1,6 +1,6 @@ import factory -from app.models.social_link import SocialLink +from app.models.Communication_Context.social_link import SocialLink from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/speaker.py b/tests/factories/speaker.py index ebd32ab476..9a811a8b0e 100644 --- a/tests/factories/speaker.py +++ b/tests/factories/speaker.py @@ -1,6 +1,6 @@ import factory -from app.models.speaker import Speaker +from app.models.Associations_Context.speaker import Speaker from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/speakers_call.py b/tests/factories/speakers_call.py index d08a9a7e8b..f259eb0922 100644 --- a/tests/factories/speakers_call.py +++ b/tests/factories/speakers_call.py @@ -1,6 +1,6 @@ import factory -from app.models.speakers_call import SpeakersCall +from app.models.Event_Context.speakers_call import SpeakersCall from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/sponsor.py b/tests/factories/sponsor.py index f8701ea911..2652567f69 100644 --- a/tests/factories/sponsor.py +++ b/tests/factories/sponsor.py @@ -1,6 +1,6 @@ import factory -from app.models.sponsor import Sponsor +from app.models.Event_Context.sponsor import Sponsor from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/station.py b/tests/factories/station.py index 256b3e9704..39ad3dfa69 100644 --- a/tests/factories/station.py +++ b/tests/factories/station.py @@ -1,6 +1,6 @@ import factory -from app.models.station import Station +from app.models.Event_Context.station import Station from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/station_store_pax.py b/tests/factories/station_store_pax.py index afbca8096e..8dff92c43d 100644 --- a/tests/factories/station_store_pax.py +++ b/tests/factories/station_store_pax.py @@ -1,6 +1,6 @@ import factory -from app.models.station_store_pax import StationStorePax +from app.models.Event_Context.station_store_pax import StationStorePax from tests.factories.base import BaseFactory from tests.factories.session import SessionFactory from tests.factories.station import StationFactory diff --git a/tests/factories/stripe_authorization.py b/tests/factories/stripe_authorization.py index b610792c47..5545e726bf 100644 --- a/tests/factories/stripe_authorization.py +++ b/tests/factories/stripe_authorization.py @@ -1,6 +1,6 @@ import factory -from app.models.stripe_authorization import StripeAuthorization +from app.models.Financial_Context.stripe_authorization import StripeAuthorization from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/tax.py b/tests/factories/tax.py index 3ca818c9f9..0330e52b42 100644 --- a/tests/factories/tax.py +++ b/tests/factories/tax.py @@ -1,6 +1,6 @@ import factory -from app.models.tax import Tax +from app.models.Event_Context.tax import Tax from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/ticket.py b/tests/factories/ticket.py index 55911406d3..2741ee668d 100644 --- a/tests/factories/ticket.py +++ b/tests/factories/ticket.py @@ -1,6 +1,6 @@ import factory -from app.models.ticket import Ticket +from app.models.Financial_Context.ticket import Ticket from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/ticket_fee.py b/tests/factories/ticket_fee.py index fd5a3c951f..365ea320d7 100644 --- a/tests/factories/ticket_fee.py +++ b/tests/factories/ticket_fee.py @@ -1,4 +1,4 @@ -from app.models.ticket_fee import TicketFees +from app.models.Financial_Context.ticket_fee import TicketFees from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/ticket_tag.py b/tests/factories/ticket_tag.py index 3270d0f04a..89f00c4611 100644 --- a/tests/factories/ticket_tag.py +++ b/tests/factories/ticket_tag.py @@ -1,6 +1,6 @@ import factory -from app.models.ticket import TicketTag +from app.models.Financial_Context.ticket import TicketTag from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/translation_channel.py b/tests/factories/translation_channel.py index 441d7014e8..9b0ffea5fc 100644 --- a/tests/factories/translation_channel.py +++ b/tests/factories/translation_channel.py @@ -1,6 +1,6 @@ import factory -from app.models.translation_channels import TranslationChannel +from app.models.Event_Context.translation_channels import TranslationChannel from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.video_stream import VideoStreamFactoryBase diff --git a/tests/factories/user.py b/tests/factories/user.py index a5f66a381b..8d14b6aea6 100644 --- a/tests/factories/user.py +++ b/tests/factories/user.py @@ -1,4 +1,4 @@ -from app.models.user import User +from app.models.user_context.user import User from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/user_email.py b/tests/factories/user_email.py index 7063eefbe7..82e378f049 100644 --- a/tests/factories/user_email.py +++ b/tests/factories/user_email.py @@ -1,6 +1,6 @@ import factory -from app.models.user_email import UserEmail +from app.models.user_context.user_email import UserEmail from tests.factories import common from tests.factories.base import BaseFactory from tests.factories.user import UserFactory diff --git a/tests/factories/user_favourite_events.py b/tests/factories/user_favourite_events.py index 5c1739be90..2caf5eb182 100644 --- a/tests/factories/user_favourite_events.py +++ b/tests/factories/user_favourite_events.py @@ -1,7 +1,7 @@ import factory -from app.models.user import User -from app.models.user_favourite_event import UserFavouriteEvent +from app.models.user_context.user import User +from app.models.user_context.user_favourite_event import UserFavouriteEvent from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic diff --git a/tests/factories/user_favourite_sessions.py b/tests/factories/user_favourite_sessions.py index c355a79961..38e97113a8 100644 --- a/tests/factories/user_favourite_sessions.py +++ b/tests/factories/user_favourite_sessions.py @@ -1,7 +1,7 @@ import factory -from app.models.user import User -from app.models.user_favourite_session import UserFavouriteSession +from app.models.user_context.user import User +from app.models.user_context.user_favourite_session import UserFavouriteSession from tests.factories.base import BaseFactory from tests.factories.session import SessionFactory diff --git a/tests/factories/user_permission.py b/tests/factories/user_permission.py index ba0c4478e0..a84f2a53d0 100644 --- a/tests/factories/user_permission.py +++ b/tests/factories/user_permission.py @@ -1,4 +1,4 @@ -from app.models.user_permission import UserPermission +from app.models.user_context.user_permission import UserPermission from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/user_token_blacklist.py b/tests/factories/user_token_blacklist.py index b3aed50b77..ec88371064 100644 --- a/tests/factories/user_token_blacklist.py +++ b/tests/factories/user_token_blacklist.py @@ -1,4 +1,4 @@ -from app.models.user_token_blacklist import UserTokenBlackListTime +from app.models.user_context.user_token_blacklist import UserTokenBlackListTime from tests.factories.base import BaseFactory diff --git a/tests/factories/users_events_roles.py b/tests/factories/users_events_roles.py index 683c748609..8a0e559823 100644 --- a/tests/factories/users_events_roles.py +++ b/tests/factories/users_events_roles.py @@ -1,6 +1,6 @@ import factory -from app.models.users_events_role import UsersEventsRoles +from app.models.user_context.users_events_role import UsersEventsRoles from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.role import RoleFactory diff --git a/tests/factories/video_channel.py b/tests/factories/video_channel.py index 3f2d574c29..abbe12799c 100644 --- a/tests/factories/video_channel.py +++ b/tests/factories/video_channel.py @@ -1,4 +1,4 @@ -from app.models.video_channel import VideoChannel +from app.models.Event_Context.video_channel import VideoChannel from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/factories/video_stream.py b/tests/factories/video_stream.py index f70b4cf012..3d6276475a 100644 --- a/tests/factories/video_stream.py +++ b/tests/factories/video_stream.py @@ -1,4 +1,4 @@ -from app.models.video_stream import VideoStream +from app.models.Event_Context.video_stream import VideoStream from tests.factories import common from tests.factories.base import BaseFactory diff --git a/tests/hook_main.py b/tests/hook_main.py index 5d2722ef7f..6887aa8a5f 100644 --- a/tests/hook_main.py +++ b/tests/hook_main.py @@ -11,8 +11,8 @@ from flask_migrate import Migrate from flask import Flask from app.models import db -from app.models.role import Role -from app.models.user_token_blacklist import ( # noqa +from app.models.Associations_Context.role import Role +from app.models.user_context.user_token_blacklist import ( # noqa UserTokenBlackListTime, ) # Workaround for registering unimported model from app.api import routes # noqa Workaround for importing all required models