def export_for_group(export_id_or_group, output_dir): if isinstance(export_id_or_group, basestring): try: config = GroupExportConfiguration.get(export_id_or_group) except ResourceNotFound: raise Exception("Couldn't find an export with id %s" % export_id_or_group) else: config = export_id_or_group for config, schema in config.all_exports: try: files = schema.get_export_files(format=config.format) except SchemaMismatchException, e: # fire off a delayed force update to prevent this from happening again rebuild_schemas.delay(config.index) continue payload = files.file.payload if output_dir == "couch": saved = SavedBasicExport.view("couchexport/saved_exports", key=json.dumps(config.index), include_docs=True, reduce=False).one() if not saved: saved = SavedBasicExport(configuration=config) else: saved.configuration = config saved.last_updated = datetime.utcnow() saved.save() saved.set_payload(payload) else: with open(os.path.join(output_dir, config.filename), "wb") as f: f.write(payload)
def export_data(request): # HACK this is hardcoded to something in the DB export_group = GroupExportConfiguration.get("export_all_forms") return render_to_response(request, "patient/export_data.html", {"clinic_encounters": CLINIC_ENCOUNTERS, "chw_encounters": CHW_ENCOUNTERS, "group": export_group})
def export_for_group(export_id_or_group, output_dir): if isinstance(export_id_or_group, basestring): try: config = GroupExportConfiguration.get(export_id_or_group) except ResourceNotFound: raise Exception("Couldn't find an export with id %s" % export_id_or_group) else: config = export_id_or_group for config, schema in config.all_exports: try: tmp, _ = schema.get_export_files(format=config.format) except SchemaMismatchException, e: # fire off a delayed force update to prevent this from happening again rebuild_schemas.delay(config.index) continue payload = Temp(tmp).payload if output_dir == "couch": saved = SavedBasicExport.view("couchexport/saved_exports", key=json.dumps(config.index), include_docs=True, reduce=False).one() if not saved: saved = SavedBasicExport(configuration=config) else: saved.configuration = config saved.last_updated = datetime.utcnow() saved.save() saved.set_payload(payload) else: with open(os.path.join(output_dir, config.filename), "wb") as f: f.write(payload)
def handle(self, *args, **options): if len(args) < 2: raise CommandError('Please specify %s.' % self.label) export_id = args[0] output_dir = args[1] try: config = GroupExportConfiguration.get(export_id) except ResourceNotFound: raise CommandError("Couldn't find an export with id %s" % export_id) for export_config in config.full_exports: print "exporting %s to %s" % (export_config.name, output_dir) # special case couch storage if output_dir == "couch": fd, path = tempfile.mkstemp() with os.fdopen(fd, 'wb') as f: export(export_config.index, f, format=export_config.format) # got the file, now rewrite it to couch saved = SavedBasicExport.view("couchexport/saved_exports", key=json.dumps(export_config.index), include_docs=True, reduce=False).one() if not saved: saved = SavedBasicExport(configuration=export_config) saved.save() with open(path, "rb") as f: saved.put_attachment(f.read(), export_config.filename) saved.last_updated = datetime.utcnow() saved.save() os.remove(path) else: with open(os.path.join(output_dir, export_config.filename), "wb") as f: export(export_config.index, f, format=export_config.format)
def export_for_group(export_id_or_group, output_dir, last_access_cutoff=None): if isinstance(export_id_or_group, basestring): try: config = GroupExportConfiguration.get(export_id_or_group) except ResourceNotFound: raise Exception("Couldn't find an export with id %s" % export_id_or_group) else: config = export_id_or_group for subconfig, schema in config.all_exports: try: rebuild_export(subconfig, schema, output_dir, last_access_cutoff=last_access_cutoff) except ExportRebuildError: continue except Exception, e: notify_exception(None, 'Problem building export {} in domain {}: {}'.format( subconfig.index, getattr(config, 'domain', 'unknown'), e ))
def view_export_group(request, group_id): group = GroupExportConfiguration.get(group_id) return render_to_response('couchexport/export_group.html', {"group": group}, context_instance=RequestContext(request))
def view_export_group(request, group_id): group = GroupExportConfiguration.get(group_id) return render_to_response('couchexport/export_group.html', {"group" : group}, context_instance=RequestContext(request))