Esempio n. 1
0
    def _render_graphiql(self, request: HttpRequest, context=None):
        if not self.graphiql:
            raise Http404()

        try:
            template = Template(render_to_string("graphql/graphiql.html"))
        except TemplateDoesNotExist:
            template = Template(
                open(
                    os.path.join(
                        os.path.dirname(os.path.abspath(strawberry.__file__)),
                        "static/graphiql.html",
                    ),
                    "r",
                ).read())

        context = context or {}
        # THIS enables subscriptions
        context.update({"SUBSCRIPTION_ENABLED": "true"})

        response = TemplateResponse(request=request,
                                    template=None,
                                    context=context)
        response.content = template.render(RequestContext(request, context))

        return response
Esempio n. 2
0
 def _wrapped_view(request, *args, **kwargs):
     enable_instrumentation()
     response = view_func(request, *args, **kwargs)
     disable_instrumentation()
     if isinstance(response, TemplateResponse):
         # We could use ``SingleTemplateResponse`` to catch both
         # django and restframework responses. Unfortunately
         # the content_type on restframework responses is set
         # very late (render), while at the same time django
         # defaults it to text/html until then.
         try:
             response.render()
         except jinja2.exceptions.TemplateError as err:
             response = TemplateResponse(
                 request=request,
                 template="400.html",
                 context={'messages': [str(err)]},
                 #                        using=view_func.template_engine,
                 status=400)
             response.render()
         soup = _inject_edition_tools(
             response,
             request,
             context=get_edition_tools_context_data())
         if soup:
             # str(soup) instead of soup.prettify() to avoid
             # trailing whitespace on a reformatted HTML textarea
             response.content = str(soup)
     return response
Esempio n. 3
0
def productEdit(request, id):
    if not request.user.is_active or not request.user.is_superuser:
        raise Http404 #filter other users
    try:
        id = int(id)
        product = models.Products.objects.get(id=id)
    except:
        raise Http404 #bad id or product with this id is not exist

    form = None

    if request.method == 'POST':
        response = {}
        saved    = False
        form = forms.ProductForm(request.POST, request.FILES, instance=product)
        #check form
        if form.is_valid():
            form.save()
            response['status'] = 'ok'
            saved = True
        else:
            response['status'] = 'error'

        context = RequestContext(request, { 'product':product, 'form':form, 'saved':saved })
        response['form'] = template.loader.get_template('form.html').render(context)
        response['name'] = product.name
        resp = TemplateResponse(request, '')
        resp.content = json.dumps(response)
        return resp
        #return HttpResponse(json.dumps(response))

    if request.method == 'GET':
        #create form
        form = forms.ProductForm(instance=product)
        return TemplateResponse(request, 'edit.html', {"form": form, 'product': product})
Esempio n. 4
0
def productEdit(request, id):
    if not request.user.is_active or not request.user.is_superuser:
        raise Http404  #filter other users
    try:
        id = int(id)
        product = models.Products.objects.get(id=id)
    except:
        raise Http404  #bad id or product with this id is not exist

    form = None

    if request.method == 'POST':
        response = {}
        saved = False
        form = forms.ProductForm(request.POST, request.FILES, instance=product)
        #check form
        if form.is_valid():
            form.save()
            response['status'] = 'ok'
            saved = True
        else:
            response['status'] = 'error'

        context = RequestContext(request, {
            'product': product,
            'form': form,
            'saved': saved
        })
        response['form'] = template.loader.get_template('form.html').render(
            context)
        response['name'] = product.name
        resp = TemplateResponse(request, '')
        resp.content = json.dumps(response)
        return resp
        #return HttpResponse(json.dumps(response))

    if request.method == 'GET':
        #create form
        form = forms.ProductForm(instance=product)
        return TemplateResponse(request, 'edit.html', {
            "form": form,
            'product': product
        })
Esempio n. 5
0
    def _render_graphiql(self, request, context=None):
        try:
            template = Template(render_to_string("graphql/graphiql.html"))
        except TemplateDoesNotExist:
            template = Template(
                open(
                    os.path.join(
                        os.path.dirname(os.path.abspath(strawberry.__file__)),
                        "static/graphiql.html",
                    ),
                    "r",
                ).read())

        response = TemplateResponse(request=request,
                                    template=None,
                                    context=context)
        response.content = template.render(RequestContext(request, context))

        return response