🐛 Fix NK15 import
This commit is contained in:
parent
6cfae5fd69
commit
f5967359a9
|
@ -31,5 +31,5 @@ class Command(ImportCommand):
|
||||||
kwargs["buttons"] = True
|
kwargs["buttons"] = True
|
||||||
call_command('import_transaction', **kwargs)
|
call_command('import_transaction', **kwargs)
|
||||||
|
|
||||||
call_command('make_su','-sS', 'Coq', 'erdnaxe', 'PAC', 'Pollion', 'ÿnérant')
|
call_command('make_su','-sS', 'Coq', 'erdnaxe', 'Krokmou', 'PAC', 'Pollion', 'TLinux', 'ÿnérant')
|
||||||
call_command('syncsql')
|
call_command('syncsql')
|
||||||
|
|
|
@ -18,9 +18,9 @@ from note.models import (TemplateCategory,
|
||||||
MembershipTransaction,
|
MembershipTransaction,
|
||||||
)
|
)
|
||||||
from note.models import Note, NoteClub
|
from note.models import Note, NoteClub
|
||||||
from activity.models import Guest, GuestTransaction
|
from activity.models import Guest, GuestTransaction, Entry
|
||||||
|
|
||||||
from member.models import Membership, MembershipTransaction, Role
|
from member.models import Membership
|
||||||
from ._import_utils import ImportCommand, BulkCreateManager, timed
|
from ._import_utils import ImportCommand, BulkCreateManager, timed
|
||||||
|
|
||||||
# from member/fixtures/initial
|
# from member/fixtures/initial
|
||||||
|
@ -143,17 +143,19 @@ class Command(ImportCommand):
|
||||||
return obj_dict, child_dict, SpecialTransaction
|
return obj_dict, child_dict, SpecialTransaction
|
||||||
|
|
||||||
def _guest_transaction(self, row, obj_dict, child_dict):
|
def _guest_transaction(self, row, obj_dict, child_dict):
|
||||||
# Currently GuestTransaction is related to a Guest.
|
|
||||||
# This is not ideal and should be change to the Entry of this Guest.
|
|
||||||
obj_dict["polymorphic_ctype"] = CT["GuestTransaction"]
|
obj_dict["polymorphic_ctype"] = CT["GuestTransaction"]
|
||||||
m = re.search(r"Invitation (.*?)(?:\s\()(.*?)\s(.*?)\)", row["description"])
|
m = re.search(r"Invitation (.*?)(?:\s\()(.*?)\s(.*?)\)", row["description"])
|
||||||
if m:
|
if m:
|
||||||
|
activity_name = m.group(1)
|
||||||
first_name, last_name = m.group(2), m.group(3)
|
first_name, last_name = m.group(2), m.group(3)
|
||||||
if first_name == "Marion" and last_name == "Bizu Pose":
|
if first_name == "Marion" and last_name == "Bizu Pose":
|
||||||
first_name, last_name = "Marion Bizu", "Pose"
|
first_name, last_name = "Marion Bizu", "Pose"
|
||||||
guest_id = Guest.objects.filter(first_name__iexact=first_name,
|
entry_id = Entry.objects.filter(
|
||||||
last_name__iexact=last_name).first().pk
|
activity__name__iexact=activity_name,
|
||||||
child_dict["guest_id"] = guest_id
|
guest__first_name__iexact=first_name,
|
||||||
|
guest__last_name__iexact=last_name,
|
||||||
|
).first().pk
|
||||||
|
child_dict["entry_id"] = entry_id
|
||||||
else:
|
else:
|
||||||
raise(f"Guest not Found {row['id']} {first_name}, last_name")
|
raise(f"Guest not Found {row['id']} {first_name}, last_name")
|
||||||
|
|
||||||
|
@ -182,9 +184,6 @@ class Command(ImportCommand):
|
||||||
except (pytz.NonExistentTimeError, pytz.AmbiguousTimeError):
|
except (pytz.NonExistentTimeError, pytz.AmbiguousTimeError):
|
||||||
date = make_aware(row["transac_date"] + datetime.timedelta(hours=1))
|
date = make_aware(row["transac_date"] + datetime.timedelta(hours=1))
|
||||||
|
|
||||||
if len(row["description"]) > 255:
|
|
||||||
row["description"] = row["description"][:252] + "..."
|
|
||||||
|
|
||||||
# standart transaction object
|
# standart transaction object
|
||||||
obj_dict = {
|
obj_dict = {
|
||||||
"pk": pk_transaction,
|
"pk": pk_transaction,
|
||||||
|
@ -200,6 +199,8 @@ class Command(ImportCommand):
|
||||||
"source_alias": "",
|
"source_alias": "",
|
||||||
"valid": row["valide"],
|
"valid": row["valide"],
|
||||||
}
|
}
|
||||||
|
if len(obj_dict["reason"]) > 255:
|
||||||
|
obj_dict["reason"] = obj_dict["reason"][:252] + "..."
|
||||||
# for child transaction Models
|
# for child transaction Models
|
||||||
child_dict = {"pk": pk_transaction}
|
child_dict = {"pk": pk_transaction}
|
||||||
ttype = row["type"]
|
ttype = row["type"]
|
||||||
|
@ -264,17 +265,22 @@ class Command(ImportCommand):
|
||||||
# create base transaction object and typed one
|
# create base transaction object and typed one
|
||||||
bulk_mgr.add(Transaction(**obj_dict))
|
bulk_mgr.add(Transaction(**obj_dict))
|
||||||
if child_transaction is not None:
|
if child_transaction is not None:
|
||||||
|
child_dict.update(obj_dict)
|
||||||
bulk_mgr.add(child_transaction(**child_dict))
|
bulk_mgr.add(child_transaction(**child_dict))
|
||||||
pk_transaction += 1
|
pk_transaction += 1
|
||||||
bulk_mgr.done()
|
bulk_mgr.done()
|
||||||
|
|
||||||
|
@timed
|
||||||
def set_roles(self):
|
def set_roles(self):
|
||||||
bulk_mgr = BulkCreateManager(chunk_size=10000)
|
bulk_mgr = BulkCreateManager(chunk_size=10000)
|
||||||
membership_ids = Membership.objects.values_list('id',flat=True)
|
bde_membership_ids = Membership.objects.filter(club__pk=BDE_PK).values_list('id', flat=True)
|
||||||
for m_id in membership_ids:
|
kfet_membership_ids = Membership.objects.filter(club__pk=KFET_PK).values_list('id', flat=True)
|
||||||
|
n = len(bde_membership_ids)
|
||||||
|
for idx, (m_bde_id, m_kfet_id) in enumerate(zip(bde_membership_ids, kfet_membership_ids)):
|
||||||
|
self.update_line(idx, n, str(idx))
|
||||||
bulk_mgr.add(
|
bulk_mgr.add(
|
||||||
Membership.roles.through(membership_id=m_id,role_id=BDE_ROLE_PK),
|
Membership.roles.through(membership_id=m_bde_id, role_id=BDE_ROLE_PK),
|
||||||
Membership.roles.through(membership_id=m_id,role_id=KFET_ROLE_PK),
|
Membership.roles.through(membership_id=m_kfet_id, role_id=KFET_ROLE_PK),
|
||||||
)
|
)
|
||||||
bulk_mgr.done()
|
bulk_mgr.done()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue