add support for GuestTransaction and timing
This commit is contained in:
parent
df9888a31a
commit
afe2c750b1
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
import re
|
||||||
import psycopg2 as pg
|
import psycopg2 as pg
|
||||||
import psycopg2.extras as pge
|
import psycopg2.extras as pge
|
||||||
import pytz
|
import pytz
|
||||||
|
@ -16,9 +16,10 @@ from note.models import (TemplateCategory,
|
||||||
SpecialTransaction
|
SpecialTransaction
|
||||||
)
|
)
|
||||||
from note.models import Note
|
from note.models import Note
|
||||||
|
from activity.models import Guest, GuestTransaction
|
||||||
|
|
||||||
from member.models import Membership, MembershipTransaction
|
from member.models import Membership, MembershipTransaction
|
||||||
from ._import_utils import ImportCommand, BulkCreateManager
|
from ._import_utils import ImportCommand, BulkCreateManager, timed
|
||||||
|
|
||||||
BDE_PK = 1
|
BDE_PK = 1
|
||||||
KFET_PK = 2
|
KFET_PK = 2
|
||||||
|
@ -48,6 +49,7 @@ class Command(ImportCommand):
|
||||||
parser.add_argument('-b', '--buttons', action='store_true', help="import buttons")
|
parser.add_argument('-b', '--buttons', action='store_true', help="import buttons")
|
||||||
parser.add_argument('-t', '--transactions', action='store', default=0, help="start id for transaction import")
|
parser.add_argument('-t', '--transactions', action='store', default=0, help="start id for transaction import")
|
||||||
|
|
||||||
|
@timed
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def import_buttons(self, cur, chunk_size):
|
def import_buttons(self, cur, chunk_size):
|
||||||
categories = dict()
|
categories = dict()
|
||||||
|
@ -78,6 +80,7 @@ class Command(ImportCommand):
|
||||||
bulk_mgr.done()
|
bulk_mgr.done()
|
||||||
return buttons, categories
|
return buttons, categories
|
||||||
|
|
||||||
|
@timed
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def import_transaction(self, cur, chunk_size, idmin, buttons, categories):
|
def import_transaction(self, cur, chunk_size, idmin, buttons, categories):
|
||||||
bulk_mgr = BulkCreateManager(chunk_size=chunk_size)
|
bulk_mgr = BulkCreateManager(chunk_size=chunk_size)
|
||||||
|
@ -183,7 +186,15 @@ class Command(ImportCommand):
|
||||||
Membership(**kfet_dict),
|
Membership(**kfet_dict),
|
||||||
)
|
)
|
||||||
elif ttype == "invitation":
|
elif ttype == "invitation":
|
||||||
print("invitation not supported yet:", ttype)
|
child_transaction = GuestTransaction
|
||||||
|
m = re.search(r"Invitation (.*?)(?:\s\()(.*?)\s(.*?)\)", row["description"])
|
||||||
|
if m:
|
||||||
|
first_name, last_name = m.groups(1), m.groups(2)
|
||||||
|
guest_id = Guest.object.filter(first_name__iexact=first_name,
|
||||||
|
last_name__iexact=last_name).first().pk
|
||||||
|
child_dict["guest_id"] = guest_id
|
||||||
|
else:
|
||||||
|
raise(f"Guest not Found {row['id']} {first_name}, last_name" )
|
||||||
|
|
||||||
bulk_mgr.add(Transaction(**obj_dict),
|
bulk_mgr.add(Transaction(**obj_dict),
|
||||||
child_transaction(**child_dict))
|
child_transaction(**child_dict))
|
||||||
|
|
Loading…
Reference in New Issue