コード例 #1
0
ファイル: views.py プロジェクト: migbro/seqConfig
def config_submit(request):
    if request.method == 'POST':
        config_form = ConfigForm(request.POST, instance=Config())
        if config_form.is_valid():
            try:
                with transaction.atomic():
                    new_config = config_form.save(commit=False)
                    new_config.created_by = request.user
                    new_config.save()

                    num_lanes = request.POST.get('lane_count')
                    for lane in range(1, int(num_lanes) + 1):
                        new_lane = Lane(
                            number=lane,
                            config=new_config
                        )
                        new_lane.save()

                        num_libraries = request.POST.get('num_libraries__lane_' + str(lane))
                        for library in range(1, int(num_libraries) + 1):
                            library_tag = '__lane_{}__lib_{}'.format(lane, library)

                            # If no Barcode is provided, make NULL in database
                            barcode_id = request.POST.get('barcode' + library_tag)
                            if barcode_id != '':
                                barcode = Barcode.objects.get(pk=barcode_id)
                            else:
                                barcode = None

                            # If no cluster_station_concentration is provided, store 0.0 in database
                            cluster_station_concentration = request.POST.get('cluster_station_concentration' + library_tag)
                            if cluster_station_concentration == '':
                                cluster_station_concentration = 0.0

                            # Create the new library model, hooked up to the newly created lane_model
                            new_library = Library(
                                lane=new_lane,
                                bionimbus_id=request.POST.get('bionimbus_id' + library_tag),
                                submitter=request.POST.get('submitter' + library_tag),
                                barcode=barcode,
                                cluster_station_concentration=cluster_station_concentration
                            )
                            new_library.save()
                    messages.info(request, 'Successfully added configuration for run {}'. format(new_config.run_name))
            except Exception, e:
                messages.warning(request, 'Adding configuration failed', 'warning')
        else:
            messages.warning(request, 'Configuration was not properly filled out', 'thumbs-o-down')
        return HttpResponseRedirect('/seq-config/config/manage/')
コード例 #2
0
ファイル: views.py プロジェクト: migbro/seqConfig
def config_edit(request, config_id):
    config = Config.objects.get(pk=config_id)
    if request.method == 'POST':
        updated_config_form = ConfigForm(request.POST, instance=config)
        if updated_config_form.is_valid():
            try:
                with transaction.atomic():
                    updated_config = updated_config_form.save()
                    Library.objects.filter(lane__config=updated_config).delete()
                    updated_config.lane_set.all().delete()
                    num_lanes = request.POST.get('lane_count')
                    for lane in range(1, int(num_lanes) + 1):
                        new_lane = Lane(
                            number=lane,
                            config=updated_config
                        )
                        new_lane.save()

                        num_libraries = request.POST.get('num_libraries__lane_' + str(lane))
                        for library in range(1, int(num_libraries) + 1):
                            library_tag = '__lane_{}__lib_{}'.format(lane, library)

                            # If no Barcode is provided, make NULL in database
                            barcode_id = request.POST.get('barcode' + library_tag)
                            if barcode_id != '':
                                barcode = Barcode.objects.get(pk=barcode_id)
                            else:
                                barcode = None

                            # If no cluster_station_concentration is provided, store 0.0 in database
                            cluster_station_concentration = request.POST.get('cluster_station_concentration' + library_tag)
                            if cluster_station_concentration == '':
                                cluster_station_concentration = 0.0

                            new_library = Library(
                                lane=new_lane,
                                bionimbus_id=request.POST.get('bionimbus_id' + library_tag),
                                submitter=request.POST.get('submitter' + library_tag),
                                barcode=barcode,
                                cluster_station_concentration=cluster_station_concentration
                            )
                            new_library.save()
                    messages.info(request, 'Successfully edited configuration for run {}'.format(updated_config.run_name))
            except Exception, e:
                messages.warning(request, 'Editing configuration failed', 'warning')
        else:
            messages.warning(request, 'Configuration was not properly edited', 'thumbs-o-down')
        return HttpResponseRedirect('/seq-config/config/manage/')
コード例 #3
0
ファイル: views.py プロジェクト: mylovered/taxiiwebclient
def settings(request):
    if request.method == 'POST':
        config = Config.objects.get()
        request.FILES['privFile'] = check_request_file('privFile', request, config.privFile)
        request.FILES['pubFile'] = check_request_file('pubFile', request, config.pubFile)
            
        config_form = ConfigForm(request.POST, request.FILES)
        
        if config_form.is_valid():
            config_form.save()
            config_form = ConfigForm(instance=Config.objects.get())
            messages.info(request, 'Settings saved')
        else:
            messages.info(request, 'Invalid form')
    else:
        config_form = ConfigForm(instance=Config.objects.get())

    return render(request, 'settings.html', {'config_form': config_form})
コード例 #4
0
ファイル: views.py プロジェクト: mylovered/taxiiwebclient
def settings(request):
    if request.method == 'POST':
        config = Config.objects.get()
        request.FILES['privFile'] = check_request_file('privFile', request,
                                                       config.privFile)
        request.FILES['pubFile'] = check_request_file('pubFile', request,
                                                      config.pubFile)

        config_form = ConfigForm(request.POST, request.FILES)

        if config_form.is_valid():
            config_form.save()
            config_form = ConfigForm(instance=Config.objects.get())
            messages.info(request, 'Settings saved')
        else:
            messages.info(request, 'Invalid form')
    else:
        config_form = ConfigForm(instance=Config.objects.get())

    return render(request, 'settings.html', {'config_form': config_form})