def run(self, **kwargs): """Create the xls file""" form_fields = [ 'title', 'slug', 'intro', 'response', 'email_text', 'subject_template', 'send_email', 'email_from', 'email_copies', 'completion_url', 'custom_payment', 'payment_methods', 'allow_anonymous_view', 'allow_user_view', 'allow_member_view', 'allow_user_edit', 'allow_member_edit', 'create_dt', 'update_dt', 'creator', 'creator_username', 'owner', 'owner_username', 'status', 'status_detail', ] field_fields = [ 'label', 'field_type', 'field_function', 'required', 'visible', 'choices', 'position', 'default', ] pricing_fields = [ 'label', 'price', ] forms = Form.objects.filter(status=True) max_fields = forms.annotate(num_fields=Count('fields')).aggregate( Max('num_fields'))['num_fields__max'] max_pricings = forms.annotate(num_pricings=Count('pricing')).aggregate( Max('num_pricings'))['num_pricings__max'] file_name = 'forms.csv' data_row_list = [] for form in forms: data_row = [] # form setup form_d = full_model_to_dict(form) for field in form_fields: if field == 'payment_methods': value = [m.human_name for m in form.payment_methods.all()] else: value = form_d[field] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) if form.fields.all(): # field setup for field in form.fields.all(): field_d = full_model_to_dict(field) for f in field_fields: value = field_d[f] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) # fill out the rest of the field columns if form.fields.all().count() < max_fields: for i in range(0, max_fields - form.fields.all().count()): for f in field_fields: data_row.append('') if form.pricing_set.all(): # field setup for pricing in form.pricing_set.all(): pricing_d = full_model_to_dict(pricing) for f in pricing_fields: value = pricing_d[f] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) # fill out the rest of the field columns if form.pricing_set.all().count() < max_pricings: for i in range(0, max_pricings - form.pricing_set.all().count()): for f in pricing_fields: data_row.append('') data_row_list.append(data_row) fields = form_fields for i in range(0, max_fields): fields = fields + ["field %s %s" % (i, f) for f in field_fields] for i in range(0, max_pricings): fields = fields + [ "pricing %s %s" % (i, f) for f in pricing_fields ] return render_csv(file_name, fields, data_row_list)
def run(self, **kwargs): """Create the xls file""" nav_fields = [ 'title', 'description', 'megamenu', 'allow_anonymous_view', 'allow_user_view', 'allow_member_view', 'allow_user_edit', 'allow_member_edit', 'create_dt', 'update_dt', 'creator', 'creator_username', 'owner', 'owner_username', 'status', 'status_detail', ] nav_item_fields = [ 'label', 'title', 'new_window', 'css', 'position', 'level', 'page', 'url', ] navs = Nav.objects.filter(status=True) max_nav_items = navs.annotate(num_navitems=Count('navitem')).aggregate( Max('num_navitems'))['num_navitems__max'] file_name = 'navs.csv' data_row_list = [] for nav in navs: data_row = [] # nav setup nav_d = full_model_to_dict(nav) for field in nav_fields: value = nav_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) if nav.navitem_set.all(): # nav_item setup for nav_item in nav.navitem_set.all(): nav_item_d = full_model_to_dict(nav_item) for field in nav_item_fields: value = nav_item_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) # fill out the rest of the nav_item columns if nav.navitem_set.all().count() < max_nav_items: for i in range(0, max_nav_items - nav.navitem_set.all().count()): for field in nav_item_fields: data_row.append('') data_row_list.append(data_row) fields = nav_fields for i in range(0, max_nav_items): fields = fields + [ "nav_item %s %s" % (i, f) for f in nav_item_fields ] return render_csv(file_name, fields, data_row_list)
def run(self, **kwargs): """Create the xls file""" event_fields = [ 'entity', 'type', 'title', 'description', 'all_day', 'start_dt', 'end_dt', 'timezone', 'private_slug', 'password', 'on_weekend', 'external_url', 'image', 'tags', 'allow_anonymous_view', 'allow_user_view', 'allow_member_view', 'allow_user_edit', 'allow_member_edit', 'create_dt', 'update_dt', 'creator', 'creator_username', 'owner', 'owner_username', 'status', 'status_detail', ] place_fields = [ 'name', 'description', 'address', 'city', 'state', 'zip', 'country', 'url', ] configuration_fields = [ 'payment_method', 'payment_required', 'limit', 'enabled', 'is_guest_price', 'use_custom_reg_form', 'reg_form', 'bind_reg_form_to_conf_only', ] speaker_fields = [ 'name', 'description', ] organizer_fields = [ 'name', 'description', ] pricing_fields = [ 'title', 'quantity', 'group', 'price', 'reg_form', 'start_dt', 'end_dt', 'allow_anonymous', 'allow_user', 'allow_member', 'status', ] events = Event.objects.filter(status=True) max_speakers = events.annotate(num_speakers=Count('speaker')).aggregate(Max('num_speakers'))['num_speakers__max'] max_organizers = events.annotate(num_organizers=Count('organizer')).aggregate(Max('num_organizers'))['num_organizers__max'] max_pricings = events.annotate(num_pricings=Count('registration_configuration__regconfpricing')).aggregate(Max('num_pricings'))['num_pricings__max'] file_name = 'events.csv' data_row_list = [] for event in events: data_row = [] # event setup event_d = full_model_to_dict(event, fields=event_fields) for field in event_fields: value = None if field == 'entity': if event.entity: value = event.entity.entity_name elif field == 'type': if event.type: value = event.type.name elif field in event_d: value = event_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) if event.place: # place setup place_d = full_model_to_dict(event.place) for field in place_fields: value = place_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) if event.registration_configuration: # config setup conf_d = full_model_to_dict(event.registration_configuration) for field in configuration_fields: if field == "payment_method": value = event.registration_configuration.payment_method.all() else: value = conf_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) if event.speaker_set.all(): # speaker setup for speaker in event.speaker_set.all(): speaker_d = full_model_to_dict(speaker) for field in speaker_fields: value = speaker_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) # fill out the rest of the speaker columns if event.speaker_set.all().count() < max_speakers: for i in range(0, max_speakers - event.speaker_set.all().count()): for field in speaker_fields: data_row.append('') if event.organizer_set.all(): # organizer setup for organizer in event.organizer_set.all(): organizer_d = full_model_to_dict(organizer) for field in organizer_fields: value = organizer_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) # fill out the rest of the organizer columns if event.organizer_set.all().count() < max_organizers: for i in range(0, max_organizers - event.organizer_set.all().count()): for field in organizer_fields: data_row.append('') reg_conf = event.registration_configuration if reg_conf and reg_conf.regconfpricing_set.all(): # pricing setup for pricing in reg_conf.regconfpricing_set.all(): pricing_d = full_model_to_dict(pricing) for field in pricing_fields: value = pricing_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) # fill out the rest of the pricing columns if reg_conf and reg_conf.regconfpricing_set.all().count() < max_pricings: for i in range(0, max_pricings - reg_conf.regconfpricing_set.all().count()): for field in pricing_fields: data_row.append('') data_row_list.append(data_row) fields = event_fields + ["place %s" % f for f in place_fields] fields = fields + ["config %s" % f for f in configuration_fields] for i in range(0, max_speakers): fields = fields + ["speaker %s %s" % (i, f) for f in speaker_fields] for i in range(0, max_organizers): fields = fields + ["organizer %s %s" % (i, f) for f in organizer_fields] for i in range(0, max_pricings): fields = fields + ["pricing %s %s" % (i, f) for f in pricing_fields] return render_csv(file_name, fields, data_row_list)
def run(self, **kwargs): """Create the xls file""" event_fields = [ 'entity', 'type', 'title', 'description', 'all_day', 'start_dt', 'end_dt', 'timezone', 'private_slug', 'password', 'on_weekend', 'external_url', 'image', 'tags', 'allow_anonymous_view', 'allow_user_view', 'allow_member_view', 'allow_user_edit', 'allow_member_edit', 'create_dt', 'update_dt', 'creator', 'creator_username', 'owner', 'owner_username', 'status', 'status_detail', ] place_fields = [ 'name', 'description', 'address', 'city', 'state', 'zip', 'country', 'url', ] configuration_fields = [ 'payment_method', 'payment_required', 'limit', 'enabled', 'is_guest_price', 'use_custom_reg_form', 'reg_form', 'bind_reg_form_to_conf_only', ] speaker_fields = [ 'name', 'description', ] organizer_fields = [ 'name', 'description', ] pricing_fields = [ 'title', 'quantity', 'group', 'price', 'reg_form', 'start_dt', 'end_dt', 'allow_anonymous', 'allow_user', 'allow_member', 'status', ] events = Event.objects.filter(status=True) max_speakers = events.annotate(num_speakers=Count('speaker')).aggregate(Max('num_speakers'))['num_speakers__max'] max_organizers = events.annotate(num_organizers=Count('organizer')).aggregate(Max('num_organizers'))['num_organizers__max'] max_pricings = events.annotate(num_pricings=Count('registration_configuration__regconfpricing')).aggregate(Max('num_pricings'))['num_pricings__max'] file_name = 'events.csv' data_row_list = [] for event in events: data_row = [] # event setup event_d = full_model_to_dict(event, fields=event_fields) for field in event_fields: value = None if field == 'entity': if event.entity: value = event.entity.entity_name elif field == 'type': if event.type: value = event.type.name elif field in event_d: value = event_d[field] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) if event.place: # place setup place_d = full_model_to_dict(event.place) for field in place_fields: value = place_d[field] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) if event.registration_configuration: # config setup conf_d = full_model_to_dict(event.registration_configuration) for field in configuration_fields: if field == "payment_method": value = event.registration_configuration.payment_method.all() else: value = conf_d[field] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) if event.speaker_set.all(): # speaker setup for speaker in event.speaker_set.all(): speaker_d = full_model_to_dict(speaker) for field in speaker_fields: value = speaker_d[field] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) # fill out the rest of the speaker columns if event.speaker_set.all().count() < max_speakers: for i in range(0, max_speakers - event.speaker_set.all().count()): for field in speaker_fields: data_row.append('') if event.organizer_set.all(): # organizer setup for organizer in event.organizer_set.all(): organizer_d = full_model_to_dict(organizer) for field in organizer_fields: value = organizer_d[field] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) # fill out the rest of the organizer columns if event.organizer_set.all().count() < max_organizers: for i in range(0, max_organizers - event.organizer_set.all().count()): for field in organizer_fields: data_row.append('') reg_conf = event.registration_configuration if reg_conf and reg_conf.regconfpricing_set.all(): # pricing setup for pricing in reg_conf.regconfpricing_set.all(): pricing_d = full_model_to_dict(pricing) for field in pricing_fields: value = pricing_d[field] value = str(value).replace(os.linesep, ' ').rstrip() value = escape_csv(value) data_row.append(value) # fill out the rest of the pricing columns if reg_conf and reg_conf.regconfpricing_set.all().count() < max_pricings: for i in range(0, max_pricings - reg_conf.regconfpricing_set.all().count()): for field in pricing_fields: data_row.append('') data_row_list.append(data_row) fields = event_fields + ["place %s" % f for f in place_fields] fields = fields + ["config %s" % f for f in configuration_fields] for i in range(0, max_speakers): fields = fields + ["speaker %s %s" % (i, f) for f in speaker_fields] for i in range(0, max_organizers): fields = fields + ["organizer %s %s" % (i, f) for f in organizer_fields] for i in range(0, max_pricings): fields = fields + ["pricing %s %s" % (i, f) for f in pricing_fields] return render_csv(file_name, fields, data_row_list)
def run(self, **kwargs): """Create the xls file""" form_fields = [ 'title', 'slug', 'intro', 'response', 'email_text', 'subject_template', 'send_email', 'email_from', 'email_copies', 'completion_url', 'custom_payment', 'payment_methods', 'allow_anonymous_view', 'allow_user_view', 'allow_member_view', 'allow_user_edit', 'allow_member_edit', 'create_dt', 'update_dt', 'creator', 'creator_username', 'owner', 'owner_username', 'status', 'status_detail', ] field_fields = [ 'label', 'field_type', 'field_function', 'required', 'visible', 'choices', 'position', 'default', ] pricing_fields = [ 'label', 'price', ] forms = Form.objects.filter(status=True) max_fields = forms.annotate(num_fields=Count('fields')).aggregate(Max('num_fields'))['num_fields__max'] max_pricings = forms.annotate(num_pricings=Count('pricing')).aggregate(Max('num_pricings'))['num_pricings__max'] file_name = 'forms.csv' data_row_list = [] for form in forms: data_row = [] # form setup form_d = full_model_to_dict(form) for field in form_fields: if field == 'payment_methods': value = [m.human_name for m in form.payment_methods.all()] else: value = form_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) if form.fields.all(): # field setup for field in form.fields.all(): field_d = full_model_to_dict(field) for f in field_fields: value = field_d[f] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) # fill out the rest of the field columns if form.fields.all().count() < max_fields: for i in range(0, max_fields - form.fields.all().count()): for f in field_fields: data_row.append('') if form.pricing_set.all(): # field setup for pricing in form.pricing_set.all(): pricing_d = full_model_to_dict(pricing) for f in pricing_fields: value = pricing_d[f] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) # fill out the rest of the field columns if form.pricing_set.all().count() < max_pricings: for i in range(0, max_pricings - form.pricing_set.all().count()): for f in pricing_fields: data_row.append('') data_row_list.append(data_row) fields = form_fields for i in range(0, max_fields): fields = fields + ["field %s %s" % (i, f) for f in field_fields] for i in range(0, max_pricings): fields = fields + ["pricing %s %s" % (i, f) for f in pricing_fields] return render_csv(file_name, fields, data_row_list)
def run(self, **kwargs): """Create the xls file""" nav_fields = [ 'title', 'description', 'megamenu', 'allow_anonymous_view', 'allow_user_view', 'allow_member_view', 'allow_user_edit', 'allow_member_edit', 'create_dt', 'update_dt', 'creator', 'creator_username', 'owner', 'owner_username', 'status', 'status_detail', ] nav_item_fields = [ 'label', 'title', 'new_window', 'css', 'position', 'level', 'page', 'url', ] navs = Nav.objects.filter(status=True) max_nav_items = navs.annotate(num_navitems=Count('navitem')).aggregate(Max('num_navitems'))['num_navitems__max'] file_name = 'navs.csv' data_row_list = [] for nav in navs: data_row = [] # nav setup nav_d = full_model_to_dict(nav) for field in nav_fields: value = nav_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) if nav.navitem_set.all(): # nav_item setup for nav_item in nav.navitem_set.all(): nav_item_d = full_model_to_dict(nav_item) for field in nav_item_fields: value = nav_item_d[field] value = unicode(value).replace(os.linesep, ' ').rstrip() data_row.append(value) # fill out the rest of the nav_item columns if nav.navitem_set.all().count() < max_nav_items: for i in range(0, max_nav_items - nav.navitem_set.all().count()): for field in nav_item_fields: data_row.append('') data_row_list.append(data_row) fields = nav_fields for i in range(0, max_nav_items): fields = fields + ["nav_item %s %s" % (i, f) for f in nav_item_fields] return render_csv(file_name, fields, data_row_list)