Example #1
0
def login_user(request):
    if request.user.is_authenticated:
        messages.add_message(request, messages.SUCCESS,
                             "You are already logged in!")
        return HttpResponseRedirect("/profiles/")
    username = password = ''
    context = RequestContext(request)
    if request.POST:
        username = request.POST['username']
        password = request.POST['password']
        print("TRying to login")
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                print("Login done")
                login(request, user)
                messages.add_message(request, messages.SUCCESS,
                                     "Logged in successfully!")
                return HttpResponseRedirect('/profiles/')
            else:
                return HttpResponse("You're account is disabled.")
        else:
            print("unknown user")
            messages.error(request,
                           "username or Password invalid. Please try again!")
            return render_to_response(request, 'login.html', {},
                                      context.flatten())
        print("POST method")
    print("default login page")
    return render(request, 'login.html', context=context.flatten())
Example #2
0
    def post(self, request, *args, **kwargs):
        actor = get_actor_for_request_if_login(request)
        if not request.session.get('actor_id'):
            return redirect('/')

        seller = actor.get_seller()
        phone_number = request.POST['customerPhoneInput']
        title = request.POST['customerNameInput']
        sex = request.POST['selector']
        birthday = request.POST['customerBirthInput']
        phone_number_referee = request.POST['customerRefPhoneInput']

        answer = {}
        if not phone_number or \
            not title or \
            not sex or \
            not birthday:
            template = loader.get_template(
                'dcashier/static/customerAddPage.html')
            answer = {'error': 'Не коеректно заполнены поля'}
            context = RequestContext(request, answer)
            return HttpResponse(template.render(context.flatten()))

        if seller.has_customer_with_phone_number(phone_number):
            template = loader.get_template(
                'dcashier/static/customerAddPage.html')
            answer = {'error': 'Клиент с таким номером уже существует'}
            context = RequestContext(request, answer)
            return HttpResponse(template.render(context.flatten()))

        if request.POST['registration'] == 'zero':
            if seller.get_executor().is_size_xs() or \
                seller.get_executor().is_size_s():
                seller.create_customer(phone_number, title, sex, birthday,
                                       phone_number_referee)
            else:
                assert False
        elif request.POST['registration'] == '100':
            if seller.get_executor().is_size_xs() or \
                seller.get_executor().is_size_s():
                seller.create_customer_100(phone_number, title, sex, birthday,
                                           phone_number_referee)
                answer['registration_ball'] = 100
            else:
                assert False
        else:
            assert False

        client = seller.get_client_with_phone_number(phone_number)
        request.session['client_id'] = client.id

        template = loader.get_template(
            'dcashier/static/customerAddedPage.html')
        answer['client'] = client
        context = RequestContext(request, answer)
        return HttpResponse(template.render(context.flatten()))
Example #3
0
    def display(self, request, correlated=False, json=False):
        context = RequestContext(request)
        template = get_template(self.__class__.template)
        context['artifact_name'] = self.__class__.display_name
        if correlated:
            context['artifact_values'] = self._correlated
        else:
            context['artifact_values'] = self._artifacts
        context['event'] = self._event

        if not json:
            return template.render(context.flatten(), request)
        else:
            return context.flatten()
Example #4
0
    def display(self, request, correlated=False, json=False):
        context = RequestContext(request)
        template = get_template(self.__class__.template)
        context['artifact_name'] = self.__class__.display_name
        if correlated:
            context['artifact_values'] = self._correlated
        else:
            context['artifact_values'] = self._artifacts
        context['event'] = self._event

        if not json:
            return template.render(context.flatten(), request)
        else:
            return context.flatten()
Example #5
0
def index(request):
    ctx = RequestContext(request)
    ctx['landing_pages'] = []
    mask = ['project', 'title', 'authors']
    client = load_client()
    provenances = client.projects.get_entries(mask=mask).response().result
    for provenance in provenances:
        entry = {'project': provenance['project']}
        try:
            entry['url'] = reverse(provenance['project'] + ':index')
        except:
            entry['contribs'] = client.contributions.get_entries(
                projects=[provenance['project']],
                mask=['identifier'],
                per_page=2).response().result
        entry['title'] = provenance['title']
        authors = provenance['authors'].split(',', 1)
        style = 'font-size: 13px;'
        if '/' in authors[0]:
            style += 'margin-top: -7px;'
        prov_display = f'<span class="pull-right" style="{style}">{authors[0].replace("/", "/<br>")}'
        if len(authors) > 1:
            prov_display += '''<button class="btn btn-sm btn-link" data-html="true"
            data-toggle="tooltip" data-placement="bottom" data-container="body"
            title="{}" style="padding: 0px 0px 2px 5px;">et al.</a>'''.format(
                authors[1].strip().replace(', ', '<br/>'))
            prov_display += '</span>'
        entry['provenance'] = prov_display
        ctx['landing_pages'].append(
            entry)  # consider everything in DB released
    return render(request, "mpcontribs_portal_index.html", ctx.flatten())
Example #6
0
def index(request):
    answer = {}
    if request.session.get('actor_id'):
        auth_system = AuthSystem()
        actor = auth_system.get_actor_by_id(request.session.get('actor_id'))
        answer['actor'] = actor
        answer['is_login'] = True
        if request.session.get('shop_id'):
            shop_id = request.session.get('shop_id')
            actor = get_actor_for_request_if_login(request)
            #shops = actor.shops()
            seller = actor.get_seller()
            shops = seller.list_shop()
            for shop in shops:
                if str(shop.id) == str(shop_id):
                    answer['shop'] = shop
                    break
            if request.session.get('order_id'):
                answer['is_order'] = True
    else:
        answer['is_login'] = False

    if request.session.get('price_last_order') and \
        request.session.get('reward_ball_last_order'):
        answer['price_last_order'] = int(request.session['price_last_order'])
        answer['reward_ball_last_order'] = int(
            request.session['reward_ball_last_order'])
        del request.session['price_last_order']
        del request.session['reward_ball_last_order']
    template = loader.get_template('dcashier/static/index.html')
    context = RequestContext(request, answer)
    #return HttpResponse(template.render(context))
    return HttpResponse(template.render(context.flatten()))
Example #7
0
def dynamic_get_cards(request):
    path_to_cards_file = get_the_most_recent_result()

    # path_to_cards_file = './static/ebdjango/resources/res__ults.txt'
    with open(path_to_cards_file) as json_file:
        json_data = json.load(json_file)

    with_cena = []
    without_cena = []
    total_money = 0.0
    for singlekarta in json_data:
        if 'cena' in singlekarta:
            singlekarta['cena'] = float(singlekarta['cena'].replace(",", "."))

            if singlekarta['cena'] < 0.5:
                singlekarta['cena'] = 0.5

            with_cena.append(singlekarta)
            total_money += singlekarta['cena'] * singlekarta['ilosc']
        else:
            singlekarta['cena'] = "NO PRICE YET!"
            without_cena.append(singlekarta)

    with_cena = sorted(with_cena, key=lambda k: k['cena'])[::-1]
    template = loader.get_template("ebdjango/all_cards.html")
    context = RequestContext(
        request,
        {
            'json_cards_with_price': with_cena,
            # 'json_cards_tojs': json.dumps(with_cena),
            'cards_no_price': without_cena,
            'total_money': total_money,
            'path_to_cards_file': path_to_cards_file
        })
    return HttpResponse(template.render(context.flatten()))
Example #8
0
def contribution(request, cid):
    ctx = RequestContext(request)
    client = load_client()
    nb = client.notebooks.get_entry(cid=cid).response().result
    ctx['nb'], ctx['js'] = export_notebook(nb, cid)
    return render(request, "mpcontribs_explorer_contribution.html",
                  ctx.flatten())
Example #9
0
def coming_soon(request):
    template = loader.get_template("ebdjango/coming_soon.html")
    title_string = "This is a title"
    context = RequestContext(request, {
        'title': title_string,
    })
    return HttpResponse(template.render(context.flatten()))
Example #10
0
 def inner(request, *args, **kwargs):
     v = func(request, *args, **kwargs)
     c = RequestContext(request, v)
     return render_to_response_ext(request,
                                   template_name,
                                   c.flatten(),
                                   doc_type="pdf")
Example #11
0
def index(request):
    ctx = RequestContext(request)
    try:
        ctx.update(get_context(project))
    except Exception as ex:
        ctx['alert'] = str(ex)
    return render(request, "explorer_index.html", ctx.flatten())
Example #12
0
def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    template = loader.get_template('polls/index.html')
    context = RequestContext(request, {
        'latest_question_list': latest_question_list,
    })
    return HttpResponse(template.render(context.flatten()))
Example #13
0
def page_not_found(request, exception=None, template_name='perfect404.html'):
    """
    Perfect 404 handler.

    Templates: `perfect404.html`
    Context:
        request_path
            The path of the requested URL (e.g., '/app/pages/bad_page/')
    """
    referer = request.META.get('HTTP_REFERER', '')
    log.warning('missing %r, referer %r' % (request.path, referer))

    internal = False
    iam = 'http://%s' % Site.objects.get_current().domain
    if referer[:len(iam)] == iam:
        internal = True

    if settings.ADMINS:
        contact = dict(zip(('name', 'email'), settings.ADMINS[0]))
    else:
        contact = None

    t = loader.get_template(template_name)
    context = RequestContext(
        request, {
            'request': request,
            'request_path': request.path,
            'referer': referer,
            'internal': internal,
            'contact': contact,
        })
    content = t.render(context.flatten())
    return http.HttpResponseNotFound(content)
Example #14
0
def detail(request, guestbook_id):
    guestbook = get_object_or_404(Guestbook, pk=guestbook_id)
    template = loader.get_template('guestbook/detail.html')
    context = RequestContext(request, {
        'guestbook': guestbook,
    })
    return HttpResponse(template.render(context.flatten()))
Example #15
0
 def get(self, request, *args, **kwargs):
     answer = {}
     answer['is_error_login'] = request.session.get('is_error_login')
     template = loader.get_template('dcashier/static/authPage.html')
     context = RequestContext(request, answer)
     #return HttpResponse(template.render(context))
     return HttpResponse(template.render(context.flatten()))
Example #16
0
def stopq(request):
    u = who_auth(request)
    if u != 'prof':
        return HttpResponse('Incorrect login!')
    sys = get_sys_state()
    if sys.mode == 'INACTIVE':
        return redirect(reverse('index'))
    sys.mode = 'INACTIVE'
    sys.save()
    # choose three random students that have answered
    student_list = StudentInfo.objects.exclude(curr_status='ABSENT').all()

    s1 = None
    s2 = None
    s3 = None
    if len(student_list) > 3:
        #todo: remove this loop
        s_list = []
        for s in student_list:
            s_list.append(s)
        s1, s2, s3 = random.sample(s_list, 3)
    else:
        if len(student_list) > 2:
            s3 = student_list[2]
        if len(student_list) > 1:
            s2 = student_list[1]
        if len(student_list) > 0:
            s1 = student_list[0]
    context = RequestContext(request)
    context.push({'s1': s1, 's2': s2, 's3': s3})
    logq.info('Quiz for Question ' + str(sys.activeq1) + str(sys.activeq2) +
              str(sys.activeq3) + str(sys.activeq4) + ' is stopped.')

    return render(request, 'studenthome/results.html', context.flatten())
Example #17
0
def viewq(request, qid):
    u = who_auth(request)
    if u != 'prof':
        return HttpResponse('Incorrect login!')
    q = get_or_none(Question, pk=int(qid))
    ops = dict()
    corrects = dict()
    wrongs = dict()
    for i in range(1, 21):
        ops['op' + str(i)] = get_q_op(q, i)
        corrects['c_num_' + str(i)] = 0
        wrongs['w_num_' + str(i)] = 0
    sas = StudentAnswers.objects.filter(q=q.pk).exclude(answer_time=None).all()
    for sa in sas:
        for idx in range(1, 5):
            is_correct, op_num = is_ith_option_correct(sa, idx, q)
            if is_correct:
                corrects['c_num_' + str(op_num)] += 1
            else:
                wrongs['w_num_' + str(op_num)] += 1
    context = RequestContext(request)
    context.push({'q': q})
    context.push(ops)
    context.push(corrects)
    context.push(wrongs)
    return render(request, 'studenthome/viewq.html', context.flatten())
Example #18
0
    def _get_contentitem_formset_html(self, request, obj, FormSet, inline,
                                      placeholder_slots):
        # Passing serialized object fields to the client doesn't work,
        # as some form fields (e.g. picture field or MultiValueField) have a different representation.
        # The only way to pass a form copy to the client is by actually rendering it.
        # Hence, emulating change_view code here:
        queryset = inline.get_queryset(request)
        formset = FormSet(instance=obj, prefix="", queryset=queryset)
        fieldsets = list(inline.get_fieldsets(request, obj))
        readonly = list(inline.get_readonly_fields(request, obj))
        prepopulated = dict(inline.get_prepopulated_fields(request, obj))
        inline.extra = 0
        inline_admin_formset = InlineAdminFormSet(inline,
                                                  formset,
                                                  fieldsets,
                                                  prepopulated,
                                                  readonly,
                                                  model_admin=self)

        form_data = []
        for i, inline_admin_form in enumerate(inline_admin_formset):
            if inline_admin_form.original is None:  # The extra forms
                continue

            # exactly what admin/fluent_contents/contentitem/inline_container.html does:
            template_name = inline_admin_formset.opts.cp_admin_form_template
            context = {
                "inline_admin_form": inline_admin_form,
                "inline_admin_formset": inline_admin_formset,
                "original": obj,
                "object_id": obj.pk,
                "add": False,
                "change": True,
                "has_change_permission": True,
            }
            context = RequestContext(request, context)
            form_html = render_to_string(template_name, context.flatten())

            # Append to list with metadata included
            contentitem = inline_admin_form.original
            form_data.append({
                "contentitem_id":
                contentitem.pk,
                "sort_order":
                contentitem.sort_order,
                "placeholder_id":
                contentitem.placeholder_id,
                "placeholder_slot":
                placeholder_slots[contentitem.placeholder_id],
                "html":
                form_html,
                "plugin":
                inline.plugin.__class__.__name__,
                "model":
                inline.model.__name__,
                "prefix":
                formset.add_prefix(i),
            })
        return form_data
Example #19
0
 def get_form_template(self, request, template=None, context=None):
     """
     :Returns: Rendered form template with the given context, if any.
     """
     if not context:
         context = RequestContext(request)
     with update_context(context, {'form': self.get_form(request, prefix=self.get_form_prefix())}):
         return render_to_string(template or self.edit_templates, context.flatten())
Example #20
0
 def get(self, request, *args, **kwargs):
     actor = get_actor_for_request_if_login(request)
     if not request.session.get('actor_id'):
         return redirect('/')
     template = loader.get_template('dcashier/static/customerAddPage.html')
     answer = {}
     context = RequestContext(request, answer)
     return HttpResponse(template.render(context.flatten()))
Example #21
0
def index(request):
    ctx = RequestContext(request)
    try:
        columns = ['phase', 'ΔH', 'ΔH|hyd', 'GS?', 'CIF']
        ctx.update(get_context(project, columns))
    except Exception as ex:
        ctx['alert'] = str(ex)
    return render(request, "explorer_index.html", ctx.flatten())
Example #22
0
def index(request):
    ctx = RequestContext(request)
    try:
        columns = ['Co', 'Fe', 'V', 'thickness', 'BH|max', 'Hc|MOKE', 'Hc|VSM']
        ctx.update(get_context(project, columns=columns))
    except Exception as ex:
        ctx['alert'] = str(ex)
    return render(request, "explorer_index.html", ctx.flatten())
Example #23
0
def index(request):
    ctx = RequestContext(request)
    try:
        resp = client.projects.get_entries(mask=['project']).response()
        ctx['projects'] = [r['project'] for r in resp.result]
    except Exception as ex:
        ctx['alert'] = f'{ex}'
    return render(request, "mpcontribs_explorer_index.html", ctx.flatten())
Example #24
0
def pingpong_results(request):
    template = loader.get_template("ebdjango/all_results.html")
    context = RequestContext(
        request, {
            'match_results':
            MatchResult.objects.filter(game_type=models.MatchResult.PING_PONG)
        })
    return HttpResponse(template.render(context.flatten()))
Example #25
0
def snooker_results(request):
    template = loader.get_template("ebdjango/snooker_results.html")
    context = RequestContext(
        request, {
            'match_results':
            MatchResult.objects.filter(game_type=models.MatchResult.SNOOKER),
        })
    return HttpResponse(template.render(context.flatten()))
Example #26
0
def index(request):
    countries = Country.objects.all()[:4]
    food_list = Food.objects.all()[:4]

    context = RequestContext(request, {
        'countries': countries,
        'food_list': food_list
    })
    return render(request, 'food/index.html', context=context.flatten())
def documentation(request):
    ctx = RequestContext(request)
    if request.user.is_authenticated:
        user = RegisteredUser.objects.get(username=request.user.username)
        if not user.groups.filter(name='redox_thermo_csp').exists():
            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_documentation.html", ctx.flatten())
Example #28
0
 def get(self, request, *args, **kwargs):
     actor = get_actor_for_request_if_login(request)
     shop = get_shop_for_request_if_login(request)
     answer = {}
     answer['shop'] = shop
     template = loader.get_template('dcashier/static/shopPage.html')
     context = RequestContext(request, answer)
     #return HttpResponse(template.render(context))
     return HttpResponse(template.render(context.flatten()))
Example #29
0
def tmpl(request, template):
    try:
        t = loader.get_template('uds/admin/tmpl/' + template + ".html")
        c = RequestContext(request)
        resp = t.render(c.flatten())
    except Exception as e:
        logger.debug('Exception getting template: {0}'.format(e))
        resp = _('requested a template that do not exist')
    return HttpResponse(resp, content_type="text/plain")
Example #30
0
def tmpl(request, template):
    try:
        t = loader.get_template('uds/admin/tmpl/' + template + ".html")
        c = RequestContext(request)
        resp = t.render(c.flatten())
    except Exception as e:
        logger.debug('Exception getting template: {0}'.format(e))
        resp = _('requested a template that do not exist')
    return HttpResponse(resp, content_type="text/plain")
Example #31
0
def index(request):
    ctx = RequestContext(request)
    try:
        keys, subkeys = ['mₑᶜᵒⁿᵈ', 'S', 'σ', 'S²σ'], ['n.<ε>', 'p.<ε>']
        columns = ['.'.join([k, sk]) for k in keys for sk in subkeys]
        ctx.update(get_context(project, columns=columns))
    except Exception as ex:
        ctx['alert'] = str(ex)
    return render(request, "explorer_index.html", ctx.flatten())
Example #32
0
def html_response(template_name, context, request, processors=[]):
    rc = RequestContext(request, processors=processors)
    rc.update(context)

    # render no longer runs the processors so we do it here
    # ourselves
    if processors is not None:
        for p in processors:
            rc.update(p(request))

    return render(request, template_name, context=rc.flatten())
Example #33
0
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())
Example #34
0
def render_to_string(template_name, context=None, request=None, using=None):
    """Render a template with a given name to a string.

    This will invoke the original
    :py:func:`~django.template.loader.render_to_string` with the correct
    arguments for the active version of Django. It differs a bit from the
    modern version of the function in that it allows a
    :py:class:`~django.template.Context` argument, which it will convert to
    the correct type.

    Args:
        template_name (unicode):
            The name of the template to render.

        context (object, optional):
            The context data as a dictionary or as a
            :py:class:`~django.template.Context`.

        request (django.http.HttpRequest, optional):
            The HTTP request for the render. If specified, a
            :py:class:`~django.template.RequestContext` will be used.

        using (unicode, optional):
            The optional name of a template engine to use for the render.
            This is only supported on Django 1.8 and higher.

    Returns:
        django.utils.safestring.SafeText:
        The resulting rendered content.
    """
    if template_engines is None:
        if not isinstance(context, Context):
            if request:
                context = RequestContext(request, context)
            else:
                context = Context(context)

        return _render_to_string(template_name, context)
    else:
        if isinstance(context, Context):
            context = context.flatten()

        return _render_to_string(template_name=template_name,
                                 context=context,
                                 request=request,
                                 using=using)
    def _get_contentitem_formset_html(self, request, obj, FormSet, inline, placeholder_slots):
        # Passing serialized object fields to the client doesn't work,
        # as some form fields (e.g. picture field or MultiValueField) have a different representation.
        # The only way to pass a form copy to the client is by actually rendering it.
        # Hence, emulating change_view code here:
        queryset = inline.get_queryset(request)
        formset = FormSet(instance=obj, prefix='', queryset=queryset)
        fieldsets = list(inline.get_fieldsets(request, obj))
        readonly = list(inline.get_readonly_fields(request, obj))
        prepopulated = dict(inline.get_prepopulated_fields(request, obj))
        inline.extra = 0
        inline_admin_formset = InlineAdminFormSet(inline, formset, fieldsets, prepopulated, readonly, model_admin=self)

        form_data = []
        for i, inline_admin_form in enumerate(inline_admin_formset):
            if inline_admin_form.original is None:  # The extra forms
                continue

            # exactly what admin/fluent_contents/contentitem/inline_container.html does:
            template_name = inline_admin_formset.opts.cp_admin_form_template
            context = {
                'inline_admin_form': inline_admin_form,
                'inline_admin_formset': inline_admin_formset,
                'original': obj,
                'object_id': obj.pk,
                'add': False,
                'change': True,
                'has_change_permission': True,
            }
            context = RequestContext(request, context)
            form_html = render_to_string(template_name, context.flatten())

            # Append to list with metadata included
            contentitem = inline_admin_form.original
            form_data.append({
                'contentitem_id': contentitem.pk,
                'sort_order': contentitem.sort_order,
                'placeholder_id': contentitem.placeholder_id,
                'placeholder_slot': placeholder_slots[contentitem.placeholder_id],
                'html': form_html,
                'plugin': inline.plugin.__class__.__name__,
                'model': inline.model.__name__,
                'prefix': formset.add_prefix(i),
            })
        return form_data
Example #36
0
def index(request):
    ctx = RequestContext(request)
    try:
        ctx['project'] = project
        prov = client.projects.get_entry(project=project).response().result
        prov.pop('id')
        ctx['title'] = prov.pop('title')
        ctx['provenance'] = RecursiveDict(prov).render()
        columns = ['phase', 'ΔH', 'ΔH|hyd', 'GS?', 'CIF']
        data = client.contributions.get_table(
            project=project, columns=columns, per_page=3
        ).response().result
        columns = list(data['items'][0].keys())
        table = Table(data['items'], columns=columns)
        ctx['table'] = table.render(project=project)
    except Exception as ex:
        ctx['alert'] = str(ex)
    return render(request, "explorer_index.html", ctx.flatten())
Example #37
0
def index(request):
    ctx = RequestContext(request)
    try:
        ctx['project'] = project
        prov = client.projects.get_entry(project=project).response().result
        prov.pop('id')
        ctx['title'] = prov.pop('title')
        ctx['provenance'] = RecursiveDict(prov).render()
        keys, subkeys = ['NUS', 'JARVIS'], ['id', 'Eₓ', 'CIF']
        columns = ['##'.join([k, sk]) for k in keys for sk in subkeys]
        # columns_jarvis = ['id', 'E', 'ΔE|optB88vdW', 'ΔE|mbj', 'CIF']
        data = client.contributions.get_table(
            project=project, columns=columns, per_page=3
        ).response().result
        columns = list(data['items'][0].keys())
        table = Table(data['items'], columns=columns)
        ctx['table'] = table.render(project=project)
    except Exception as ex:
        ctx['alert'] = str(ex)
    return render(request, "explorer_index.html", ctx.flatten())
Example #38
0
def index(request):
    ctx = RequestContext(request)
    ctx['landing_pages'] = []
    mask = ['project', 'title', 'authors']
    provenances = client.projects.get_entries(mask=mask).response().result
    for provenance in provenances:
        try:
            url = reverse(provenance['project'] + ':index')
        except:
            url = '#'
        entry = {'project': provenance['project'], 'url': url}
        entry['title'] = provenance['title']
        authors = provenance['authors'].split(',', 1)
        prov_display = f'<span class="pull-right" style="font-size: 13px;">{authors[0]}'
        if len(authors) > 1:
            prov_display += '''<button class="btn btn-sm btn-link" data-html="true"
            data-toggle="tooltip" data-placement="bottom" data-container="body"
            title="{}" style="padding: 0px 0px 2px 5px;">et al.</a>'''.format(
                authors[1].strip().replace(', ', '<br/>'))
            prov_display += '</span>'
            entry['provenance'] = prov_display
        ctx['landing_pages'].append(entry) # consider everything in DB released
    return render(request, "mpcontribs_portal_index.html", ctx.flatten())
Example #39
0
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())
Example #40
0
def global_render_template(name, **kwargs):
    request = get_request()
    context = RequestContext(request, kwargs or None)
    context['request'] = request
    template = loader.get_template(name, using='wagtail-env')
    return mark_safe(template.render(context.flatten()))
Example #41
0
def contribution(request, cid):
    ctx = RequestContext(request)
    nb = client.notebooks.get_entry(cid=cid).response().result
    ctx['nb'], ctx['js'] = export_notebook(nb, cid)
    return render(request, "mpcontribs_explorer_contribution.html", ctx.flatten())