forked from CGM_Public/pretix_original
79 lines
2.3 KiB
Python
79 lines
2.3 KiB
Python
# Generated by Django 4.2.17 on 2025-09-08 08:14
|
|
from django.core.cache import cache
|
|
from django.db import migrations
|
|
|
|
|
|
def set_invoice_period(apps, schema_editor):
|
|
EventSettingsStore = apps.get_model("pretixbase", "Event_SettingsStore")
|
|
ev_seen = set()
|
|
insert_queue = []
|
|
flush_queue = []
|
|
|
|
def store():
|
|
EventSettingsStore.objects.bulk_create(
|
|
insert_queue,
|
|
update_conflicts=True,
|
|
update_fields=["value"],
|
|
unique_fields=["object", "key"],
|
|
)
|
|
cache.delete_many(flush_queue)
|
|
flush_queue.clear()
|
|
insert_queue.clear()
|
|
|
|
# Existing events that use pretix-zugferd and have explicitly disabled delivery dates
|
|
for setting in EventSettingsStore.objects.filter(key="zugferd_include_delivery_date", value="False"):
|
|
flush_queue.append("hierarkey_{}_{}".format("event", setting.object_id))
|
|
insert_queue.append(
|
|
EventSettingsStore(
|
|
object_id=setting.object_id,
|
|
key="invoice_period",
|
|
value="invoice_date",
|
|
)
|
|
)
|
|
ev_seen.add(setting.object_id)
|
|
|
|
if len(insert_queue) > 1000:
|
|
store()
|
|
|
|
# Existing events that previously hid their date on invoices
|
|
for setting in EventSettingsStore.objects.filter(key="show_dates_on_frontpage", value="False"):
|
|
if setting.object_id in ev_seen:
|
|
continue
|
|
|
|
flush_queue.append("hierarkey_{}_{}".format("event", setting.object_id))
|
|
insert_queue.append(
|
|
EventSettingsStore(
|
|
object_id=setting.object_id,
|
|
key="invoice_period",
|
|
value="auto_no_event",
|
|
)
|
|
)
|
|
|
|
if len(insert_queue) > 1000:
|
|
store()
|
|
|
|
store()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
("pretixbase", "0288_invoice_transmission"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RenameField(
|
|
model_name="invoiceline",
|
|
old_name="event_date_to",
|
|
new_name="period_end",
|
|
),
|
|
migrations.RenameField(
|
|
model_name="invoiceline",
|
|
old_name="event_date_from",
|
|
new_name="period_start",
|
|
),
|
|
migrations.RunPython(
|
|
set_invoice_period,
|
|
migrations.RunPython.noop,
|
|
)
|
|
]
|