def openmrs_importer_form(self): importers = get_openmrs_importers_by_domain(self.request.domain) if importers: initial = dict(importers[0]) # TODO: Support multiple initial['column_map'] = [ {k: v for k, v in dict(m).items() if k != 'doc_type'} # Just for the pretty for m in initial['column_map'] ] else: initial = {} if self.request.method == 'POST': return OpenmrsImporterForm(self.request.POST, initial=initial) return OpenmrsImporterForm(initial=initial)
def page_context(self): # TODO: Look up locations for location_id field. openmrs_importers = [] for importer in get_openmrs_importers_by_domain(self.request.domain): dict_ = dict(importer) dict_['password'] = PASSWORD_PLACEHOLDER dict_['report_params'] = json.dumps(dict_['report_params'], cls=DjangoJSONEncoder, indent=2) dict_['column_map'] = json.dumps( [ { k: v for k, v in dict(m).items() if not ( # Drop '"doc_type": ColumnMapping' from each column mapping. k == 'doc_type' or # Drop "data_type" if it's not specified (k == 'data_type' and v is None)) } for m in dict_['column_map'] ], indent=2) openmrs_importers.append(dict_) return { 'openmrs_importers': openmrs_importers, 'form': OpenmrsImporterForm( ), # Use an unbound form to render openmrs_importer_template.html }