mirror of
				https://gitlab.crans.org/bde/nk20-scripts
				synced 2025-10-30 22:59:52 +01:00 
			
		
		
		
	add support for GuestTransaction and timing
This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| #!/usr/bin/env python3 | ||||
|  | ||||
| import re | ||||
| import psycopg2 as pg | ||||
| import psycopg2.extras as pge | ||||
| import pytz | ||||
| @@ -16,9 +16,10 @@ from note.models import (TemplateCategory, | ||||
|                          SpecialTransaction | ||||
|                          ) | ||||
| from note.models import Note | ||||
| from activity.models import Guest, GuestTransaction | ||||
|  | ||||
| from member.models import Membership, MembershipTransaction | ||||
| from ._import_utils import ImportCommand, BulkCreateManager | ||||
| from ._import_utils import ImportCommand, BulkCreateManager, timed | ||||
|  | ||||
| BDE_PK = 1 | ||||
| KFET_PK = 2 | ||||
| @@ -48,6 +49,7 @@ class Command(ImportCommand): | ||||
|         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") | ||||
|  | ||||
|     @timed | ||||
|     @transaction.atomic | ||||
|     def import_buttons(self, cur, chunk_size): | ||||
|         categories = dict() | ||||
| @@ -78,6 +80,7 @@ class Command(ImportCommand): | ||||
|         bulk_mgr.done() | ||||
|         return buttons, categories | ||||
|  | ||||
|     @timed | ||||
|     @transaction.atomic | ||||
|     def import_transaction(self, cur, chunk_size, idmin, buttons, categories): | ||||
|         bulk_mgr = BulkCreateManager(chunk_size=chunk_size) | ||||
| @@ -183,8 +186,16 @@ class Command(ImportCommand): | ||||
|                     Membership(**kfet_dict), | ||||
|                 ) | ||||
|             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), | ||||
|                          child_transaction(**child_dict)) | ||||
|             pk_transaction += 1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user