def get_event_section_data(regform, management=False, registration=None): data = [] if not registration: return [ s.view_data for s in regform.sections if not s.is_deleted and (management or not s.is_manager_only) ] registration_data = {r.field_data.field.id: r for r in registration.data} for section in regform.sections: if section.is_deleted or (not management and section.is_manager_only): continue section_data = section.own_data section_data['items'] = [] for child in section.fields: if child.is_deleted: continue if isinstance(child.field_impl, ChoiceBaseField) or isinstance( child.field_impl, AccommodationField): field_data = get_field_merged_options(child, registration_data) else: field_data = child.view_data section_data['items'].append(field_data) data.append(section_data) return data
def get_flat_section_submission_data(regform, *, management=False, registration=None): section_data = { s.id: camelize_keys(s.own_data) for s in regform.active_sections if management or not s.is_manager_only } item_data = {} registration_data = {r.field_data.field.id: r for r in registration.data} if registration else None for item in regform.active_fields: can_modify = management or not item.parent.is_manager_only if not can_modify: continue if registration and isinstance(item.field_impl, (ChoiceBaseField, AccommodationField)): field_data = get_field_merged_options(item, registration_data) elif registration and isinstance(item.field_impl, AccompanyingPersonsField): field_data = item.view_data field_data[ 'availablePlaces'] = item.field_impl.get_available_places( registration) else: field_data = item.view_data item_data[item.id] = field_data for item in regform.active_labels: item_data[item.id] = item.view_data return {'sections': section_data, 'items': item_data}
def get_event_section_data(regform, management=False, registration=None): data = [] if not registration: return [s.view_data for s in regform.sections if not s.is_deleted and (management or not s.is_manager_only)] registration_data = {r.field_data.field.id: r for r in registration.data} for section in regform.sections: if section.is_deleted or (not management and section.is_manager_only): continue section_data = section.own_data section_data['items'] = [] for child in section.fields: if child.is_deleted: continue if isinstance(child.field_impl, ChoiceBaseField) or isinstance(child.field_impl, AccommodationField): field_data = get_field_merged_options(child, registration_data) else: field_data = child.view_data section_data['items'].append(field_data) data.append(section_data) return data