Ejemplo n.º 1
0
def edit(request, slug):
    _gene_list = get_object_or_404(GeneList, slug=slug)

    authorized = False
    if _gene_list.owner == request.user:
        authorized = True
    if not authorized:
        raise PermissionDenied

    if request.method == 'POST':
        form = GeneListForm(request.POST)
        if form.is_valid():
            _gene_list.slug=form.cleaned_data['slug']
            _gene_list.name=form.cleaned_data['name']
            _gene_list.description=form.cleaned_data['description']
            _gene_list.is_public=form.cleaned_data['is_public']
            _gene_list.last_updated = datetime.datetime.now()
            _gene_list.save()
            GeneListItem.objects.filter(gene_list=_gene_list).delete()
            for gene_id in form.cleaned_data['gene_ids']:
                GeneListItem.objects.create(gene_list=_gene_list, gene_id=gene_id)
            return redirect('gene_list', slug=_gene_list.slug)
    else:
        form = GeneListForm(initial={
            'name': _gene_list.name,
            'description': _gene_list.description,
            'is_public': _gene_list.is_public,
            'genes': '\n'.join([g['symbol'] for g in _gene_list.get_genes()]),
        })

    return render(request, 'gene_lists/edit.html', {
        'form': form,
        'gene_list': _gene_list,
    })
Ejemplo n.º 2
0
def add(request):
    if request.method == 'POST':
        form = GeneListForm(request.POST)
        if form.is_valid():
            unique_slug = form.cleaned_data['slug']
            while GeneList.objects.filter(slug=unique_slug):
                unique_slug += "_"

            new_list = GeneList.objects.create(
                slug=unique_slug,
                name=form.cleaned_data['name'],
                description=form.cleaned_data['description'],
                is_public=form.cleaned_data['is_public'],
                owner=request.user,
                last_updated=datetime.datetime.now(),
            )
            for gene_id in form.cleaned_data['gene_ids']:
                GeneListItem.objects.create(gene_list=new_list, gene_id=gene_id)
            return redirect('gene_list', slug=new_list.slug)
    else:
        form = GeneListForm()

    return render(request, 'gene_lists/add.html', {
        'form': form,
    })
Ejemplo n.º 3
0
def edit(request, slug):
    _gene_list = get_object_or_404(GeneList, slug=slug)

    authorized = False
    if _gene_list.owner == request.user:
        authorized = True
    if not authorized:
        return HttpResponse('unauthorized')

    if request.method == 'POST':
        form = GeneListForm(request.POST)
        if form.is_valid():
            _gene_list.slug=form.cleaned_data['slug']
            _gene_list.name=form.cleaned_data['name']
            _gene_list.description=form.cleaned_data['description']
            _gene_list.is_public=form.cleaned_data['is_public']
            _gene_list.last_updated = datetime.datetime.now()
            _gene_list.save()
            GeneListItem.objects.filter(gene_list=_gene_list).delete()
            for gene_id in form.cleaned_data['gene_ids']:
                GeneListItem.objects.create(gene_list=_gene_list, gene_id=gene_id)
            return redirect('gene_list', slug=_gene_list.slug)
    else:
        form = GeneListForm(initial={
            'name': _gene_list.name,
            'description': _gene_list.description,
            'is_public': _gene_list.is_public,
            'genes': '\n'.join([g['symbol'] for g in _gene_list.get_genes()]),
        })

    return render(request, 'gene_lists/edit.html', {
        'form': form,
        'gene_list': _gene_list,
    })
Ejemplo n.º 4
0
def add(request):
    if request.method == 'POST':
        form = GeneListForm(request.POST)
        if form.is_valid():
            unique_slug = form.cleaned_data['slug']
            while GeneList.objects.filter(slug=unique_slug):
                unique_slug += "_"

            new_list = create_xbrowse_model(GeneList,
                slug=unique_slug,
                name=form.cleaned_data['name'],
                description=form.cleaned_data['description'],
                is_public=form.cleaned_data['is_public'],
                owner=request.user,
                last_updated=datetime.datetime.now(),
            )
            for gene_id in form.cleaned_data['gene_ids']:
                create_xbrowse_model(GeneListItem, gene_list=new_list, gene_id=gene_id)
            return redirect('gene_list', slug=new_list.slug)
    else:
        form = GeneListForm()

    return render(request, 'gene_lists/add.html', {
        'form': form,
        'new_page_url': '/gene_lists',
    })
Ejemplo n.º 5
0
def add(request):
    if request.method == 'POST':
        form = GeneListForm(request.POST)
        if form.is_valid():
            new_list = GeneList.objects.create(
                slug=form.cleaned_data['slug'],
                name=form.cleaned_data['name'],
                description=form.cleaned_data['description'],
                is_public=form.cleaned_data['is_public'],
                owner=request.user,
                last_updated=datetime.datetime.now(),
            )
            for gene_id in form.cleaned_data['gene_ids']:
                GeneListItem.objects.create(gene_list=new_list, gene_id=gene_id)
            return redirect('gene_list', slug=new_list.slug)
    else:
        form = GeneListForm()

    return render(request, 'gene_lists/add.html', {
        'form': form,
    })
Ejemplo n.º 6
0
def edit(request, slug):
    gene_list = get_object_or_404(GeneList, slug=slug)

    authorized = False
    if gene_list.owner == request.user:
        authorized = True
    if not authorized:
        raise PermissionDenied

    if request.method == 'POST':
        form = GeneListForm(request.POST)
        if form.is_valid():
            update_xbrowse_model(gene_list,
                slug=form.cleaned_data['slug'],
                name=form.cleaned_data['name'],
                description=form.cleaned_data['description'],
                is_public=form.cleaned_data['is_public'],
                last_updated = datetime.datetime.now())

            for gene_list_item in GeneListItem.objects.filter(gene_list=gene_list):
                delete_xbrowse_model(gene_list_item)

            for gene_id in form.cleaned_data['gene_ids']:
                create_xbrowse_model(GeneListItem, gene_list=gene_list, gene_id=gene_id)
            return redirect('gene_list', slug=gene_list.slug)
    else:
        form = GeneListForm(initial={
            'name': gene_list.name,
            'description': gene_list.description,
            'is_public': gene_list.is_public,
            'genes': '\n'.join([g['symbol'] for g in gene_list.get_genes()]),
        })

    return render(request, 'gene_lists/edit.html', {
        'form': form,
        'gene_list': gene_list,
        'new_page_url': '/gene_lists/{}'.format(gene_list.seqr_locus_list.guid) if gene_list.seqr_locus_list else None,
    })