def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): if request.user.groups.filter(name='slac_mose2').exists(): from webtzite.models import RegisteredUser user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import SlacMose2Rester with SlacMose2Rester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) contribs = mpr.get_contributions() ctx['graphs'], ctx['uuids'] = [], [] for plot in contribs['graphs']: rplot = render_plot(plot, webapp=True) ctx['graphs'].append(rplot[0]) ctx['uuids'].append(str(rplot[1])) ctx['traces'] = dumps(contribs['traces']) ctx['trace_names'] = [ trace['name'] for trace in contribs['traces'] ] except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': msg}) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("slac_mose2_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with UWSI2Rester(API_KEY, endpoint=ENDPOINT) as mpr: try: contribs = mpr.get_uwsi2_contributions() if not contribs: raise Exception('No contributions found for UW/SI2 Explorer!') ranges = {} for contrib in contribs: df = contrib['table'] df.columns = list(df.columns[:-1]) + ['El.'] for col in df.columns[:-1]: low, upp = min(df[col]), max(df[col]) if col not in ranges: ranges[col] = [low, upp] else: if low < ranges[col][0]: ranges[col][0] = low if upp > ranges[col][1]: ranges[col][1] = upp contrib['table'] = get_backgrid_table(df) ranges = jsanitize(ranges) contribs = jsanitize(contribs) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("uwsi2_explorer_index.html", locals(), ctx)
def contribution(request, collection, cid): material = {'detail_id': collection[:-1]} ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with MPContribsRester(API_KEY, endpoint=ENDPOINT) as mpr: try: contrib = mpr.query_contributions(criteria={'_id': cid}, projection={'build': 1})[0] if 'build' in contrib and contrib['build']: mpr.build_contribution(cid) mpr.set_build_flag(cid, False) material = mpr.query_contributions( criteria={'_id': ObjectId(cid)}, collection=collection, projection={'_id': 0})[0] except IndexError: mpr.build_contribution(cid) material = mpr.query_contributions( criteria={'_id': ObjectId(cid)}, collection=collection, projection={'_id': 0})[0] material['nb'], material['nb_js'] = export_notebook( nbformat.from_dict(material['nb']), cid, separate_script=True) ctx.update({'material': jsanitize(material)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("mpcontribs_explorer_contribution.html", locals(), ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): if request.user.groups.filter(name='slac_mose2').exists(): from webtzite.models import RegisteredUser user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import SlacMose2Rester with SlacMose2Rester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) contribs = mpr.get_contributions() ctx['graphs'], ctx['uuids'] = [], [] for plot in contribs['graphs']: rplot = render_plot(plot, webapp=True) ctx['graphs'].append(rplot[0]) ctx['uuids'].append(str(rplot[1])) ctx['traces'] = dumps(contribs['traces']) ctx['trace_names'] = [trace['name'] for trace in contribs['traces']] except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': msg}) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("slac_mose2_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): if request.user.groups.filter(name='slac_mose2').exists(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import SlacMose2Rester with SlacMose2Rester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) contribs = mpr.get_contributions() ctx['graphs'], ctx['uuids'] = [], [] for plot in contribs['graphs']: rplot = render_plot(plot, webapp=True) ctx['graphs'].append(rplot[0]) ctx['uuids'].append(str(rplot[1])) ctx['traces'] = dumps(contribs['traces']) ctx['trace_names'] = [trace['name'] for trace in contribs['traces']] mod = os.path.dirname(__file__).split(os.sep)[-2] ctx['static_url'] = '_'.join([STATIC_URL[:-1], mod]) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'access restricted to "slac_mose2" user group!'}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("slac_mose2_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): from webtzite.models import RegisteredUser user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import DtuRester with DtuRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ctx['filters'] = {} filters = ['C'] keys, subkeys = ['ΔE-KS', 'ΔE-QP'], ['indirect', 'direct'] filters += ['_'.join([k, sk]) for k in keys for sk in subkeys] if request.method == 'POST': ctx['filters'] = dict( (f, map(float, request.POST['{}_slider'.format(f)].split(','))) for f in filters ) df = mpr.get_contributions(bandgap_range=ctx['filters']) if request.method == 'GET': for f in filters: values = [float(v.split()[0]) for i,v in df[f.replace('_', '##')].iteritems()] ctx['filters'][f] = [min(values), max(values)] ctx['nresults'] = df.shape[0] ctx['table'] = render_dataframe(df, webapp=True) except Exception as ex: ctx['alert'] = str(ex) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("dtu_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): a_tags = [[], []] for mod_path in get_users_modules(): explorer = os.path.join(mod_path, 'explorer', 'apps.py') if os.path.exists(explorer): entry = { 'name': get_user_explorer_name(explorer), 'title': os.path.basename(mod_path).replace('_', ' ') } mod_path_split = mod_path.split(os.sep) rester_path_split = mod_path_split[-4:] + ['rest', 'rester'] rester_path = os.path.join(*rester_path_split) rester_path += '.py' idx = 1 if os.path.exists(rester_path): m = import_module('.'.join(rester_path_split[1:])) UserRester = getattr(m, get_user_rester(mod_path_split[-1])) endpoint = request.build_absolute_uri(get_endpoint()) r = UserRester(request.user.api_key, endpoint=endpoint) idx = int(not r.released) a_tags[idx].append(entry) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("mpcontribs_portal_index.html", locals(), ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import DtuRester with DtuRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ctx['filters'] = {} filters = ['C'] keys, subkeys = ['ΔE-KS', 'ΔE-QP'], ['indirect', 'direct'] filters += ['_'.join([k, sk]) for k in keys for sk in subkeys] if request.method == 'POST': ctx['filters'] = dict( (f, map(float, request.POST['{}_slider'.format(f)].split(','))) for f in filters ) df = mpr.get_contributions(bandgap_range=ctx['filters']) if request.method == 'GET': for f in filters: values = [float(v.split()[0]) for i,v in df[f.replace('_', '##')].iteritems()] ctx['filters'][f] = [min(values), max(values)] ctx['nresults'] = df.shape[0] ctx['table'] = render_dataframe(df, webapp=True) except Exception as ex: ctx['alert'] = str(ex) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("dtu_explorer_index.html", ctx)
def cif(request, cid, structure_name): if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with MPContribsRester(API_KEY, endpoint=ENDPOINT) as mpr: cif = mpr.get_cif(cid, structure_name) if cif: return HttpResponse(cif, content_type='text/plain') return HttpResponse(status=404)
def tolerance_factors(request): ctx = RequestContext(request) if request.user.is_authenticated: user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import RedoxThermoCspRester with RedoxThermoCspRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: ionic_radii = render_dataframe(mpr.get_ionic_radii(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: return redirect('{}?next={}'.format(reverse('webtzite:cas_ng_login'), request.path)) return render_to_response("redox_thermo_csp_explorer_tolerance_factors.html", ctx.flatten())
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with DtuRester(API_KEY, endpoint=ENDPOINT) as mpr: try: provenance = render_dict(mpr.get_provenance(), webapp=True) table = render_dataframe(mpr.get_contributions(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("dtu_explorer_index.html", locals(), ctx)
def tolerance_factors(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import DlrVietenRester with DlrVietenRester(API_KEY, endpoint=ENDPOINT) as mpr: try: ionic_radii = render_dataframe(mpr.get_ionic_radii(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("dlr_vieten_explorer_tolerance_factors.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import DibbsRester with DibbsRester(API_KEY, endpoint=ENDPOINT) as mpr: try: ctx['title'] = mpr.get_provenance().get('title') ctx['table'] = render_dataframe(mpr.get_contributions(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("dibbs_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with MnO2PhaseSelectionRester(API_KEY, endpoint=ENDPOINT) as mpr: #provenance = mpr.get_provenance() tables = {} for phase in mpr.get_phases(): df = mpr.get_contributions(phase=phase) tables[phase] = render_dataframe(df, webapp=True) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("MnO2_phase_selection_explorer_index.html", locals(), ctx)
def tolerance_factors(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import DlrVietenRester with DlrVietenRester(API_KEY, endpoint=ENDPOINT) as mpr: try: ionic_radii = render_dataframe(mpr.get_ionic_radii(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("dlr_vieten_explorer_tolerance_factors.html", locals(), ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): from ..rest.rester import PerovskitesDiffusionRester with PerovskitesDiffusionRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ctx['abbreviations'] = render_dict(mpr.get_abbreviations(), webapp=True) ctx['table'] = render_dataframe(mpr.get_contributions(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("perovskites_diffusion_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with SlacMoSe2Rester(API_KEY, endpoint=ENDPOINT) as mpr: try: provenance = render_dict(mpr.get_provenance(), webapp=True) graphs = {} for key, plot in mpr.get_graphs().items(): graphs[key] = render_plot(plot, webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("slac_mose2_explorer_index.html", locals(), ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): from ..rest.rester import DiluteSoluteDiffusionRester with DiluteSoluteDiffusionRester( user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ranges, contribs = {}, [] for host in mpr.get_hosts(): contrib = {} df = mpr.get_contributions(host) contrib['table'] = render_dataframe(df, webapp=True, paginate=False) contrib['formula'] = host contrib.update(mpr.get_table_info(host)) contrib['short_cid'] = get_short_object_id(contrib['cid']) contribs.append(contrib) for col in df.columns: if col == 'El.': continue low, upp = min(df[col]), max(df[col]) if col == 'Z': low -= 1 upp += 1 if col not in ranges: ranges[col] = [low, upp] else: if low < ranges[col][0]: ranges[col][0] = low if upp > ranges[col][1]: ranges[col][1] = upp ctx['ranges'] = dumps(ranges) ctx['contribs'] = contribs except Exception as ex: ctx['alert'] = str(ex) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("dilute_solute_diffusion_explorer_index.html", ctx)
def index(request): from webtzite.models import RegisteredUser ctx = RequestContext(request) if request.user.is_authenticated(): user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import DefectGenomePcfcMaterialsRester with DefectGenomePcfcMaterialsRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ctx['table'] = render_dataframe(mpr.get_contributions(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("defect_genome_pcfc_materials_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import PerovskitesDiffusionRester with PerovskitesDiffusionRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ctx['abbreviations'] = render_dict(mpr.get_abbreviations(), webapp=True) ctx['table'] = render_dataframe(mpr.get_contributions(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("perovskites_diffusion_explorer_index.html", ctx)
def contribution(request, collection, cid): material = {} if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with MPContribsRester(API_KEY, endpoint=ENDPOINT) as mpr: material = mpr.query_contributions(criteria={'_id': ObjectId(cid)}, collection=collection, projection={'_id': 0})[0] material['nb'], material['nb_js'] = export_notebook( nbformat.from_dict(material['nb']), cid, set_div_names=False, separate_script=True) material['detail_id'] = collection[:-1] ctx = RequestContext(request, {'material': jsanitize(material)}) return render_to_response("mpcontribs_explorer_contribution.html", locals(), ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import DiluteSoluteDiffusionRester with DiluteSoluteDiffusionRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ranges, contribs = {}, [] for host in mpr.get_hosts(): contrib = {} df = mpr.get_contributions(host) contrib['table'] = render_dataframe(df, webapp=True, paginate=False) contrib['formula'] = host contrib.update(mpr.get_table_info(host)) contrib['short_cid'] = get_short_object_id(contrib['cid']) contribs.append(contrib) for col in df.columns: if col == 'El.': continue low, upp = min(df[col]), max(df[col]) if col == 'Z': low -= 1 upp += 1 if col not in ranges: ranges[col] = [low, upp] else: if low < ranges[col][0]: ranges[col][0] = low if upp > ranges[col][1]: ranges[col][1] = upp ctx['ranges'] = dumps(ranges) ctx['contribs'] = contribs except Exception as ex: ctx['alert'] = str(ex) else: ctx['alert'] = 'Please log in!' return render_to_response("dilute_solute_diffusion_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): from webtzite.models import RegisteredUser user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import SwfRester with SwfRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) df = mpr.get_contributions() ctx['table'] = render_dataframe(df, webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("swf_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import SwfRester with SwfRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() title = prov.get('title') provenance = render_dict(prov, webapp=True) table = render_dataframe(mpr.get_contributions(), webapp=True) mod = os.path.dirname(__file__).split(os.sep)[-2] static_url = '_'.join([STATIC_URL[:-1], mod]) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("swf_explorer_index.html", locals(), ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import AlsBeamlineRester with AlsBeamlineRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ctx['table'] = render_dataframe(mpr.get_contributions(), webapp=True) for typ in ['XAS', 'XMCD']: html, divid = render_plot(mpr.get_all_spectra(typ), webapp=True) ctx[typ] = {'html': html, 'divid': divid} except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("als_beamline_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import PerovskitesDiffusionRester with PerovskitesDiffusionRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() title = prov.get('title') provenance = render_dict(prov, webapp=True) abbreviations = render_dict(mpr.get_abbreviations(), webapp=True) table = render_dataframe(mpr.get_contributions(), webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("perovskites_diffusion_explorer_index.html", locals(), ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import BoltztrapRester with BoltztrapRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() title = prov.get('title') provenance = render_dict(prov, webapp=True) tables = {} for doping in ['n', 'p']: df = mpr.get_contributions(doping=doping) tables[doping] = render_dataframe(df, webapp=True) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("boltztrap_explorer_index.html", locals(), ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import SwfRester with SwfRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) df = mpr.get_contributions() ctx['table'] = render_dataframe(df, webapp=True) mod = os.path.dirname(__file__).split(os.sep)[-2] ctx['static_url'] = '_'.join([STATIC_URL[:-1], mod]) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("swf_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import Mno2PhaseSelectionRester with Mno2PhaseSelectionRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) tables = {} for phase in mpr.get_phases(): df = mpr.get_contributions(phase=phase) tables[phase] = render_dataframe(df, webapp=True) ctx['tables'] = tables except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("MnO2_phase_selection_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import BoltztrapRester with BoltztrapRester(API_KEY, endpoint=ENDPOINT) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) df = mpr.get_contributions(limit=3) url = request.build_absolute_uri(request.path) + 'rest/table' ctx['table'] = render_dataframe( df, url=url, total_records=mpr.count(), webapp=True ) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("boltztrap_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) from ..rest.rester import DiluteSoluteDiffusionRester with DiluteSoluteDiffusionRester(API_KEY, endpoint=ENDPOINT) as mpr: try: contribs = mpr.get_contributions() if not contribs: raise Exception( 'No contributions found for DiluteSoluteDiffusion Explorer!' ) ranges = {} for contrib in contribs: df = contrib['table'] df.columns = [df.columns[0], 'El.'] + list(df.columns[2:]) for col in df.columns: if col == 'El.': continue low, upp = min(df[col]), max(df[col]) if col == 'Z': low -= 1 upp += 1 if col not in ranges: ranges[col] = [low, upp] else: if low < ranges[col][0]: ranges[col][0] = low if upp > ranges[col][1]: ranges[col][1] = upp contrib['table'] = get_backgrid_table(df) ranges = jsanitize(ranges) contribs = jsanitize(contribs) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("dilute_solute_diffusion_explorer_index.html", locals(), ctx)
def index(request): ctx = RequestContext(request) from webtzite.models import RegisteredUser if request.user.is_authenticated(): user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import CarrierTransportRester with CarrierTransportRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: ctx['provenance'] = mpr.get_provenance() authors = ctx['provenance'].pop('authors').split(', ') ctx['provenance']['main_author'] = authors[0] ctx['provenance']['etal_authors'] = '<br>'.join(authors[1:]) df = mpr.get_contributions(limit=3) url = request.build_absolute_uri(request.path) + 'rest/table' ctx['table'] = render_dataframe( df, url=url, total_records=mpr.count(), webapp=True ) except Exception as ex: ctx.update({'alert': str(ex)}) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("carrier_transport_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import Mno2PhaseSelectionRester with Mno2PhaseSelectionRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) tables = {} for phase in mpr.get_phases(): df = mpr.get_contributions(phase=phase) tables[phase] = render_dataframe(df, webapp=True) ctx['tables'] = tables except Exception as ex: ctx.update({'alert': str(ex)}) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("MnO2_phase_selection_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) if request.user.is_authenticated(): from webtzite.models import RegisteredUser user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import DtuRester with DtuRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ctx['filters'] = {} filters = ['C'] keys, subkeys = ['ΔE-KS', 'ΔE-QP'], ['indirect', 'direct'] filters += ['_'.join([k, sk]) for k in keys for sk in subkeys] if request.method == 'POST': ctx['filters'] = dict( (f, map(float, request.POST['{}_slider'.format(f)].split( ','))) for f in filters) df = mpr.get_contributions(bandgap_range=ctx['filters']) if request.method == 'GET': for f in filters: values = [ float(v.split()[0]) for i, v in df[f.replace('_', '##')].iteritems() ] ctx['filters'][f] = [min(values), max(values)] ctx['nresults'] = df.shape[0] ctx['table'] = render_dataframe(df, webapp=True) except Exception as ex: ctx['alert'] = str(ex) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("dtu_explorer_index.html", ctx)
def isographs(request): ctx = RequestContext(request) if request.user.is_authenticated: user = RegisteredUser.objects.get(username=request.user.username) if user.groups.filter(name='redox_thermo_csp').exists(): from ..rest.rester import RedoxThermoCspRester with RedoxThermoCspRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) df = mpr.get_contributions() url = request.build_absolute_uri(request.path) + 'rest/table' ctx['table'] = render_dataframe( df, webapp=True, #url=url, total_records=mpr.count() ) except Exception as ex: ctx.update({'alert': str(ex)}) else: ctx.update({'alert': access_msg}) else: return redirect('{}?next={}'.format(reverse('webtzite:cas_ng_login'), request.path)) return render_to_response("redox_thermo_csp_explorer_isographs.html", ctx.flatten())
def index(request): from webtzite.models import RegisteredUser ctx = RequestContext(request) if request.user.is_authenticated(): user = RegisteredUser.objects.get(username=request.user.username) from ..rest.rester import AlsBeamlineRester with AlsBeamlineRester(user.api_key, endpoint=get_endpoint(request)) as mpr: try: prov = mpr.get_provenance() ctx['title'] = prov.pop('title') ctx['provenance'] = render_dict(prov, webapp=True) ctx['table'] = render_dataframe(mpr.get_contributions(), webapp=True) for typ in ['XAS', 'XMCD']: html, divid = render_plot(mpr.get_all_spectra(typ), webapp=True) ctx[typ] = {'html': html, 'divid': divid} except Exception as ex: ctx.update({'alert': str(ex)}) else: return redirect('{}?next={}'.format(reverse('cas_ng_login'), request.path)) return render_to_response("als_beamline_explorer_index.html", ctx)
def index(request): ctx = RequestContext(request) fields = ['identifiers', 'projects', 'cids'] if request.user.is_authenticated(): API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with MPContribsRester(API_KEY, endpoint=ENDPOINT) as mpr: if request.method == 'GET': options = dict((field, set()) for field in fields) docs = mpr.query_contributions() if docs: for doc in docs: options[fields[0]].add(str(doc['mp_cat_id'])) options[fields[1]].add(str(doc['project'])) options[fields[2]].add(str(doc['_id'])) else: ctx.update({'alert': 'No contributions available!'}) options = dict((k, list(v)) for k, v in options.iteritems()) selection = dict((field, []) for field in fields) elif request.method == 'POST': projection_keys = ['mp_cat_id', 'project'] options, selection = (dict((field, [ str(el) for el in json.loads(request.POST['_'.join( [prefix, field])]) ]) for field in fields) for prefix in ['options', 'selection']) mode = request.POST['submit'] if mode == 'Find': criteria = {} for idx, key in enumerate(projection_keys): if selection[fields[idx]]: criteria.update( {key: { '$in': selection[fields[idx]] }}) #if criteria.keys() == [projection_keys[0]]: # # only identifier(s) selected: contribution cards # main_contributions = {} # for identifier in selection[fields[0]]: # main_contributions[identifier] = mpr.get_main_contributions(identifier) #else: docs = mpr.query_contributions(criteria=criteria) urls = [mpr.get_card(doc['_id']) for doc in docs] elif mode == 'Show': if selection[fields[2]]: docs = mpr.query_contributions(criteria={ '_id': { '$in': map(ObjectId, selection[fields[2]]) } }) urls = [] for doc in docs: urls.append(['', '']) urls[-1][0] = '/'.join( [request.path, str(doc['_id'])]) #urls[-1][1] = mpr.get_card(doc['_id']) else: ctx.update( {'alert': 'Enter a contribution identifier!'}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("mpcontribs_explorer_index.html", locals(), ctx)
def index(request, collection='materials'): ctx = RequestContext(request) fields = ['identifiers', 'projects', 'cids'] if request.user.is_authenticated(): if collection in ['materials', 'compositions']: API_KEY = request.user.api_key ENDPOINT = request.build_absolute_uri(get_endpoint()) with MPContribsRester(API_KEY, endpoint=ENDPOINT) as mpr: if request.method == 'GET': options = dict((field, set()) for field in fields) docs = mpr.query_contributions(collection=collection, projection={'nb': 0}) if docs: for doc in docs: options[fields[0]].add(str(doc['mp_cat_id'])) options[fields[1]].add(str(doc['project'])) options[fields[2]].add(str(doc['_id'])) else: ctx.update( {'alert': 'No {} available!'.format(collection)}) options = dict( (k, list(v)) for k, v in options.iteritems()) selection = dict((field, []) for field in fields) elif request.method == 'POST': projection_keys = ['mp_cat_id', 'project'] options, selection = ( dict((field, [ str(el) for el in json.loads(request.POST[ '_'.join([prefix, field])]) ]) for field in fields) for prefix in ['options', 'selection']) mode = request.POST['submit'] if mode == 'Find': criteria = {} for idx, key in enumerate(projection_keys): if selection[fields[idx]]: criteria.update( {key: { '$in': selection[fields[idx]] }}) docs = mpr.query_contributions( criteria=criteria, collection='contributions') urls = [ '/'.join([request.path, str(doc['_id'])]) for doc in docs ] elif mode == 'Show': if selection[fields[2]]: docs = mpr.query_contributions( criteria={ '_id': { '$in': map(ObjectId, selection[fields[2]]) } }, collection='contributions') urls = [ '/'.join([request.path, str(doc['_id'])]) for doc in docs ] else: ctx.update( {'alert': 'Enter a contribution identifier!'}) else: ctx.update( {'alert': 'Collection {} does not exist!'.format(collection)}) else: ctx.update({'alert': 'Please log in!'}) return render_to_response("mpcontribs_explorer_index.html", locals(), ctx)