2121 From ,
2222 Mail ,
2323)
24- from sqlalchemy import asc , desc , func
2524
2625from app .api .chat .rocket_chat import rename_rocketchat_room
2726from app .api .exports import event_export_task_base
28- from app .api .helpers .csv_jobs_util import export_attendees_csv
2927from app .api .helpers .db import safe_query , save_to_db
3028from app .api .helpers .files import (
3129 create_save_image_sizes ,
4139from app .api .imports import import_event_task_base
4240from app .instance import create_app
4341from app .models import db
44- from app .models .custom_form import ATTENDEE_CUSTOM_FORM , CustomForms
42+ from app .models .custom_form import CustomForms , ATTENDEE_CUSTOM_FORM
4543from app .models .discount_code import DiscountCode
4644from app .models .event import Event
4745from app .models .exhibitor import Exhibitor
5452from app .models .user import User
5553from app .models .user_follow_group import UserFollowGroup
5654from app .settings import get_settings
57-
5855from .import_helpers import update_import_job
56+ from app .api .helpers .csv_jobs_util import export_attendees_csv
5957
6058"""
6159Define all API v2 celery tasks here
@@ -539,15 +537,9 @@ def export_order_pdf_task(self, event_id):
539537
540538@celery .task (base = RequestContextTask , name = 'export.attendees.csv' , bind = True )
541539def export_attendees_csv_task (self , event_id ):
542- attendees = (
543- db .session .query (TicketHolder )
544- .filter_by (event_id = event_id )
545- .order_by (desc (func .date (TicketHolder .created_at )))
546- )
547- custom_forms = (
548- db .session .query (CustomForms )
549- .filter_by (event_id = event_id , form = CustomForms .TYPE .ATTENDEE , is_included = True )
550- .order_by (asc ("position" ))
540+ attendees = db .session .query (TicketHolder ).filter_by (event_id = event_id )
541+ custom_forms = db .session .query (CustomForms ).filter_by (
542+ event_id = event_id , form = CustomForms .TYPE .ATTENDEE , is_included = True
551543 )
552544
553545 field_headers = list (ATTENDEE_CUSTOM_FORM .keys ())
@@ -556,14 +548,14 @@ def custom_form_validation(cf_orm, field_headers):
556548 # set() is O(1) in membership testing
557549 field_headers_set = set (field_headers )
558550 forms_result = [None ] * len (field_headers_set )
559- index_append = 0
560551
561552 for row in cf_orm :
562553 if row .field_identifier in field_headers_set :
554+
563555 field_headers_set .discard (row .field_identifier )
556+ index_append = field_headers .index (row .field_identifier )
564557 # forms_result.append(row)
565- forms_result .insert (index_append , row )
566- index_append += 1
558+ forms_result .insert (index_append , row )
567559
568560 forms_result = [e for e in forms_result if e is not None ]
569561 return forms_result
@@ -577,11 +569,7 @@ def custom_form_validation(cf_orm, field_headers):
577569 file_path = os .path .join (filedir , filename )
578570
579571 dict_list = export_attendees_csv (attendees , custom_forms , ATTENDEE_CUSTOM_FORM )
580- csv_headers = []
581- for row in dict_list :
582- for key in row .keys ():
583- if key is not None and key not in csv_headers :
584- csv_headers .append (key )
572+ csv_headers = list (dict_list [0 ].keys ())
585573
586574 with open (file_path , "w" ) as temp_file :
587575 writer = csv .DictWriter (temp_file , fieldnames = csv_headers )
0 commit comments