mirror of
https://github.com/pretix/pretix.git
synced 2025-12-10 01:12:28 +00:00
Compare commits
2 Commits
fix-datasy
...
order-impo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
345a284df0 | ||
|
|
c0f4646684 |
@@ -391,7 +391,7 @@ class OutboundSyncProvider:
|
||||
def sync_order(self, order):
|
||||
if not self.should_sync_order(order):
|
||||
logger.debug("Skipping order %r", order)
|
||||
return {}
|
||||
return
|
||||
|
||||
logger.debug("Syncing order %r", order)
|
||||
positions = list(
|
||||
|
||||
@@ -33,8 +33,8 @@ from pretix.base.modelimport import DataImportError, ImportColumn, parse_csv
|
||||
from pretix.base.modelimport_orders import get_order_import_columns
|
||||
from pretix.base.modelimport_vouchers import get_voucher_import_columns
|
||||
from pretix.base.models import (
|
||||
CachedFile, Event, InvoiceAddress, Order, OrderPayment, OrderPosition,
|
||||
User, Voucher,
|
||||
CachedFile, Event, InvoiceAddress, LogEntry, Order, OrderPayment,
|
||||
OrderPosition, User, Voucher,
|
||||
)
|
||||
from pretix.base.models.orders import Transaction
|
||||
from pretix.base.services.invoices import generate_invoice, invoice_qualified
|
||||
@@ -175,6 +175,7 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
||||
raise DataImportError(_('The seat you selected has already been taken. Please select a different seat.'))
|
||||
|
||||
save_transactions = []
|
||||
save_logentries = []
|
||||
for o in orders:
|
||||
o.total = sum([c.price for c in o._positions]) # currently no support for fees
|
||||
if o.total == Decimal('0.00'):
|
||||
@@ -211,13 +212,15 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
||||
o._address.save()
|
||||
for c in cols:
|
||||
c.save(o)
|
||||
o.log_action(
|
||||
save_logentries.append(o.log_action(
|
||||
'pretix.event.order.placed',
|
||||
user=user,
|
||||
data={'source': 'import'}
|
||||
)
|
||||
data={'source': 'import'},
|
||||
save=False,
|
||||
))
|
||||
save_transactions += o.create_transactions(is_new=True, fees=[], positions=o._positions, save=False)
|
||||
Transaction.objects.bulk_create(save_transactions)
|
||||
LogEntry.bulk_create_and_postprocess(save_logentries)
|
||||
|
||||
for o in orders:
|
||||
with language(o.locale, event.settings.region):
|
||||
@@ -286,13 +289,16 @@ def import_vouchers(event: Event, fileid: str, settings: dict, locale: str, user
|
||||
raise DataImportError(
|
||||
_('The seat you selected has already been taken. Please select a different seat.'))
|
||||
|
||||
save_logentries = []
|
||||
for v in vouchers:
|
||||
v.save()
|
||||
v.log_action(
|
||||
save_logentries.append(v.log_action(
|
||||
'pretix.voucher.added',
|
||||
user=user,
|
||||
data={'source': 'import'}
|
||||
)
|
||||
data={'source': 'import'},
|
||||
save=False,
|
||||
))
|
||||
for c in cols:
|
||||
c.save(v)
|
||||
LogEntry.bulk_create_and_postprocess(save_logentries)
|
||||
cf.delete()
|
||||
|
||||
@@ -2825,7 +2825,7 @@ class OrderChangeManager:
|
||||
def _check_complete_cancel(self):
|
||||
current = self.order.positions.count()
|
||||
cancels = sum([
|
||||
1 + o.position.addons.filter(canceled=False).count() for o in self._operations if isinstance(o, self.CancelOperation)
|
||||
1 + o.position.addons.count() for o in self._operations if isinstance(o, self.CancelOperation)
|
||||
]) + len([
|
||||
o for o in self._operations if isinstance(o, self.SplitOperation)
|
||||
])
|
||||
|
||||
@@ -327,26 +327,6 @@ def test_enqueue_order_twice(event):
|
||||
SimpleOrderSync.enqueue_order(order, 'testcase_2nd')
|
||||
|
||||
|
||||
class DoNothingSync(SimpleOrderSync):
|
||||
|
||||
def should_sync_order(self, order):
|
||||
return False
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_should_not_sync(event):
|
||||
_register_with_fake_plugin_name(datasync_providers, DoNothingSync, 'testplugin')
|
||||
|
||||
DoNothingSync.fake_api_client = FakeSyncAPI()
|
||||
|
||||
for order in event.orders.order_by("code").all():
|
||||
DoNothingSync.enqueue_order(order, 'testcase')
|
||||
|
||||
sync_all()
|
||||
|
||||
assert DoNothingSync.fake_api_client.fake_database == {}
|
||||
|
||||
|
||||
StaticMappingWithAssociations = namedtuple('StaticMappingWithAssociations', (
|
||||
'id', 'pretix_model', 'external_object_type', 'pretix_id_field', 'external_id_field', 'property_mappings', 'association_mappings'
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user