コード例 #1
0
def history(request, pk):
    try:
        model = DesignModel.objects.get(user=UserProfile.get_profile(
            request.user),
                                        pk=pk)
        revisions = model.revisions.all()
    except ObjectDoesNotExist:
        return render_queryset_to_response_error(request,
                                                 error=404,
                                                 msg="Model not found")

    entries = []

    from itertools import groupby
    for k, v in groupby(revisions, key=lambda x: x.date.date()):
        v = list(v)[::-1]
        for vv in v:
            try:
                vv.changes = json.dumps(vv.changes["changes"])
            except KeyError:
                vv.changes = json.dumps({})

        entries.append([k, list(v)[::-1]])

    data = {"model": model, "revisions": entries}

    return render_queryset_to_response(request,
                                       template="cyanodesign/history.html",
                                       data=data)
コード例 #2
0
ファイル: views.py プロジェクト: lenin-lemus/CyanoFactoryKB
def map_view(request, map_id):
    export = "export_button" in request.POST

    items, enzymes, metabolites = request_extract(request)
    map_data = get_reaction_map(map_id, enzymes, metabolites, export)

    if export:
        map_data = """<?xml version="1.0" encoding="UTF-8" standalone="no"?>""" + map_data

        import wand.image
        with wand.image.Image(blob=map_data, format="svg") as image:
            png_image = image.make_blob("png")

        response = HttpResponse(png_image, content_type='image/png')
        response['Content-Disposition'] = 'attachment; filename={}.png'.format(map_id)

        return response

    return render_queryset_to_response(
        request=request,
        template="kegg/map.html",
        data={
            'map_id': map_id,
            'map_data': map_data,
            'enzymes': enzymes,
            'metabolites': metabolites,
            'items': items,
            'queries': [] if request.user.is_anonymous() else models.Query.objects.filter(user=request.user.profile),
            'is_anonymous': request.user.is_anonymous()
        }
    )
コード例 #3
0
def design(request, pk):
    try:
        item = DesignModel.objects.get(user=UserProfile.get_profile(
            request.user),
                                       pk=pk)
        current = item.get_latest_revision()
    except ObjectDoesNotExist:
        return render_queryset_to_response_error(request,
                                                 error=404,
                                                 msg="Model not found")

    try:
        revision = request.GET["revision"]
        try:
            revision = Revision.objects.get(model=item, pk=revision)
        except ObjectDoesNotExist:
            return render_queryset_to_response_error(request,
                                                     error=404,
                                                     msg="Revision not found")
    except KeyError:
        revision = current

    data = {
        "pk": pk,
        "name": item.name,
        "revision": None if current.pk == revision.pk else revision,
        "save_form": SaveModelForm(None),
        "saveas_form": SaveModelAsForm(None)
    }

    return render_queryset_to_response(request,
                                       template="cyanodesign/design.html",
                                       data=data)
コード例 #4
0
ファイル: views.py プロジェクト: lenin-lemus/CyanoFactoryKB
def design(request, pk):
    try:
        item = DesignModel.objects.get(user=UserProfile.get_profile(request.user), pk=pk)
        current = item.get_latest_revision()
    except ObjectDoesNotExist:
        return render_queryset_to_response_error(request, error=404, msg="Model not found")

    try:
        revision = request.GET["revision"]
        try:
            revision = Revision.objects.get(model=item, pk=revision)
        except ObjectDoesNotExist:
            return render_queryset_to_response_error(request, error=404, msg="Revision not found")
    except KeyError:
        revision = current

    data = {
        "pk": pk,
        "name": item.name,
        "revision": None if current.pk == revision.pk else revision,
        "save_form": SaveModelForm(None),
        "saveas_form": SaveModelAsForm(None)
    }

    return render_queryset_to_response(request, template="cyanodesign/design.html", data=data)
コード例 #5
0
def map_view(request, map_id):
    export = "export_button" in request.POST

    items, enzymes, metabolites = request_extract(request)
    map_data = get_reaction_map(map_id, enzymes, metabolites, export)

    if export:
        map_data = """<?xml version="1.0" encoding="UTF-8" standalone="no"?>""" + map_data

        import wand.image
        with wand.image.Image(blob=map_data.encode("utf-8"), format="svg") as image:
            png_image = image.make_blob("png")

        response = HttpResponse(png_image, content_type='image/png')
        response['Content-Disposition'] = 'attachment; filename={}.png'.format(map_id)

        return response

    return render_queryset_to_response(
        request=request,
        template="kegg/map.html",
        data={
            'map_id': map_id,
            'map_data': map_data,
            'enzymes': enzymes,
            'metabolites': metabolites,
            'items': items,
            'queries': [] if request.user.is_anonymous() else models.Query.objects.filter(user=request.user.profile),
            'is_anonymous': request.user.is_anonymous()
        }
    )
コード例 #6
0
ファイル: views.py プロジェクト: lenin-lemus/CyanoFactoryKB
def index(request):
    upload_form = UploadModelForm(None)

    templates = DesignTemplate.objects.values_list("pk", "name")
    template_form = ModelFromTemplateForm(choices=templates)

    models = DesignModel.objects.filter(user=UserProfile.get_profile(request.user))

    return render_queryset_to_response(
        request,
        template="cyanodesign/list.html",
        queryset=models,
        data={'upload_form': upload_form, "template_form": template_form}
    )
コード例 #7
0
def index(request):
    upload_form = UploadModelForm(None)

    templates = DesignTemplate.objects.values_list("pk", "name")
    template_form = ModelFromTemplateForm(choices=templates)

    models = DesignModel.objects.filter(
        user=UserProfile.get_profile(request.user))

    return render_queryset_to_response(request,
                                       template="cyanodesign/list.html",
                                       queryset=models,
                                       data={
                                           'upload_form': upload_form,
                                           "template_form": template_form
                                       })
コード例 #8
0
def index(request, legacy=None):
    """
    """
    data = format_output(request)

    if "export_button" in request.POST:
        t = loader.get_template('boehringer/boehringer_svg.html')
        c = RequestContext(request, data)
        response = HttpResponse(t.render(c), content_type='image/svg+xml')
        response['Content-Disposition'] = 'attachment; filename=boehringer.svg'
        return response

    if legacy:
        return render_to_response("boehringer/legacy.html",
                                  data,
                                  context_instance=RequestContext(request))
    else:
        return render_queryset_to_response(request,
                                           data=data,
                                           template="boehringer/index.html")
コード例 #9
0
ファイル: views.py プロジェクト: lenin-lemus/CyanoFactoryKB
def index(request):
    items, enzymes, metabolites = request_extract(request)

    ecs = list(map(lambda x: x[0], enzymes))
    metas = list(map(lambda x: x[0], metabolites))

    query = None

    if len(metas) > 0:
        # reduce magic via https://stackoverflow.com/questions/7088173/
        query = reduce(lambda x, y: x | y, [Q(name__icontains=word) for word in metas])
        query |= reduce(lambda x, y: x | y, [Q(title__icontains=word) for word in metas])

    if len(ecs) > 0:
        if query is None:
            query = Q(ec_numbers__name__in=ecs)
        else:
            query |= Q(ec_numbers__name__in=ecs)

    if query is not None:
        kegg_maps = models.Map.objects.filter(query).distinct()
    else:
        kegg_maps = models.Map.objects.all()

    overview = filter(lambda x: x.overview, kegg_maps)
    other = filter(lambda x: not x.overview, kegg_maps)

    return render_queryset_to_response(
        request=request,
        template="kegg/index.html",
        data={
            'overview_maps': overview,
            'other_maps': other,
            'items': items,
            'queries': [] if request.user.is_anonymous() else models.Query.objects.filter(user=request.user.profile),
            'is_anonymous': request.user.is_anonymous()
        }
    )
コード例 #10
0
def index(request):
    items, enzymes, metabolites = request_extract(request)

    ecs = list(map(lambda x: x[0], enzymes))
    metas = list(map(lambda x: x[0], metabolites))

    query = None

    if len(metas) > 0:
        # reduce magic via https://stackoverflow.com/questions/7088173/
        query = reduce(lambda x, y: x | y, [Q(name__icontains=word) for word in metas])
        query |= reduce(lambda x, y: x | y, [Q(title__icontains=word) for word in metas])

    if len(ecs) > 0:
        if query is None:
            query = Q(ec_numbers__name__in=ecs)
        else:
            query |= Q(ec_numbers__name__in=ecs)

    if query is not None:
        kegg_maps = models.Map.objects.filter(query).distinct()
    else:
        kegg_maps = models.Map.objects.all()

    overview = filter(lambda x: x.overview, kegg_maps)
    other = filter(lambda x: not x.overview, kegg_maps)

    return render_queryset_to_response(
        request=request,
        template="kegg/index.html",
        data={
            'overview_maps': overview,
            'other_maps': other,
            'items': items,
            'queries': [] if request.user.is_anonymous() else models.Query.objects.filter(user=request.user.profile),
            'is_anonymous': request.user.is_anonymous()
        }
    )
コード例 #11
0
ファイル: views.py プロジェクト: lenin-lemus/CyanoFactoryKB
def history(request, pk):
    try:
        model = DesignModel.objects.get(user=UserProfile.get_profile(request.user), pk=pk)
        revisions = model.revisions.all()
    except ObjectDoesNotExist:
        return render_queryset_to_response_error(request, error=404, msg="Model not found")

    entries = []

    from itertools import groupby
    for k,v in groupby(revisions, key=lambda x: x.date.date()):
        v = list(v)[::-1]
        for vv in v:
            try:
                vv.changes = json.dumps(vv.changes["changes"])
            except KeyError:
                vv.changes = json.dumps({})

        entries.append([k, list(v)[::-1]])

    data = {"model": model, "revisions": entries}

    return render_queryset_to_response(request, template="cyanodesign/history.html", data=data)
コード例 #12
0
ファイル: views.py プロジェクト: CyanoFactory/CyanoFactoryKB
def index(request, legacy=None):
    """
    """
    data = format_output(request)

    if "export_button" in request.POST:
        t = loader.get_template('boehringer/boehringer_svg.html')
        c = RequestContext(request, data)
        response = HttpResponse(t.render(c), content_type='image/svg+xml')
        response['Content-Disposition'] = 'attachment; filename=boehringer.svg'
        return response

    if legacy:
        return render_to_response(
            "boehringer/legacy.html",
            data,
            context_instance=RequestContext(request))
    else:
        return render_queryset_to_response(
            request,
            data=data,
            template="boehringer/index.html"
        )