Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions buzz/api/events/test_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -603,8 +603,29 @@ def test_reports_registrations_closed_once_the_cutoff_has_passed(self):

self.assertTrue(get_event_guests(event).registrations_closed)

def test_a_new_event_starts_with_registrations_closed(self):
event = create_event("New Event", self.team)
frappe.set_user(self.owner)

self.assertTrue(get_event_guests(event).registrations_closed)

def test_a_cutoff_given_at_creation_is_kept(self):
event = create_event("Scheduled Event", self.team, registrations_close_at="2099-01-01 00:00:00")

close_at = frappe.db.get_value("Buzz Event", event, "registrations_close_at")
self.assertEqual(str(close_at), "2099-01-01 00:00:00")

def test_a_duplicated_event_starts_with_registrations_closed(self):
event = create_event("Source Event", self.team, registrations_close_at="2099-01-01 00:00:00")
source = frappe.get_doc("Buzz Event", event)
duplicate = frappe.copy_doc(source, ignore_no_copy=False).insert(ignore_permissions=True)
frappe.set_user(self.owner)

self.assertTrue(get_event_guests(str(duplicate.name)).registrations_closed)

def test_reports_registrations_open_before_the_event_ends(self):
event = create_event("Open Event", self.team)
frappe.db.set_value("Buzz Event", event, "registrations_close_at", None)
frappe.set_user(self.owner)

self.assertFalse(get_event_guests(event).registrations_closed)
Expand Down
5 changes: 3 additions & 2 deletions buzz/events/doctype/buzz_event/buzz_event.json
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,8 @@
{
"fieldname": "registrations_close_at",
"fieldtype": "Datetime",
"label": "Registrations Close At"
"label": "Registrations Close At",
"no_copy": 1
},
{
"fieldname": "custom_forms_tab",
Expand Down Expand Up @@ -667,7 +668,7 @@
"link_fieldname": "event"
}
],
"modified": "2026-10-01 12:00:00.000000",
"modified": "2026-10-01 12:30:00.000000",
"modified_by": "Administrator",
"module": "Events",
"name": "Buzz Event",
Expand Down
3 changes: 3 additions & 0 deletions buzz/events/doctype/buzz_event/buzz_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,9 @@ def before_insert(self):
# Opaque, not a title slug: a new event is published immediately.
if not self.route:
self.route = frappe.generate_hash(length=8)
# Organisers open registrations once tickets and details are ready.
if not self.registrations_close_at:
self.close_registrations()

def validate(self):
self.validate_dates()
Expand Down
3 changes: 2 additions & 1 deletion buzz/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ def setup_test_records():
test_event_exists = frappe.db.exists("Buzz Event", {"route": "test-route"})
if test_event_exists:
frappe.delete_doc("Buzz Event", test_event_exists, force=True)
frappe.get_doc(
test_event = frappe.get_doc(
{
"doctype": "Buzz Event",
"team": admin_team,
Expand All @@ -165,6 +165,7 @@ def setup_test_records():
"end_time": "18:00:00",
}
).insert(ignore_if_duplicate=True)
test_event.db_set("registrations_close_at", None)


def after_install():
Expand Down
5 changes: 5 additions & 0 deletions e2e/helpers/frappe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -276,3 +276,8 @@ export async function ensureEventHost(
})
return host.name
}

// New events start with registrations closed.
export async function openRegistrations(request: APIRequestContext, event: string): Promise<void> {
await updateDoc(request, "Buzz Event", event, { registrations_close_at: null })
}
2 changes: 2 additions & 0 deletions e2e/tests/check-in.setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
ensureEventHost,
ensureTestTeam,
getList,
openRegistrations,
} from "../helpers/frappe"

interface NamedDoc {
Expand Down Expand Up @@ -109,6 +110,7 @@ setup("seed check-in event, ticket type and front-desk users", async ({ request,
medium: "In Person",
is_published: 1,
})
await openRegistrations(request, event.name)

const ticketType = await createDoc<NamedDoc>(request, "Event Ticket Type", {
event: event.name,
Expand Down
2 changes: 2 additions & 0 deletions e2e/tests/event.setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
ensureEventHost,
ensureTestTeam,
getList,
openRegistrations,
} from "../helpers/frappe"

interface NamedDoc {
Expand Down Expand Up @@ -92,6 +93,7 @@ setup("create test event for booking", async ({ request }) => {
end_time: "17:00:00",
medium: "In Person",
})
await openRegistrations(request, event.name)
console.log(`Created Buzz Event: ${event.name} (route: ${testEventRoute})`)

// Create Event Ticket Type
Expand Down
2 changes: 2 additions & 0 deletions e2e/tests/guest-event.setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
ensureEventHost,
ensureTestTeam,
getList,
openRegistrations,
} from "../helpers/frappe"

interface NamedDoc {
Expand Down Expand Up @@ -135,6 +136,7 @@ setup("create guest booking test events", async ({ request }) => {
allow_guest_booking: 1,
guest_verification_method: evt.guest_verification_method,
})
await openRegistrations(request, event.name)

await createDoc<NamedDoc>(request, "Event Ticket Type", {
event: event.name,
Expand Down
2 changes: 2 additions & 0 deletions e2e/tests/offline-payment.setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
ensureEventHost,
ensureTestTeam,
getList,
openRegistrations,
} from "../helpers/frappe"

interface NamedDoc {
Expand Down Expand Up @@ -111,6 +112,7 @@ setup("create offline payment test event", async ({ request }) => {
is_published: 1,
medium: "In Person",
})
await openRegistrations(request, event.name)

// Create offline payment method
await createDoc<NamedDoc>(request, "Offline Payment Method", {
Expand Down
2 changes: 2 additions & 0 deletions e2e/tests/tickets.setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
ensureEventHost,
ensureTestTeam,
getList,
openRegistrations,
} from "../helpers/frappe"

interface NamedDoc {
Expand Down Expand Up @@ -91,6 +92,7 @@ setup("seed a ticket owned by the attendee", async ({ request, baseURL }) => {
medium: "In Person",
is_published: 1,
})
await openRegistrations(request, event.name)

const ticketType = await createDoc<NamedDoc>(request, "Event Ticket Type", {
event: event.name,
Expand Down
Loading