forked from CGM_Public/pretix_original
Prevent missing stylesheets in cloned events
This commit is contained in:
@@ -640,6 +640,7 @@ class Event(EventMixin, LoggedModel):
|
|||||||
), tz)
|
), tz)
|
||||||
|
|
||||||
def copy_data_from(self, other):
|
def copy_data_from(self, other):
|
||||||
|
from pretix.presale.style import regenerate_css
|
||||||
from ..signals import event_copy_data
|
from ..signals import event_copy_data
|
||||||
from . import (
|
from . import (
|
||||||
Item, ItemAddOn, ItemBundle, ItemCategory, ItemMetaValue, Question,
|
Item, ItemAddOn, ItemBundle, ItemCategory, ItemMetaValue, Question,
|
||||||
@@ -819,9 +820,14 @@ class Event(EventMixin, LoggedModel):
|
|||||||
s.product = item_map[s.product_id]
|
s.product = item_map[s.product_id]
|
||||||
s.save()
|
s.save()
|
||||||
|
|
||||||
|
has_custom_style = other.settings.presale_css_file or other.settings.presale_widget_css_file
|
||||||
skip_settings = (
|
skip_settings = (
|
||||||
'ticket_secrets_pretix_sig1_pubkey',
|
'ticket_secrets_pretix_sig1_pubkey',
|
||||||
'ticket_secrets_pretix_sig1_privkey',
|
'ticket_secrets_pretix_sig1_privkey',
|
||||||
|
'presale_css_file',
|
||||||
|
'presale_css_checksum',
|
||||||
|
'presale_widget_css_file',
|
||||||
|
'presale_widget_css_checksum',
|
||||||
)
|
)
|
||||||
for s in other.settings._objects.all():
|
for s in other.settings._objects.all():
|
||||||
if s.key in skip_settings:
|
if s.key in skip_settings:
|
||||||
@@ -856,6 +862,9 @@ class Event(EventMixin, LoggedModel):
|
|||||||
question_map=question_map, checkin_list_map=checkin_list_map
|
question_map=question_map, checkin_list_map=checkin_list_map
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if has_custom_style:
|
||||||
|
regenerate_css.apply_async(args=(self.pk,))
|
||||||
|
|
||||||
def get_payment_providers(self, cached=False) -> dict:
|
def get_payment_providers(self, cached=False) -> dict:
|
||||||
"""
|
"""
|
||||||
Returns a dictionary of initialized payment providers mapped by their identifiers.
|
Returns a dictionary of initialized payment providers mapped by their identifiers.
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ def regenerate_css(event):
|
|||||||
newname = default_storage.save(fname, ContentFile(css.encode('utf-8')))
|
newname = default_storage.save(fname, ContentFile(css.encode('utf-8')))
|
||||||
event.settings.set('presale_css_file', newname)
|
event.settings.set('presale_css_file', newname)
|
||||||
event.settings.set('presale_css_checksum', checksum)
|
event.settings.set('presale_css_checksum', checksum)
|
||||||
if old_fname and old_fname != newname:
|
if old_fname and old_fname != newname and f'/{event.slug}/' in old_fname:
|
||||||
delete_old_file(old_fname)
|
delete_old_file(old_fname)
|
||||||
|
|
||||||
# widget.scss
|
# widget.scss
|
||||||
@@ -156,7 +156,7 @@ def regenerate_css(event):
|
|||||||
newname = default_storage.save(fname, ContentFile(css.encode('utf-8')))
|
newname = default_storage.save(fname, ContentFile(css.encode('utf-8')))
|
||||||
event.settings.set('presale_widget_css_file', newname)
|
event.settings.set('presale_widget_css_file', newname)
|
||||||
event.settings.set('presale_widget_css_checksum', checksum)
|
event.settings.set('presale_widget_css_checksum', checksum)
|
||||||
if old_fname and old_fname != newname:
|
if old_fname and old_fname != newname and f'/{event.slug}/' in old_fname:
|
||||||
delete_old_file(old_fname)
|
delete_old_file(old_fname)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user